D7wmhengming/样品/U_BaseIn.pas

586 lines
18 KiB
ObjectPascal
Raw Normal View History

2025-04-16 09:11:01 +08:00
unit U_BaseIn;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, DBClient,
cxButtonEdit, cxDropDownEdit, cxCalendar;
type
TfrmBaseIn = class(TForm)
ToolBar1: TToolBar;
BtnSave: TToolButton;
BtnExit: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
v1PlanNo: TcxGridDBColumn;
v1P_ChnName: TcxGridDBColumn;
v1P_ChnName10: TcxGridDBColumn;
v1ShortName: TcxGridDBColumn;
v1DefStr3: TcxGridDBColumn;
v1DefFlt1: TcxGridDBColumn;
v1DefStr4: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
v1Quantity: TcxGridDBColumn;
v1UnitName: TcxGridDBColumn;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
DataSource1: TDataSource;
CDS_Sub: TClientDataSet;
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
ToolButton4: TToolButton;
v1Column1: TcxGridDBColumn;
v1DefStr2: TcxGridDBColumn;
v1DefStr1: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1RollUnit: TcxGridDBColumn;
ToolButton1: TToolButton;
v1P_SeqNo: TcxGridDBColumn;
v1batchnum: TcxGridDBColumn;
v1DepotClass: TcxGridDBColumn;
v1defstr6: TcxGridDBColumn;
v1defstr7: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure v1P_ChnNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1P_ChnName10PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1ShortNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1UnitNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1DefStr4PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1PlanNoPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure BtnSaveClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure v1DepotClassPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1Column2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure v1defstr7PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
private
procedure InitGrid();
function SaveData():Boolean;
{ Private declarations }
public
DepotNo:string;
{ Public declarations }
end;
var
frmBaseIn: TfrmBaseIn;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmBaseIn.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
end;
procedure TfrmBaseIn.BtnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmBaseIn.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('exec P_Get_ClothInOutList :begdate,:enddate,:DepotNo,:DepotCode,:PState,:CRK');
Parameters.ParamByName('DepotNo').Value:=Trim(DepotNo);
Parameters.ParamByName('PState').Value:=2;
Open;
end;
CreateCDS20(ADOQueryMain,CDS_Sub);
InitCDSData20(ADOQueryMain,CDS_Sub);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmBaseIn.ToolButton2Click(Sender: TObject);
begin
with CDS_Sub do
begin
Append;
CDS_Sub.FieldByName('UnitName').Value:='<27><>';
CDS_Sub.FieldByName('RollUnit').Value:='JL004';
CDS_Sub.FieldByName('DefStr4').Value:='һ<><D2BB>';
Post;
end;
end;
procedure TfrmBaseIn.ToolButton3Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then Exit;
CDS_Sub.Delete;
end;
procedure TfrmBaseIn.ToolButton4Click(Sender: TObject);
begin
CopyAddRow(tv1,CDS_Sub);
///CDS_Sub.FieldByName('DepotNo').Value:='';
end;
procedure TfrmBaseIn.ToolButton1Click(Sender: TObject);
begin
OneKeyPost(Tv1,CDS_Sub);
end;
function TfrmBaseIn.SaveData():Boolean;
var
MaxNo,strSQL:string;
KID,i,SubId,j:Integer;
begin
try
Result:=False;
ADOQueryCmd.Connection.BeginTrans;
CDS_Sub.First;
for i:=0 to CDS_Sub.RecordCount-1 do
begin
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)<>'' then
begin
MaxNo:=Trim(CDS_Sub.fieldbyname('DepotNo').AsString);
KID:=CDS_Sub.fieldbyname('KcID').AsInteger;
end else
begin
if GetMaxNo20(ADOQueryCmd,MaxNo,'WC_ClothInout','BR',1,4)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('UPDATE WC_ClothKcid SET KcID = KcID+1');
SQL.Add('SELECT KcID FROM WC_ClothKcid');
Open;
KID:=fieldbyname('KcID').AsInteger;
end;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from WC_ClothInout where DepotNO='''+Trim(DepotNo)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)<>'' then
Edit
else
Append;
FieldByName('DepotNo').Value:=Trim(MaxNo);
FieldByName('DepotCode').Value:=Trim(gDef1);
FieldByName('DepotType').Value:=1;
FieldByName('Filler').Value:=Trim(gUserName);
FieldByName('FillTime').Value:=Trim(CDS_Sub.fieldbyname('FillTime').AsString);
FieldByName('DepotClass').Value:=Trim(CDS_Sub.fieldbyname('DepotClass').AsString);
FieldByName('Status').Value:='I9';
FieldByName('DepotNo').Value:=Trim(MaxNo);
//SSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'WC_ClothInout',1);
Post;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from WC_ClothInOut_Info where DepotNO='''+Trim(DepotNo)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)<>'' then
Edit
else
Append;
FieldByName('DepotNo').Value:=Trim(MaxNo);
FieldByName('KCID').Value:=KID;
FieldByName('ID').Value:=1;
{if Trim(gdatabase)<>'<27>ڳ<EFBFBD>' then
begin
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)='' then
begin
FieldByName('DefFlt2').Value:=SubId;
FieldByName('DefFlt3').Value:=((SubId-1) div 10);
end;
end; }
SSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'WC_ClothInOut_Info',2);
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select DepotNo,DefFlt2,DefFlt3 from WC_ClothInout_Info where DepotNo like ''BR%'' ');
if Trim(CDS_Sub.fieldbyname('PlanNo').AsString)<>'' then
SQL.Add(' and PlanNo='''+CDS_Sub.fieldbyname('PlanNo').AsString+'''');
if Trim(CDS_Sub.fieldbyname('P_Code').AsString)<>'' then
SQL.Add(' and P_Code='''+CDS_Sub.fieldbyname('P_Code').AsString+'''');
if Trim(CDS_Sub.fieldbyname('DefStr1').AsString)<>'' then
SQL.Add(' and DefStr1='''+CDS_Sub.fieldbyname('DefStr1').AsString+'''');
if Trim(CDS_Sub.fieldbyname('DefStr2').AsString)<>'' then
SQL.Add(' and DefStr2='''+CDS_Sub.fieldbyname('DefStr2').AsString+'''');
if Trim(CDS_Sub.fieldbyname('DefStr3').AsString)<>'' then
SQL.Add(' and DefStr3='''+CDS_Sub.fieldbyname('DefStr3').AsString+'''');
if Trim(CDS_Sub.fieldbyname('DefStr4').AsString)<>'' then
SQL.Add(' and DefStr4='''+CDS_Sub.fieldbyname('DefStr4').AsString+'''');
if Trim(CDS_Sub.fieldbyname('Defflt1').AsString)<>'' then
SQL.Add(' and Defflt1='''+CDS_Sub.fieldbyname('Defflt1').AsString+'''');
Open;
{ if ADOQueryTemp.fieldbyname('aa').AsInteger>0 then
SubId:=ADOQueryTemp.fieldbyname('aa').AsInteger
else}
//SubId:=ADOQueryTemp.fieldbyname('aa').AsInteger+1;
end;
with ADOQueryTemp do
begin
First;
j:=1;
while not eof do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update WC_ClothInout_Info Set defflt2='+inttostr(j));
sql.Add(',defflt3='+inttostr((j-1) div 10) );
sql.Add(' where DepotNo='''+Trim(ADOQueryTemp.fieldbyname('DepotNo').AsString)+'''');
ExecSQL;
end;
j:=j+1;
Next;
end;
end;
//<2F><><EFBFBD><EFBFBD><E6B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)='' then
begin
strSQL := 'INSERT WC_ClothClothing ('
+ 'KcID,'
+ 'batchnum,'
+ 'P_Code,'
+ 'P_ChnName,'
+ 'Quantity,'
+ 'RollUnit,'
+ 'DepotNo'
+ ') VALUES ('
+ IntToStr(KID) + ','
+ QuotedStr(Trim(CDS_Sub.fieldbyname('batchnum').AsString)) + ','
+ QuotedStr(Trim(CDS_Sub.fieldbyname('P_Code').AsString)) + ','
+ QuotedStr(Trim(CDS_Sub.fieldbyname('P_ChnName').AsString)) + ','
+ CDS_Sub.fieldbyname('Quantity').AsString + ','
+ QuotedStr(Trim(CDS_Sub.fieldbyname('RollUnit').AsString)) + ','
+ QuotedStr(MaxNo)
+ ')';
end else
begin
//<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
strSQL := 'UPDATE WC_ClothClothing SET '
+ 'batchnum = ' + QuotedStr(Trim(CDS_Sub.fieldbyname('batchnum').AsString)) + ','
+ 'P_Code = ' + QuotedStr(Trim(CDS_Sub.fieldbyname('P_Code').AsString)) + ','
+ 'P_ChnName = ' + QuotedStr(Trim(CDS_Sub.fieldbyname('P_ChnName').AsString)) + ','
+ 'Quantity = ' + CDS_Sub.fieldbyname('Quantity').AsString+ ','
+ 'RollUnit = ' + QuotedStr(Trim(CDS_Sub.fieldbyname('RollUnit').AsString)) + ' '
+ 'WHERE KcID = ' + IntToStr(KID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add(strSQL);
ExecSQL;
end;
//<2F><><EFBFBD>¾<EFBFBD><C2BE><EFBFBD>
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update WC_ClothInout_Info set batchnum='''+Trim(CDS_Sub.fieldbyname('batchnum').AsString)+'''');
sql.Add(' where KCID='+IntToStr(KID));
ExecSQL;
end;
CDS_Sub.Next;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
DepotNo:=MaxNo;
ModalResult:=1;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
end;
end;
procedure TfrmBaseIn.v1P_ChnNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmProductHelp:=TfrmProductHelp.Create(Application);
with frmProductHelp do
begin
fDipFlag:=3;
cxTabControl1.Tabs[0].Visible:=False;
cxTabControl1.Tabs[1].Visible:=False;
cxTabControl1.Tabs[2].Visible:=False;
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
CDS_Sub.FieldByName('P_Code').Value:=ADOQueryHelp.fieldbyname('P_Code').AsString;
CDS_Sub.FieldByName('P_ChnName').Value:=ADOQueryHelp.fieldbyname('P_ChnName').AsString;
end;
end;
finally
frmProductHelp.Free;
end;
end;
procedure TfrmBaseIn.v1P_ChnName10PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmProductHelp:=TfrmProductHelp.Create(Application);
with frmProductHelp do
begin
fDipFlag:=2;
cxTabControl1.Tabs[0].Visible:=False;
cxTabControl1.Tabs[1].Visible:=False;
cxTabControl1.Tabs[3].Visible:=False;
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
CDS_Sub.FieldByName('DefStr1').Value:=ADOQueryHelp.fieldbyname('P_Code').AsString;
CDS_Sub.FieldByName('P_ChnName10').Value:=ADOQueryHelp.fieldbyname('P_ChnName').AsString;
end;
end;
finally
frmProductHelp.Free;
end;
end;
procedure TfrmBaseIn.v1ShortNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmSupplyHelp:=TfrmSupplyHelp.Create(Application);
with frmSupplyHelp do
begin
FLType:='<27><><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
self.CDS_Sub.FieldByName('ShortName').Value:=Trim(ADOQueryHelp.fieldbyname('ShortName').AsString);
self.CDS_Sub.FieldByName('DefStr2').Value:=Trim(ADOQueryHelp.fieldbyname('CustomNo').AsString);
end;
end;
finally
frmSupplyHelp.Free;
end;
end;
procedure TfrmBaseIn.v1UnitNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
kf_frmJlUnitHelp:=Tkf_frmJlUnitHelp.Create(Application);
with kf_frmJlUnitHelp do
begin
Fflag:='length';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('UnitName').Value:=Trim(ADOQueryHelp.fieldbyname('<27><><EFBFBD><EFBFBD>').AsString);
Self.CDS_Sub.FieldByName('RollUnit').Value:=Trim(ADOQueryHelp.fieldbyname('<27><><EFBFBD><EFBFBD>').AsString);
end;
end;
finally
kf_frmJlUnitHelp.Free;
end;
end;
procedure TfrmBaseIn.v1DefStr4PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='DefStr4';
flagname:='<27><>˹<EFBFBD>ȼ<EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('DefStr4').Value:=Trim(ClientDataSet1.fieldbyname('name').AsString);
end;
end;
finally
frmItemManageNew.Free;
end;
end;
procedure TfrmBaseIn.v1PlanNoPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmGetPlanListHelp:=TfrmGetPlanListHelp.Create(Application);
with frmGetPlanListHelp do
begin
if ShowModal=1 then
begin
CDS_Sub.Edit;
CDS_Sub.FieldByName('PlanNo').Value:=Trim(ADOQueryHelp.fieldbyname('PlanNo').AsString);
CDS_Sub.FieldByName('P_SeqNo').Value:=Trim(ADOQueryHelp.fieldbyname('P_SeqNo').AsString);
CDS_Sub.FieldByName('DefStr1').Value:=Trim(ADOQueryHelp.fieldbyname('P_BaseCode').AsString);
CDS_Sub.FieldByName('P_ChnName10').Value:=Trim(ADOQueryHelp.fieldbyname('P_BaseChnName').AsString);
CDS_Sub.FieldByName('DefStr2').Value:=Trim(ADOQueryHelp.fieldbyname('P_Factory').AsString);
CDS_Sub.FieldByName('Shortname').Value:=Trim(ADOQueryHelp.fieldbyname('SupplierName').AsString);
CDS_Sub.FieldByName('DefStr3').Value:=Trim(ADOQueryHelp.fieldbyname('SBtr2').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('Select P_Code from MC_CatLog where P_ChnName='''+Trim(ADOQueryHelp.fieldbyname('LbStr6').AsString)+'''');
Open;
if not IsEmpty then
begin
CDS_Sub.FieldByName('P_Code').Value:=Trim(ADOQueryTemp.fieldbyname('P_Code').AsString);
CDS_Sub.FieldByName('P_ChnName').Value:=Trim(ADOQueryHelp.fieldbyname('LbStr6').AsString);
end;
end;
end;
end;
finally
frmGetPlanListHelp.Free;
end;
end;
procedure TfrmBaseIn.BtnSaveClick(Sender: TObject);
begin
if CDS_Sub.Locate('FillTime',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('PlanNo',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('P_ChnName',Null,[]) then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('DepotClass',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('Quantity',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.IsEmpty then Exit;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmBaseIn.FormShow(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBaseIn.v1DepotClassPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='BSInType';
flagname:='<27><>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('DepotClass').Value:=Trim(ClientDataSet1.fieldbyname('name').AsString);
end;
end;
finally
frmItemManageNew.Free;
end;
end;
procedure TfrmBaseIn.v1Column2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='BSBC';
flagname:='<27><>˹<EFBFBD><CBB9><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('defstr6').Value:=Trim(ClientDataSet1.fieldbyname('name').AsString);
end;
end;
finally
frmItemManageNew.Free;
end;
end;
procedure TfrmBaseIn.v1defstr7PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='BSBZ';
flagname:='<27><>˹<EFBFBD><CBB9><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
Self.CDS_Sub.Edit;
Self.CDS_Sub.FieldByName('defstr7').Value:=Trim(ClientDataSet1.fieldbyname('name').AsString);
end;
end;
finally
frmItemManageNew.Free;
end;
end;
end.