D7wmguihua/样品/U_OrderInPut.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

603 lines
16 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_OrderInPut;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer,
cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB,
ExtCtrls, BtnEdit, cxCalendar;
type
TfrmOrderInPut = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
ScrollBox1: TScrollBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
OrderNo: TEdit;
OrderDate: TDateTimePicker;
Label4: TLabel;
DeliveryDate: TDateTimePicker;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ScrollBox2: TScrollBox;
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1XHNO: TcxGridDBColumn;
v1PRTSpec: TcxGridDBColumn;
v1PRTColor: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1PRTMF: TcxGridDBColumn;
v1PRTKZ: TcxGridDBColumn;
v1OrderQty: TcxGridDBColumn;
v1PRTQty: TcxGridDBColumn;
Label9: TLabel;
Chker: TEdit;
Label10: TLabel;
Person1: TEdit;
Label11: TLabel;
Person2: TEdit;
v1OrderUnit: TcxGridDBColumn;
v1PRTUnit: TcxGridDBColumn;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
DataSource2: TDataSource;
ADOZDY: TADOQuery;
CDS_ZDY: TClientDataSet;
PRTCodeName: TcxButtonEdit;
FactoryNo1Name: TcxButtonEdit;
FactoryNo2Name: TcxButtonEdit;
FactoryNo3Name: TcxButtonEdit;
ADOQuery1: TADOQuery;
PanZDY: TPanel;
CXGridZDY: TcxGrid;
TVZDY: TcxGridDBTableView;
VHelpZDYName: TcxGridDBColumn;
CXGridZDYLevel1: TcxGridLevel;
Button1: TButton;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
Label12: TLabel;
CustomerNoName: TcxButtonEdit;
Note: TRichEdit;
procedure TBCloseClick(Sender: TObject);
procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure Button1Click(Sender: TObject);
procedure PRTCodeNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure PRTCodeNamePropertiesChange(Sender: TObject);
procedure FactoryNo1NamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure FactoryNo1NamePropertiesChange(Sender: TObject);
procedure FactoryNo2NamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure FactoryNo2NamePropertiesChange(Sender: TObject);
procedure FactoryNo3NamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure FactoryNo3NamePropertiesChange(Sender: TObject);
procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure TVZDYKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure v1OrderUnitPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1PRTUnitPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1PRTColorPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure CustomNoNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure CustomNoNamePropertiesChange(Sender: TObject);
private
procedure InitData();
procedure ZDYHelp(FButn:TcxButtonEdit;LType:string);
function SaveData():Boolean;
{ Private declarations }
public
PState:Integer;
FMainId:String;
FXS:Integer;
{ Public declarations }
end;
var
frmOrderInPut: TfrmOrderInPut;
implementation
uses
U_DataLink,U_ZDYHelp,U_Fun;
{$R *.dfm}
procedure TfrmOrderInPut.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmOrderInPut.InitData();
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add(' exec Order_QryList :MainId,:WSql');
if PState=1 then
begin
ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId);
ADOQuery1.Parameters.ParamByName('WSQl').Value:='';
end;
if PState=0 then
begin
ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId);
ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 ';
end;
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
SCSHData(ADOQuery1,ScrollBox1,0);
if PState=0 then
begin
OrderDate.DateTime:=SGetServerDateTime(ADOTemp);
DeliveryDate.DateTime:=SGetServerDateTime(ADOTemp);
end;
PanZDY.Visible:=False;
end;
procedure TfrmOrderInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string);
var
FType,ZDYName,FText:String;
begin
PanZDY.Visible:=True;
PanZDY.Left:=FButn.Left;
PanZDY.Top:=FButn.Top+FButn.Height;
with ADOZDY do
begin
Filtered:=False;
Close;
SQL.Clear;
SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+'''');
Open;
end;
FText:=Trim(FButn.Text);
if FText<>'' then
SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%'))
else
SDofilter(ADOZDY,'');
VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name);
end;
procedure TfrmOrderInPut.TVZDYCellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
var
FName:string;
begin
if ADOZDY.IsEmpty then Exit;
FName:=Trim(VHelpZDYName.Summary.GroupFormat);
TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString);
TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString);
PanZDY.Visible:=False;
end;
procedure TfrmOrderInPut.Button1Click(Sender: TObject);
begin
PanZDY.Visible:=False;
end;
procedure TfrmOrderInPut.PRTCodeNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:=Trim(PRTCodeName.Name);
flagname:='<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.FXS:=99;
PRTCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
PRTCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.PRTCodeNamePropertiesChange(Sender: TObject);
begin
if FXS=99 then
begin
PanZDY.Visible:=False;
FXS:=0;
Exit;
end;
ZDYHelp(PRTCodeName,Trim(PRTCodeName.Name));
end;
procedure TfrmOrderInPut.FactoryNo1NamePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:=Trim(FactoryNo1Name.Name);
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.FXS:=99;
FactoryNo1Name.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
FactoryNo1Name.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
// VHelpZDYName.Visible:=False;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.FactoryNo1NamePropertiesChange(Sender: TObject);
begin
if FXS=99 then
begin
PanZDY.Visible:=False;
FXS:=0;
Exit;
end;
ZDYHelp(FactoryNo1Name,Trim(FactoryNo1Name.Name));
end;
procedure TfrmOrderInPut.FactoryNo2NamePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:=Trim(FactoryNo2Name.Name);
flagname:='ӡȾ<D3A1><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.FXS:=99;
FactoryNo2Name.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
FactoryNo2Name.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.FactoryNo2NamePropertiesChange(Sender: TObject);
begin
if FXS=99 then
begin
PanZDY.Visible:=False;
FXS:=0;
Exit;
end;
ZDYHelp(FactoryNo2Name,Trim(FactoryNo2Name.Name));
end;
procedure TfrmOrderInPut.FactoryNo3NamePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:=Trim(FactoryNo3Name.Name);
flagname:='<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.FXS:=99;
FactoryNo3Name.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
FactoryNo3Name.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.FactoryNo3NamePropertiesChange(Sender: TObject);
begin
if FXS=99 then
begin
PanZDY.Visible:=False;
FXS:=0;
Exit;
end;
ZDYHelp(FactoryNo3Name,Trim(FactoryNo3Name.Name));
end;
procedure TfrmOrderInPut.PRTCodeNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_return) or (Key=vk_Down) then
begin
if ADOZDY.Active then
CXGridZDY.SetFocus;
end;
end;
procedure TfrmOrderInPut.TVZDYKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
if ADOZDY.IsEmpty then Exit;
TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString);
TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString);
PanZDY.Visible:=False;
ADOZDY.Active:=False;
end;
end;
procedure TfrmOrderInPut.FormShow(Sender: TObject);
begin
if Trim(DParameters1)='1' then
begin
Label12.Visible:=False;
CustomerNoName.Visible:=False;
end else
begin
Label12.Visible:=True;
CustomerNoName.Visible:=True;
end;
InitData();
end;
function TfrmOrderInPut.SaveData():Boolean;
var
maxno:String;
begin
try
ADOCmd.Connection.BeginTrans;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from Order_Main where MainId='''+Trim(FMainId)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(FMainId)='' then
begin
Append;
if GetLSNo(ADOTemp,maxno,'OM','Order_Main',2,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
exit;
end;
end
else begin
maxno:=Trim(FMainId);
Edit;
end;
FieldByName('MainId').Value:=Trim(maxno);
SSetsaveSql(ADOCmd,'Order_Main',ScrollBox1,0);
if Trim(FMainId)='' then
begin
FieldByName('Filler').Value:=Trim(DName);
end else
begin
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp);
end;
Post;
end;
FMainId:=Trim(maxno);
///<2F><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
with Order_Sub do
begin
First;
while not Eof do
begin
if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then
begin
if GetLSNo(ADOTemp,maxno,'OS','Order_Sub',3,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from Order_Sub where MainId='''+Trim(FMainId)+'''');
sql.Add(' and SubId='''+Trim(maxno)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then
Append
else
Edit;
FieldByName('MainId').Value:=Trim(FMainId);
FieldByName('SubId').Value:=Trim(maxno);
SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Order_Sub',0);
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('SubId').Value:=Trim(maxno);
//Order_Sub.Post;
Next;
end;
end;
ADOCmd.Connection.CommitTrans;
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmOrderInPut.TBSaveClick(Sender: TObject);
begin
OrderDate.SetFocus;
if Trim(OrderNo.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if Trim(PRTCodeName.Text)='' then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmOrderInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='OrdUnit';
flagname:='<27><>λ';
if ShowModal=1 then
begin
Self.Order_Sub.Edit;
Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.v1PRTUnitPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='OrdUnit';
flagname:='<27><>λ';
if ShowModal=1 then
begin
Self.Order_Sub.Edit;
Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.v1PRTColorPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='OrdColor';
flagname:='<27><>ɫ';
if ShowModal=1 then
begin
Self.Order_Sub.Edit;
Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.ToolButton1Click(Sender: TObject);
var
i:Integer;
begin
i:=Order_Sub.RecordCount;
i:=i+1;
with Order_Sub do
begin
Append;
FieldByName('XHNO').Value:=IntToStr(i);
Post;
end;
end;
procedure TfrmOrderInPut.ToolButton2Click(Sender: TObject);
begin
if Order_Sub.IsEmpty then Exit;
if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
end;
Order_Sub.Delete;
end;
procedure TfrmOrderInPut.CustomNoNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:=Trim('CustomNoName');
flagname:='<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.FXS:=99;
CustomerNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
CustomerNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmOrderInPut.CustomNoNamePropertiesChange(Sender: TObject);
begin
if FXS=99 then
begin
PanZDY.Visible:=False;
FXS:=0;
Exit;
end;
ZDYHelp(CustomerNoName,'CustomNoName');
end;
end.