Symptom
Reproducing the Issue
Resolution
sample code:
using CrystalDecisions.ReportAppServer.ClientDoc;
using CrystalDecisions.ReportAppServer.DataDefModel;
using CrystalDecisions.ReportAppServer.Controllers;
using CrystalDecisions.CrystalReports.Engine;
//CR Declarations
ReportDocument m_boReportDocument;
ISCDReportClientDocument m_boReportClientDocument;
PropertyBag m_boLogonInfo; // logon info
PropertyBag m_boAttributes; // logon attributes
ConnectionInfo m_boConnectionInfo; // connection info
CrystalDecisions.ReportAppServer.DataDefModel.Table m_boTable; // table
int iField;
Field m_boFieldCustomer; // customer field
Field m_boFieldLastYSale; // last year's sale
Field m_boFieldCity; // city field
Field m_boFieldRegion; // region field
Field m_boFieldCountry; // country
//*****************************
// create a report from scratch
//*****************************
//Create a new ReportDocument
m_boReportDocument = new ReportDocument();
//Access the ReportClientDocument in the ReportDocument (EROM bridge)
m_boReportClientDocument = m_boReportDocument.ReportClientDocument;
//create new report document
m_boReportClientDocument.New();
//create logon property
m_boLogonInfo = new PropertyBag();
//ODBC
//create logon attributes
m_boAttributes = new PropertyBag();
m_boAttributes["Database DLL"] = "crdb_odbc.dll";
m_boAttributes["QE_DatabaseType"] = "ODBC (RDO)";
m_boAttributes["QE_ServerDescription"] = "ODBC - Xtreme Sample Database 12";
m_boAttributes["QE_SQLDB"] = true;
m_boAttributes["Server Name"] = "Xtreme Sample Database 2008";
//DAO
//create logon attributes
//m_boAttributes = new PropertyBag();
//m_boAttributes["Database DLL"] = "crdb_dao.dll";
//m_boAttributes["QE_DatabaseType"] = "Access";
//m_boAttributes["QE_ServerDescription"] = "ODBC - Xtreme Sample Database 11.5";
//m_boAttributes["QE_SQLDB"] = true;
//m_boAttributes["Server Name"] = "C:\\Program Files\\Business Objects\\Common\\3.5\\Samples\\En\\Databases\\xtreme.mdb";
//create connection info
m_boConnectionInfo = new ConnectionInfo();
m_boConnectionInfo.Attributes = m_boAttributes;
m_boConnectionInfo.UserName = "Admin";
m_boConnectionInfo.Password = "";
m_boConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindSQL;
//create a table
m_boTable = new CrystalDecisions.ReportAppServer.DataDefModel.Table();
m_boTable.ConnectionInfo = m_boConnectionInfo;
m_boTable.Name = "Customer";
m_boTable.Alias = "Customer";
//add a table
m_boReportClientDocument.DatabaseController.AddTable(m_boTable, null);
//grab customer name
iField = m_boReportClientDocument.Database.Tables[0].DataFields.Find("Customer Name", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);
m_boFieldCustomer = (Field)m_boReportClientDocument.Database.Tables[0].DataFields[iField];
//grab Last Years's Sale
iField = m_boReportClientDocument.Database.Tables[0].DataFields.Find("Last Year's Sales", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);
m_boFieldLastYSale = (Field)m_boReportClientDocument.Database.Tables[0].DataFields[iField];
//grab city field
iField = m_boReportClientDocument.Database.Tables[0].DataFields.Find("City", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);
m_boFieldCity = (Field)m_boReportClientDocument.Database.Tables[0].DataFields[iField];
//grab region field
iField = m_boReportClientDocument.Database.Tables[0].DataFields.Find("Region", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);
m_boFieldRegion = (Field)m_boReportClientDocument.Database.Tables[0].DataFields[iField];
//grab country field
iField = m_boReportClientDocument.Database.Tables[0].DataFields.Find("Country", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);
m_boFieldCountry = (Field)m_boReportClientDocument.Database.Tables[0].DataFields[iField];
//add database fields to report
m_boReportClientDocument.DataDefController.ResultFieldController.Add(-1, m_boFieldCustomer);
m_boReportClientDocument.DataDefController.ResultFieldController.Add(-1, m_boFieldLastYSale);
m_boReportClientDocument.DataDefController.ResultFieldController.Add(-1, m_boFieldCity);
m_boReportClientDocument.DataDefController.ResultFieldController.Add(-1, m_boFieldRegion);
m_boReportClientDocument.DataDefController.ResultFieldController.Add(-1, m_boFieldCountry);
//display in reportviewer
crystalReportViewer1.ReportSource = m_boReportDocument;
Keywords
How create new report Crystal Reports .NET inproc RAS SDK , KBA , BI-DEV-NET , BI Software Development Kits (SDKs) - .NET or Other , How To