📄 frmstockinlist.pas
字号:
unit frmStockInList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, LCDBOperatTool, ComCtrls, DBDateTimePicker,
Mask, DBCtrls, DBSelectDlgEdit, Grids, DBGrids, DB, DBClient, MConnect,
SConnect;
type
TFormStockInList = class(TForm)
BtnFind: TButton;
BtnNew: TButton;
LEdtId: TLabeledEdit;
DBEdtTransType: TDBEdit;
DBEdtConsign: TDBEdit;
DBDTPDeadTime: TDBDateTimePicker;
DBDTPReceivableDate: TDBDateTimePicker;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdtGenerateDate: TDBEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
GroupBox1: TGroupBox;
LCDBOperatTool1: TLCDBOperatTool;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
DBEdtBarCode: TDBEdit;
DBEdAmount: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBGrid1: TDBGrid;
BtnPost: TButton;
cdsStockInListMaster: TClientDataSet;
cdsStockInListSlave: TClientDataSet;
cdsBaseInfo: TClientDataSet;
DSStockInListMaster: TDataSource;
DSStockInListSlave: TDataSource;
DSBaseInfo: TDataSource;
cdsStockInListMasterId: TWideStringField;
cdsStockInListMasterVendorId: TWideStringField;
cdsStockInListMasterGenerateDate: TDateTimeField;
cdsStockInListMasterTransType: TSmallintField;
cdsStockInListMasterDeadTime: TDateTimeField;
cdsStockInListMasterReceivableDate: TDateTimeField;
cdsStockInListMasterConsign: TWideStringField;
cdsStockInListSlaveMasterId: TWideStringField;
cdsStockInListSlaveBarCode: TWideStringField;
cdsStockInListSlavePrice: TIntegerField;
cdsStockInListSlaveReceivableAmount: TIntegerField;
cdsStockInListSlaveAcceptedScrap: TFloatField;
DBSelectDlgEdit1: TDBSelectDlgEdit;
SocketConStockInList: TSocketConnection;
SocketConBaseInfo: TSocketConnection;
SocketConQuery: TSocketConnection;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure BtnFindClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BtnNewClick(Sender: TObject);
procedure BtnPostClick(Sender: TObject);
procedure LCDBOperatTool1ModeChange(AMode: TBtnMode);
procedure LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
var Continued: Boolean);
private
{ Private declarations }
procedure ClearCDSRecord;//04.7.25增加
public
{ Public declarations }
end;
var
FormStockInList: TFormStockInList;
implementation
uses CommonFunc, untConfig, DataBaseQueryData_TLB;
{$R *.dfm}
procedure TFormStockInList.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormStockInList.BtnFindClick(Sender: TObject);
var
v,vs: OleVariant;
begin
ClearCDSRecord;
if Trim(LEdtId.Text) = '' then
begin
LCShowMessage('请填写单号!');
Exit;
end;
if SocketConStockInList.AppServer.QueryStockInListMasterById(Trim(LEdtId.Text), v) then
begin
cdsStockInListMaster.Data := v;
if SocketConStockInList.AppServer.QueryStockInListSlaveByMasterId(Trim(LEdtId.Text), vs) then
cdsStockInListSlave.Data := vs;
end
else
LCShowMessage('此单不存在!');
end;
procedure TFormStockInList.FormCreate(Sender: TObject);
begin
SetSocketConnectionConnect(SocketConStockInList);
SetSocketConnectionConnect(SocketConBaseInfo);
end;
procedure TFormStockInList.FormDestroy(Sender: TObject);
begin
SocketConStockInList.Close;
SocketConBaseInfo.Close;
end;
procedure TFormStockInList.BtnNewClick(Sender: TObject);
var
LId: string;
begin
ClearCDSRecord;
cdsStockInListMaster.Open;
cdsStockInListMaster.Insert;
LId := SocketConStockInList.AppServer.GenerateStockInListId;
LEdtId.Text := LId;
cdsStockInListMaster.FieldByName('Id').AsString := LId;
cdsStockInListMaster.FieldByName('GenerateDate').AsDateTime := Now();
BtnPost.Enabled := true;
end;
procedure TFormStockInList.BtnPostClick(Sender: TObject);
var
LQuerymts: ImtsQueryObjDisp;
i, n: Integer;
LBar: string;
begin
SetSocketConnectionConnect(SocketConQuery);
LQuerymts := ImtsQueryObjDisp(SocketConQuery.GetServer);
n := cdsStockInListSlave.RecordCount - 1;
for i := 0 to n do
begin
LBar := cdsStockInListSlave.FieldByName('BarCode').AsString;
if not LQuerymts.IsBarCodeExists(LBar) then
begin
LCShowMessage(Format('条码%s不存在!',[LBar]));
Exit;
end;
end;
SocketConQuery.Close;
if cdsStockInListMaster.RecordCount > 0 then
SocketConStockInList.AppServer.UpdataStockInListMaster(cdsStockInListMaster.Delta);
if cdsStockInListSlave.RecordCount > 0 then
SocketConStockInList.AppServer.UpdataStockInListSlave(cdsStockInListSlave.Delta);
(Sender as TButton).Enabled := false;
end;
procedure TFormStockInList.LCDBOperatTool1ModeChange(AMode: TBtnMode);
begin
if AMode = bmAdd then
cdsStockInListSlave.FieldByName('MasterId').AsString := Trim(LEdtId.Text);
end;
procedure TFormStockInList.LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
var Continued: Boolean);
begin
if Btn = tbAdd then
if cdsStockInListSlave.RecordCount <=0 then
cdsStockInListSlave.Open;
BtnPost.Enabled := true;
end;
procedure TFormStockInList.ClearCDSRecord;
begin
cdsStockInListMaster.EmptyDataSet;
cdsStockInListSlave.EmptyDataSet;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -