FastReport,当条码为空的时候,它自动打印000012345678的条码 
打印数据库里的条码资料,但是当条码为空的时候,它自动打印000012345678的条码,我用的是EAN13码
请问这个问题怎么样避免呢?我知道应该是加一句判断,但是加在哪里呢? 为空的时候怎么样才能不打印呢?  非常感谢!!

解决方案 »

  1.   

    procedure Memo51OnBeforePrint(Sender: TfrxComponent);
    begin
       IF  ...  then
           ###  ELSE
          ***
         
    end;
      

  2.   

    楼上大哥能不能把省略的代码补上? 其实我思路早就知道了,但是对FastReport的语法不熟(和QuickReport有很大区别),所以才来这里求助。非常感谢!!
      

  3.   

    你的此字段名和MEMO的位置说明一下
      

  4.   

    没分了,搭车问个问题
    //线程CREATE 创建控件
    constructor DrvThread.Create(ADOConnection1: string;
      cPrintId: string);
    begin
      ADOPrintQuery:=TADOQuery.Create(nil);
      self.ADOCon.ConnectionString:=ADOConnection1;
      ADOCon.LoginPrompt :=false;
      ADOCon.KeepConnection :=true;
      ADOCon.Open;
      ADOPrintQuery.Connection:= ADOCon;  frReport1:= TfrReport.Create(nil);
      frDBDataSet1:= TfrDBDataSet.Create(nil);
      frDBDataSet1.DataSet:=ADOPrintQuery;  FreeOnTerminate := True;
      inherited create(false);
    END;
    //打印部分
    function DrvThread.Print(Sql, sPrintType: string): boolean;
    var  idrv:integer;
    begin
      result:=false;    ADOPrintQuery.Close;
        ADOPrintQuery.SQL.Text:=Sql;
        ADOPrintQuery.Open;    frReport1.Clear;
        frReport1.LoadFromBlobField(Tblobfield(ADOQuery1.FieldByName('iMageInfo')));
        try
          frReport1.FindObject('Memo1').Memo.Text:=Formatdatetime('YYYY-MM-DD HH:MM:SS',now());
        except
        end;
        qryconfig.Close;
        qryconfig.SQL.Text:='select * from tprintInfo where cprintid=''1''';
        qryconfig.Open;
        idrv:=printers.printer.printers.Indexof(trim(qryconfig.fieldbyname('cPrintName').AsString));
        FrReport1.ChangePrinter(0,idrv);
        frReport1.Dataset:=frDBDataSet1;    FrReport1.PrepareReport;  //===出错部分 ,提示MISSING frDBDataSet1==============
        frReport1.PrintPreparedReport('1',1,True,frAll);end;
      

  5.   

    在 Barcode BeforePrint  事件写代码procedure BarCode1OnBeforePrint(Sender: TfrxComponent);
    begin
      if TfrxBarcodeView(Sender).Text = '' then
        TfrxBarcodeView(Sender).Visible := False
      else
        TfrxBarcodeView(Sender).Visible := True;                                                                                                            
    end;早点结贴
      

  6.   

    4楼的问题比较简单,你在Form上放一个frDBDataSet1即可。 对Fr不是很懂,如果不行,你回个信,我再帮你仔细测试。5楼的朋友非常感谢!!
      

  7.   

    太棒了,顺道让我解决了条码控件的赋值问题,多谢多谢。控制是否可视(visible)是正解。