谁有用dephi开发过ppla或pplb来打印标签,就是打印一排三列的标签而都不相同数据.及直接调用dbgrid中的数据,谁有案例,发我邮箱,本人万分感谢,

解决方案 »

  1.   

    試試這兩種方法:1)將報表分成3列, 並將報表的高度調成一列的高度.2)在報表的OnNeedData事件中用代碼控制, 手工賦值.
      

  2.   

    一般我做打印标签用Printer.Canvas来做,一般打印标签属于套打,格式不固定,如果格式固定也可以用这个来做,很方便可以控制一列打印多少个,一张纸可以打多少个。
      

  3.   

    请大家看我的原码,我打出来后,条码内容变,其它字段内容却不变.烦请各位大侠指点指点!
    //按查询结果打印条码
    try
    if radiobutton2.Checked then
    begin
    S:=TSTRINGLIST.CREATE; b:=TSTRINGLIST.CREATE;
    p:=1;
    ks:=0;
    gap:=0;
    q:=0;
    jbzl.Query2.First;
    wendu:=strtoint(edit3.Text);
    shopname:=edit2.Text;
    A_CreatePrn(1,'打印查询.txt');//建立打印
    while not jbzl.Query2.Eof do
    begin
          s.Add(jbzl.Query2.fieldbyname('spmc').AsString);
          b.Add(jbzl.Query2.fieldbyname('xj').AsString);
          tm:=jbzl.query2.Fields[1].AsString;
          if((p+2)mod 3=0)then gap:=0;
          if((p+1)mod 3=0)then gap:=s1;
          if p mod 3=0 then gap:=s2;
         A_Set_Darkness(wendu);  //设置打印温度
         A_Set_ProcessDlg(0);//为0时关闭打印进度框
         if ck2.Checked then A_Prn_Barcode(x2+gap, y2, 1, 'E', z2, k2, tmgao, 'b',1,pchar(tm)); 
         if ck3.Checked then A_Prn_Text_TrueType(x3+gap, y3, k3,'name', 1, 400, 0, 0, 0, pchar('AA'), pchar('名称:'+s.Strings[q]),1);
        if ck4.Checked then A_Prn_Text_TrueType(x4+gap, y4, k4, 'price', 1, 400, 0, 0, 0, pchar('AB'), pchar('销价:¥'+b.strings[q]),1);
         if ck1.Checked then A_Prn_Text_TrueType(x1+gap, y1, k1, 'shopname', 1, 400, 0, 0, 0, pchar('Ac'), pchar(shopname),1);
         q:=q+1;
         p:=p+1;
         ks:=ks+1;
         if ks=3 then begin A_Print_Out(1,1,i,1);A_ClosePrn;A_CreatePrn(1,'打印查询.txt'); ks:=0;end;//输出三列内容时开始打印,并新建打印任务
      jbzl.Query2.Next;
    end;
    if ks mod 3<>0 then A_Print_Out(1,1,i,1);
    A_ClosePrn;
    end;
    showmessage('打印完成!');
    except  showmessage('请检查打印机是否接上!'); end;
    end;
      

  4.   

    不知道你用什么报表工具,一般的工具都可以设置列数(columns).比如fastreport、rave、quickreport都可以,你在它的属性栏找找看。