📄 frmorderlist.pas
字号:
unit frmOrderList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, LCDBOperatTool,
DBSelectDlgEdit, ComCtrls, DBDateTimePicker, Mask, DBCtrls, DB, DBClient,
MConnect, SConnect;
type
TFormOrderList = class(TForm)
Label1: TLabel;
Label2: TLabel;
BtnFind: TButton;
BtnNew: TButton;
LEdtId: TLabeledEdit;
DBEdtGenDate: TDBEdit;
DBSDEVendorId: TDBSelectDlgEdit;
GroupBox1: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
LCDBOperatTool1: TLCDBOperatTool;
DBEdtBarCode: TDBEdit;
DBEdAmount: TDBEdit;
DBGrid1: TDBGrid;
BtnPost: TButton;
DBCheckBox1: TDBCheckBox;
SocketConOrderList: TSocketConnection;
SocketConBaseInfo: TSocketConnection;
cdsOrderListMaster: TClientDataSet;
cdsOrderListSlave: TClientDataSet;
cdsBaseInfo: TClientDataSet;
DSOrderListMaster: TDataSource;
DSOrderListSlave: TDataSource;
DSBaseInfo: TDataSource;
DBDateTimePicker1: TDBDateTimePicker;
cdsOrderListMasterVendorId: TWideStringField;
cdsOrderListMasterGenerateDate: TDateField;
cdsOrderListSlaveBarCode: TWideStringField;
cdsOrderListMasterIsProcessed: TBooleanField;
cdsOrderListMasterId: TWideStringField;
cdsOrderListSlaveMasterId: TWideStringField;
cdsOrderListSlaveAmount: TLargeintField;
cdsOrderListSlaveReceivableDate: TDateTimeField;
SocketConQuery: TSocketConnection;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BtnFindClick(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;
public
{ Public declarations }
end;
var
FormOrderList: TFormOrderList;
implementation
uses untConfig, CommonFunc, DataBaseQueryData_TLB;
{$R *.dfm}
procedure TFormOrderList.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormOrderList.FormCreate(Sender: TObject);
begin
SetSocketConnectionConnect(SocketConOrderList);
SetSocketConnectionConnect(SocketConBaseInfo);
end;
procedure TFormOrderList.FormDestroy(Sender: TObject);
begin
SocketConOrderList.Close;
SocketConBaseInfo.Close;
end;
procedure TFormOrderList.BtnFindClick(Sender: TObject);
var
v,vs: OleVariant;
begin
ClearCDSRecord;//04.7.25增加
if Trim(LEdtId.Text) = '' then
begin
LCShowMessage('请填写单号');
Exit;
end;
if SocketConOrderList.AppServer.QueryPurchaseListMasterById(Trim(LEdtId.Text), v) then
begin
cdsOrderListMaster.Data := v;
if SocketConOrderList.AppServer.QueryPurchaseListSlaveById(Trim(LEdtId.Text), vs) then
cdsOrderListSlave.Data := vs;
end
else
LCShowMessage('此单不存在!');
end;
procedure TFormOrderList.BtnNewClick(Sender: TObject);
var
LId: string;
begin
ClearCDSRecord;//04.7.25增加
cdsOrderListMaster.Open;
cdsOrderListMaster.Insert;
LId := SocketConOrderList.AppServer.GeneratePurchaseListId;
LEdtId.Text := LId;
cdsOrderListMaster.FieldByName('Id').AsString := LId;
cdsOrderListMaster.FieldByName('GenerateDate').AsDateTime := Now();
cdsOrderListMaster.FieldByName('IsProcessed').AsBoolean := false;
BtnPost.Enabled := true;
end;
procedure TFormOrderList.BtnPostClick(Sender: TObject);
var
LQuerymts: ImtsQueryObjDisp;
i, n: Integer;
LBar: string;
begin
SetSocketConnectionConnect(SocketConQuery);
LQuerymts := ImtsQueryObjDisp(SocketConQuery.GetServer);
n := cdsOrderListSlave.RecordCount - 1;
for i := 0 to n do
begin
LBar := cdsOrderListSlave.FieldByName('BarCode').AsString;
if not LQuerymts.IsBarCodeExists(LBar) then
begin
LCShowMessage(Format('条码%s不存在!',[LBar]));
Exit;
end;
end;
if cdsOrderListMaster.ChangeCount > 0 then
SocketConOrderList.AppServer.UpdatePurchaseListMaster(cdsOrderListMaster.Delta);
if cdsOrderListSlave.ChangeCount > 0 then
SocketConOrderList.AppServer.UpdatePurchaseListSlave(cdsOrderListSlave.Delta);
BtnPost.Enabled := false;
end;
procedure TFormOrderList.LCDBOperatTool1ModeChange(AMode: TBtnMode);
begin
if AMode = bmAdd then
begin
cdsOrderListSlave.FieldByName('MasterId').AsString := Trim(LEdtId.Text);
cdsOrderListSlave.FieldByName('ReceivableDate').AsDateTime := Now();
end;
end;
procedure TFormOrderList.LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
var Continued: Boolean);
begin
if Btn = tbAdd then
if cdsOrderListSlave.RecordCount <=0 then
cdsOrderListSlave.Open;
BtnPost.Enabled := true;
end;
procedure TFormOrderList.ClearCDSRecord;
begin
cdsOrderListMaster.EmptyDataSet;
cdsOrderListSlave.EmptyDataSet;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -