水晶报表10

 这几天一直在做Crystal Reports,终于经过我的不断摸索,已经渐渐熟悉水晶报表了,我以前从来没做过水晶报表,这次算是个尝试把,可惜公司里没人做过没人教我,他们在dotnet中还一直沿用着老的答应报表方式,在asp调用打印。遇到很多问题,上网查了很多资料:

    1 支持html代码解析,虽然在Crystal Reports 9中,有Text Interpretation=HTML Text这个属性,不过很遗憾地告诉你,那个是没用的,你的Html代码他只会解析成一堆乱码,后来换了Crystal Reports 10支持.net 2003,这是序列号:License : AV860-01CS00G-U7000NCSN : 1231467890)终于不再是乱码。不过一些比如table等元素还是解析不出来,不知道Crystal Reports 11有没有解决。

    2 界面上的CRYSTALREPORTVIEWER控件不能放在DIV中,否则导出和打印功能是用不了的,这个问题搞我一天,郁闷至极啊

    3   报表.SetDataSource(date);这个date要用DataTable填充不能用DataView ,否则是无数据的

    4  用Activator.CreateInstance进行反射,c/s和b/s下不同的,c/s只要在同一个命名空间下了,直接通过Type.GetType("类名")就能得到一个Type的类型,而b/s下返回的是null,要用一下这段代码:

private  Object GetClass( string  pClassName) {
   AppDomain currentdomain 
= AppDomain.CurrentDomain;
   Assembly[] assems 
= currentdomain.GetAssemblies();
   Type type 
= null;
   
for (int j = 0; j < assems.Length; j++)
   
{
    Type[] types 
= assems[j].GetTypes();
    
for (int k = 0; k < types.Length; k++)
    
{
     
if (types[k].Name.Equals(pClassName) || (types[k].FullName.Equals(pClassName)))
     
{
      type 
= types[k];
      
break;
     }

    }

    
if (type != null)
    
{
     
break;
    }

   }
  
   
if(type!=null)
   
{
    
return Activator.CreateInstance(type);
   }

   
return null;
  }


现在想想:因为我创建的是网站,不是Application,所以没有命名空间的原因造成的吧

你可能感兴趣的:(报表)