0

我使用 c# 和 SQL Server Management Studio 创建了库存管理系统。在我的系统中有水晶报表。当我在客户端机器上运行我的项目时。它的工作符合预期。但我无法打开水晶报表。原因是给定路径与客户端机器路径不同。

reportDocument.Load(@"E:\Projects\WCC-StockManagementSystem\WCC-StockManagementSystem\Reports\InvoiceReport.rpt");

我想在不提供完整路径的情况下运行我的水晶报告。我想像这样改变上面的行。

 reportDocument.Load(@"WCC-StockManagementSystem\WCC-StockManagementSystem\Reports\InvoiceReport.rpt");

但如果我这样做。它不工作。你能告诉我如何解决这个问题。这是我加载水晶报告的完整代码。

reportDocument.Load(@"E:\Projects\WCC-StockManagementSystem\WCC-StockManagementSystem\Reports\InvoiceReport.rpt");
        using (SqlConnection con = new SqlConnection(CS))
        {
            DataSet ds = new DataSet();
            SqlDataAdapter sda = new SqlDataAdapter("select MAX(InvoiceNo) InvoiceNo, MAX(Cashier) Cashier, ItemName, Sum(Quantity) Quantity, ItemCode, MAX(DiscountPrice) DiscountPrice, MAX(Amount) Amount, MAX(GrossAmount) GrossAmount, MAX(Cash) Cash, MAX(Balance) Balance, MAX(NoOfItems) NoOfItems from tblTemporaryInvoice group by ItemCode, ItemName ", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            reportDocument.SetDataSource(dt);
            crvInvoiceReportViewer.ReportSource = reportDocument;
        }

请更改此代码并将正确的方式发送给我以在客户端计算机上运行水晶报告。谢谢

4

2 回答 2

0

如果您不想在配置文件中添加 Reports 文件夹的路径,则可以将 Reports 文件夹放在 .exe 所在的同一路径中。

然后,您可以使用Environment.CurrentDirectory

reportDocument.Load($"{Environment.CurrentDirectory}\Reports\InvoiceReport.rpt");
于 2021-01-28T03:28:07.540 回答
0

您无需提供完整路径。只需创建一个水晶报表的实例。

InvoiceReport rpt = new InvoiceReport();
crvInvoiceReportViewer.ReportSource = rpt;

它会起作用的。

于 2021-01-28T03:34:08.370 回答