转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
在Delphi中动态生成QuickReport报表         ★★★★

在Delphi中动态生成QuickReport报表

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2086 更新时间:2009/4/23 18:38:21
n

           result:=poPortrait;//0为竖直

           Form_rep.QuickRep.PrinterSettings.Orientation:=poPortrait;

         end;

       1:begin

           result:=poLandscape;//1为水平

           Form_rep.QuickRep.PrinterSettings.Orientation:=poLandscape;

         end;

    end;

end;

 

function  Open_IniFile():Tinifile;//打开临时文件

var Filename:string;

    Ini_Filename:string;

begin

     Filename:=’Report.ini’;

     Ini_Filename:=File_Path+Filename;

     Result:=Tinifile.Create(Ini_Filename);

end;

 

procedure Read_Rep_Summary(Inifile_Name:Tinifile);//读取报表的摘要信息

var  Rep_Page,Rep_Orientation:integer;

begin

    rep_Page:=Inifile_Name.Readinteger(''''rep_detail'''',''''Page'''',1);

    Rep_Orientation:=Inifile_Name.Readinteger(''''rep_detail'''',''''Orientation'''',0);

    with  rep_Summary do

     begin

       Columns:=Inifile_Name.Readinteger(''''rep_detail'''',''''columns'''',0);

       Title:=Inifile_Name.Readstring(''''rep_detail'''',''''Title'''',''''未命名报表'''');

       page:=rep_chanslatepage(Rep_Page);//将打印页尺寸进行转换

       Orientation:=rep_chanslateOrientation(Rep_Orientation);//将打印方式设置进行转换

     end;

end;

 

procedure  Read_Col_Summary(Inifile_Name:Tinifile);//读取报表列的摘要信息

var i_count:integer;

begin

     //将列信息保存在数组中

     with Rep_Col_Sum_store do

     begin

       SetLength(Caption_array,rep_Summary.Columns);

       SetLength(DataFiled_array,rep_Summary.Columns);

       SetLength(Width_array,rep_Summary.Columns);

     end;

     for i_count:=0 to rep_Summary.Columns-1 do

     begin

       with Rep_Col_Summary do

         begin

           Caption:=Inifile_Name.Readstring(''''col_''''+inttostr(i_count),''''Caption'''',''''未命名'''');

           DataFiled:=Inifile_Name.Readstring(''''col_''''+inttostr(i_count),''''DataFiled'''','''''''');

           Width:=Inifile_Name.Readinteger(''''col_''''+inttostr(i_count),''''Width'''',0);

         end;

       with Rep_Col_Sum_store  do

         begin

           Caption_array[i_count]:=Rep_Col_Summary.Caption;

           DataFiled_array[i_count]:=Rep_Col_Summary.DataFiled;

           Width_array[i_count]:=Rep_Col_Summary.Width;

         end;

    end;

end;

 

procedure DynCreat_TQRRichtext(Colum_Num:integer);//动态创建TQRRichtext控件,此控件用来显示报表每列的中文名称

var Colum_Name_list:TStrings;

begin

     Colum_Name[Colum_Num]:=tQRRichtext.Create(application); //创建TQRRichtext控件

     Colum_Name[Colum_Num].Parent:=Form_rep.ColumnHeaderBand1;

     Colum_Name[Colum_Num].Frame.DrawTop:=true;

     Colum_Name[Colum_Num].Frame.DrawBottom:=true;

     Form_rep.ColumnHeaderBand1.Height:=40;

     Colum_Name[Colum_Num].Height:=40;

     Colum_Name[Colum_Num].Font.Height:=-14;

     Colum_Name[Colum_Num].Font.Name:=''''黑体'''';

     Colum_Name[Colum_Num].Top:=0;

     Colum_Name[Colum_Num].Alignment:=taCenter;

     Colum_Name[Colum_Num].AutoStretch:=false;

      //画表格线

     Colum_Name[Colum_Num].Frame.Style:=psSolid;

     Colum_Name[Colum_Num].Frame.Width:=1;

     Colum_Name[Colum_Num].Frame.DrawRight:=true;

     Colum_Name[Colum_Num].Frame.DrawBottom:=true;

     if Colum_Num=0 then

        begin

          Colum_Name[Colum_Num].Frame.DrawLeft:=true;

        end;

     //将记录RRep_Col_Sum_store中的信息赋给Colum_Name

     Colum_Name_list:=TStringList.Create;

     Colum_Name_list.Add(Rep_Col_Sum_store.Caption_array[Colum_Num]);

     Colum_Name[Colum_Num].Lines:=Colum_Name_list;

     Colum_Name[Colum_Num].Width:=Rep_Col_Sum_store.Width_array[Colum_Num];

     Colum_Name[Colum_Num].Visible:=true;

     //计算左边界

     if Colum_Num>0 then

        Colum_Name[Colum_Num].Left:=Colum_Name[Colum_Num-1].Left+Colum_Name[Colum_Num-1].Width

     else

        Colum_Name[Colum_Num].Left:=0;

end;

说明:此处采用TQRRichtext控件是因为当名称过长时,TQRRichtext控件可以自动换行。

    

procedure DynCreat_TQRDBText(Colum_Num:integer;Colum_Height:integer;DataSet_Name:TQuery);//动态创建TQRDBText控件,此控件用来显示每列的值

begin

Colum_Data[Colum_Num]:=tQRDBText.Create(application);

    Colum_Data[Colum_Num].Parent:=Form_rep.DetailBand1;

    //设置数据集

    Colum_Data[Colum_Num].DataSet:=DataSet_Name;

    //将数组Colum_Data.DateField属性设置为C_Rep_Col_Sum_store中的字段名

    Colum_Data[Colum_Num].DataField:=Rep_Col_Sum_store.DataFiled_array[Colum_Num];

    Colum_Data[Colum_Num].Width:=Rep_Col_Sum_store.Width_array[Colum_Num];

    Colum_Data[Colum_Num].Height:=Colum_Height;

    Form_rep.DetailBand1.Height:=Colum_Height;

    Colum_Data[Colum_Num].Top:=0;

    Colum_Data[Colum_Num].AutoSize:=false;

    Colum_Data[Colum_Num].AutoStretch:=false;

    Colum_Data[Colum_Num].WordWrap:=false;

    Colum_Data[Colum_Num].Visible:=true;

    //画表格线

    Colum_Data[Colum_Num].Frame.Style:=psSolid;

    Colum_Data[Colum_Num].Frame.DrawRight:=true;

    Colum_Data[Colum_Num].Frame.DrawBottom:=true;

    if Colum_Num=0 then

      Colum_Data[Colum_Num].Frame.DrawLeft:=true

上一页  [1] [2] [3]  下一页


[Delphi程序]QUICKREPORT SAVE AS  [Web开发]在asp.net中动态生成web控件
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台