if Query1.FieldByName('A').AsInteger <99999 then
          DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('0%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);
          if Query1.FieldByName('A').AsInteger <9999 then
          DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('00%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);
          if Query1.FieldByName('A').AsInteger <999 then
          DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('000%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);
          if Query1.FieldByName('A').AsInteger <99 then
          DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('0000%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);
          if Query1.FieldByName('A').AsInteger <9 then
          DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('00000%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);
这段代码能怎么优化?

解决方案 »

  1.   

    DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('%0.5d',[DataSetBZXM.FieldByName('XSXH').AsInteger]);
      

  2.   

    if Query1.FieldByName('A').AsInteger <9 then  
      DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('00000%s',intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)])
    else
    if Query1.FieldByName('A').AsInteger <99 then  
      DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('0000%s',intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)])
    else
    if Query1.FieldByName('A').AsInteger <999 then  
      DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('000%s',intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)])
    else
    if Query1.FieldByName('A').AsInteger <9999 then  
      DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('00%s',intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)])
    else
    if Query1.FieldByName('A').AsInteger <99999 then  
      DataSetBZXM.FieldByName('NBXH').AsString :=SysUtils.Format('0%s',intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]); 
      

  3.   

    DataSetBZXM.FieldByName('NBXH').AsString := SysUtils.Format(StringOfChar('0', 6-Length(IntToStr(Query1.FieldByName('A').AsInteger)))+'%s',[intToStr(DataSetBZXM.FieldByName('XSXH').AsInteger)]);