各位大虾,delphi怎样做套打数据.最好有例子

解决方案 »

  1.   

    go to www.playicq.comand searchGood luck!!!
      

  2.   

    Qreport设计
    套打不难,就是调试比较麻烦
    以下是出货单套打(限制10行)
    procedure TfmSalesGoodsOutDetail.BtnPrintClick(Sender: TObject);
    var
        total_money:double;
        i,j,k,m:integer;
    begin
      inherited;
       with fmgoods_out_Report do
       begin
                       //初始化
      //对Caption置空
       QRLabel13.Caption := '';
       QRLabel15.Caption := '';
       QRLabel43.Caption := '';
       QRLabel53.Caption := '';
       QRLabel64.Caption := '';   QRLabel18.Caption := '';
       QRLabel30.Caption := '';
       QRLabel44.Caption := '';
       QRLabel54.Caption := '';
       QRLabel65.Caption := '';   QRLabel19.Caption := '';
       QRLabel31.Caption := '';
       QRLabel45.Caption := '';
       QRLabel56.Caption := '';
       QRLabel66.Caption := '';   QRLabel20.Caption := '';
       QRLabel32.Caption := '';
       QRLabel46.Caption := '';
       QRLabel57.Caption := '';
       QRLabel67.Caption := '';   QRLabel21.Caption := '';
       QRLabel33.Caption := '';
       QRLabel47.Caption := '';
       QRLabel58.Caption := '';
       QRLabel68.Caption := '';   QRLabel22.Caption := '';
       QRLabel34.Caption := '';
       QRLabel48.Caption := '';
       QRLabel59.Caption := '';
       QRLabel69.Caption := '';   QRLabel23.Caption := '';
       QRLabel35.Caption := '';
       QRLabel49.Caption := '';
       QRLabel60.Caption := '';
       QRLabel70.Caption := '';   QRLabel24.Caption := '';
       QRLabel39.Caption := '';
       QRLabel50.Caption := '';
       QRLabel61.Caption := '';
       QRLabel71.Caption := '';   QRLabel27.Caption := '';
       QRLabel40.Caption := '';
       QRLabel51.Caption := '';
       QRLabel62.Caption := '';
       QRLabel73.Caption := '';   QRLabel29.Caption := '';
       QRLabel42.Caption := '';
       QRLabel52.Caption := '';
       QRLabel63.Caption := '';
       QRLabel74.Caption := '';          opensql(format('select company_id,cust_name,tel1,fax,added_tax_no,added_tax_bank_addr from customer where cust_id =''%s''',[DM1.TblSalesGoodsOut.fieldbyname('cust_id').AsString]));
              dm.TblCompany.Locate('id',DM.qryopen.fieldbyname('company_id').AsInteger,[]);          Labeltitle.caption  := dm.TblCompany.fieldbyname('name').AsString;
              QRLabelAddr.caption := dm.TblCompany.FieldByName('address').AsString;
              QRLabelTel.Caption  := 'Tel:'+dm.TblCompany.FieldByName('tel').asstring;
              QRLabelFax.Caption  := 'Fax:'+dm.TblCompany.FieldByName('fax').asstring;
              QRLabelsite.Caption := dm.TblCompany.FieldByName('site').asstring;
              if  dm.qryOpen.RecordCount  >0 then
              begin
                   LabelCust.caption   := DM.qryopen.fieldbyname('cust_name').AsString;
                   LabelCustId.caption := DM1.TblSalesGoodsOut.fieldbyname('cust_id').AsString;
                   LabelTax.caption    := DM.qryopen.fieldbyname('added_tax_no').AsString;
                   LabelTaxAddr.caption:= DM.qryopen.fieldbyname('added_tax_bank_addr').AsString;
                   LableTel.caption    := DM.qryopen.fieldbyname('tel1').AsString;
                   LabelFax.caption    := DM.qryopen.fieldbyname('fax').AsString;
              end;           with  DM1.TblGoodsOutDetail do
               begin
                    m := 0;
                    first;
                    while not eof do
                    begin
                          m := m+1;
                          if m =1 then
                          begin
                               QRLabel13.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_id').AsString;
                               QRLabel15.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_name').AsString;
                               QRLabel43.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('cur_out_num').AsFloat,ffNumber,10,2);
                               QRLabel53.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('price').AsFloat,ffCurrency,10,2);
                               QRLabel64.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('money').AsFloat,ffCurrency,10,2);
                          end
                          else if m = 2 then
                          begin
                              QRLabel18.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_id').AsString;
                              QRLabel30.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_name').AsString;
                              QRLabel44.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('cur_out_num').AsFloat,ffNumber,10,2);
                              QRLabel54.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('price').AsFloat,ffCurrency,10,2);
                              QRLabel65.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('money').AsFloat,ffCurrency,10,2);
                          end
                          else if m = 3 then
                          begin
                              QRLabel19.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_id').AsString;
                              QRLabel31.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_name').AsString;
                              QRLabel45.Caption :=   floattostrf(DM1.TblGoodsOutDetail.FieldByName('cur_out_num').AsFloat,ffNumber,10,2);
                              QRLabel56.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('price').AsFloat,ffCurrency,10,2);
                              QRLabel66.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('money').AsFloat,ffCurrency,10,2);
                          end
                          else if m = 4 then
                          begin
                              QRLabel20.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_id').AsString;
                              QRLabel32.Caption := DM1.TblGoodsOutDetail.FieldByName('goods_name').AsString;
                              QRLabel46.Caption :=   floattostrf(DM1.TblGoodsOutDetail.FieldByName('cur_out_num').AsFloat,ffNumber,10,2);
                              QRLabel57.Caption :=  floattostrf(DM1.TblGoodsOutDetail.FieldByName('price').AsFloat,ffCurrency,10,2);
                              QRLabel67.Caption := floattostrf(DM1.TblGoodsOutDetail.FieldByName('money').AsFloat,ffCurrency,10,2);
                          end
      

  3.   

    你是要做套打的报表或票据吧,用FastReport,上手快,画好位置多打印几次测试一下,对好位置就行了