我现在要做一个多语言的报表,我目前的方法时,分别创建多个.rpt(水晶报表文件)文件,然后让CrystalReportSource控件根据不同的参调,而使用相应的rpt文件.
<CR:CrystalReportSource ID= scrTrims" runat="server">
  <Report FileName = "crTrims_eng.rpt""
  </Report>

</CR:CrystalReportSource>如上面红色部份的代码,我想在页面的Load()事件中,根据不同的参数设置不同的报.
if(lang = "eng")
   则scrTrims的报表为crTrims_eng.rpt
if(lang = "cht")
   则scrTrims的报表为crTrims_cht.rpt
if(lang = "chs")
   则scrTrims的报表为crTrims_chs.rpt具体代码该怎么写.

解决方案 »

  1.   


    [code=C#]crTrims_eng rpt1;
    crTrims_cht rpt2;
    crTrims_chs rpt3;if(lang = "eng") 
    {
      crTrims_eng = new crTrims_eng();
      scrTrims.ReportSource  = crTrims_eng; 
    }
    if(lang = "cht") 
    {
      crTrims_cht = new crTrims_cht();
      scrTrims.ReportSource  = crTrims_cht;
    }
    if(lang = "chs") 
    {
      crTrims_chs = new crTrims_chs();
      scrTrims.ReportSource  = crTrims_chs;
    }
    [/code]
      

  2.   


    我反不到crTrims_chs, crTrims_cht,crTrims_eng这些类呀..
      

  3.   

    哦,你是文件的形式建的报表,那么这样:
    ReportDocument rep = new ReportDocument();if(lang = "eng") 
    {
      string filePath = Server.MapPath("crTrims_eng.rpt");
      rep.Load(filePath);
      }
    if(lang = "cht") 
    {
      string filePath = Server.MapPath("crTrims_cht.rpt");
      rep.Load(filePath);
      }
    if(lang = "chs") 
    {
      string filePath = Server.MapPath("crTrims_chs.rpt");
      rep.Load(filePath);
     }rep.SetDataSource(RptData);//设置数据源
    scrTrims.ReportSource = rep;
    scrTrims.DataBind();
      

  4.   

    要用close关闭原来的报表文件