📄 frmstockoutlistmanage.pas
字号:
unit frmStockOutListManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, ComCtrls, DBDateTimePicker, ExtCtrls,
LCDBOperatTool, Grids, DBGrids, DB, DBClient, MConnect, SConnect,
DBSelectDlgEdit;
type
TFormStockOutListManage = class(TForm)
Label1: TLabel;
EdtId: TEdit;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBDateTimePicker1: TDBDateTimePicker;
DBDateTimePicker2: TDBDateTimePicker;
GroupBox1: TGroupBox;
LCDBOperatTool1: TLCDBOperatTool;
BtnPost: TButton;
Label5: TLabel;
Label6: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBGrid1: TDBGrid;
cdsStockOutListMaster: TClientDataSet;
cdsStockOutListSlave: TClientDataSet;
cdsStockOutListMasterId: TWideStringField;
cdsStockOutListMasterPickDepartmentId: TWideStringField;
cdsStockOutListMasterGenerateDate: TDateTimeField;
cdsStockOutListMasterPickableDate: TDateTimeField;
cdsStockOutListMasterDeadTime: TDateTimeField;
cdsStockOutListSlaveMasterId: TWideStringField;
cdsStockOutListSlaveBarCode: TWideStringField;
cdsStockOutListSlavePickableAmount: TLargeintField;
DSStockOutListMaster: TDataSource;
DSStockOutListSlave: TDataSource;
SocketConStockOutList: TSocketConnection;
SocketConQuery: TSocketConnection;
DBEdit1: TDBEdit;
Button2: TButton;
Button3: TButton;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure LCDBOperatTool1ModeChange(AMode: TBtnMode);
procedure LCDBOperatTool1Click(Btn: TToolButton;
var Continued: Boolean);
procedure DBDateTimePicker1Change(Sender: TObject);
procedure BtnPostClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure ClearCDSRecord;
public
{ Public declarations }
end;
var
FormStockOutListManage: TFormStockOutListManage;
implementation
uses CommonFunc, untConfig, DataBaseQueryData_TLB;
{$R *.dfm}
procedure TFormStockOutListManage.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormStockOutListManage.FormCreate(Sender: TObject);
begin
SetSocketConnectionConnect(SocketConStockOutList);
SetSocketConnectionConnect(SocketConQuery);
end;
procedure TFormStockOutListManage.FormDestroy(Sender: TObject);
begin
SocketConStockOutList.Close;
SocketConQuery.Close;
end;
procedure TFormStockOutListManage.Button1Click(Sender: TObject);
var
s: string;
mv, sv: OleVariant;
begin
ClearCDSRecord;
if not CheckInput(EdtId) then Exit;
s := Trim(EdtId.Text);
if SocketConStockOutList.AppServer.QueryStockOutListMasterById(s, mv) then
begin
if not VarIsNull(mv) then
cdsStockOutListMaster.Data := mv;
if SocketConStockOutList.AppServer.QueryStockOutListSlaveById(s, sv) then
if not VarIsNull(sv) then
cdsStockOutListSlave.Data := sv;
end
else
LCShowMessage('没有找到此单!');
end;
procedure TFormStockOutListManage.LCDBOperatTool1ModeChange(
AMode: TBtnMode);
begin
if AMode = bmAdd then
begin
cdsStockOutListSlave.FieldByName('MasterId').AsString := Trim(EdtId.Text);
end;
end;
procedure TFormStockOutListManage.LCDBOperatTool1Click(Btn: TToolButton;
var Continued: Boolean);
begin
SetIme;
if Btn = tbAdd then
begin
SetIme;
if cdsStockOutListSlave.RecordCount <= 0 then
cdsStockOutListSlave.Open;
end;
BtnPost.Enabled := true;
end;
procedure TFormStockOutListManage.DBDateTimePicker1Change(Sender: TObject);
begin
BtnPost.Enabled := true;
end;
procedure TFormStockOutListManage.BtnPostClick(Sender: TObject);
var
LQuerymts: ImtsQueryObjDisp;
i, n: Integer;
LBar: string;
begin
if cdsStockOutListSlave.State = dsEdit then
cdsStockOutListSlave.Post;
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;
if cdsStockOutListMaster.ChangeCount > 0 then
SocketConStockOutList.AppServer.UpdateStockOutListMaster(cdsStockOutListMaster.Delta);
if cdsStockOutListSlave.ChangeCount > 0 then
SocketConStockOutList.AppServer.UpdateStockOutListSlave(cdsStockOutListSlave.Delta);
BtnPost.Enabled := false;
end;
procedure TFormStockOutListManage.ClearCDSRecord;
begin
cdsStockOutListMaster.EmptyDataSet;
cdsStockOutListSlave.EmptyDataSet;
end;
procedure TFormStockOutListManage.Button2Click(Sender: TObject);
begin
ExportDataToExcel(cdsStockOutListSlave);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -