📄 frmmakestockoutlist.pas
字号:
unit frmMakeStockOutList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, ComCtrls, DBDateTimePicker, LincoSwitch,
ExtCtrls, LCDBOperatTool, Grids, DBGrids, DB, DBClient, MConnect,
SConnect, DataSetToExcel;
type
TFormMakeStockOutList = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
BtnMakeStockOutList: TButton;
BtnPostMaster: TButton;
Button3: TButton;
DBEdtId: TDBEdit;
Label1: TLabel;
Label2: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DBDateTimePicker1: TDBDateTimePicker;
Label3: TLabel;
Label4: TLabel;
DBDateTimePicker2: TDBDateTimePicker;
LCDBOperatTool1: TLCDBOperatTool;
Label5: TLabel;
Label6: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBGrid1: TDBGrid;
SocketConStockOutList: TSocketConnection;
cdsStockOutListMaster: TClientDataSet;
cdsStockOutListSlave: TClientDataSet;
cdsStockOutListMasterId: TWideStringField;
cdsStockOutListMasterPickDepartmentId: TWideStringField;
cdsStockOutListMasterGenerateDate: TDateTimeField;
cdsStockOutListMasterPickableDate: TDateTimeField;
cdsStockOutListMasterDeadTime: TDateTimeField;
cdsStockOutListSlaveMasterId: TWideStringField;
cdsStockOutListSlaveBarCode: TWideStringField;
cdsStockOutListSlavePickableAmount: TLargeintField;
DSStockOutListMaster: TDataSource;
DSStockOutListSlave: TDataSource;
cdsDepart: TClientDataSet;
SocketConBaseInfo: TSocketConnection;
DSDepart: TDataSource;
SocketConQuery: TSocketConnection;
Button1: TButton;
Button2: TButton;
DataSetToExcel: TDataSetToExcel;
XlsDlg: TSaveDialog;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure BtnMakeStockOutListClick(Sender: TObject);
procedure BtnPostMasterClick(Sender: TObject);
procedure LCDBOperatTool1ModeChange(AMode: TBtnMode);
procedure LCDBOperatTool1Click(Btn: TToolButton;
var Continued: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMakeStockOutList: TFormMakeStockOutList;
implementation
uses untConfig, DataBaseQueryData_TLB, CommonFunc, qrStockOutList;
{$R *.dfm}
procedure TFormMakeStockOutList.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormMakeStockOutList.Button3Click(Sender: TObject);
begin
Close;
end;
procedure TFormMakeStockOutList.BtnMakeStockOutListClick(Sender: TObject);
var
LId: string;
begin
cdsStockOutListSlave.EmptyDataSet;
cdsStockOutListMaster.Open;
cdsStockOutListMaster.Insert;
LId := SocketConStockOutList.AppServer.GenerateStockOutListId;
DBEdtId.Text := LId;
cdsStockOutListMaster.FieldByName('Id').AsString := LId;
cdsStockOutListMaster.FieldByName('GenerateDate').AsDateTime := Now();
BtnPostMaster.Enabled := true;
end;
procedure TFormMakeStockOutList.BtnPostMasterClick(Sender: TObject);
var
LQuerymts: ImtsQueryObjDisp;
i, n: Integer;
LBar: string;
begin
SetSocketConnectionConnect(SocketConQuery);
LQuerymts := ImtsQueryObjDisp(SocketConQuery.GetServer);
n := cdsStockOutListSlave.RecordCount - 1;
for i := 0 to n do
begin
LBar := cdsStockOutListSlave.FieldByName('BarCode').AsString;
if not LQuerymts.IsBarCodeExists(LBar) then
begin
LCShowMessage(Format('条码%s不存在!',[LBar]));
Exit;
end;
end;
SocketConQuery.Close;
if not VarIsNull(cdsStockOutListMaster.Delta) then
SocketConStockOutList.AppServer.UpdateStockOutListMaster(cdsStockOutListMaster.Delta);
if not VarIsNull(cdsStockOutListSlave.Delta) then
begin
if cdsStockOutListSlave.State = dsEdit then
cdsStockOutListSlave.Post;
SocketConStockOutList.AppServer.UpdateStockOutListSlave(cdsStockOutListSlave.Delta);
(Sender as TButton).Enabled := false;
end;
end;
procedure TFormMakeStockOutList.LCDBOperatTool1ModeChange(AMode: TBtnMode);
begin
if AMode = bmAdd then
cdsStockOutListSlave.FieldByName('MasterId').AsString := Trim(DBEdtId.Text);
end;
procedure TFormMakeStockOutList.LCDBOperatTool1Click(Btn: TToolButton;
var Continued: Boolean);
begin
if Btn = tbAdd then
if cdsStockOutListSlave.RecordCount <=0 then
cdsStockOutListSlave.Insert;
end;
procedure TFormMakeStockOutList.FormCreate(Sender: TObject);
begin
SetSocketConnectionConnect(SocketConStockOutList);
SetSocketConnectionConnect(SocketConBaseInfo);
cdsDepart.Open;
end;
procedure TFormMakeStockOutList.FormDestroy(Sender: TObject);
begin
SocketConStockOutList.Close;
SocketConBaseInfo.Close;
cdsDepart.Close;
end;
procedure TFormMakeStockOutList.Button2Click(Sender: TObject);
begin
ExportDataToExcel(cdsStockOutListSlave);
end;
procedure TFormMakeStockOutList.Button1Click(Sender: TObject);
var
LQR: TStockOutListQR;
begin
LQR := TStockOutListQR.Create(nil);
LQR.PreviewModal;
LQR.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -