я пытаюсь создать отчет и показать его пользователю в режиме design таким образом:
Код: Выделить всё
StiReport report = new StiReport();
Database db = DbManager.CreateDatabase();
DbCommand dbCommand = db.GetSqlStringCommand("SELECT * FROM vw_AssociatesReport");
DataSet dsAssociates = DbManager.ExecuteDataSet(dbCommand, null);
report.RegData("Associates", dsAssociates);
report.Dictionary.Synchronize();
//create report with a wizard
Stimulsoft.Report.Design.Wizards.StiStandardWizardService wizard =
new Stimulsoft.Report.Design.Wizards.StiStandardWizardService();
StiReport newReport = wizard.CreateReport(report);
if (newReport != null) newReport.Design();
Однако, если я загружаю отчет из mrt файла и привязываю данные "вручную", то в режиме design все выглядит примерно так же, однако в режиме "preview" я могу увидеть отчет, содержащий все данные из моего view.
Код: Выделить всё
StiReport report = new StiReport();
Database db = DbManager.CreateDatabase();
DbCommand dbCommand = db.GetSqlStringCommand("SELECT * FROM vw_AssociatesReport");
DataSet dsAssociates = DbManager.ExecuteDataSet(dbCommand, null);
report.RegData("Associates", dsAssociates);
report.Dictionary.Synchronize();
StiDataSource dataSource = report.Dictionary.DataSources[0];
report.Load("..\\..\\AssociatesReport.mrt");
//assign fields in the report to columns from the data
StiDataBand dataBand = new StiDataBand();
StiText associateName = new StiText();
... //other fields
foreach (StiComponent component in report.Pages[0].Components)
{
switch (component.Name)
{
case "DataBandAssociates":
dataBand = (StiDataBand)component;
dataBand.DataSourceName = dataSource.Name;
break;
default:
break;
}
}
foreach (StiComponent component in dataBand.Components)
{
switch (component.Name)
{
case "txtName":
associateName = (StiText)component;
associateName.Text = dataSource.Columns["AssociateName"].ToString();
associateName.Text.Value = "{" + dataSource.Name + ".AssociateName}";
break;
... //other fields
default:
break;
}
}
report.Design();