动态调节水晶报表的字段

至于水晶报表的一些定义之类的东西,在这就不说了,在google、baidu上有很多,直接进入正题吧。
  
   往往在做报表的时候,不是拽出来的每一字段都是合适每一个客户的电脑的,也就是报表内容整体偏向左或偏向右,这些可能性都是存在的。如果每一次都要因为这改来改去,等于做许多无用功。

None.gif             
None.gif            
// 实例化报表
None.gif
            CryTCL crystal  = new  CryTCL();
None.gif
None.gif            
// 登录信息
None.gif
            crystal.SetDatabaseLogon(clsConn.DATABASE_LOG ,clsConn.DATABASE_IPPASSWPRD,clsConn.DATABASE_ADDRESS,clsConn.DATABASE_NAME  );
None.gif
None.gif            
// 绑定数据源(datatable)
None.gif
            crystal.SetDataSource( this .crydDs(  this .sqlwhere ).Tables[ 0 ]);
None.gif
None.gif            
// 调用动态的字段方法
None.gif
            setLocal(crystal);
None.gif
None.gif            
None.gif            
this .cryViewTCL.ReportSource  =  crystal ;
None.gif            
this .cryViewTCL.Refresh();
None.gif
ExpandedBlockStart.gifContractedBlock.gif            
/**/ /// <summary>
InBlock.gif            
/// 给水晶报表字段的属性传参数
InBlock.gif             
/// </summary>
ExpandedBlockEnd.gif            
/// <param name="report"></param>

None.gif          private   void  setLocal(CrystalDecisions.CrystalReports.Engine.ReportDocument report )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//水平
InBlock.gif
            for(int m= 1;m< 74;m++)  //m< 74 -->  报表的字段数
ExpandedSubBlockStart.gifContractedSubBlock.gif
            dot.gif{
InBlock.gif                FieldObject fobj 
= (FieldObject)report.ReportDefinition.ReportObjects["Field"+m];
InBlock.gif                
InBlock.gif                
//1厘米=566.6666 缇,这里我是通过配置文件来取值的,这个可以根据每个人所喜欢来做 
InBlock.gif                
//0.1 * Convert.ToInt32(clsIO.GetKeyValue("leftToMiddle"))表示毫米=厘米*0.1
InBlock.gif
                Double left = fobj.Left + 0.1 * Convert.ToDouble(clsIO.GetKeyValue("leftToMiddle")) * 566.6666 ; 
InBlock.gif
InBlock.gif                fobj.Left 
= Convert.ToInt32(left);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
//坚直
InBlock.gif
            for(int m= 1;m< 74;m++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                FieldObject fobj 
= (FieldObject)report.ReportDefinition.ReportObjects["Field"+m];
InBlock.gif                
InBlock.gif                
//Double left ;
InBlock.gif
                Double top = fobj.Top + 0.1 * Convert.ToDouble(clsIO.GetKeyValue("topToMiddle")) * 566.6666 ; 
InBlock.gif
InBlock.gif                fobj.Top 
= Convert.ToInt32(top);
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

None.gif


如果有什么写得不对的,请各位多多指教。谢谢

转载于:https://www.cnblogs.com/jack-man/archive/2008/01/24/695556.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值