各位同仁好,本人要做个打印的程序,用的是日文VB6和SQL Server2000 数据库,
打印用水晶报表,本人不太明白,想请各位帮帮忙,谢拉。
1、数据库中的日期格式为2004-02-02,可不可以在水晶报表中直接转换成16/02/02的格式??怎么样转换??
2、水晶报表的标题,日期,要通过程序传递参数,如何做??
具体的步骤??最好给一段代码。
3、打印是带表格的形式,页数如何控制??最好给一段代码。
4、分组和统计怎么做?包括页脚的合计和横行的合计。

解决方案 »

  1.   

    做日期显示格式设置在报表设计阶段进行.选择对象,然后设置对象格式,如果该对象绑定到日期类型的数据,那么打开的对话框将允许你进行日期时间格式设置.按照提示一步步做就是了.另外说明一点.我讨厌日本人.    strSQL = "SELECT Product_id,Product_Name,product_unit,produce_num,Product_Price," _
                & "Product_Discount,Product_Price2,Product_Money" _
                & " FROM (select 0 AS seq, b.Product_id," _
                & "LEFT(LEFT(b.Product_name,20-LEN(b.model_name)) + b.model_name,20) AS Product_Name," _
                & "b.product_unit," _
                & "a.produce_num," _
                & "b.product_retail_price AS Product_Price," _
                & "a.product_discount AS Product_Discount," _
                & "a.produce_price AS Product_Price2," _
                & "a.get_money AS Product_Money from " _
                & "shop_sale_info_detail_tb a,shop_sale_product_tb b" _
                & " WHERE a.product_id = b.product_id" _
                & " AND a.sale_dh='" & ListLine & "' "
        strSQL = strSQL & "UNION ALL select TOP 1 1,'合      计'," _
                & "''," _
                & "''," _
                & "(SELECT SUM(produce_num) FROM shop_sale_info_detail_tb WHERE sale_dh='" & ListLine & "')," _
                & "NULL," _
                & "NULL," _
                & "NULL," _
                & "(SELECT sum(get_money) FROM shop_sale_info_detail_tb WHERE sale_dh='" & ListLine & "') " _
                & " FROM shop_sale_info_tb a WHERE a.sale_dh='" & ListLine & "') ORDER BY seq ASC"
        rs.ActiveConnection = gSysConnObj
        rs.CursorLocation = adUseClient
        rs.CursorType = adOpenKeyset
        rs.Open strSQL
        Dim CRXApplication As CRAXDRT.Application
        Dim CRXReport As CRAXDRT.Report
        Set CRXApplication = CreateObject("CrystalRuntime.Application")
        Set CRXReport = CRXApplication.OpenReport(App.Path & "\db\salesheet.rpt")
        '这里就是传递的日期参数
        Call CRXReport.ParameterFields(1).SetCurrentValue(CDate(sale_date), 16)    Call CRXReport.ParameterFields(2).SetCurrentValue(CStr(ListLine), 12)
        Call CRXReport.ParameterFields(3).SetCurrentValue(CStr(gAddr), 12)
        Call CRXReport.ParameterFields(4).SetCurrentValue(CStr(gUserName), 12)
        Call CRXReport.ParameterFields(5).SetCurrentValue(CStr(cmbPaymentType.Text), 12)
        Call CRXReport.ParameterFields(6).SetCurrentValue(CStr(gTele), 12)
        Call CRXReport.ParameterFields(7).SetCurrentValue(CStr(gLineTitle), 12)
        CRXReport.Database.SetDataSource rs
        CRXReport.ReadRecords
        CRXReport.PrintOut False
        rs.Close
        Set rs = Nothing
      

  2.   

    呵呵,樓主,我來回答斧一個問題,試一試
    2、水晶报表的标题,日期,要通过程序传递参数,如何做??
    具体的步骤??最好给一段代码。不用代碼了,直接把參數槓放上去就行了,View-->Field Explorer,這樣你想用的參數就顯示出來了。