📄 frmoutp.~pas
字号:
unit FrmOutP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, DB, ADODB, Buttons, DBCtrls, StdCtrls, dxDBTLCl,
dxGrClms, dxDBCtrl, dxDBGrid, dxTL, dxCntner, ExtCtrls, dfsSplitter,
ComCtrls, xmldom, XMLIntf, msxmldom, XMLDoc;
type
TFrmOut = class(TForm)
Bevel1: TBevel;
Panel1: TPanel;
Panel2: TPanel;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
btnText: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
GroupBox2: TGroupBox;
Date1: TDateTimePicker;
btnCheck: TButton;
btnXML: TButton;
Panel3: TPanel;
dfsSplitter1: TdfsSplitter;
dxDBGrid1: TdxDBGrid;
dxDBGrid1cc: TdxDBGridColumn;
dxDBGrid1cOrderCode: TdxDBGridMaskColumn;
dxDBGrid1cVenAbbName: TdxDBGridMaskColumn;
dxDBGrid1cDeptName: TdxDBGridMaskColumn;
dxDBGrid1cPersonName: TdxDBGridColumn;
dxDBGrid1cWhName: TdxDBGridMaskColumn;
dxDBGrid1cError: TdxDBGridColumn;
dxDBGrid1cMaker: TdxDBGridMaskColumn;
Panel4: TPanel;
Label1: TLabel;
btnOutHead: TSpeedButton;
sbDelete: TSpeedButton;
DBNavigator1: TDBNavigator;
BtnSave: TBitBtn;
Panel5: TPanel;
Label2: TLabel;
btnOutBody: TSpeedButton;
SpeedButton1: TSpeedButton;
Label3: TLabel;
DBNavigator2: TDBNavigator;
QryOut: TADOQuery;
dsQryOut: TDataSource;
QryOutList: TADOQuery;
QryOutListcc: TStringField;
QryOutListID: TAutoIncField;
QryOutListPCID: TStringField;
QryOutListiPurID: TIntegerField;
QryOutListcInvCode: TStringField;
QryOutListcInvName: TStringField;
QryOutListcInvStd: TStringField;
QryOutListcBarCode: TStringField;
QryOutListiQuantity: TFloatField;
QryOutListiUnitCost: TFloatField;
QryOutListiPrice: TBCDField;
QryOutListiPosID: TIntegerField;
QryOutListcError: TStringField;
QryOutListiArrsId: TIntegerField;
dsQryOutList: TDataSource;
LsQryPop: TADOQuery;
QryCheckPo: TADOQuery;
QryCheckType: TADOQuery;
SaveDialog1: TSaveDialog;
QryOutid: TAutoIncField;
QryOutcMaker: TStringField;
QryOutPCID: TStringField;
QryOutcVouchType: TStringField;
QryOutcOrderCode: TStringField;
QryOutipurorderid: TIntegerField;
QryOutcType: TStringField;
QryOutcVenCode: TStringField;
QryOutcVenAbbName: TStringField;
QryOutcDept: TStringField;
QryOutcDeptName: TStringField;
QryOutcPerson: TStringField;
QryOutcPersonName: TStringField;
QryOutcWhCode: TStringField;
QryOutcWhName: TStringField;
QryOutcPTCode: TStringField;
QryOutcRdCode: TStringField;
QryOutcMemo: TStringField;
QryOutipurarriveid: TIntegerField;
QryOutcCusCode: TStringField;
QryOutcCusAbbName: TStringField;
QryOutcPTName: TStringField;
QryOutcSTCode: TStringField;
QryOutcSTName: TStringField;
QryOutDLID: TIntegerField;
QryOutListcVouchType: TStringField;
QryOutListiDLsID: TIntegerField;
QryOutcc: TStringField;
QryOutcError: TStringField;
dxDBGrid2: TdxDBGrid;
dxDBGrid2cc: TdxDBGridColumn;
dxDBGrid2cBarCode: TdxDBGridMaskColumn;
dxDBGrid2cInvCode: TdxDBGridMaskColumn;
dxDBGrid2cInvName: TdxDBGridMaskColumn;
dxDBGrid2cFree1: TdxDBGridColumn;
dxDBGrid2cFree2: TdxDBGridColumn;
dxDBGrid2cInvStd: TdxDBGridMaskColumn;
dxDBGrid2iQuantity: TdxDBGridMaskColumn;
dxDBGrid2iUnitCost: TdxDBGridMaskColumn;
dxDBGrid2iPrice: TdxDBGridCurrencyColumn;
dxDBGrid2cError: TdxDBGridColumn;
QryOutListcFree1: TStringField;
QryOutListcFree2: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnTextClick(Sender: TObject);
procedure FindList;
procedure FormShow(Sender: TObject);
procedure btnOutHeadClick(Sender: TObject);
procedure btnOutBodyClick(Sender: TObject);
procedure btnCheckClick(Sender: TObject);
procedure LsQryPopBeforeEdit(DataSet: TDataSet);
procedure CheckDL;
procedure UpdateDL;
Procedure RefData;
procedure QryOutBeforeEdit(DataSet: TDataSet);
procedure QryOutListBeforeEdit(DataSet: TDataSet);
procedure QryOutAfterScroll(DataSet: TDataSet);
procedure QryOutBeforePost(DataSet: TDataSet);
procedure QryOutAfterPost(DataSet: TDataSet);
procedure BtnSaveClick(Sender: TObject);
procedure sbDeleteClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure QryOutListAfterScroll(DataSet: TDataSet);
procedure QryOutListCalcFields(DataSet: TDataSet);
procedure QryOutCalcFields(DataSet: TDataSet);
procedure btnXMLClick(Sender: TObject);
procedure 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);
Procedure InsertBoxBarCode;
Procedure UpdateSetBarCode;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmOut: TFrmOut;
implementation
uses DataDmP, SUFunctionP, FrmMainP, FrmPoPInvP, FrmPoPPoP;
{$R *.dfm}
procedure TFrmOut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataDm.DeleteTabe('Szb_PurIn','32');
DataDm.DeleteTabe('Szb_PurInList','32');
Action:=caFree;
FrmOut:=nil;
end;
procedure TFrmOut.btnTextClick(Sender: TObject);
begin
if RadioButton1.Checked then
FrmMain.ReadTxtFile('SO.TXT','1','32',QryOut);
if RadioButton2.Checked then
FrmMain.ReadTxtFile('SO.TXT','0','32',QryOut);
InsertBoxBarCode;
UpdateSetBarCode;
FindList;
btnCheck.Enabled:=True;
btnCheck.Click;
end;
procedure TFrmOut.FindList;
Var ii:Integer;
begin
QryOutList.Close;
if QryOut.RecordCount=0 then Exit;
ii:=QryOut.FieldByName('ID').AsInteger;
QryOutList.SQL.Clear;
QryOutList.SQL.Add('select * from Szb_PurInList');
QryOutList.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
QryOutList.SQL.Add(' And (iPurID='+IntToStr(II)+')');
QryOutList.Open;
Label1.Caption:='记录:'+IntToStr(QryOut.RecNo)+'/'+IntToStr(QryOut.RecordCount);
Label2.Caption:='记录:'+IntToStr(QryOutList.RecNo)+'/'+IntToStr(QryOutList.RecordCount);
end;
procedure TFrmOut.FormShow(Sender: TObject);
begin
CheckBox2.Checked:=False;
date1.Date:=Date();
SUFunction.SetGridColor(dxDBGrid1);
SUFunction.SetGridColor(dxDBGrid2);
end;
procedure TFrmOut.btnOutHeadClick(Sender: TObject);
begin
SUFunction.DBGridSaveToFile(dxDBGrid1,'销售出库单.xls');
end;
procedure TFrmOut.btnOutBodyClick(Sender: TObject);
begin
SUFunction.DBGridSaveToFile(dxDBGrid2,'销售出库单表体.xls');
end;
procedure TFrmOut.btnCheckClick(Sender: TObject);
begin
btnXML.Enabled:=False;
FrmMain.UpdateNull(0,'32');
FrmMain.UpdateInv('32');
FrmMain.CheckInv('32');
FrmMain.UpdateInv('32');
CheckDL;
RefData;
FrmMain.SumNumber('32',Label3);
btnXML.Enabled:=True;
FindList;
end;
procedure TFrmOut.LsQryPopBeforeEdit(DataSet: TDataSet);
begin
Abort;
end;
procedure TFrmOut.CheckDL;
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.DispatchList ON dbo.Szb_PurIn.cOrderCode = dbo.DispatchList.cDLCode');
QryCheckPo.SQL.Add('WHERE (dbo.DispatchList.cDLCode IS NULL)');
QryCheckPo.SQL.Add(' And (PCID='''+FrmMain.PCID+''')');
QryCheckPo.SQL.Add(' And (Szb_PurIn.cVouchType=''32'')');
// 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;
end;
UpdateDL;
end;
procedure TFrmOut.RefData;
Var ii:Integer;
begin
II:=QryOut.RecNo;
CheckBox1.Checked:=False;
QryOut.Close;
QryOut.Open;
CheckBox1.Checked:=True;
FindList;
end;
procedure TFrmOut.UpdateDL;
Var LsQry:TADOQuery;
begin
LsQry:=TADOQuery.Create(Self);
LsQry.Connection:=DataDm.AdoConUfsoft;
LsQry.SQL.Add('Update Szb_PurIn set');
LsQry.SQL.Add(' Szb_PurIn.cCusCode=Customer.cCusCode, Szb_PurIn.cCusAbbName=Customer.cCusAbbName, Szb_PurIn.cDept=DispatchList.cDepCode,');
LsQry.SQL.Add(' Szb_PurIn.cDeptName=Department.cDepName, Szb_PurIn.cPerson=DispatchList.cPersonCode, Szb_PurIn.cPersonName=Person.cPersonName,');
LsQry.SQL.Add(' Szb_PurIn.cSTCode=DispatchList.cSTCode,Szb_PurIn.cMemo=DispatchList.cMemo,');
LsQry.SQL.Add(' Szb_PurIn.cSTName=SaleType.cSTName,Szb_PurIn.cRdCode=SaleType.cRdCode,Szb_PurIn.DLID=DispatchList.DLID');
LsQry.SQL.Add('FROM DispatchList INNER JOIN');
LsQry.SQL.Add(' SaleType ON DispatchList.cSTCode = SaleType.cSTCode INNER JOIN');
LsQry.SQL.Add(' Customer ON DispatchList.cCusCode = Customer.cCusCode INNER JOIN');
LsQry.SQL.Add(' Szb_PurIn ON');
LsQry.SQL.Add(' DispatchList.cDLCode = Szb_PurIn.cOrderCode LEFT OUTER JOIN');
LsQry.SQL.Add(' Department ON');
LsQry.SQL.Add(' DispatchList.cDepCode = Department.cDepCode LEFT OUTER JOIN');
LsQry.SQL.Add(' Person ON DispatchList.cPersonCode = Person.cPersonCode');
LsQry.SQL.Add('Where (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
LsQry.SQL.Add(' And (Szb_PurIn.cVouchType=''32'')');
// LsQry.SQL.SaveToFile('C:\1.TXT');
LsQry.ExecSQL;
LsQry.Close;
LsQry.SQL.Clear;
LsQry.SQL.Add('Update Szb_PurInList');
LsQry.SQL.Add('set Szb_PurInList.iDLsID=DispatchLists.iDLsID,Szb_PurInList.iUnitCost=DispatchLists.iUnitPrice');
LsQry.SQL.Add('FROM dbo.DispatchList INNER JOIN');
LsQry.SQL.Add(' dbo.Szb_PurIn ON');
LsQry.SQL.Add(' dbo.DispatchList.cDLCode = dbo.Szb_PurIn.cOrderCode INNER JOIN');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -