SAP Crystal VS 2010报告.在运行时更改查询



我在C sharp中为VS 2010使用SAP CR。我有五个表,我将它们与以下查询链接起来:

查询="SELECT Items.AccessionNo,Items.Name,Items.LocalName,Items.用法,Items.省,Items.地区,Items.VillTown,Items.EthernicCommunity,Arts.Name,Items.PurchasedDonated,Items.PauchasedFrom,Items.EYearOfCollection,Items.Materials,Items.Height,Items.Width,Items.Length,Items.周长,Items.直径,Items.颜色,Items.年龄,Items.重量,Items.PourchasedValue,Items.Reare,Items.LivingDyingTrad,Items.ManufacturingProcess,Items.PlaceOfManufacturing,Items.ConditionReport,Items.推荐,Items.DateOfAddition,Items.Position,捐赠者.Name,收藏家.Name,Placement.Name FROM Items INNER JOIN Arts ON Items。ArtId=Arts.ArtId INNER JOIN Donators ON Items.DonatorId=Donators.id INNER JOIN Collectors ON Items.CollectorId=Collectors.id INNAR JOIN Placement ON Items.PlacementId=Placement.id WHERE Items.id="+itemid;

问题是,在设计时,报告仍然使用已经嵌入的查询显示多个结果。

我正在使用以下代码通过上述查询

           SqlCommand cmd = new SqlCommand(query, dbconn.conn);
            if (dbconn.conn.State == ConnectionState.Closed)
            {
                dbconn.conn.Open();
            }
            SqlDataAdapter Datadpt = new SqlDataAdapter(cmd);
            DataSet dtset = new DataSet("items");
            Datadpt.Fill(dtset);
            //rep is the Report document object already defined
            rep.Load(@"....ReportsCRItem.rpt");
            rep.SetDataSource(dtset);
            CRViewer.ReportSource = rep;
            if (dbconn.conn.State == ConnectionState.Open)
            {
                dbconn.conn.Close();
            }
            this.CRViewer.RefreshReport();

有什么建议吗?

whooosss。。。。。我明白了。crystalreportviewer的选择公式与报表文档记录的选择公式是分开的。您在水晶报表中创建的记录选择公式存储在ReportDoc.RecordSelectionFormula属性中。将ReportDoc加载到ReportViewer时,其ReportViewer.SelectionFormula属性不会采用.RecordSelectionFormula的值。所以我做的是…

我的目标是:

ReportDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
ReportViewer As CrystalDecisions.Windows.Forms.CrystalReportViewer
FlexReportDoc.SetParameterValue("Reference", gsReference)

在传递必要的参数后,如果您有任何。。。

ReportViewer.ReportSource = FlexReportDoc
ReportViewer.SelectionFormula = FlexReportDoc.RecordSelectionFormula

您需要将FlexReportDoc.RecordSelectionFormula属性的值分配给ReportViewer.SelectionFormula

最新更新