TIniFile *ini;
    ini = new TIniFile("hadchktran.ini");
 
    AnsiString s,Field;
    TQRLabel *pLabel;
    int length,count;
    for (int i=lblist->Count-1; i>=0; i--)
    {
        delete (TQRLabel *)lblist->Items[i];
    }
    lblist->Clear();
    /*打印客户清单表头*/
    count = ini->ReadInteger("Items","Count",0);
    for(int i=1;i<=count;++i)
    {
         s = ini->ReadString("Items","Item"+IntToStr(i),"");
         length = s.Trim().Length();         lb = new TQRLabel(this);
         lblist->Add((void *)lb);
         lb->Parent = ChildBand1;
         lb->Caption = s;
         lb->Top = 0;
         lb->Alignment = taCenter;
         lb->AutoSize = false;
         SetAttrib(lb);                               //设置字体大小
         lb->Font->Style = TFontStyles()<<fsBold;
           
         //-----以下是大小间距的处理
         if(i>1)
         {
             pLabel = (TQRLabel *)lblist->Items[i-1];
             lb->Left =pLabel->Left + pLabel->Width;
         }
         else lb->Left = 100;
         lb->Width = length*9;
         if(lb->Width < lb->Caption.Length()*9)
             lb->Width = lb->Caption.Length()*9;
         else if(lb->Width > 30*9)
             lb->Width = 30*9;
         if((lb->Left + lb->Width) > ChildBand1->Width)
         {
             delete lb;
             lblist->Delete(i);
             count = i;
             break;
         }    }
    ChildBand1->Height = lb->Height+5;
    delete ini;  //打印具体数据
    TQRChildBand *qcb = ChildBand1;
            
   QRLabel1->Caption ="日流水清单报表";
            for(int i=0;i<FrmChkact->lvTran->Items->Count; ++i)
            {
                qcb->HasChild = true;
                qcb = qcb->ChildBand;                for(int j = 0;j <= count;++j)
                {
                    pLabel = (TQRLabel *)lblist->Items[j];
                    Field = GetField(Flag,pLabel->Caption,FrmChkact->lvTran->Items->Item[i]);               //从ListView中将数据提取出来
                    Field = Field.Trim();
                    lb = AddLabel(Field,qcb,(TQRLabel *)lblist->Items[j],0);                                 //添加到打印程序里面
                    lblist->Add((void*)lb);
                }
                qcb->Height = lb->Height+5;
            }
     }
RepCifList->Preview();我现在发现 现在连起码的表头也打印不出来 但持续跟踪的情况是 从ini文件中都完好的将数据提取出来了 但就是无法打印出来 这是为什么啊?这个问题我在BCB版里面问的,没人回答,能在delphi里面问了,望各位高手帮忙!

解决方案 »

  1.   

    免费使用
    免费升级超越水晶报表,是我们的目标
    彻底解除程序员负担,极大提高用户设定灵活性
    LLanV报表工具,经过了10000行以上数据的压力测试,性能优良!其中一部分功能如下:  
    1.支持资料卡(比如:个人简历),表单(比如:销售定单),报表(比如:销售月报表)的预览打印
    2.不用任何设定,就可以默认产生专业的页面
    3.用户可以一次性设定企业标准样式(比如:公司标志,台头)
    4.支持文本,线条,方框,图片,等报表元素
    5.对各报表元素和报表区域等提供丰富的属性
    6.用户可以在运行期间编辑文本,线条,方框,图片,明细列, 操作简单
    7.支持同一列相同数据合并成一个格
    8.可以在运行期间增删,调换明细列
    9.提供多种报表风格
    10.支持页合计,总计
    11.支持的套打报表
    12.支持MIS开发的各种开发工具:如VC、VB、Delphi等
    13.可以直接连接数据库
    14.用户可以把设定后的报表样式保存为报表样式文件
    15.报表头和报表尾均可多于一页
    16.报表样式文件格式完全开放
    17.可以实现中国式复杂报表样式
    18.无须编程请发EMAIL给[email protected]