如何读取Crystal报表中的所有公式?

2020-08-24 15:59发布

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

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


嗨,

我正在研究一种方法,该方法将搜索所有公式字段,包括对象的所有格式公式(例如背景色,边框,抑制,超链接等)和部分公式(例如抑制,保持在一起) ,之前的新页面等)。 基本上,Crystal Reports中具有X + 2按钮(下方有铅笔)的所有内容,我都想读取/搜索关联的公式。

我编写了以下代码,使用InProc RAS SDK访问FormulaFields,该公式适用于主要公式,但不返回任何格式/节公式:

 ReportDocument crReportDocument;
 crReportDocument = new ReportDocument();
 crReportDocument.Load(" C:\ Temp \ MyReport.rpt",OpenReportMethod.OpenReportByTempCopy);

 ISCDReportClientDocument报告= crReportDocument.ReportClientDocument;

 foreach(report.DataDefController.DataDefinition.FormulaFields中的DataDefModel.FormulaField f)
 {
     Console.WriteLine(" Formula Text:{0}",f.Text);
 } 

我发现我可以使用以下代码编写以下内容来在CrossTab对象中获取边界条件公式:

 foreach(report.ReportDefController.ReportObjectController.GetReportObjectsByKind(ReportDefModel.CrReportObjectKindEnum.crReportObjectKindCrosstab)中的ReportDefModel.CrossTabObject cto)
 {
     对于(int i = 0; i 
 

您是否必须像上面对CrossTab对象所做的那样分别访问每个对象,然后访问具有条件公式的每个属性才能访问/读取所有条件公式,或者我可以使用某些东西来 访问所有类型的公式?

谢谢!

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

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


嗨,

我正在研究一种方法,该方法将搜索所有公式字段,包括对象的所有格式公式(例如背景色,边框,抑制,超链接等)和部分公式(例如抑制,保持在一起) ,之前的新页面等)。 基本上,Crystal Reports中具有X + 2按钮(下方有铅笔)的所有内容,我都想读取/搜索关联的公式。

我编写了以下代码,使用InProc RAS SDK访问FormulaFields,该公式适用于主要公式,但不返回任何格式/节公式:

 ReportDocument crReportDocument;
 crReportDocument = new ReportDocument();
 crReportDocument.Load(" C:\ Temp \ MyReport.rpt",OpenReportMethod.OpenReportByTempCopy);

 ISCDReportClientDocument报告= crReportDocument.ReportClientDocument;

 foreach(report.DataDefController.DataDefinition.FormulaFields中的DataDefModel.FormulaField f)
 {
     Console.WriteLine(" Formula Text:{0}",f.Text);
 } 

我发现我可以使用以下代码编写以下内容来在CrossTab对象中获取边界条件公式:

 foreach(report.ReportDefController.ReportObjectController.GetReportObjectsByKind(ReportDefModel.CrReportObjectKindEnum.crReportObjectKindCrosstab)中的ReportDefModel.CrossTabObject cto)
 {
     对于(int i = 0; i 
 

您是否必须像上面对CrossTab对象所做的那样分别访问每个对象,然后访问具有条件公式的每个属性才能访问/读取所有条件公式,或者我可以使用某些东西来 访问所有类型的公式?

谢谢!

付费偷看设置
发送
4条回答
昵称总是被占用
1楼 · 2020-08-24 17:03.采纳回答

实际上,对于这种特殊情况,您可以遍历CrBorderConditionFormulaTypeEnum中的所有值...

软件心理学工程师
2楼-- · 2020-08-24 16:44

Hi Don,

我从您的应用程序/代码和Ido的响应中看到,不可能在不必访问每个对象的情况下获取所有公式字段,这很有帮助……至少我现在已指出了正确的方向。

请记住,选择该字段并单击"跨表专家"中的"组选项"或"订单"时,可以读取该字段的交叉表或统计图对象中的"指定订单"选项卡 或"图表专家"? 如果使用了自定义值,我需要检查使用的字符串。

谢谢!

软件心理学工程师
3楼-- · 2020-08-24 16:57

是的,每种对象都有自己的格式表达式。

没有可以循环浏览的全局集合。

打个大熊猫
4楼-- · 2020-08-24 17:03

转到下载的WIKI页面:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

该页面上有一个Parameter Test应用程序,该应用程序具有一个下拉列表框,用于获取所有公式字段对象。

一周热门 更多>