⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmoutp.pas

📁 二次开发模块 一、条形码的批量生成
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  LsQry.SQL.Add('      dbo.Szb_PurInList ON dbo.Szb_PurIn.id = dbo.Szb_PurInList.iPurID INNER JOIN');
  LsQry.SQL.Add('      dbo.DispatchLists ON dbo.DispatchList.DLID = dbo.DispatchLists.DLID AND');
  LsQry.SQL.Add('      dbo.Szb_PurInList.cInvCode = dbo.DispatchLists.cInvCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''32'')');
  LsQry.ExecSQL;

  LsQry.Close;
  LsQry.SQL.Clear;


  LsQry.SQL.Add('Update Szb_PurIn');
  LsQry.SQL.Add('set Szb_PurIn.cWhCode=DispatchLists.cWhCode,Szb_PurIn.cWhName=Warehouse.cWhName');
  LsQry.SQL.Add('FROM DispatchList INNER JOIN');
  LsQry.SQL.Add('      Szb_PurIn ON');
  LsQry.SQL.Add('      DispatchList.cDLCode = Szb_PurIn.cOrderCode INNER JOIN');
  LsQry.SQL.Add('      Szb_PurInList ON dbo.Szb_PurIn.id = Szb_PurInList.iPurID INNER JOIN');
  LsQry.SQL.Add('      DispatchLists ON dbo.DispatchList.DLID = DispatchLists.DLID AND');
  LsQry.SQL.Add('      Szb_PurInList.cInvCode = DispatchLists.cInvCode INNER JOIN');
  LsQry.SQL.Add('      Warehouse ON dbo.DispatchLists.cWhCode = Warehouse.cWhCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''32'')');
  LsQry.ExecSQL;


  LsQry.Destroy;

end;

procedure TFrmOut.QryOutBeforeEdit(DataSet: TDataSet);
begin
  if not CheckBox2.Checked then Abort;
end;

procedure TFrmOut.QryOutListBeforeEdit(DataSet: TDataSet);
begin
  Abort;
end;

procedure TFrmOut.QryOutAfterScroll(DataSet: TDataSet);
begin
  if CheckBox1.Checked then
     FindList;
end;

procedure TFrmOut.QryOutBeforePost(DataSet: TDataSet);
Var II:Integer;
begin
   II:=Application.MessageBox('数据已修改,是否保存?','信息',MB_YESNOCANCEL+ MB_ICONINFORMATION);
   if II=IDNO	then
     begin
      QryOut.Cancel;
      Abort;
     end;
   if II=IDCANCEL	then
     begin
      Abort;
     end;
end;

procedure TFrmOut.QryOutAfterPost(DataSet: TDataSet);
Var ii:Integer;
begin
   ii:=QryOut.FieldByName('ID').AsInteger;
   FrmMain.UpdateNull(ii,'32');
end;

procedure TFrmOut.BtnSaveClick(Sender: TObject);
begin
  if (QryOut.State = dsEdit) or (QryOut.State = dsInsert) then
      QryOut.Post;
  btnCheck.Click;          
end;

procedure TFrmOut.sbDeleteClick(Sender: TObject);
begin
   CheckBox1.Checked:=False;
   FrmMain.DeleteRD(QryOut);
   FindList;
   CheckBox1.Checked:=True;
   FrmMain.SumNumber('32',Label3);  
end;

procedure TFrmOut.SpeedButton1Click(Sender: TObject);
Var ii,kk,nn: Integer;
begin
     ii:=QryOut.FieldByName('ID').AsInteger;
     kk:=QryOutList.FieldByName('ID').AsInteger;
     nn:=QryOutList.RecNo;
     FrmMain.DeleteRDS(ii,kk);
     FindList;
     QryOutList.MoveBy(nn-1);
     FrmMain.SumNumber('32',Label3);  
end;

procedure TFrmOut.QryOutListAfterScroll(DataSet: TDataSet);
begin
  Label2.Caption:='记录:'+IntToStr(QryOutList.RecNo)+'/'+IntToStr(QryOutList.RecordCount);
end;

procedure TFrmOut.QryOutListCalcFields(DataSet: TDataSet);
begin
  if RadioButton1.Checked then
     FrmMain.CalcFieldsList(QryOutList,'iDLsID');
end;

procedure TFrmOut.QryOutCalcFields(DataSet: TDataSet);
Var bb:Boolean;
begin
  bb:=True;
  QryOut.FieldByName('cError').AsString:='';
  QryOut.FieldByName('cc').AsString:='';
  if QryOut.FieldByName('cCusCode').AsString='' then
    begin
     QryOut.FieldByName('cError').AsString:='无相应的上游单据';
     bb:=False;
    end;
  if bb then
    QryOut.FieldByName('cc').AsString:='√'

end;

procedure TFrmOut.btnXMLClick(Sender: TObject);
var xmlDoc:IXMLDocument; RootNode,FirstNode,aNode,bNode:IXMLNode;
    ii,vt_id:Integer;
    LsStr,cDate:String;
begin
  btnCheck.Click;
 cDate:=Trim(DateToStr(Date1.Date));
 DataDm.CheckLin(cDate);
 if RadioButton1.Checked then
    FrmMain.GetNullNumber('发货单','32');

 LsStr:=SUFunction.ReadInformation('XML文件保存路径','cValue','');
 vt_id:=StrToIntDef(SUFunction.ReadInformation('销售出库单ID','cValue',''),0);
 if vt_id=0 then
   begin
     Application.MessageBox(Pchar('销售出库单ID不能为空,请设置!'),'信息',MB_OK+ MB_ICONINFORMATION);
     Abort;
   end;
 SaveDialog1.InitialDir:=LsStr;
 if RadioButton1.Checked then
    SaveDialog1.FileName:='销售出库单(发货单)_'+FrmMain.GetFileDate+'.xml';
 if not SaveDialog1.Execute then Abort;
 LsStr:=FrmMain.CheckFileName(SaveDialog1.FileName);
 RefData;

 xmlDoc:= TXMLDocument.Create(nil);
 xmlDoc.Active := True;
// xmlDoc.Version := '1.0';
 xmlDoc.Encoding :='GB2312';
 try
//加入根结点

   FirstNode:=xmlDoc.AddChild('vouchers');
   FirstNode.SetAttribute('vouchertype', '32');
   FirstNode.SetAttribute('withdraw', 'False');
   //加入子结点
   while not QryOut.Eof do
     begin
       RootNode:=FirstNode.AddChild('voucher');
       RootNode.SetAttribute('worked', 'False');
    //   bNode:=aNode;
       //设置接点主表属性

       aNode:=RootNode.AddChild('header');
       aNode.SetAttribute('brdflag'    ,'0');
       aNode.SetAttribute('cvouchtype' ,'01');
       aNode.SetAttribute('cbustype'   ,'普通销售');
       aNode.SetAttribute('ddate'      ,cDate);
       if RadioButton1.Checked then
         begin
          aNode.SetAttribute('csource'  ,'发货单');
          aNode.SetAttribute('cbuscode' ,QryOut.FieldByName('cOrderCode').AsString);
          aNode.SetAttribute('cdlcode'  ,QryOut.FieldByName('DLID').AsInteger);
         end;

       aNode.SetAttribute('cwhcode'    ,QryOut.FieldByName('cWhCode').AsString);
       aNode.SetAttribute('cwhname'    ,QryOut.FieldByName('cWhName').AsString);
       aNode.SetAttribute('crdcode'    ,QryOut.FieldByName('crdcode').AsString);
       aNode.SetAttribute('cstcode'    ,QryOut.FieldByName('cstcode').AsString);
       aNode.SetAttribute('cstname'    ,QryOut.FieldByName('cstname').AsString);
       aNode.SetAttribute('cdepcode'   ,QryOut.FieldByName('cdept').AsString);
       aNode.SetAttribute('cpersoncode',QryOut.FieldByName('cperson').AsString);
       aNode.SetAttribute('ccuscode'   ,QryOut.FieldByName('ccuscode').AsString);
       aNode.SetAttribute('ccusabbname',QryOut.FieldByName('ccusabbname').AsString);
       aNode.SetAttribute('cmemo'      ,QryOut.FieldByName('cMemo').AsString);
       aNode.SetAttribute('cmaker'     ,QryOut.FieldByName('cMaker').AsString);
       aNode.SetAttribute('vt_id'      ,vt_id);
       //设置接点子表属性
       QryOutList.First;
       while not QryOutList.Eof do
         begin
           bNode:=RootNode.AddChild('body') ;
           bNode:=bNode.AddChild('item') ;
           bNode.SetAttribute('cinvcode', QryOutList.FieldByName('cinvcode').AsString);
           bNode.SetAttribute('cinvname', QryOutList.FieldByName('cinvName').AsString);
           bNode.SetAttribute('cinvstd' , QryOutList.FieldByName('cinvStd').AsString);
           bNode.SetAttribute('cbarcode', QryOutList.FieldByName('cBarcode').AsString);
           bNode.SetAttribute('iquantity',QryOutList.FieldByName('iQuantity').asfloat);
           bNode.SetAttribute('cFree1',   QryOutList.FieldByName('cFree1').AsString);
           bNode.SetAttribute('cFree2',   QryOutList.FieldByName('cFree2').AsString);
          if RadioButton1.Checked then
             bNode.SetAttribute('idlsid',   QryOutList.FieldByName('iDLsID').AsInteger);
           QryOutList.Next;
         End;
       QryOut.Next;
    end;
   xmlDoc.SaveToFile(LsStr);

 finally
   xmlDoc := nil ;
 end;
 Application.MessageBox(Pchar('生成用友销售出库单XML成功!'),'信息',MB_OK+ MB_ICONINFORMATION);
end;

procedure TFrmOut.dxDBGrid2CustomDrawFooter(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; var AText: String; var AColor: TColor;
  AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
begin
    AColor := $00E9F3F2;
end;

procedure TFrmOut.InsertBoxBarCode;
Var LsQry,LsExec:TADOQuery;
    ID:Integer;
    LsStr:String;
begin
   LsQry:=TADOQuery.Create(Self);
   LsQry.Connection:=DataDm.AdoConUfsoft;
   LsExec:=TADOQuery.Create(Self);
   LsExec.Connection:=DataDm.AdoConUfsoft;
   LsQry.SQL.Add('Update Szb_PurInList set iBox=1');
   LsQry.SQL.Add('Where (cVouchType=''32'')');
   LsQry.SQL.Add('And  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
   LsQry.SQL.Add('and (cBarCode in (select BoxCode from box))');
   LsQry.ExecSQL;

   LsQry.SQL.Clear;
   LsQry.SQL.Add('Update Szb_PurInList set iBundle=1');
   LsQry.SQL.Add('Where (cVouchType=''32'')');
   LsQry.SQL.Add('And  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
   LsQry.SQL.Add('and (cBarCode in (select BDCode from Bundle))');
   LsQry.ExecSQL;

   LsQry.SQL.Clear;
   LsQry.SQL.Add('select * from Szb_PurInList');
   LsQry.SQL.Add('Where (cVouchType=''32'')');
   LsQry.SQL.Add('And  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
   LsQry.SQL.Add('and ((iBox=1) or (iBundle=1))');
   LsQry.Open;
//   while not LsQry.Eof do
    begin
       LsExec.Close;
       LsExec.SQL.Clear;
       ID:= LsQry.FieldByName('iPurid').AsInteger;
       LsStr:=LsQry.FieldByName('cBarCode').AsString;
       if LsQry.FieldByName('iBox').AsInteger=1 then
         begin
           LsExec.SQL.Add('insert into Szb_PurInList("PCID","iPurID","cVouchType","cBarCode","iQuantity")');
           LsExec.SQL.Add('select '+FrmMain.PCID+' AS PCID,'+IntToStr(ID)+' as ID,32 as cVouch,cBarCode,1 from BOX');
           LsExec.SQL.Add('Where (BoxCode='''+LsStr+''')');
//           LsExec.SQL.SaveToFile('C:\1.TXT');
           LsExec.ExecSQL;
         end;
       if LsQry.FieldByName('iBundle').AsInteger=1 then
         begin
           LsExec.SQL.Add('insert into Szb_PurInList("PCID","iPurID","cVouchType","cBarCode","iQuantity")');
           LsExec.SQL.Add('select '+FrmMain.PCID+' AS PCID,'+IntToStr(ID)+' as ID,32 as cVouch,cBarCode,1 from Bundle');
           LsExec.SQL.Add('Where (BDCode='''+LsStr+''')');
//           LsExec.SQL.SaveToFile('C:\1.TXT');
           LsExec.ExecSQL;
         end;
      LsQry.Edit;         
      LsQry.Delete;
    end;
end;

procedure TFrmOut.UpdateSetBarCode;
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('update Szb_PurInList set cTrueBarCode=cBarCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (len(cBarCode)>13)');
  LsQry.ExecSQL;

  
  LsQry.SQL.Clear;
  LsQry.SQL.Add('update Szb_PurInList set cBarCode=left(cBarCode,13)');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (len(cBarCode)>13)');
  LsQry.ExecSQL;
  LsQry.Destroy;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -