📄 frmrequestordertoorderlist.pas
字号:
unit frmRequestOrderToOrderList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBClient, MConnect, SConnect, ExtCtrls, Grids,
DBGrids, DBSelectDlgEdit, Mask, DBCtrls, ComCtrls, DBDateTimePicker,
DataSetToExcel, LCDBOperatTool;
type
TFormRequestOrderToOrderList = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
BtnConvert: TButton;
DBGrid2: TDBGrid;
LEdtRequestOrderId: TLabeledEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
DBEdtRequestDate: TDBEdit;
DBEdtDepartId: TDBEdit;
DBEdtOperator: TDBEdit;
DBCBChecked: TDBCheckBox;
DBCBProcessed: TDBCheckBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
GroupBox1: TGroupBox;
LEdtOrderListId: TLabeledEdit;
Label1: TLabel;
GroupBox2: TGroupBox;
DBEdtBarCode: TDBEdit;
DBEdtAccount: TDBEdit;
DBDTPReceivableDate: TDBDateTimePicker;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
DataSetToExcel: TDataSetToExcel;
SaveDlg: TSaveDialog;
BtnCheckIt: TButton;
SocketConnRequestOrder: TSocketConnection;
cdsRequestOrderMaster: TClientDataSet;
DSRequestOrderMaster: TDataSource;
cdsOrderListMaster: TClientDataSet;
DSOrderListMaster: TDataSource;
DSRequestOrderSlave: TDataSource;
cdsRequestOrderSlave: TClientDataSet;
cdsOrderListSlave: TClientDataSet;
DSOrderListSlave: TDataSource;
SocketConnOrderList: TSocketConnection;
SocketConnVendor: TSocketConnection;
cdsVendor: TClientDataSet;
DSVendor: TDataSource;
cdsOrderListSlaveAmount: TIntegerField;
cdsRequestOrderMasterIsChecked: TBooleanField;
cdsRequestOrderMasterIsProcessed: TBooleanField;
cdsOrderListMasterIsProcessed: TBooleanField;
cdsRequestOrderMasterId: TWideStringField;
cdsRequestOrderSlaveMasterId: TWideStringField;
cdsOrderListMasterId: TWideStringField;
cdsOrderListMasterVendorId: TWideStringField;
cdsOrderListSlaveBarCode: TWideStringField;
cdsOrderListSlaveMasterId: TWideStringField;
cdsRequestOrderMasterRequestDepartId: TWideStringField;
cdsRequestOrderMasterRequestOperatorId: TWideStringField;
cdsRequestOrderMasterRequestDate: TDateTimeField;
cdsRequestOrderSlaveReceivableDate: TDateTimeField;
cdsOrderListMasterGenerateDate: TDateTimeField;
cdsOrderListSlaveReceivableDate: TDateTimeField;
cdsRequestOrderSlaveAmount: TLargeintField;
cdsRequestOrderSlaveBarCode: TWideStringField;
SocketConGoodsInfo: TSocketConnection;
CBVendorId: TComboBox;
DBEdtVendorId: TDBEdit;
LCDBOperatTool1: TLCDBOperatTool;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure BtnConvertClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BtnCheckItClick(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure LCDBOperatTool1ModeChange(AMode: TBtnMode);
private
{ Private declarations }
FUserId: string;
FPassword: string;
public
{ Public declarations }
procedure SetUserIdPassword(AUserId, APassword: string);
end;
var
FormRequestOrderToOrderList: TFormRequestOrderToOrderList;
implementation
uses untConfig, CommonFunc, frmEmailSender;
{$R *.dfm}
procedure TFormRequestOrderToOrderList.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TFormRequestOrderToOrderList.Button1Click(Sender: TObject);
var
a: olevariant;
i, n: Integer;
LVendorId: string;
LBarCode: string;
begin
if not CheckInput(LEdtRequestOrderId) then Exit;
if SocketConnRequestOrder.AppServer.QueryRequestOrderMasterById
(Trim(LEdtRequestOrderId.Text), a) then
(DSRequestOrderMaster.DataSet as TClientDataSet).Data
:= a
else
begin
LCShowMessage('没有此单!');
exit;
end;
if SocketConnRequestOrder.AppServer.QueryRequestOrderSlaveById
(Trim(LEdtRequestOrderId.Text), a) then
(DSRequestOrderSlave.DataSet as TClientDataSet).Data
:= a
else
begin
LCShowMessage('没有此单!');
exit;
end;
if DSRequestOrderMaster.DataSet.FieldByName('IsProcessed').AsBoolean then
begin
LCShowMessage('此单已处理!');
exit;
end;
BtnConvert.Enabled := true;
if not DSRequestOrderMaster.
DataSet.FieldByName('IsChecked').AsBoolean then
BtnCheckIt.Visible := true;
n := cdsRequestOrderSlave.RecordCount - 1;
CBVendorId.Clear;
cdsRequestOrderSlave.First;
//SocketconGoodsInfo.
for i := 0 to n do
begin
LBarCode := cdsRequestOrderSlave.FieldByName('BarCode').AsString;
LVendorId := SocketconGoodsInfo.AppServer.QueryVendorIdByBarCode(LBarcode);
if CBVendorId.Items.IndexOf(LVendorId) < 0 then
CBVendorId.Items.Add(LVendorId);
end;
end;
procedure TFormRequestOrderToOrderList.BtnConvertClick(Sender: TObject);
begin
LEdtOrderListId.Text := SocketConnOrderList.AppServer.GeneratePurchaseListId;
cdsOrderListMaster.CreateDataSet;
cdsOrderListMaster.Open;
cdsOrderListMaster.EmptyDataSet;
cdsOrderListMaster.Insert;
cdsOrderListMaster.FieldByName('VendorId').AsString := CBVendorId.Text;
cdsOrderListMaster.FieldByName('Id').AsString := LEdtOrderListId.Text;
cdsOrderListSlave.CreateDataSet;
cdsOrderListSlave.Open;
cdsOrderListSlave.EmptyDataSet;
end;
procedure TFormRequestOrderToOrderList.Button3Click(Sender: TObject);
begin
cdsOrderListMaster.Post;
SocketConnOrderList.AppServer.
UpdatePurchaseListMaster(cdsOrderListMaster.Delta);
cdsOrderListSlave.Post;
SocketConnOrderList.AppServer.
UpdatePurchaseListSlave(cdsOrderListSlave.Delta);
end;
procedure TFormRequestOrderToOrderList.Button4Click(Sender: TObject);
begin
SaveDlg.Filter := 'Excel文件 (*.xls)|*.xls';
if SaveDlg.Execute then
DataSetToExcel.SaveExcelToFile(SaveDlg.FileName+'.xls','采购单');
end;
procedure TFormRequestOrderToOrderList.Button5Click(Sender: TObject);
begin
SaveDlg.Filter := 'XML文件 (*.xml)|*.xml';
if SaveDlg.Execute then
cdsOrderListSlave.SaveToFile(SaveDlg.FileName+'.xml',dfXml);
end;
procedure TFormRequestOrderToOrderList.BtnCheckItClick(Sender: TObject);
begin
SocketConnRequestOrder.AppServer.
SetCheckedRequestOrderById(Trim(LEdtRequestOrderId.Text));
end;
procedure TFormRequestOrderToOrderList.Button7Click(Sender: TObject);
var
LVendorId, LVendorMail: string;
LXLSFileName: string;
LDlg: TFormEmailSender;
begin
LVendorId := Trim(DBEdtVendorId.Text);
LXLSFileName := Trim(GetTempDirectory)+LVendorId+'.xls';
if FileExists(LXLSFileName) then
DeleteFile(LXLSFileName);
DataSetToExcel.SaveExcelToFile(LXLSFileName,'采购单');
cdsVendor.Close;
cdsVendor.CommandText :=
'select Email from t_vendor where Id=:Id';
cdsVendor.Params.ParamByName('Id').AsString :=
LVendorId;
cdsVendor.Open;
LVendorMail := cdsVendor.FieldByName('Email').AsString;
LDlg := TFormEmailSender.Create(nil);
LDlg.SetToEmail(LVendorMail);
LDlg.SetAttachmentFileName(LXLSFileName);
LDlg.ShowModal;
LDlg.Free;
end;
procedure TFormRequestOrderToOrderList.SetUserIdPassword(AUserId, APassword: string);
begin
FUserId := AUserId;
FPassword := APassword;
SetSocketConnectionConnect(SocketConnVendor);
SocketConnVendor.AppServer.LoginMTS(AUserId, APassword);
cdsVendor.Open;
end;
procedure TFormRequestOrderToOrderList.FormShow(Sender: TObject);
begin
SetSocketConnectionConnect(SocketConnRequestOrder);
SetSocketConnectionConnect(SocketConnOrderList);
SetSocketConnectionConnect(SocketConGoodsInfo);
end;
procedure TFormRequestOrderToOrderList.FormHide(Sender: TObject);
begin
SocketConnRequestOrder.Close;
SocketConnOrderList.Close;
SocketConnVendor.Close;
SocketConGoodsInfo.Close;
end;
procedure TFormRequestOrderToOrderList.LCDBOperatTool1ModeChange(
AMode: TBtnMode);
begin
if AMode = bmAdd then
cdsOrderListSlave.FieldByName('MasterId').AsString := LEdtOrderListId.Text;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -