我看过一个别人的方法就是在打印时用了QRShape这个来做表格。可它和数据的多少有关系,必须使数据表的数据保持一定的数量(他是用了添加空数据来实现),这样才能使数据表格完整,不会出现只有一个数据那一页只有一个格子的现象。  不知道还有别的方法直接能画出整个表格吗?

解决方案 »

  1.   

    用QR作報表,如不用空數据的話,只能先用qrshape畫好表格,較為笨的方法.
    PageFooterBand1上畫好表格,每個qrshape上放QRLabel,
    在DetailBand1BeforePrint將記錄給QRLabel,
    table記錄最大的個數應跟表格行數是一樣. 
      

  2.   

    在QR-->OnNeedData編寫代碼,控制出報表內容行數.
      

  3.   

    用QR的ON NEEDDATA、打印内容所在BAND的AFTER PRINT事件
    中进行判断,可控制打印行数、不足一页用空行填满。
      

  4.   

    我的一般方法是:首先设置好Qreport的band的属性,再设置各个band的上下左右是否显示线条框,然后在各个band上使用一定数量的QRShape控件,根据你的要求设置形状,我一般设计才linerectage从而形成一条线,将band分开成几各,然后用代码控制在打印之前的高度与band等高,其他band也这样做,虽然整个工作比较多,但最后会得到一个你想要的效果。
      

  5.   

    添加空记录吧!var
      m,n,I:integer;
    begin
      n:=table1.RecordCount;
      m:=n mod 56;
      If m<>0 then
        m:=56-m;
      For I:=1 to m do
      begin
        table1.Append;
        table1.Post;
      

  6.   

    用quickrep做报表,只能用qrshape画表格
      

  7.   

    用fastreport比较简单。就是加一个子band。再在子band上画你想要的表格线。
    然后在页脚的onbeforeprint事件中添加脚本:
    while freespace>child.height then
    begin
       showband(child);//child为子band的名称
    end;
      

  8.   

    inc(i);//i是一個全局變量 
    //qr不要設置dataset(即為空),BeforePrin裡面dataset.first;//設置為第一記錄
    //在onneeddata裡面,
    //因為以前搞過,都過了比較久了,你試試看看行不行
            if not ADOQuery1.Eof then
            begin
                    QRLabel2.Caption:=ADOQuery1.Fields[1].AsString;
                    QRLabel3.Caption:=ADOQuery1.FieldByName('SL').AsString;//+ADOQuery1.FieldByName('DW').AsString;
                    ADOQuery1.Next;                if i<=20 then
                    MoreData:=true
                    else
                    begin
                    QuickRep1.NewColumn;
                    i:=0;
                    MoreData:=true;
                    end;
            end
            else
            begin
                    QRLabel2.Caption:='';
                    QRLabel3.CaptioN:='';                if i=20 then
                    MoreData:=false;
            end;
    你参考一下
      

  9.   

    呵呵,你还想用别的方法做报表,就只能用其他报表控件比如fastreport或用word作为报表的模板