好的,所以开始,这是我第一次使用c#,最重要的是,我正试图在MYOBs AEPM软件的报告编辑器中使用它,这并没有给我很多信息或灵活性。我能弄清楚的是,它使用了一些版本的Data Dynamics Active Reports,但不确定是哪一个。我似乎也弄不清楚他们在报告的大部分内容中使用了什么名称。不管怎样,回到主要问题。
我需要在可视化编辑器不允许我做的报告中添加一些计算(它仅限于计数,总和,最小值,最大值,Avg, Var,所以不是很有帮助)。现在计算非常简单(一个是总共的x .7,另一个是第一个x . 74的结果,但这个值将来可能会改变)。认为最好的方法是只有两个文本框,每个文本框的值为"0",然后只有一次主报告几乎完成运行计算并替换两个文本框的值。所以我在适当的部分制作了文本框,并将它们标记为CalcTotal1和CalcTotal2。
现在在编辑器中,它允许我选择对象和触发它的事件,因此选择ReportFooter作为对象,选择AfterPrint作为事件。然后,我只是放入一行来改变CalcTotal1的值,并试图生成报告,导致以下错误:
Error Message: Report Script Compile Error on line 8 Error = name 'CalcTotal1'在当前上下文中不存在
public void ReportFooter_AfterPrint()
{
CalcTotal1.Text = "Hello";
}
我已经试着看了Active Reports的文档,但是我没有太多的运气,所以任何想法都是非常受欢迎的。
只需在代码中添加"this"字,如
this.CalcTotal1.Test = "Hello";
http://helpcentral.componentone.com/nethelp/AR8Help/AR8_HelpOnlineEN/Scripts.html提供了更多的提示。
这里提到的MYOB AE PM特性称为智能报表。我能够重复这个错误,并通过使用以下语法解决了问题:
((TextBox)rpt.Sections["Detail"].Controls["TextBox2"]).Text= "$2000.00";
,
public void Detail_AfterPrint()
{
((TextBox)rpt.Sections["Detail"].Controls["TextBox2"]).Text= "$2000.00";
}