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

📄 frminp.~pas

📁 二次开发模块 一、条形码的批量生成
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
  QryCheckPo.SQL.Add('WHERE (dbo.PO_Pomain.cPOID IS NULL)');
  QryCheckPo.SQL.Add(' And  (PCID='''+FrmMain.PCID+''')');
  QryCheckPo.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
//  QryCheckPo.SQL.SaveToFile('c:\1.txt');
  QryCheckPo.Open;
  if QryCheckPo.RecordCount>0 then
    begin
       Application.MessageBox(Pchar('共有:'+inttostr(QryCheckPo.RecordCount)+'张单据的找不到对应的采购订单.'),'信息',MB_OK+ MB_ICONINFORMATION);
       Application.CreateForm(TFrmPoPPo,FrmPoPPo);
       FrmPoPPo.DataSource1.DataSet:=QryCheckPo;
      FrmPoPPo.dxDBGrid1cOrderCode.Caption:='采购订单';
       FrmPoPPo.ShowModal;
       FrmPoPPo.Free;
       FrmPoPPo:=nil;
//       RefData;
//       Abort;
    end;
 UpdateVen;    
end;

procedure TFrmIN.RefData;
begin
 CheckBox1.Checked:=False;
 QryIn.Close;
 QryIn.Open;
 CheckBox1.Checked:=True;
 FindList;
end;

procedure TFrmIN.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('采购订单','01');
 if RadioButton2.Checked then
    FrmMain.GetNullNumber('采购到货单','01');

 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 RadioButton2.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', '1');
   FirstNode.SetAttribute('withdraw', 'False');
   //加入子结点
   while not QryIn.Eof do
     begin
       RootNode:=FirstNode.AddChild('voucher');
       RootNode.SetAttribute('worked', 'False');
    //   bNode:=aNode;
       //设置接点主表属性

       aNode:=RootNode.AddChild('header');
       aNode.SetAttribute('brdflag'    ,'1');
       aNode.SetAttribute('cvouchtype' ,'01');
       aNode.SetAttribute('cbustype'   ,'普通采购');
       aNode.SetAttribute('ddate'      ,cDate);
       if RadioButton1.Checked then
         begin
          aNode.SetAttribute('csource'    ,'采购订单');
          aNode.SetAttribute('cordercode' ,QryIn.FieldByName('cOrderCode').AsString);
          aNode.SetAttribute('ipurorderid',QryIn.FieldByName('ipurorderid').AsInteger);
         end;
       if RadioButton2.Checked then
         begin
          aNode.SetAttribute('csource'     ,'采购到货单');
          aNode.SetAttribute('cARVCode'       ,QryIn.FieldByName('cOrderCode').AsString);
          aNode.SetAttribute('ipurarriveid',QryIn.FieldByName('ipurarriveid').AsInteger);
         end;

       aNode.SetAttribute('cwhcode'    ,QryIn.FieldByName('cWhCode').AsString);
       aNode.SetAttribute('cwhname'    ,QryIn.FieldByName('cWhName').AsString);
       aNode.SetAttribute('crdcode'    ,QryIn.FieldByName('crdcode').AsString);
       aNode.SetAttribute('cptcode'    ,QryIn.FieldByName('cptcode').AsString);
       aNode.SetAttribute('cptname'    ,QryIn.FieldByName('cptname').AsString);       
       aNode.SetAttribute('cdepcode'   ,QryIn.FieldByName('cdept').AsString);
       aNode.SetAttribute('cpersoncode',QryIn.FieldByName('cperson').AsString);
       aNode.SetAttribute('cvencode'   ,QryIn.FieldByName('cvencode').AsString);
       aNode.SetAttribute('cvenabbname',QryIn.FieldByName('cvenabbname').AsString);
       aNode.SetAttribute('cmemo'      ,QryIn.FieldByName('cMemo').AsString);
       aNode.SetAttribute('cmaker'     ,QryIn.FieldByName('cMaker').AsString);
       aNode.SetAttribute('vt_id'      ,vt_id);
       //设置接点子表属性
       QryInList.First;
       while not QryInList.Eof do
         begin
           bNode:=RootNode.AddChild('body') ;
           bNode:=bNode.AddChild('item') ;
           bNode.SetAttribute('cinvcode', QryInList.FieldByName('cinvcode').AsString);
           bNode.SetAttribute('cinvname', QryInList.FieldByName('cinvName').AsString);
           bNode.SetAttribute('cinvstd' , QryInList.FieldByName('cinvStd').AsString);           
           bNode.SetAttribute('cbarcode', QryInList.FieldByName('cBarcode').AsString);
           bNode.SetAttribute('iquantity',QryInList.FieldByName('iQuantity').asfloat);
           bNode.SetAttribute('iposid',   QryInList.FieldByName('iPOsID').AsInteger);
           bNode.SetAttribute('iunitcost',QryInList.FieldByName('iunitcost').asfloat);
          if RadioButton2.Checked then
             bNode.SetAttribute('iArrsId'     ,QryInList.FieldByName('iArrsId').AsInteger);
           QryInList.Next;
         End;
       QryIn.Next;
    end;
   xmlDoc.SaveToFile(LsStr);
//   memo1.Lines.Text := xmlDoc.XML.Text ;
 finally
   xmlDoc := nil ;
 end;
 Application.MessageBox(Pchar('生成用友采购入库单XML成功!'),'信息',MB_OK+ MB_ICONINFORMATION);
end;

procedure TFrmIN.UpdateType(cType:String);
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('update Szb_PurIn set Szb_PurIn.cWhcode=aa.cWhcode,Szb_PurIn.cWhName=aa.cWhName');
  LsQry.SQL.Add('FROM (SELECT *');
  LsQry.SQL.Add('        FROM szb_ini');
  LsQry.SQL.Add('        WHERE (Szb_Ini.cMaker = '''+DataDm.Maker+''')');
  LsQry.SQL.Add('         AND  (Szb_Ini.cVouch = ''01'')');
  LsQry.SQL.Add('         AND  (Szb_Ini.cType = '''+ctype+'''))');
  LsQry.SQL.Add('      AA INNER JOIN');
  LsQry.SQL.Add('      Szb_PurIn ON AA.cNO = Szb_PurIn.cType');
  LsQry.SQL.Add('Where  (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
  LsQry.ExecSQL;
  LsQry.Destroy;
//  FindList;
end;

procedure TFrmIN.UpdateVen;
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('Update Szb_PurIn set');
  LsQry.SQL.Add(' Szb_PurIn.cVenCode=PO_Pomain.cVenCode, Szb_PurIn.cVenAbbName=Vendor.cVenAbbName, Szb_PurIn.cDept=PO_Pomain.cDepCode,');
  LsQry.SQL.Add('      Szb_PurIn.cDeptName=Department.cDepName, Szb_PurIn.cPerson=PO_Pomain.cPersonCode, Szb_PurIn.cPersonName=Person.cPersonName,');
  LsQry.SQL.Add('      Szb_PurIn.cPTCode=PO_Pomain.cPTCode,Szb_PurIn.ipurorderid=PO_Pomain.POID,Szb_PurIn.cMemo=PO_Pomain.cMemo,');
  LsQry.SQL.Add('      Szb_PurIn.cPTName=PurchaseType.cPTName,Szb_PurIn.cRdCode=PurchaseType.cRdCode');
  LsQry.SQL.Add('FROM Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      PO_Pomain ON Szb_PurIn.cOrderCode = PO_Pomain.cPOID INNER JOIN');
  LsQry.SQL.Add('      Vendor ON PO_Pomain.cVenCode = Vendor.cVenCode INNER JOIN');
  LsQry.SQL.Add('      PurchaseType ON PO_Pomain.cPTCode = PurchaseType.cPTCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      Department ON PO_Pomain.cDepCode = Department.cDepCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      Person ON PO_Pomain.cPersonCode = Person.cPersonCode');
  LsQry.SQL.Add('Where  (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
  LsQry.ExecSQL;

  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('update Szb_PurInList set Szb_PurInList.iUnitCost=PO_Podetails.iUnitPrice,Szb_PurInList.iPOsid=PO_Podetails.id');
  LsQry.SQL.Add('FROM Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      PO_Pomain ON Szb_PurIn.cOrderCode = PO_Pomain.cPOID INNER JOIN');
  LsQry.SQL.Add('      Szb_PurInList ON Szb_PurIn.id = Szb_PurInList.iPurID INNER JOIN');
  LsQry.SQL.Add('      PO_Podetails ON PO_Pomain.cPOID = PO_Podetails.POID AND');
  LsQry.SQL.Add('      Szb_PurInList.cInvCode = PO_Podetails.cInvCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
//  LsQry.SQL.SaveToFile('c:\1.txt');
  LsQry.ExecSQL;

  LsQry.Destroy;
end;

procedure TFrmIN.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 TFrmIN.QryInListCalcFields(DataSet: TDataSet);
begin
  if RadioButton1.Checked then
     FrmMain.CalcFieldsList(QryInList,'iPosid');
  if RadioButton1.Checked then
     FrmMain.CalcFieldsList(QryInList,'iArrsId');
end;

procedure TFrmIN.QryInAfterPost(DataSet: TDataSet);
Var ii:Integer;
begin
   ii:=QryIn.FieldByName('ID').AsInteger;
   FrmMain.UpdateNull(ii,'01');
end;

procedure TFrmIN.CheckPurArv;
Var LsQry:TADOQuery;
begin
  QryCheckPo.Close;
  QryCheckPo.SQL.Clear;

  QryCheckPo.SQL.Add('SELECT  dbo.Szb_PurIn.ID,dbo.Szb_PurIn.cOrderCode');
  QryCheckPo.SQL.Add('FROM dbo.Szb_PurIn LEFT OUTER JOIN');
  QryCheckPo.SQL.Add('      dbo.PU_ArrivalVouch ON dbo.Szb_PurIn.cOrderCode = dbo.PU_ArrivalVouch.cCode');
  QryCheckPo.SQL.Add('WHERE (dbo.PU_ArrivalVouch.cCode IS NULL)');
  QryCheckPo.SQL.Add(' And  (PCID='''+FrmMain.PCID+''')');
  QryCheckPo.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
  QryCheckPo.Open;
  if QryCheckPo.RecordCount>0 then
    begin
       Application.MessageBox(Pchar('共有:'+inttostr(QryCheckPo.RecordCount)+'张单据的找不到对应的采购到货单.'),'信息',MB_OK+ MB_ICONINFORMATION);
       Application.CreateForm(TFrmPoPPo,FrmPoPPo);
       FrmPoPPo.DataSource1.DataSet:=QryCheckPo;
       FrmPoPPo.dxDBGrid1cOrderCode.Caption:='采购到货单';
       FrmPoPPo.ShowModal;
       FrmPoPPo.Free;
       FrmPoPPo:=nil;
//       RefData;
//       Abort;
    end;
 UpdatePurArv;
end;

procedure TFrmIN.UpdatePurArv;
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;

  LsQry.SQL.Add('Update Szb_PurIn set');
  LsQry.SQL.Add(' Szb_PurIn.cVenCode=PU_ArrivalVouch.cVenCode, Szb_PurIn.cVenAbbName=Vendor.cVenAbbName, Szb_PurIn.cDept=PU_ArrivalVouch.cDepCode,');
  LsQry.SQL.Add('      Szb_PurIn.cDeptName=Department.cDepName, Szb_PurIn.cPerson=PU_ArrivalVouch.cPersonCode, Szb_PurIn.cPersonName=Person.cPersonName,');
  LsQry.SQL.Add('      Szb_PurIn.cPTCode=PU_ArrivalVouch.cPTCode,Szb_PurIn.ipurarriveid=PU_ArrivalVouch.ID,Szb_PurIn.cMemo=PU_ArrivalVouch.cMemo,');
  LsQry.SQL.Add('      Szb_PurIn.cPTName=PurchaseType.cPTName,Szb_PurIn.cRdCode=PurchaseType.cRdCode');
  LsQry.SQL.Add('FROM dbo.Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      dbo.PU_ArrivalVouch ON');
  LsQry.SQL.Add('      dbo.Szb_PurIn.cOrderCode = dbo.PU_ArrivalVouch.cCode INNER JOIN');
  LsQry.SQL.Add('      dbo.Vendor ON dbo.PU_ArrivalVouch.cVenCode = dbo.Vendor.cVenCode INNER JOIN');
  LsQry.SQL.Add('      dbo.PurchaseType ON');
  LsQry.SQL.Add('      dbo.PU_ArrivalVouch.cPTCode = dbo.PurchaseType.cPTCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      dbo.Department ON');
  LsQry.SQL.Add('      dbo.PU_ArrivalVouch.cDepCode = dbo.Department.cDepCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      dbo.Person ON');
  LsQry.SQL.Add('      dbo.PU_ArrivalVouch.cPersonCode = dbo.Person.cPersonCode');
  LsQry.SQL.Add('Where  (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
//  LsQry.SQL.SaveToFile('c:\1.txt');
  LsQry.ExecSQL;

  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('update Szb_PurInList set Szb_PurInList.iUnitCost=PU_ArrivalVouchs.iOriCost,Szb_PurInList.iArrsId=PU_ArrivalVouchs.Autoid,');
  LsQry.SQL.Add('    Szb_PurInList.iPOsid=PU_ArrivalVouchs.iPOsid');
  LsQry.SQL.Add('FROM Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      PU_ArrivalVouch ON Szb_PurIn.cOrderCode = PU_ArrivalVouch.cCode INNER JOIN');
  LsQry.SQL.Add('      Szb_PurInList ON Szb_PurIn.id = Szb_PurInList.iPurID INNER JOIN');
  LsQry.SQL.Add('      PU_ArrivalVouchs ON PU_ArrivalVouch.ID = PU_ArrivalVouchs.ID AND');
  LsQry.SQL.Add('      Szb_PurInList.cInvCode = PU_ArrivalVouchs.cInvCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''01'')');
  LsQry.ExecSQL;

  LsQry.Destroy;

end;

procedure TFrmIN.QryInCalcFields(DataSet: TDataSet);
Var bb:Boolean;
begin
  bb:=True;
  QryIn.FieldByName('cError').AsString:='';
  QryIn.FieldByName('cc').AsString:='';
  if QryIn.FieldByName('cVenCode').AsString='' then
    begin
     QryIn.FieldByName('cError').AsString:='无相应的上游单据';
     bb:=False;
    end;
  if QryIn.FieldByName('cWhCode').AsString='' then
    begin

      if bb then
         QryIn.FieldByName('cError').AsString:='方案号不存在.'
      else
         QryIn.FieldByName('cError').AsString:=QryIn.FieldByName('cError').AsString+'、方案号不存在.';
      bb:=False;         
    end;
  if bb then
    QryIn.FieldByName('cc').AsString:='√'

end;

end.

⌨️ 快捷键说明

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