📄 frmoutp.pas
字号:
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 + -