VS v13.0.17.2096的SAP Crystal Reports-默认导出文件名

2020-09-05 10:38发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我刚刚购买了SAP Crystal Reports 2016,并且使用的是Microsoft Visual Studio 2015,并且安装了Crystal Reports for VS v13.0.17.2096。 我建立了一个包含CrystalReportViewer控件的网页来显示我的报告。 我的问题是,当用户单击工具栏上的"导出"时,PDF的文件名始终默认为" crViewer.pdf ",这是CrystalReportViewer控件的ID。 我想使用日期和时间戳或其他一些已知的唯一标识符来默认文件名,以便客户端可以轻松地将它们保存到其网络文件夹中。

我尝试使用以下代码:-

crViewer.ID =" Report_" +格式(现在是" yyyyMMdd_HHmm")

但这会使控件不稳定。 如何使用Crystal Reports工具栏中的"导出"按钮默认导出文件名?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我刚刚购买了SAP Crystal Reports 2016,并且使用的是Microsoft Visual Studio 2015,并且安装了Crystal Reports for VS v13.0.17.2096。 我建立了一个包含CrystalReportViewer控件的网页来显示我的报告。 我的问题是,当用户单击工具栏上的"导出"时,PDF的文件名始终默认为" crViewer.pdf ",这是CrystalReportViewer控件的ID。 我想使用日期和时间戳或其他一些已知的唯一标识符来默认文件名,以便客户端可以轻松地将它们保存到其网络文件夹中。

我尝试使用以下代码:-

crViewer.ID =" Report_" +格式(现在是" yyyyMMdd_HHmm")

但这会使控件不稳定。 如何使用Crystal Reports工具栏中的"导出"按钮默认导出文件名?

付费偷看设置
发送
3条回答
me_for_i
1楼 · 2020-09-05 11:10.采纳回答

您是否正在使用Sessions和PostBack,必须将查看器保持在Session中,而使用POSTBACK是唯一方法吗?

这对我有用,很可惜您没有发布所有代码:

受保护的无效Page_Init(对象发送者,EventArgs e)

{

System.Drawing.Printing.PrintDocument pDoc =新的System.Drawing.Printing.PrintDocument();

rd =新的CrystalDecisions.CrystalReports.Engine.ReportDocument();

CrystalDecisions.CrystalReports.Engine.Database crDatabase;

CrystalDecisions.CrystalReports.Engine.Tables crTables;

CrystalDecisions.Shared.TableLogOnInfo tblogoninfo;

CrystalDecisions.Shared.ConnectionInfo cninfo;

字符串url ="/inetpub/wwwroot/WebSite7VS2015/Reports/test.rpt";

rd.FileName = url;

#region会话

if(Session [" rd"] == null)

{

尝试

{

rd.Load(url,OpenReportMethod.OpenReportByTempCopy); Session.Add(" rd",rd); }

最后

{

//打开数据库连接

//myConnection.Close();

}

}

#endregion会话

CrystalReportViewer1.Height = 300;

CrystalReportViewer1.Width = 300;

CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;

//设置格式导出类型:

int myFOpts =(int)(

CrystalDecisions.Shared.ViewerExportFormats.RptFormat |

CrystalDecisions.Shared.ViewerExportFormats.PdfFormat |

CrystalDecisions.Shared.ViewerExportFormats.RptrFormat |

//CrystalDecisions.Shared.ViewerExportFormats.XLSXFormat |

//CrystalDecisions.Shared.ViewerExportFormats.CsvFormat |

//CrystalDecisions.Shared.ViewerExportFormats.EditableRtfFormat |

//CrystalDecisions.Shared.ViewerExportFormats.ExcelRecordFormat |

//CrystalDecisions.Shared.ViewerExportFormats.RtfFormat |

//CrystalDecisions.Shared.ViewerExportFormats.WordFormat |

CrystalDecisions.Shared.ViewerExportFormats.XmlFormat |

CrystalDecisions.Shared.ViewerExportFormats.ExcelFormat |

//CrystalDecisions.Shared.ViewerExportFormats.AllFormats |

CrystalDecisions.Shared.ViewerExportFormats.ExcelRecordFormat);

//CrystalDecisions.Shared.ViewerExportFormats.NoFormat); //不允许出口

//int myFOpts =(int)(CrystalDecisions.Shared.ViewerExportFormats.AllFormats);

CrystalReportViewer1.AllowedExportFormats = myFOpts;

CrystalReportViewer1.ID =" ReportUsageDetailByArea";

CrystalReportViewer1.ReportSource =会话[" rd"];

CrystalReportViewer1.EnableParameterPrompt = true;

CrystalReportViewer1.HasToggleParameterPanelButton = true;

}

销售人员会向您出售一个案例以寻求支持,只需问问他们。 如果您与之交谈的人不知道告诉他们去询问,那么只有一个案例而无需支持合同。

祝你好运

Don

小熊yu生菜
2楼-- · 2020-09-05 11:18

Don,正如我在原始帖子中所说,我尝试如下设置属性" ID":-

crViewer.ID =" Report_" +格式(现在是" yyyyMMdd_HHmm")

存在的问题:-将ID更改为其他名称后,Crystal Report Viewer不再起作用,工具栏崩溃。 为什么? 因为工具栏(用JAVA编写)无法再引用Crystal Report Viewer控件的ID,因为您已在运行时对其进行了更改!

可惜您没有阅读我的原始帖子。 是的,这是一个错误,因为文件名绝不能取自内部控制类名称! 它应取自"报告标题"或类似内容。 我不能在2016年不崩溃Crystal Reports Viewer的情况下更改ID,并且事实是它们使用控件类名称作为文件名,我认为这是一个错误!

在支持事件中,这仅适用于服务器产品! 我给SAP打了电话,他们说您必须购买服务器产品才能创建SAP ONE帐户。 除非您拥有SAP ONE帐户,否则您将无法获得支持期限! 如果没有SAP ONE帐户,则仅通过购买服务器产品才能获得购买事件的机会。

Alawn_Xu
3楼-- · 2020-09-05 11:31

您好,Nicholas,

有两种方法。 在"报告摘要"信息中设置"标题"名称,或者如果使用引擎打开报告,则可以在代码中执行以下操作:

//这将获得报告名称,并将导出名称设置为相同的名称,然后减去 扩展名

string outputFileName ="";

string MyRptName = rpt.FileName.ToString();

outputFileName = MyRptName.Substring(9,rpt.FileName .Length-9);

outputFileName = outputFileName.Substring(0,(outputFileName.Length-3))+" pdf";

尝试

{

如果(File.Exists(outputFileName))

{

File.Delete(outputFileName);

}

....

导出到磁盘

Don

一周热门 更多>