DELPHI制作复杂报表实例,特别推荐!

 我近段时间一直在做各种各样的报表,特别是那些复杂报表,如下图所示:

像这类报表若说用第三方控件,说实在,你还得重做一次表,你做的又不一定符合人家原来做的要求,若用用友软件,那得交一笔不小的数目的钱哦!可我们公司一直要求以最小的投入获取最大的回报,所以是不可能的,后面想想,他们是用EXCEL做成的表给我的,我为什么不可以直接调用它们的表呢,我只要把这些表做成模板再与数据库相连,便可实现了,后来就按这方案去进行了,结果当然是搞定了,现在公布出来与大家共享,当然,对与高手而言也许不是怎么高的水平,但我相信会对部分人有用的,像这类报表做的思想就是:!一.定义各类数据的行列;二,连接模板;三,按要求进行相关的数据提取和相关的运算,对于数据运算一定要尽量想到EXCE的强大的运算功能,只要它能帮解决的就不要程序里面编写,否则运行起来就不是那么快了,相关代码如下:

procedure Tdp_bb.dp_okClick(Sender: TObject);
var
  cbw,zbw,wbw,rjw,ph,ExeRootPath:string;
  i,j,k:integer;
  t1,t2:Ttime;
begin
  rjw:=trim(datetostr(dp_dtp.Date));
  cbw := trim(dp_cbbc.Text);
  zbw := trim(dp_cbbz.Text);
  wbw := trim(dp_cbbw.Text);
  t1:=0;
  t2:=0;
  if (cbw<>'') and (zbw<>'') and (wbw<>'') then
  begin
    try
      ChDir(ExtractFilePath(Application.ExeName));
      ChDir('..');
      ExeRootPath := GetCurrentDir;
      dp_exapt.Connect;
      dp_exapt.Visible[0]:=false;
      dp_exapt.Workbooks.Add(ExeRootPath+'/config/sjcs.xls',0);
      dp_exwb.ConnectTo(dp_exapt.Workbooks[1]);
      dp_exws.ConnectTo(dp_exwb.Sheets[1] as _worksheet);
      j:=6;//起始行初始化
      with dp_form.dp_adoq1 do
      begin
        close;
        sql.Clear;
        sql.Add('select GWDY_SJPH,GWDY_ZTP from TB_GWDY order by GWDY_XH asc');
        open;
        while not eof do
        begin
          ph:=fieldbyname('GWDY_SJPH').AsString;
          i:=fieldbyname('GWDY_ZTP').AsInteger;
          if i=6 then
          {时间类型}
        

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值