D7myChengxie/生产指示单&跟单(OrderandGD.dll)/U_BPJHInPut.pas

539 lines
17 KiB
ObjectPascal
Raw Permalink Normal View History

2025-08-25 10:39:41 +08:00
unit U_BPJHInPut;
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
TfrmBPJHInPut = 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;
v1ToFactoryName: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
ToolButton3: TToolButton;
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure v1GDPersonPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1FactoryNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1ToFactoryNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure v1Column10PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ToolButton3Click(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
frmBPJHInPut: TfrmBPJHInPut;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_GYSList,U_SYUserView,U_ProductOrderListSel,U_ProductOrderHzListSel;
{$R *.dfm}
procedure TfrmBPJHInPut.InitData();
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add(' select A.* ');
sql.Add(' from XH_Cloth_JH A ');
sql.Add(' where A.JHID='''+Trim(FMainId)+'''');
Open;
end;
SCreateCDS20(ADOQuery1,Order_Sub);
SInitCDSData20(ADOQuery1,Order_Sub);
end;
procedure TfrmBPJHInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string);
begin
end;
procedure TfrmBPJHInPut.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><>ƥ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>Ϣ¼<CFA2><C2BC>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitData();
end;
procedure TfrmBPJHInPut.GetMaxConNO();
begin
end;
function TfrmBPJHInPut.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 XH_Cloth_JH where JHID='''+Trim(Order_Sub.fieldbyname('JHID').AsString)+'''');
Open;
end;
FGDID:=Trim(ADOTemp.fieldbyname('JHID').AsString);
if Trim(FGDID)='' then
begin
if GetLSNo(ADOCmd,maxSubNo,'JH','XH_Cloth_JH',3,1)=False then
begin
ADOCmd.Connection.RollbackTrans;
Order_Sub.EnableControls;
Application.MessageBox('<27><>ƥ<EFBFBD>ƻ<EFBFBD><C6BB><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 XH_Cloth_JH where ');
sql.Add(' JHID='''+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('JHID').Value:=Trim(maxSubNo);
RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'XH_Cloth_JH',0);
FieldByName('GDCode').Value:=Order_Sub.fieldbyname('GDCode').Value;
FieldByName('FactoryNo').Value:=Order_Sub.fieldbyname('FactoryNo').Value;
FieldByName('ToFactoryNo').Value:=Order_Sub.fieldbyname('ToFactoryNo').Value;
Post;
end;
Order_Sub.Edit;
Order_Sub.FieldByName('JHID').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 TfrmBPJHInPut.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('JHDate',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('JHBatchNo',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('GDName',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('GDCode',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('BPCode',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
{ if Order_Sub.Locate('BPName',null,[]) then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end; }
if Order_Sub.Locate('FactoryName',null,[]) then
begin
Application.MessageBox('<27><>Ӧ<EFBFBD>̲<EFBFBD><CCB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Order_Sub.Locate('ToFactoryName',null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
{if Order_Sub.Locate('JHPS',null,[]) then
begin
Application.MessageBox(<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end; }
if Order_Sub.Locate('JHUnit',null,[]) then
begin
Application.MessageBox('<27><>λ<EFBFBD><CEBB><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 TfrmBPJHInPut.ToolButton1Click(Sender: TObject);
begin
//CopyAddRow(Tv1,Order_Sub);
if Order_Sub.IsEmpty=False then
CopyAddRowCDS(Order_Sub)
else
begin
with Order_Sub do
begin
Append;
Post;
end;
end;
if Order_Sub.RecordCount=1 then
begin
with Order_Sub do
begin
Edit;
FieldByName('JHDate').Value:=SGetServerDate(ADOTemp);
FieldByName('DlyDate').Value:=SGetServerDate(ADOTemp);
FieldByName('JHUnit').Value:='Kg';
Post;
end;
end else
begin
with Order_Sub do
begin
Edit;
FieldByName('JHID').Value:='';
Post;
end;
end;
end;
procedure TfrmBPJHInPut.ToolButton2Click(Sender: TObject);
begin
if Order_Sub.IsEmpty then Exit;
if Trim(Order_Sub.fieldbyname('JHID').AsString)<>'' then
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select * from XH_Cloth_DH where JHID='''+Trim(Order_Sub.fieldbyname('JHID').AsString)+'''');
Open;
end;
if ADOTemp.IsEmpty=False then
begin
Application.MessageBox('<27><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select * from XH_Cloth_TP where JHID='''+Trim(Order_Sub.fieldbyname('JHID').AsString)+'''');
Open;
end;
if ADOTemp.IsEmpty=False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
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 XH_Cloth_JH where JHID='''+Trim(Order_Sub.fieldbyname('JHID').AsString)+'''');
ExecSQL;
end;
end;
Order_Sub.Delete;
end;
procedure TfrmBPJHInPut.ToolButton4Click(Sender: TObject);
begin
Close;
WriteCxGrid('<27><>ƥ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>Ϣ¼<CFA2><C2BC>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmBPJHInPut.v1GDPersonPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmSYUserView:=TfrmSYUserView.Create(Application);
with frmSYUserView do
begin
if ShowModal=1 then
begin
with Order_Sub do
begin
Edit;
FieldByName('GDName').Value:=Trim(CDS_User.fieldbyname('UserName').AsString);
FieldByName('GDCode').Value:=Trim(CDS_User.fieldbyname('UserId').AsString);
end;
end;
end;
finally
frmSYUserView.Free;
end;
end;
procedure TfrmBPJHInPut.v1FactoryNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmGYSList:=TfrmGYSList.Create(Application);
with frmGYSList do
begin
if ShowModal=1 then
begin
with Self.Order_Sub do
begin
Edit;
FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('CoName').AsString);
FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('CoCode').AsString);
end;
end;
end;
finally
frmGYSList.Free;
end;
end;
procedure TfrmBPJHInPut.v1ToFactoryNamePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmGYSList:=TfrmGYSList.Create(Application);
with frmGYSList do
begin
if ShowModal=1 then
begin
with Self.Order_Sub do
begin
Edit;
FieldByName('ToFactoryName').Value:=Trim(CDS_HZ.fieldbyname('CoName').AsString);
FieldByName('ToFactoryNo').Value:=Trim(CDS_HZ.fieldbyname('CoCode').AsString);
end;
end;
end;
finally
frmGYSList.Free;
end;
end;
procedure TfrmBPJHInPut.Tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Trim(Order_Sub.fieldbyname('BPCode').AsString)='' then Exit;
if Trim(Order_Sub.fieldbyname('BPName').AsString)<>'' then Exit;
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select Top 1* from XH_Cloth_JH where BPCode='''+Trim(Order_Sub.fieldbyname('BPCode').AsString)+'''');
sql.Add(' order by FillTime desc');
Open;
end;
Order_Sub.DisableControls;
with Order_Sub do
begin
Edit;
FieldByName('BPName').Value:=Trim(ADOTemp.fieldbyname('BPName').AsString);
//Post;
end;
Order_Sub.EnableControls;
end;
procedure TfrmBPJHInPut.v1Column10PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmProductOrderHzListSel:=TfrmProductOrderHzListSel.Create(Application);
with frmProductOrderHzListSel do
begin
if ShowModal=1 then
begin
with Self.Order_Sub do
begin
Edit;
// FieldByName('MainId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString);
// FieldByName('SubId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString);
FieldByName('OrderNo').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrderNo').AsString);
FieldByName('BPCode').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCode').AsString);
FieldByName('BPName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCodeName').AsString);
FieldByName('BPMF').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTMF').AsString);
FieldByName('BPKZ').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTKZ').AsString);
FieldByName('BPSpec').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTSpec').AsString);
FieldByName('BPCF').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCF').AsString);
FieldByName('GDName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('JGGDY').AsString);
FieldByName('JHQty').Value:=frmProductOrderHzListSel.Order_Main.fieldbyname('OrderQty').AsFloat;
FieldByName('JHUnit').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrderUnit').AsString);
// FieldByName('FactoryName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('PBGYS').AsString);
// FieldByName('ToFactoryName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('RanFactory').AsString);
FieldByName('DlyDate').Value:=frmProductOrderHzListSel.Order_Main.fieldbyname('DLYDate').AsDateTime;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add(' select A.UserId ');
SQL.Add(' from SY_User A where UserId not in(''Admin'',''Test'') ');
SQL.Add(' and Valid=''Y'' ');
sql.Add(' and UDept=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' and UserName='+quotedstr(Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('JGGDY').AsString)));
Open;
end;
FieldByName('GDCode').Value:=Trim(ADOQueryTemp.fieldbyname('UserId').AsString);
end;
end;
end;
finally
frmProductOrderHzListSel.Free;
end;
end;
procedure TfrmBPJHInPut.ToolButton3Click(Sender: TObject);
begin
try
frmProductOrderHzListSel:=TfrmProductOrderHzListSel.Create(Application); //frmProductOrderListSel
with frmProductOrderHzListSel do
begin
if ShowModal=1 then
begin
while frmProductOrderHzListSel.Order_Main.Locate('SSel',True,[]) do
begin
with Self.Order_Sub do
begin
Append;
// FieldByName('MainId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString);
// FieldByName('SubId').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString);
FieldByName('OrderNo').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrderNo').AsString);
FieldByName('BPCode').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCode').AsString);
FieldByName('BPName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCodeName').AsString);
FieldByName('BPMF').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTMF').AsString);
FieldByName('BPKZ').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTKZ').AsString);
FieldByName('BPSpec').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTSpec').AsString);
FieldByName('BPCF').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('MPRTCF').AsString);
FieldByName('GDName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrdPerson1').AsString);
FieldByName('JHQty').Value:=frmProductOrderHzListSel.Order_Main.fieldbyname('PRTOrderQty').AsFloat;
FieldByName('JHUnit').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrderUnit').AsString);
FieldByName('FactoryName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('PBGYS').AsString);
FieldByName('ToFactoryName').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('RanFactory').AsString);
FieldByName('JHQty').Value:=frmProductOrderHzListSel.Order_Main.fieldbyname('SOrddefstr5').Value;
FieldByName('JHUnit').Value:=Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('PBUnit').AsString);
FieldByName('DlyDate').Value:=frmProductOrderHzListSel.Order_Main.fieldbyname('OrdDefDate4').AsDateTime;
FieldByName('JHDate').Value:=SGetServerDate(ADOTemp);
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add(' select A.UserId ');
SQL.Add(' from SY_User A where UserId not in(''Admin'',''Test'') ');
SQL.Add(' and Valid=''Y'' ');
sql.Add(' and UDept=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' and UserName='+quotedstr(Trim(frmProductOrderHzListSel.Order_Main.fieldbyname('OrdPerson1').AsString)));
Open;
end;
FieldByName('GDCode').Value:=Trim(ADOQueryTemp.fieldbyname('UserId').AsString);
end;
frmProductOrderHzListSel.Order_Main.Delete;
end;
end;
end;
finally
frmProductOrderHzListSel.Free;
end;
end;
end.