如何定義公共的報表實例名稱,在線等解救,謝謝!

mailbao 2009-06-25 11:45:21
現有如下代碼

if (Utility.CurrentUser == "A")
{
crInvoice_1 cr1 = new crInvoice_1();
}

if (Utility.CurrentUser == "B")
{
crInvoice_2 cr1 = new crInvoice_2();
}
......

我如何在這代碼之上,定義公共的變量cr1,方便以下代碼調用cr1??

cr1.SetDataSource(CrCtrl.GetDss(sql1, sql2, returnTableName1, returnTableName2));
this.crvReport.ReportSource = cr1;
......


但如果不定義的話,則對應不同的User就得包括好多代碼(可這些代碼都是一樣的,感覺重複太多...)
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2009-06-25
  • 打赏
  • 举报
回复
Object mycr;

if (Utility.CurrentUser == "A")
{
mycr = new crInvoice_1();
}

if (Utility.CurrentUser == "B")
{
mycr = new crInvoice_2();
}


....
mailbao 2009-06-25
  • 打赏
  • 举报
回复
crInvoice_1和crInvoice_2是不同的兩個報表類,
類似歸屬於不同用戶組的報表,但我想將它們在第三方窗體上通過一個公共變量和User所屬的用戶組來調用...
「已注销」 2009-06-25
  • 打赏
  • 举报
回复
支持一下,crInvoice_1和crInvoice_2是继承自同一个类吗
阿泰 2009-06-25
  • 打赏
  • 举报
回复
呵呵,我前面只测试到能出来setdatasource方法,没有继续测试。

或许你可以看一下这种思路

【原创】动态(万能)水晶报表:任意表,任意列,动态格线调整
mailbao 2009-06-25
  • 打赏
  • 举报
回复
試過,依然不行,汗~~ 難道真的要重複一大堆同樣的代碼??
阿泰 2009-06-25
  • 打赏
  • 举报
回复
我现在没环境测试,你把

Object xx ;
==>
改成
ReportDocument xx;

看一下是否可行~~

mailbao 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 babyt 的回复:]
Object mycr;

if (Utility.CurrentUser == "A")
{
mycr = new crInvoice_1();
}

if (Utility.CurrentUser == "B")
{
mycr = new crInvoice_2();
}


這方法在下面引用時會報錯
mycr.SetDataSource(CrCtrl.GetDataSet(sql, dsName));

報錯如下:

'object' does not contain a definition for 'SetDataSource' and no extension method 'SetDataSource' accepting a first argument of type 'object' could be found

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧