機房收費系統中的“周結賬單”有一個功能是根據選定時間的範圍,顯示相應的賬單資料,這時就用到了“參數”的設定。
首先,在"報表主對象"中插入參數:右擊"參數集合"--插入--參數(DateBegin 和DateEnd)
然後,在報表模版中插入綜合文字框:--插入--組件框--綜合文字框,然後點擊文字框,在裡面輸入參數名和顯示的文字,格式為[#Parameter1#],(設定了時間顯示格式):
首先,在VB中添加組件:Grid++Report Engine5.0 Type Libirary
在VB中,設定相應的代碼:
'定義變數具有相對應的事件Dim WithEvents Report As grproLibCtl.GridppReportPrivate Sub Form_Load() '建立報表對象 GRDisplayViewer1.Stop Set Report = New grproLibCtl.GridppReport '載入報表範本檔案,保證相對路徑 Report.LoadFromFile (App.Path + "ChargeCheckDay.grf")
'設定資料庫連接字串 Report.DetailGrid.Recordset.ConnectionString = "Provider=SQLOLEDB; Data Source=192.168.24.54;Initial CataLog=Charge_zlj;UID=sa;PWD=123456" '顯示日結賬中,最新一條記錄 Report.DetailGrid.Recordset.QuerySQL = "select top 1 * from CheckDay order by Date desc" '設定報表查詢顯示器控制項的關聯報表對象 GRDisplayViewer1.Report = Report '啟動報表運行 GRDisplayViewer1.Start End SubPrivate Sub Report_Initialize()'設定各個參數的值'開始時間 Report.ParameterByName("DateBegin").AsString = Format$(DTPBegin.Value, "yyyy-mm-dd") '顯示開始日期'結束時間 Report.ParameterByName("DateEnd").AsString = Format$(DTPEnd.Value, "yyyy-mm-dd") '顯示結束日期End SubPrivate Sub cmdPrint_Click() '列印 '因為報表對象的 Print 方法名與 VB 內部定義有衝突,所以要用中括弧括起來 Report.[Print] (True)End SubPrivate Sub cmdPrintPrevious_Click() '預覽列印 Report.PrintPreview (True)End Sub
效果: