Отчеты SAP Crystal для VS 2010. Изменение запроса во время выполнения - PullRequest
0 голосов
/ 29 марта 2012

Я использую SAP CR для VS 2010 в C Sharp. у меня есть пять таблиц, и я связываю их с помощью следующего запроса:

query = "SELECT Items.AccessionNo, Items.Name, Items.LocalName, Items.Usage, Items.Province, Items.District, Items.VillTown, Items.EthnicCommunity, Arts.Name, Items.PurchasedDonated, Items.PurchasedFrom , Items.YearOfCollection, Items.Material, Items.Height, Items.Width, Items.Length, Items.Circumference, Items.Diameter, Items.Color, Items.Age, Items.Weight, Items.PurchasedValue, Items.Rare, Items .LivingDyingTrad, Items.ManufacturingProcess, Items.PlaceOfManufacturing, Items.ConditionReport, Items.Recommandations, Items.DateOfAddition, Items.Placement, Donators.Name, Collectors.Name, Placement.Name ИЗ элементов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Искусство на Items.ArtId = Arts. ArtId ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПО ДАТЧИКАМ НА Items.DonatorId = Donators.id ВНУТРЕННЕЕ СОЕДИНЕНИЕ Коллекторы ON Items.CollectorId = Collectors.id ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ Размещение на Items.PlacementId = Placement.id ГДЕ 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(@"..\..\Reports\CRItem.rpt");
            rep.SetDataSource(dtset);
            CRViewer.ReportSource = rep;
            if (dbconn.conn.State == ConnectionState.Open)
            {
                dbconn.conn.Close();
            }
            this.CRViewer.RefreshReport();

Есть предложения?

1 Ответ

0 голосов
/ 12 июля 2012

whoooosss ..... я понял.формула выбора crystalreportviewer отличается от формулы выбора записи документа отчета.Формула выбора записи, созданная вами в отчете Crystal, сохраняется в свойстве ReportDoc.RecordSelectionFormula.Когда вы загружаете ReportDoc в ReportViewer, он не принимает значение .RecordSelectionFormula в свойстве ReportViewer.SelectionFormula.так что я сделал ....

Мои объекты:

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.

...