2009-08-19 73 views
2

我一直在试图格式化一个报告,为潜在供应商提供一个列表,显示设备的型号,序列号,范围,资产编号,和校准频率。这个概念是基于这个建议,如果被接受,以后会成为一个采购订单 - 所以提供诸如是否在内部进行工作等领域,以及何时提出建议,何时我们打算发送项目出来,最后,如果有一个有效的采购订单号已经分配给整个混乱。访问报告 - 基于数据的隐藏字段,标签和其他元素

我一直在尝试有一个字段,如果基础查询中的是/否复选框的值是True或False,则该字段会更改值。但是,我无法获得任何标准属性更改以在报表中工作 - 它不会抛出错误,它只是无所作为。我试着将代码插入On Format事件中,以及在相应的表单上加载事件 - 但代码将无法运行。

基于底层查询字段值的这些属性操作是否不适用于像在表单上那样的报表?

回答

4

让一个未绑定的文本框,在控件来源属性放在一个公式是这样的:

=IIF([BooleanField],"Value if True","Value if false") 
+0

这是 - 正好 - 我正在寻找的票据,我只是不知道IIF表达式。谢谢! :) – 2009-08-20 16:50:09

0

在格式化报告时,您可能希望将代码放在“onPrint”事件上。它在“打印”到屏幕时触发。

+0

我不同意。这种类型的大多数代码应该放在相关部分的OnFormat事件中。 – 2009-08-20 19:19:12

+0

我以前在onFormat事件中遇到了一些麻烦。我发现我一直在onPrint事件上取得成功。这可能仅仅是由于我对于发生什么事情时的一些无知,但从那时起,我将所有事情都放在了印刷活动上,所以我肯定会发生。 – user158017 2009-08-21 00:56:02

1

我认为这将是最好的查询指定值(S),而不是报告。

小示例代码:

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) 
If Me.YN Then 
    ''Label in the detail section 
    Me.Label_YN.Visible = False 
    ''Unbound field 
    Me.txtField1 = "abc" 
Else 
    Me.Label_YN.Visible = True 
    Me.txtField1 = "def" 
End If 
End Sub 
0

这又有点超出你的具体问题,但可能是从报表设计角度来看一个有用的替代方法。

您可能希望将“内部”数据放入与主报告相关的单独子报告中(例如,在主工单号上)。子报告的数据来自一张保存内部数据的新表,包括主工单号)。然后,使用主工单号将主表数据连接到新表。

如果主报告没有链接到子报告,则应该没有显示的数据(应该不需要任何代码)。根据需要,如果要关闭空子报表的空白区域,可以将主报表详细信息和子报表“可收缩”属性设置为“是”。

这种方法的优点是新表可以有多个记录给定的主工单号,比如对于不同的执行部门。另外,子报表设计可以单独修改而不影响主报表(除了大小)。