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

472 lines
15 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_BaseOut;
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
TfrmBaseOut = 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;
v1Column1: TcxGridDBColumn;
v1DefStr2: TcxGridDBColumn;
v1DefStr1: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1RollUnit: TcxGridDBColumn;
v1P_SeqNo: TcxGridDBColumn;
v1DepotClass: TcxGridDBColumn;
v1batchnum: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(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);
private
procedure InitGrid();
function SaveData():Boolean;
{ Private declarations }
public
DepotNo:string;
QuantityCK:string;
{ Public declarations }
end;
var
frmBaseOut: TfrmBaseOut;
implementation
uses
U_adodbmd,U_global,U_FormPas,U_SelfForm,U_ProductHelp,
U_SupplyHelp,U_JlUnitHelp,U_ItemManageNew,U_GetPlanListHelp
,U_GetBaseInList;
{$R *.dfm}
procedure TfrmBaseOut.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
end;
procedure TfrmBaseOut.BtnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmBaseOut.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 TfrmBaseOut.ToolButton2Click(Sender: TObject);
begin
try
frmGetBaseInList:=TfrmGetBaseInList.Create(Application);
with frmGetBaseInList do
begin
if ShowModal=1 then
begin
with CDS_Sub do
begin
Append;
CDS_Sub.FieldByName('PlanNo').Value:=Trim(ADOQueryMain.fieldbyname('PlanNo').AsString);
CDS_Sub.FieldByName('P_SeqNO').Value:=Trim(ADOQueryMain.fieldbyname('P_SeqNO').AsString);
CDS_Sub.FieldByName('P_Code').Value:=Trim(ADOQueryMain.fieldbyname('P_Code').AsString);
CDS_Sub.FieldByName('P_ChnName').Value:=Trim(ADOQueryMain.fieldbyname('P_ChnName').AsString);
CDS_Sub.FieldByName('DefStr1').Value:=Trim(ADOQueryMain.fieldbyname('DefStr1').AsString);
CDS_Sub.FieldByName('P_ChnName10').Value:=Trim(ADOQueryMain.fieldbyname('P_ChnName10').AsString);
CDS_Sub.FieldByName('DefStr2').Value:=Trim(ADOQueryMain.fieldbyname('DefStr2').AsString);
CDS_Sub.FieldByName('ShortName').Value:=Trim(ADOQueryMain.fieldbyname('ShortName').AsString);
CDS_Sub.FieldByName('DefStr3').Value:=Trim(ADOQueryMain.fieldbyname('DefStr3').AsString);
CDS_Sub.FieldByName('DefFlt1').Value:=Trim(ADOQueryMain.fieldbyname('DefFlt1').AsString);
CDS_Sub.FieldByName('DefStr6').Value:=Trim(ADOQueryMain.fieldbyname('DefStr6').AsString);
CDS_Sub.FieldByName('DefStr7').Value:=Trim(ADOQueryMain.fieldbyname('DefStr7').AsString);
CDS_Sub.FieldByName('Quantity').Value:=Trim(ADOQueryMain.fieldbyname('QuantityKC').AsString);
CDS_Sub.FieldByName('UnitName').Value:=Trim(ADOQueryMain.fieldbyname('UnitName').AsString);
CDS_Sub.FieldByName('RollUnit').Value:=Trim(ADOQueryMain.fieldbyname('RollUnit').AsString);
CDS_Sub.FieldByName('DefStr4').Value:=Trim(ADOQueryMain.fieldbyname('DefStr4').AsString);
CDS_Sub.FieldByName('KCID').Value:=Trim(ADOQueryMain.fieldbyname('KCID').AsString);
CDS_Sub.FieldByName('batchnum').Value:=Trim(ADOQueryMain.fieldbyname('batchnum').AsString);
Post;
end;
end;
end;
finally
frmGetBaseInList.Free;
end;
end;
procedure TfrmBaseOut.ToolButton3Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then Exit;
CDS_Sub.Delete;
end;
function TfrmBaseOut.SaveData():Boolean;
var
MaxNo,strSQL:string;
KID,i: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);
end else
begin
if GetMaxNo20(ADOQueryCmd,MaxNo,'WC_ClothInout','BC',1,4)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
KID:=CDS_Sub.fieldbyname('KcID').AsInteger;
//<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:=0;
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;
SSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'WC_ClothInOut_Info',2);
Post;
end;
//<2F><><EFBFBD><EFBFBD><E6B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(CDS_Sub.fieldbyname('DepotNo').AsString)='' then
begin
//<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
strSQL := 'UPDATE WC_ClothClothing SET '
+ 'Quantity =Quantity-' + CDS_Sub.fieldbyname('Quantity').AsString+ ' '
+ 'WHERE KcID = ' + IntToStr(KID);
end else
begin
//<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
strSQL := 'UPDATE WC_ClothClothing SET '
+ 'Quantity =Quantity+'+QuantityCK+'-'+CDS_Sub.fieldbyname('Quantity').AsString+ ' '
+ 'WHERE KcID = ' + IntToStr(KID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add(strSQL);
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 TfrmBaseOut.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 TfrmBaseOut.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 TfrmBaseOut.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 TfrmBaseOut.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 TfrmBaseOut.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 TfrmBaseOut.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 TfrmBaseOut.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('batchnum',Null,[]) then
begin
Application.MessageBox('<27><><EFBFBD>Ų<EFBFBD><C5B2><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('P_ChnName',Null,[]) then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><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 TfrmBaseOut.FormShow(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBaseOut.v1DepotClassPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='BSOutType';
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;
end.