报告继续根据默认参数值传递数据

2020-09-14 10:43发布

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

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


我目前正在开发一个桌面应用程序,以使用带有实体框架的通用存储库模式来管理c#中基于帐户的个人年度支出。 我已经开发了一个基于2个参数的报表报表:1)Account GUID和2)ZYear。

第二个参数值将被替换,这些参数将通过编程方式传递,但GUID不会更改。 即使我以其他用户身份登录,它也只会获取第一个用户的GUID。

我的代码隐藏:

如果(printReportOnOffToolStripMenuItem.Checked)

{this.Width = 1084; 高度= 478;

ParameterFieldDefinitions parameterFieldDefinitions;

ParameterFieldDefinition parameterFieldDefinition;

ParameterValues parameterValues = new ParameterValues();

zakatreport crystalReport1 = new zakatreport();

ParameterDiscreteValue parameterDiscreteValue =新的ParameterDiscreteValue();

尝试{

//crystalReport1.RefreshReport + =(ss,ee)=>//{//crystalReport1.ParameterFields.Clear(); //};

//crystalReportViewer1.Refresh();

//crystalReportViewer1.RefreshReport();

//parameterValues.Clear();

parameterDiscreteValue.Value = guid.ToString();

parameterFieldDefinitions = crystalReport1.DataDefinition.ParameterFields;

parameterFieldDefinition = parameterFieldDefinitions [" AID"];

parameterValues = parameterFieldDefinition.CurrentValues; parameterValues.Add(parameterDiscreteValue); parameterDiscreteValue.Value = comboBox1.Text;

parameterFieldDefinitions = crystalReport1.DataDefinition.ParameterFields; parameterFieldDefinition = parameterFieldDefinitions [" ZYear"];

parameterValues = parameterFieldDefinition.CurrentValues; parameterValues.Add(parameterDiscreteValue); parameterFieldDefinition.ApplyCurrentValues(parameterValues); crystalReportViewer1.ShowRefreshButton = false; crystalReportViewer1.ShowCopyButton = false;

crystalReportViewer1.ShowExportButton = false;

crystalReportViewer1.ReportSource = crystalReport1; }

捕获(异常除外)

{MessageBox.Show(ex.Message); }}

else {this.Width = 548; 高度= 478; }

编辑:

经过一些修改后,我现在每次都被问到GUID,

我只想基于登录的用户并查看报告传递两个参数。

(43.7 kB)

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

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


我目前正在开发一个桌面应用程序,以使用带有实体框架的通用存储库模式来管理c#中基于帐户的个人年度支出。 我已经开发了一个基于2个参数的报表报表:1)Account GUID和2)ZYear。

第二个参数值将被替换,这些参数将通过编程方式传递,但GUID不会更改。 即使我以其他用户身份登录,它也只会获取第一个用户的GUID。

我的代码隐藏:

如果(printReportOnOffToolStripMenuItem.Checked)

{this.Width = 1084; 高度= 478;

ParameterFieldDefinitions parameterFieldDefinitions;

ParameterFieldDefinition parameterFieldDefinition;

ParameterValues parameterValues = new ParameterValues();

zakatreport crystalReport1 = new zakatreport();

ParameterDiscreteValue parameterDiscreteValue =新的ParameterDiscreteValue();

尝试{

//crystalReport1.RefreshReport + =(ss,ee)=>//{//crystalReport1.ParameterFields.Clear(); //};

//crystalReportViewer1.Refresh();

//crystalReportViewer1.RefreshReport();

//parameterValues.Clear();

parameterDiscreteValue.Value = guid.ToString();

parameterFieldDefinitions = crystalReport1.DataDefinition.ParameterFields;

parameterFieldDefinition = parameterFieldDefinitions [" AID"];

parameterValues = parameterFieldDefinition.CurrentValues; parameterValues.Add(parameterDiscreteValue); parameterDiscreteValue.Value = comboBox1.Text;

parameterFieldDefinitions = crystalReport1.DataDefinition.ParameterFields; parameterFieldDefinition = parameterFieldDefinitions [" ZYear"];

parameterValues = parameterFieldDefinition.CurrentValues; parameterValues.Add(parameterDiscreteValue); parameterFieldDefinition.ApplyCurrentValues(parameterValues); crystalReportViewer1.ShowRefreshButton = false; crystalReportViewer1.ShowCopyButton = false;

crystalReportViewer1.ShowExportButton = false;

crystalReportViewer1.ReportSource = crystalReport1; }

捕获(异常除外)

{MessageBox.Show(ex.Message); }}

else {this.Width = 548; 高度= 478; }

编辑:

经过一些修改后,我现在每次都被问到GUID,

我只想基于登录的用户并查看报告传递两个参数。

(43.7 kB)
付费偷看设置
发送
2条回答
骆驼绵羊
1楼-- · 2020-09-14 11:14

确保在Crystal的"文件"菜单上将"使用报表保存数据"设置为关闭。

您是否已查看位于以下位置的 Don Williams 示例应用程序: https://blogs.sap.com/2016/02/17/ /。

它包含有关设置参数和打印报告的最佳实践信息。

此外,我可能会简化您的代码,使其看起来像这样:

 parameterFieldDefinitions = crystalReport1.DataDefinition.ParameterFields;

 parameterFieldDefinition = parameterFieldDefinitions [" AID"];
 parameterValues = parameterFieldDefinition.CurrentValues;
 parameterValues.Add(parameterDiscreteValue);
 parameterDiscreteValue.Value = comboBox1.Text;
 parameterFieldDefinition.ApplyCurrentValues(parameterValues);

 parameterFieldDefinition = parameterFieldDefinitions [" ZYear"];
 parameterDiscreteValue.Value = guid.ToString();
 parameterValues = parameterFieldDefinition.CurrentValues;
 parameterDiscreteValue.Value = guid.ToString();
 parameterValues.Add(parameterDiscreteValue);
 parameterFieldDefinition.ApplyCurrentValues(parameterValues);
 

您的原始代码仅应用了其中一个参数的值。 另外,您无需两次获取" parameterFieldDefinitions"。

-Dell

大简至美
2楼-- · 2020-09-14 11:20

我看过那篇文章,而且太混乱了,无法阅读。 好,谢谢您的指导,但仍然无法正常工作。 如果我关闭"用报表保存数据",即使以编程方式提供参数,它也会开始要求GUID。

一周热门 更多>