我正在编写一份报告,通过表单,允许多个过滤器和排序。我希望报告的标题能够反映出对过滤器和过滤器的选择。排序
报告可以按3个字段过滤:产品类型,收到的交付物(是/否)和项目经理。
可以按以下方式排序:合同号,产品类型,承包商,开始日期,结束日期和时间。收到的日期产品
我已经获得了一些元素(DeliverablesReceived已被选中和没有排序的那些元素)但是我遇到了其他问题。
Public Function InsertTitle(strReportName As String) As String
Dim strProduct As String
If strReportName = "rptMasterDeliverables" Then
If strField = "" Then
InsertTitle = "All Deliverables Sorted by Project Manager"
ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then
InsertTitle = "Outstanding Deliverables Sorted by " & Left(strField, InStr(1, strField, ",") - 1) & ""
ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" Then
InsertTitle = "Received Deliverables Sorted by " & Left(strField, InStr(1, strField, ",") - 1) & ""
ElseIf InStr(1, strField, ",") = 0 Then
InsertTitle = "All Deliverables Sorted by " & strField & ""
以上一切运作良好,我遇到以下问题
ElseIf Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" And Left(strField, 1) = "," Then
InsertTitle = "Received Deliverables sorted by Project Manager"
ElseIf Left(strField, 1) = "," And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then 'cboReceived
InsertTitle = "Outstanding Deliverables sorted by Project Manager"
ElseIf InStr(1, strProduct, ",") = 0 And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "No" Then
InsertTitle = "" & Mid([strProduct], 2, Len([strProduct])) & " Deliverables"
ElseIf Left(strField, 1) = "*" And InStr(1, strField, ",") = 0 Then
InsertTitle = "All " & Mid([strField], 2, Len([strField])) & " Deliverables sorted by " & strField & ""
ElseIf Left(strField, 2) = "* " And Forms!fdlgMasterDeliverables!cboDeliverableReceived Like "Yes" Then
InsertTitle = "Received " & Mid([strField], 3, Len([strField])) & " Deliverables sorted by Project Manager"
打开报告的代码是
Private Sub Report_Open(Cancel As Integer)
Dim strProducts As String
strField = ""
If CurrentProject.AllForms("fdlgMasterDeliverables").IsLoaded Then
If Not IsNull(Forms!fdlgMasterDeliverables!cboSort) Then
Me.Report.GroupLevel(0).ControlSource = Forms!fdlgMasterDeliverables!cboSort.Column(0)
strField = Forms!fdlgMasterDeliverables!cboSort.Column(1)
If Not IsNull(Forms!fdlgMasterDeliverables!cboDeliverableReceived) Then
strField = strField & "," & Forms!fdlgMasterDeliverables!cboDeliverableReceived.Column(1)
End If
ElseIf Not IsNull(Forms!fdlgMasterDeliverables!cboDeliverableReceived) Then
strField = "," & Forms!fdlgMasterDeliverables!cboDeliverableReceived.Column(1)
End If
If Not IsNull(Forms!fdlgMasterDeliverables!cboProductType) Then
strProduct = Forms!fdlgMasterDeliverables!cboProductType.Column(1)
End If
目前正常工作的部分返回“按[选定排序]排序的未完成/已接收/所有可交付成果”,如果未选择过滤器或排序,则会正确返回“由项目经理排序的所有可交付成果”
我正在尝试使用已识别的过滤器返回标题。例如,如果我选择Product type =“Document”&产品经理=“劳拉”我希望标题看起来像“劳拉的所有文件可交付成果”如果我添加了收到=“否”,我希望它能读到“劳拉的杰出文件交付”
如果我选择Received =“Yes”&产品类型=“数据”并选择按合同编号排序我希望标题为“按合同编号接收的数据交付项目”
如果没有选择排序顺序,我希望标题默认为“....按项目经理排序”
我考虑过一个Case声明,但不知道从哪里开始。任何对出现问题的见解都将非常感激
答案 0 :(得分:0)
您获得/看到的错误是什么?它看起来像你的代码丢失了,你可以发布所有这些,结果是你得到的与预期的行为?