C# 不使用表单和数据库的Crystal报表
我有一个VS解决方案,它试图在不使用表单的情况下生成Crystal报表。要使用表单生成报告,请使用以下代码C# 不使用表单和数据库的Crystal报表,c#,vb.net,crystal-reports,C#,Vb.net,Crystal Reports,我有一个VS解决方案,它试图在不使用表单的情况下生成Crystal报表。要使用表单生成报告,请使用以下代码 private void button1_Click(object sender, EventArgs e) { cryRpt = new ReportDocument(); cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt"); crystalReportViewer1.ReportSourc
private void button1_Click(object sender, EventArgs e)
{
cryRpt = new ReportDocument();
cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt");
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
ExportOptions CrExportOptions ;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = "c:\\csharp.net-informations.pdf";
CrExportOptions = cryRpt.ExportOptions;
{
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
}
cryRpt.Export();
}
我想生成一个没有表单的PDF。所以我的代码就是这样的
_crAdviceRpt.Load("C:\Users\AD_AdviceTemplate.rpt")
Dim ds As ADDataset = New ADDataset
Dim dt As ADDataset.ADDatatableDataTable = New ADDataset.ADDatatableDataTable
Dim dr As DataRow
dr = dt.NewRow
dr("strLinesList") = strLine
dt.Rows.Add(dr)
_crAdviceRpt.SetDataSource(ds.Tables(0))
但是我遇到了一个问题,因为我不太确定如何替换下面的代码
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
对于非基于形式的方法
非常感谢您提供的任何帮助假设您说我想生成一个没有表单的PDF,您想使用console完成此操作,然后只需在Main中编写代码即可
代码来源:错误显示crystal report内部参数未通过 或 若您在报告中使用sp,请阅读下面的要点 水晶报表sp和实际sp不相同。 制作此报告后,您是否更改sp,特别是更改参数数据类型、长度、重命名等 这会影响sp中的定义,您已经在crystal report中提到过。执行时,它总是同步 当两个部分不相同时,会出现此错误 所以,只需进入数据库菜单并首先验证 转到“工具”菜单,然后从“向导”子菜单中选择“更改数据源/数据库” -------------**-------------------- 现在另一个问题可能是您没有传递必须来自c代码的参数
for(int i=0;i<ReportDoc.DataDefinition.FormulaFields.Count; i++)
if(ReportDoc.DataDefinition.FormulaFields[i].FormulaName==
"{" + paramName + "}")
ReportDoc.DataDefinition.FormulaFields[i].Text = "\"" +paramValue +"\"";
你所说的非形式化是什么意思?您编写的代码行将ReportViewer源代码设置为报表,如果您只想将报表导出为PDF格式,则不需要这些代码行…嗨,syed farjad,我已尝试向您介绍您的导出方法,但是,在运行时,我始终有一个缺少参数值的异常。你能给我一些建议吗?试着让我知道它是否有用。。。
for(int i=0;i<ReportDoc.DataDefinition.FormulaFields.Count; i++)
if(ReportDoc.DataDefinition.FormulaFields[i].FormulaName==
"{" + paramName + "}")
ReportDoc.DataDefinition.FormulaFields[i].Text = "\"" +paramValue +"\"";