如何在 Crystal Reports C# 中添加三列

How to add three columns in Crystal Reports C#

我想制作这样的 crystal 报告,其中的详细信息部分有项目详细信息以及我的费用,计算也在那里,而不是在页脚,但这些东西会显示在三列中。

存储过程很好 - 我在 Crystal 报告中得到了所有内容,但我被困在 Crystal 报告设置中:

Item           || Expenses          || Net amount
Banana 150     | Commission 10%     | Item Total 600
Apple 150      | Fare 200           | Expenses total 230
Mango 300      |                    | Net  370

存储过程:

CREATE PROCEDURE [dbo].[one_complete_order]
    @order_id INT
AS
BEGIN
    SELECT DISTINCT
        Our_orders.orderID,  
        Stock.itemname AS item,
        Stock.qty AS [Orderd Qty],
        Stock.status AS Qty,
        Stock.price AS [Cost Price],
        Stock.size AS [packing], 
        Our_orders.date, 
        vendor.Vendor_Name, vendor.Vendor_Address, 
        vendor.Contact, vendor.Vendor_Company,
        Expenses.commission, Expenses.Karaya, Expenses.labour_pay, 
        Expenses.Munishi
    FROM  
        Our_orders
    JOIN 
        Stock ON Our_orders.orderID = Stock.orderID
    JOIN 
        vendor ON vendor.VendorID = Our_orders.VendorID
    JOIN 
        Expenses ON Our_orders.orderID = Expenses.orderID
    WHERE  
        Our_orders.orderID  = @order_id
    ORDER BY
        Our_orders.date DESC;
END

由于项目、费用和净额的行数不同,我建议对费用和净额使用子报表。允许您的所有项目在详细信息部分打印,然后将两个子报告插入到项目数据字段右侧的详细信息部分,将子报告隔开,使它们看起来像是详细信息中的第二列和第三列部分。

您需要确定哪个数据字段将 link 每个子报表添加到主报表。通过查看您的 SQL 存储过程,我认为 OrderID 是合适的。

您可以使用相同的 SQL 存储过程作为两个子报表的数据源。创建费用子报表时,仅使用子报表详细信息部分中费用的数据字段,并对净金额子报表执行相同操作。如果您抑制子报表中除详细信息部分之外的所有部分,然后编辑子报表的格式以删除默认边框线,那么将子报表中的行与主报表对齐会更容易。这真的取决于你。 :)