预览没一点问题
直接打印也没一点问题有问题的是为啥 在预览的时候选择打印会出错呢?
提示错误消息是:形成报表时发生错误!请检查各项参数与模板设置等是否正确。该怎么解决呀,急

解决方案 »

  1.   

    应该没有呀,麻烦看看var
      dwmc,a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y:string ;
      dwdz,yzbm,zgrs,htg,lxr,dh,sj,email,jfze,ylbh,ylibh,sybh,ylrs,ylirs,syrs:string;
      ylze,ylize,syze,ylyj,yliyj,syyj,gsbh,gsrs,gsze,gsyj:string;
    begin if Printer.Printers.Count=0 then
      begin
      application.messagebox('未安装打印机','错误',mb_ok+mb_iconerror);
      exit;
      end; a:=copy(d1.text,1,1);
     b:=copy(d1.text,2,1);
     c:=copy(d1.text,3,1);
     d:=copy(d1.text,4,1);
     e:=copy(d1.text,5,1);
     f:=copy(d1.text,6,1);
     g:=copy(d1.text,7,1);
     h:=copy(d1.text,8,1);
     j:=copy(d1.text,9,1);
     k:=copy(d1.text,10,1);
     l:=copy(d1.text,11,1);
     m:=copy(d1.text,12,1);
     n:=copy(d1.text,13,1);
     o:=copy(d1.text,14,1);
     p:=copy(d1.text,15,1);
     q:=copy(d2.text,1,1);
     r:=copy(d2.text,2,1);
     s:=copy(d2.text,3,1);
     t:=copy(d2.text,4,1);
     u:=copy(d2.text,5,1);
     v:=copy(d2.text,6,1);
     w:=copy(d2.text,7,1);
     x:=copy(d2.text,8,1);
     if copy(d2.Text,9,1)='-' then
     y:=copy(d2.text,10,1)
     else
     y:=copy(d2.text,9,1);
     dwmc:=combobox2.Text;
     dwdz:=d3.text;
     yzbm:= d4.text;
     zgrs:= d5.text;
     htg:=  d6.text;
     lxr:=  d7.text;
     dh:=   d8.text;
     sj:=   d9.text;
     email:=  d10.text;
     jfze:=  d11.text;
     ylbh:= d14.text;
     ylibh:= d15.text;
     sybh:=  d16.text;
     ylrs:=  d17.text;
     ylirs:=  d18.text;
     syrs:=  d19.text;
     ylze:=  d20.text;
     ylize:= d21.text;
     syze:=  d22.text;
     ylyj:=   d23.text;
     yliyj:= d24.text;
     syyj:= d25.text; gsbh:=d26.text;
     gsrs:=d27.text;
     gsze:=d28.text;
     gsyj:=d29.text; reportruntime1.ReportFile:=tab_path+'dwsh.ept';
     ReportRunTime1.Setvarvalue('a', a);
     ReportRunTime1.Setvarvalue('b', b);
     ReportRunTime1.Setvarvalue('c', c);
     ReportRunTime1.Setvarvalue('d', d);
     ReportRunTime1.Setvarvalue('e', e);
     ReportRunTime1.Setvarvalue('f', f);
     ReportRunTime1.Setvarvalue('g', g);
     ReportRunTime1.Setvarvalue('h', h);
     ReportRunTime1.Setvarvalue('j', j);
     ReportRunTime1.Setvarvalue('k', k);
     ReportRunTime1.Setvarvalue('l', l);
     ReportRunTime1.Setvarvalue('m', m);
     ReportRunTime1.Setvarvalue('n', n);
     ReportRunTime1.Setvarvalue('o', o);
     ReportRunTime1.Setvarvalue('p', p);
     ReportRunTime1.Setvarvalue('q', q);
     ReportRunTime1.Setvarvalue('r', r);
     ReportRunTime1.Setvarvalue('s', s);
     ReportRunTime1.Setvarvalue('t', t);
     ReportRunTime1.Setvarvalue('u', u);
     ReportRunTime1.Setvarvalue('v', v);
     ReportRunTime1.Setvarvalue('w', w);
     ReportRunTime1.Setvarvalue('x', x);
     ReportRunTime1.Setvarvalue('y', y);
     ReportRunTime1.Setvarvalue('a', a);
     ReportRunTime1.Setvarvalue('dwdz', dwdz);
     ReportRunTime1.Setvarvalue('yzbm', yzbm);
     ReportRunTime1.Setvarvalue('zgrs', zgrs);
     ReportRunTime1.Setvarvalue('lxr', lxr);
     ReportRunTime1.Setvarvalue('dh', dh);
     ReportRunTime1.Setvarvalue('sj', sj);
     ReportRunTime1.Setvarvalue('email', email);
     ReportRunTime1.Setvarvalue('jfze', jfze);
     ReportRunTime1.Setvarvalue('ylbh', ylbh);
     ReportRunTime1.Setvarvalue('ylibh', ylibh);
     ReportRunTime1.Setvarvalue('sybh', sybh);
     ReportRunTime1.Setvarvalue('ylrs', ylrs);
     ReportRunTime1.Setvarvalue('ylirs', ylirs);
     ReportRunTime1.Setvarvalue('syrs', syrs);
     ReportRunTime1.Setvarvalue('ylze', ylze);
     ReportRunTime1.Setvarvalue('ylize', ylize);
     ReportRunTime1.Setvarvalue('syze', syze);
     ReportRunTime1.Setvarvalue('ylyj', ylyj);
     ReportRunTime1.Setvarvalue('yliyj', yliyj);
     ReportRunTime1.Setvarvalue('syyj', syyj);
     ReportRunTime1.Setvarvalue('dwmc',dwmc);
     ReportRunTime1.Setvarvalue('qu', combobox4.text);
     ReportRunTime1.Setvarvalue('jd', combobox5.text);
     ReportRunTime1.Setvarvalue('sq',combobox6.text);
     ReportRunTime1.Setvarvalue('pjrs',edit2.text);
     ReportRunTime1.Setvarvalue('gsbh',gsbh);
     ReportRunTime1.Setvarvalue('gsrs',gsrs);
     ReportRunTime1.Setvarvalue('gsze',gsze);
     ReportRunTime1.Setvarvalue('gsyj',gsyj); ReportRunTime1.PrintPreview(true);
      

  2.   

    原因是:在//ReportControl.pas 的6032 行
    procedure TReportRunTime.Print(pYn: Boolean); // update  李泽伦
    模块中第一句
     DeleteTempStreams; //99.3.9
    这一句把FTempStreams清除了。
    但是直接打印在
        if cp_prewYn <> True then
        begin     //初始化
          FREPmessForm.show; //李泽伦加2001.4.27
          i := PreparePrintk(False, 0);
          PreparePrintk(True, i);
        end;
    又对 DeleteTempStreams进行了初始化,所以直接打可以
    把 6032改为  if cp_prewYn <> True then DeleteTempStreams; //99.3.9
    就可以了,预览状态打印不删除DeleteTempStreams 还是自己靠得住