尝试在运行时 C# 中绑定 Crystal 报表和视图

本文关键字:Crystal 报表 视图 绑定 运行时 | 更新日期: 2023-09-27 18:24:17

private void PrintPreview_Load(object sender, EventArgs e)
{
        if (GlobalVariable.GlobGetRowID > 0)
        {
            try
            {
                BindingData();                    
            }
            catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }
        }
    }
    private void BindingData()
    {
        try
        {
            using (SqlCeConnection con = new SqlCeConnection(GlobalVariable.ConnectionString))
            {
                con.Open();
                string QueryBuild = "SELECT TravelOrderNo, RowDate, FirstName, MiddleName, LastName, PositionDesignation, OfficialStation, Destination, " +
                    "Purpose, DtOfDeparture, DtOfReturn, MeansOfTransportation, Fare, PerDiam, Others1, Others2, RemarksAndRecommendation, " +
                    "RecommendedBy, ApprovedBy, IntRow FROM TravelOrderTable Where IntRow = @param1";
                using (SqlCeCommand cmd = new SqlCeCommand(QueryBuild, con))
                {
                    cmd.Parameters.Add("@param1", SqlDbType.BigInt).Value = GlobalVariable.GlobGetRowID;
                    SqlCeDataReader read = cmd.ExecuteReader();
                    DataTable dt = new DataTable();
                    dt.Load(read);
                    DataSet1 ds = new DataSet1();
                    ds.Tables[0].Merge(dt);
                    GlobalVariable.GetRptPath = System.Configuration.ConfigurationSettings.AppSettings["Reports"];
                    rpt.Load(Application.StartupPath + "''TravelReport.rpt");
                    rpt.SetDataSource(ds);
                    crystalReportViewer1.ReportSource = rpt;
                    cmd.Dispose();
                }
                con.Close();
            }
        }
        catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }
    }

我做了什么:

我创建了一个水晶报告,将其放在"''bin''debug''Reports''TravelReport.rpt"我还单击了"在 Crystal 报告查看器"选项中选择 Crystal 报表选项并绑定 Crystal 报表路径

在水晶报告中,我提供了它的数据库专家在我的连接选择了数据集1,在我的数据集1中,我创建了一个TravelOrderTableAdapter

我的

问题是,如何使代码正确,以使我的水晶报表查看器根据我的 C# 表单参数 IntRow ID 显示我想查看的数据。

请帮助任何已经使用本地紧凑数据库的经验的人,只是为了让您知道。

尝试在运行时 C# 中绑定 Crystal 报表和视图

这是代码:-

crystalReportViewer1.ReportSource = @"C:'WorldSalesReport.rpt";

我不是专业程序员,但我在我的软件中也遇到了同样的问题,您需要提及"Report.rpt"的位置

为此,您可以使用

 exestr = (Environment.GetCommandLineArgs()[0]);

这将为您提供应用程序 (nm.exe( 位置"C:/nm.exe">

 int exelen = exestr.Length;
 exestr = exestr.Remove(exelen - 6, 6) + "Report.rpt";

在此,我正在从字符串中删除 nm.exe.那么在我添加报告后它将是"C:/">

那么你只需要:-

   crystalReportViewer1.ReportSource = exestr;

请参阅 :- https://help.sap.com/viewer/0d6684e153174710b8b2eb114bb7f843/SP21/en-US/45b0c03b6e041014910aba7db0e91070.html