2010-09-02 94 views
0

上次我用兩個參數查詢&查看報表。它運作良好。現在我試圖用另一個額外的參數使用相同的代碼,但它不工作。我很困惑。讓我告訴你我的代碼。其運作良好水晶報表查詢由三個參數查看報表

代碼:

參數字段:bdate和EDATE

Crystal報表公式:{Bal_sheet.bsdate}> = {bdate?}和{Bal_sheet.bsdate} < = {? EDATE}

代碼來顯示報告:

Private Sub butsbalsrep_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butsbalsrep.Click 
    Dim cryRpt As New ReportDocument 
    cryRpt.Load(Application.StartupPath & "\CrystalReport3.rpt") 

    Dim crParameterFieldDefinitions As ParameterFieldDefinitions 
    Dim crParameterFieldDefinition As ParameterFieldDefinition 

    Dim crParameterFieldDefinitions1 As ParameterFieldDefinitions 
    Dim crParameterFieldDefinition1 As ParameterFieldDefinition 


    Dim crParameterValues As New ParameterValues 
    Dim crParameterValues1 As New ParameterValues 

    Dim crParameterDiscreteValue As New ParameterDiscreteValue 
    Dim crParameterDiscreteValue1 As New ParameterDiscreteValue 

    crParameterDiscreteValue.Value = cmbbdate.Text 
    crParameterDiscreteValue1.Value = cmbedate.Text 

    crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition = crParameterFieldDefinitions.Item("bdate") 

    crParameterFieldDefinitions1 = cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition1 = crParameterFieldDefinitions.Item("edate") 

    crParameterValues = crParameterFieldDefinition.CurrentValues 
    crParameterValues1 = crParameterFieldDefinition1.CurrentValues 

    crParameterValues.Clear() 
    crParameterValues1.Clear() 

    crParameterValues.Add(crParameterDiscreteValue) 
    crParameterValues1.Add(crParameterDiscreteValue1) 

    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) 
    crParameterFieldDefinition1.ApplyCurrentValues(crParameterValues1) 


    crysrepbalsht.ReportSource = cryRpt 
    crysrepbalsht.Refresh() 
End Sub 

代碼WHI CH不工作:

參數字段:idnmb和acyer和etyp

Crystal報表公式:{?idnmb} {?acyer} {res_info.stu_id} =和{res_info.yr} =和{res_info .etype} = {} etyp

代碼來顯示報告:

Private Sub butsrrepsr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butsrrepsr.Click 
    Dim cryRpt As New ReportDocument 
    cryRpt.Load(Application.StartupPath & "\CrystalReport3.rpt") 

    Dim crParameterFieldDefinitions As ParameterFieldDefinitions 
    Dim crParameterFieldDefinition As ParameterFieldDefinition 

    Dim crParameterFieldDefinitions1 As ParameterFieldDefinitions 
    Dim crParameterFieldDefinition1 As ParameterFieldDefinition 

    Dim crParameterFieldDefinitions2 As ParameterFieldDefinitions 
    Dim crParameterFieldDefinition2 As ParameterFieldDefinition 

    Dim crParameterValues As New ParameterValues 
    Dim crParameterValues1 As New ParameterValues 
    Dim crParameterValues2 As New ParameterValues 

    Dim crParameterDiscreteValue As New ParameterDiscreteValue 
    Dim crParameterDiscreteValue1 As New ParameterDiscreteValue 
    Dim crParameterDiscreteValue2 As New ParameterDiscreteValue 

    crParameterDiscreteValue.Value = cmbsrrepidn.Text 
    crParameterDiscreteValue1.Value = cmbsrrepay.Text 
    crParameterDiscreteValue2.Value = cmbsrrepet.Text 

    crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition = crParameterFieldDefinitions.Item("idnmb") 

    crParameterFieldDefinitions1 = cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition1 = crParameterFieldDefinitions.Item("acyer") 

    crParameterFieldDefinitions2 = cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition2 = crParameterFieldDefinitions.Item("etyp") 

    crParameterValues = crParameterFieldDefinition.CurrentValues 
    crParameterValues1 = crParameterFieldDefinition1.CurrentValues 
    crParameterValues2 = crParameterFieldDefinition2.CurrentValues 

    crParameterValues.Clear() 
    crParameterValues1.Clear() 
    crParameterValues2.Clear() 

    crParameterValues.Add(crParameterDiscreteValue) 
    crParameterValues1.Add(crParameterDiscreteValue1) 
    crParameterValues2.Add(crParameterDiscreteValue2) 

    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) 
    crParameterFieldDefinition1.ApplyCurrentValues(crParameterValues1) 
    crParameterFieldDefinition2.ApplyCurrentValues(crParameterValues2) 

    CrystalReportViewer3.ReportSource = cryRpt 
    CrystalReportViewer3.Refresh() 

End Sub 

我很困惑,爲什麼它不工作!當我點擊顯示報告按鈕時,它什麼也沒有顯示(我沒有收到錯誤信息,也沒有找到記錄)。我在公式工作室記錄選擇公式編輯器中編寫了{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{res_info.etype} = {?etyp}。請幫我擺脫這個問題!

+0

定義「不工作」;你沒有收回記錄,一組意外的記錄,一個錯誤?您是否在Crystal Report中設置了公式{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{res_info.etype} = {?etyp}'? – LittleBobbyTables 2010-09-02 11:22:41

回答

0

是的,你是對的LittleBobbyTables。當我點擊顯示報告按鈕時,它什麼也沒有顯示(我沒有收到錯誤消息,但沒有收到記錄。)是的,我寫了{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{ res_info.etype} = {?etyp}它在公式車間記錄選擇公式編輯器

+1

詹姆斯,你有沒有試過修改你的報告公式,以便它只保存一次的條件之一,然後運行它?如果其中一個條件出現故障,這應該有助於您找到它;相反,如果所有單條件運行都返回數據,則可能僅僅是數據源中沒有數據同時滿足所有條件。 – 2010-09-03 10:19:43