D7myChengxie/生产指示单&跟单(OrderandGD.dll)/U_GDJinDuMXInPut.pas
DESKTOP-E401PHE\Administrator e4d35a6883 1234
2025-08-25 10:39:41 +08:00

477 lines
15 KiB
ObjectPascal
Raw Permalink 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_GDJinDuMXInPut;
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, cxDropDownEdit, cxCalendar, cxGridCustomPopupMenu,
cxGridPopupMenu;
type
TfrmGDJinDuMXInPut = class(TForm)
ToolBar2: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
DataSource1: TDataSource;
Order_Sub: TClientDataSet;
DataSource2: TDataSource;
ADOZDY: TADOQuery;
CDS_ZDY: TClientDataSet;
ADOQuery1: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
TBSave: TToolButton;
ToolButton4: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1OrderNo: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1GDPerson: TcxGridDBColumn;
v1FactoryName: TcxGridDBColumn;
v1PSName: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1FromFactoryName: TcxGridDBColumn;
v1ToFactoryName: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ToolButton4Click(Sender: TObject);
procedure v1Column8PropertiesEditValueChanged(Sender: TObject);
procedure v1OrderNoPropertiesEditValueChanged(Sender: TObject);
procedure v1GDPersonPropertiesEditValueChanged(Sender: TObject);
private
FXS:Integer;
procedure InitData();
procedure ZDYHelp(FButn:TcxButtonEdit;LType:string);
function SaveData():Boolean;
procedure GetMaxConNO();
{ Private declarations }
public
PState,PCopyInt:Integer;
FMainId,FConNo,FConType:String;
{ Public declarations }
end;
var
frmGDJinDuMXInPut: TfrmGDJinDuMXInPut;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel, U_SYDeptUserView;
{$R *.dfm}
procedure TfrmGDJinDuMXInPut.InitData();
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add(' select A.* ');
sql.Add(' from JYOrder_GD_Info A ');
sql.Add(' where A.GDID='''+Trim(FMainId)+'''');
//ShowMessage(sql.Text);
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
end;
procedure TfrmGDJinDuMXInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string);
begin
end;
procedure TfrmGDJinDuMXInPut.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ¼<CFA2><C2BC>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
InitData();
end;
procedure TfrmGDJinDuMXInPut.GetMaxConNO();
begin
end;
function TfrmGDJinDuMXInPut.SaveData():Boolean;
var
maxSubNo,FGDID:String;
begin
try
Result:=False;
ADOCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Order_Sub.DisableControls;
with Order_Sub do
begin
First;
while not Eof do
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select * from JYOrder_GD_Info where GDID='''+Trim(Order_Sub.fieldbyname('GDID').AsString)+'''');
Open;
end;
FGDID:=Trim(ADOTemp.fieldbyname('GDID').AsString);
if Trim(FGDID)='' then
begin
if GetLSNo(ADOCmd,maxSubNo,'DD','JYOrder_GD_Info',2,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Order_Sub.EnableControls;
Application.MessageBox('<27><><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
exit;
end;
end else
begin
maxSubNo:=Trim(FGDID);
end;
with ADOCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from JYOrder_GD_Info where ');
sql.Add(' GDID='''+Trim(maxSubNo)+'''');
Open;
end;
with ADOCmd do
begin
if Trim(FGDID)='' then
begin
Append;
FieldByName('Filler').Value:=Trim(DName);
FieldByName('FillerCode').Value:=Trim(DCode);
end
else begin
Edit;
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditerCode').Value:=Trim(DCode);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp);
end;
FieldByName('GDId').Value:=Trim(maxSubNo);
RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'JYOrder_GD_Info',0);
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('GDId').Value:=Trim(maxSubNo);
Next;
end;
end;
ADOCmd.Connection.CommitTrans;
Order_Sub.EnableControls;
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Order_Sub.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmGDJinDuMXInPut.TBSaveClick(Sender: TObject);
begin
if Order_Sub.IsEmpty then
begin
Application.MessageBox('<27><>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
exit;
end;
if Order_Sub.Locate('GDDate',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('GDPerson',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('OrderNo',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('PSName',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('BPType',null,[]) then
begin
Application.MessageBox('<27><>ƥ<EFBFBD><C6A5><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('CRType',null,[]) then
begin
Application.MessageBox('<27>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('FactoryName',null,[]) then
begin
Application.MessageBox('<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('PS',null,[]) then
begin
Application.MessageBox(<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('Qty',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('QtyUnit',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('CRType;FromFactoryName',VarArrayOf(['<27><>',Null]),[loPartialKey]) then
begin
Application.MessageBox('<27>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('CRType;ToFactoryName',VarArrayOf(['<27><>',Null]),[loPartialKey]) then
begin
Application.MessageBox('<27>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
//ModalResult:=1;
end;
end;
procedure TfrmGDJinDuMXInPut.ToolButton1Click(Sender: TObject);
begin
with Order_Sub do
begin
Append;
FieldByName('GDDate').Value:=SGetServerDate(ADOTemp);
Post;
end;
end;
procedure TfrmGDJinDuMXInPut.ToolButton2Click(Sender: TObject);
begin
if Order_Sub.IsEmpty then Exit;
if Trim(Order_Sub.fieldbyname('GDId').AsString)<>'' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_GD_Info where GDId='''+Trim(Order_Sub.fieldbyname('GDId').AsString)+'''');
ExecSQL;
end;
end;
Order_Sub.Delete;
end;
procedure TfrmGDJinDuMXInPut.Tv1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
fsj,FName:String;
begin
//FName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
if Order_Sub.IsEmpty then Exit;
FName:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
if FName='GDPerson' then
begin
fsj:='select distinct(C.PFGenDanPerson) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' ';
SInitCxGridComboBoxBySql(ADOTemp,v1GDPerson,fsj,0,True,'');
end else
if FName='OrderNo' then
begin
if Trim(Order_Sub.fieldbyname('GDPerson').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fsj:='select distinct(A.OrderNo) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' '
+' and isnull(C.PFGenDanPerson,'''')='''+Trim(Order_Sub.fieldbyname('GDPerson').AsString)+'''';
SInitCxGridComboBoxBySql(ADOTemp,v1OrderNo,fsj,0,True,'');
end else
if FName='PSName' then
begin
if Trim(Order_Sub.fieldbyname('OrderNo').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fsj:='select distinct(B.PSName) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' '
+' and isnull(A.OrderNo,'''')='''+Trim(Order_Sub.fieldbyname('OrderNo').AsString)+'''';
SInitCxGridComboBoxBySql(ADOTemp,v1PSName,fsj,0,True,'');
end else
if FName='FactoryName' then
begin
if Trim(Order_Sub.fieldbyname('OrderNo').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fsj:='select distinct(C.FactoryName) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' '
+' and isnull(A.OrderNo,'''')='''+Trim(Order_Sub.fieldbyname('OrderNo').AsString)+'''';
SInitCxGridComboBoxBySql(ADOTemp,v1FactoryName,fsj,0,True,'');
if (v1FactoryName.Properties as TcxComboBoxProperties).Items.IndexOf('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>')>-1 then Exit;
(v1FactoryName.Properties as TcxComboBoxProperties).Items.Add('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end else
if FName='FromFactoryName' then
begin
if Trim(Order_Sub.fieldbyname('CRType').AsString)<>'<27><>' then
begin
v1FromFactoryName.Options.Focusing:=False;
v1ToFactoryName.Options.Focusing:=True;
end else
begin
v1FromFactoryName.Options.Focusing:=True;
v1ToFactoryName.Options.Focusing:=False;
end;
if Trim(Order_Sub.fieldbyname('OrderNo').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fsj:='select distinct(C.FactoryName) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' '
+' and isnull(A.OrderNo,'''')='''+Trim(Order_Sub.fieldbyname('OrderNo').AsString)+'''';
SInitCxGridComboBoxBySql(ADOTemp,v1FromFactoryName,fsj,0,True,'');
if (v1FromFactoryName.Properties as TcxComboBoxProperties).Items.IndexOf('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>')>-1 then Exit;
(v1FromFactoryName.Properties as TcxComboBoxProperties).Items.Add('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end else
if FName='ToFactoryName' then
begin
if Trim(Order_Sub.fieldbyname('CRType').AsString)<>'<27><>' then
begin
v1ToFactoryName.Options.Focusing:=False;
v1FromFactoryName.Options.Focusing:=True;
end else
begin
v1ToFactoryName.Options.Focusing:=True;
v1FromFactoryName.Options.Focusing:=False;
end;
if Trim(Order_Sub.fieldbyname('OrderNo').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fsj:='select distinct(C.FactoryName) Name,Code='''' from JYOrder_Main A'
+' inner join JYOrder_Process B on A.MainId=B.Mainid'
+' inner join JYOrder_PCS_Sub C on B.PSId=C.PSId'
+' where GDStartFlag=1 and GDFinishFlag=0 '
+' and isnull(B.PSName,'''') not in(''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ'',''<27><><EFBFBD><EFBFBD>'')'
+' and isnull(B.PSName,'''') not like ''%<25>ؼ<EFBFBD>%'' '
+' and isnull(A.OrderNo,'''')='''+Trim(Order_Sub.fieldbyname('OrderNo').AsString)+'''';
SInitCxGridComboBoxBySql(ADOTemp,v1ToFactoryName,fsj,0,True,'');
if (v1ToFactoryName.Properties as TcxComboBoxProperties).Items.IndexOf('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>')>-1 then Exit;
(v1ToFactoryName.Properties as TcxComboBoxProperties).Items.Add('<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
end;
procedure TfrmGDJinDuMXInPut.ToolButton4Click(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ¼<CFA2><C2BC>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>');
end;
procedure TfrmGDJinDuMXInPut.v1Column8PropertiesEditValueChanged(
Sender: TObject);
var
mvalue:string;
begin
mvalue:=TcxComboBox(Sender).EditingText;
with Order_Sub do
begin
Edit;
FieldByName('CRType').Value:=mvalue;
FieldByName('FactoryName').Value:=Null;
FieldByName('FromFactoryName').Value:=Null;
FieldByName('ToFactoryName').Value:=Null;
Post;
end;
end;
procedure TfrmGDJinDuMXInPut.v1OrderNoPropertiesEditValueChanged(
Sender: TObject);
var
mvalue:string;
begin
mvalue:=TcxComboBox(Sender).EditingText;
with Order_Sub do
begin
Edit;
FieldByName('OrderNo').Value:=mvalue;
FieldByName('PSName').Value:=Null;
FieldByName('FactoryName').Value:=Null;
FieldByName('FromFactoryName').Value:=Null;
FieldByName('ToFactoryName').Value:=Null;
Post;
end;
end;
procedure TfrmGDJinDuMXInPut.v1GDPersonPropertiesEditValueChanged(
Sender: TObject);
var
mvalue:string;
begin
mvalue:=TcxComboBox(Sender).EditingText;
with Order_Sub do
begin
Edit;
FieldByName('GDPerson').Value:=mvalue;
FieldByName('OrderNo').Value:=Null;
FieldByName('PSName').Value:=Null;
FieldByName('FactoryName').Value:=Null;
FieldByName('FromFactoryName').Value:=Null;
FieldByName('ToFactoryName').Value:=Null;
Post;
end;
end;
end.