D10gmBitao/F01染色坯布仓库/U_DyeGreyClothOutEdit.pas
“username” 4b1be71ae9 111
2025-09-06 09:49:06 +08:00

489 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_DyeGreyClothOutEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin,
cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu,
cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, cxSpinEdit,
StdCtrls, ExtCtrls, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore,
dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu,
U_BaseInput, System.ImageList, Vcl.ImgList, dxScrollbarAnnotations;
type
TfrmDyeGreyClothOutEdit = class(TfrmBaseInput)
ToolBar1: TToolBar;
TBAdd: TToolButton;
TBDel: TToolButton;
TBSave: TToolButton;
TBClose: TToolButton;
DataSource3: TDataSource;
CDS_Sub: TClientDataSet;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
cxGridPopupMenu2: TcxGridPopupMenu;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1CRType: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v1Column1: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1CheJian: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
Tv1Column11: TcxGridDBColumn;
Tv1Column12: TcxGridDBColumn;
btn1: TToolButton;
btn2: TToolButton;
cxgrdbclmnTv1Column13: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure btn2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
function SaveCKData(): Boolean;
public
{ Public declarations }
FBCId, FStkName, FKHName, FWorkshop: string;
end;
var
frmDyeGreyClothOutEdit: TfrmDyeGreyClothOutEdit;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_DyeGreyClothStkSel, U_CompanySel;
{$R *.dfm}
procedure TfrmDyeGreyClothOutEdit.btn1Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
CDS_Sub.DisableControls;
with CDS_Sub do
begin
First;
while not Eof do
begin
Edit;
FieldByName('ToCoNo').Value := 'G0249';
FieldByName('ToCoName').Value := '<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>';
FieldByName('StkCoName').Value := '<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>';
Post;
next;
end;
end;
CDS_Sub.EnableControls;
end;
procedure TfrmDyeGreyClothOutEdit.btn2Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
CDS_Sub.DisableControls;
with CDS_Sub do
begin
First;
while not Eof do
begin
Edit;
FieldByName('ToCoNo').Value := 'G0285';
FieldByName('ToCoName').Value := '<27><><EFBFBD>α<EFBFBD><CEB1><EFBFBD>';
FieldByName('StkCoName').Value := '<27><><EFBFBD>α<EFBFBD><CEB1><EFBFBD>';
Post;
next;
end;
end;
CDS_Sub.EnableControls;
end;
procedure TfrmDyeGreyClothOutEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmDyeGreyClothOutEdit.TBAddClick(Sender: TObject);
begin
try
frmDyeGreyClothStkSel := TfrmDyeGreyClothStkSel.Create(Application);
with frmDyeGreyClothStkSel do
begin
FstkName := Self.FstkName;
if ShowModal = 1 then
begin
frmDyeGreyClothStkSel.CDS_Main.DisableControls;
with frmDyeGreyClothStkSel.CDS_Main do
begin
First;
while frmDyeGreyClothStkSel.CDS_Main.Locate('SSel', True, []) do
begin
with Self.CDS_Sub do
begin
Append;
FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
FieldByName('STKID').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('BCIOID').Value;
FieldByName('LCKID').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('LCKID').Value;
FieldByName('IOType').Value := '<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('FromOrdNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('FromOrdNo').Value;
FieldByName('FromCoNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('FromCoNo').Value;
FieldByName('FromCoName').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('FromCoName').Value;
FieldByName('StkCoNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('StkCoNo').Value;
FieldByName('StkCoName').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('StkCoName').Value;
FieldByName('ToCoNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('StkCoNo').Value;
FieldByName('ToCoName').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('StkCoName').Value;
FieldByName('C_Name').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_Name').Value;
FieldByName('C_code').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_code').Value;
FieldByName('C_Spec').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_Spec').Value;
FieldByName('QtyUnit').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('QtyUnit').Value;
FieldByName('Qty').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('STKQTY').Value;
FieldByName('Piece').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('StkPiece').Value;
FieldByName('BatchNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('BatchNo').Value;
FieldByName('C_Width').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_Width').Value;
FieldByName('C_GramWeight').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_GramWeight').Value;
FieldByName('FromOrdNo').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('FromOrdNo').Value;
FieldByName('Workshop').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('Workshop').Value;
FieldByName('PieceWeight').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('PieceWeight').Value;
FieldByName('C_ColorDepth').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_ColorDepth').Value;
FieldByName('C_Color').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_Color').Value;
FieldByName('C_XINHAO').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_XINHAO').Value;
FieldByName('C_GONGYI').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_GONGYI').Value;
FieldByName('JIAZINO').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('JIAZINO').Value;
FieldByName('C_JITAI').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_JITAI').Value;
FieldByName('C_ZHUANGKUANG').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_ZHUANGKUANG').Value;
FieldByName('C_JIAJI').Value := frmDyeGreyClothStkSel.CDS_Main.fieldbyname('C_JIAJI').Value;
end;
frmDyeGreyClothStkSel.CDS_Main.Delete;
end;
end;
frmDyeGreyClothStkSel.CDS_Main.EnableControls;
end;
end;
finally
frmDyeGreyClothStkSel.Free;
end;
end;
function TfrmDyeGreyClothOutEdit.SaveCKData(): Boolean;
var
MBCIOID, Maxno: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Sub.DisableControls;
with CDS_Sub do
begin
First;
while not eof do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Cloth_IO where BCIOID=''' + Trim(CDS_Sub.fieldbyname('BCIOID').AsString) + '''');
Open;
end;
MBCIOID := Trim(ADOQueryTemp.fieldbyname('BCIOID').AsString);
if Trim(MBCIOID) = '' then
begin
if not GetLSNo(ADOQueryCmd, Maxno, 'C', 'Dye_Cloth_IO', 4, 1) then
raise Exception.Create('ȡȾɫ<C8BE><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
Maxno := Trim(MBCIOID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Cloth_IO where BCIOID=''' + Trim(Maxno) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(MBCIOID) = '' then
begin
Append;
FieldByName('Filler').Value := Trim(DName)
end
else
begin
Edit;
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Sub, 'Dye_Cloth_IO', 2);
FieldByName('STKName').Value := FSTKName;
FieldByName('BCIOID').Value := Trim(Maxno);
FieldByName('IOFlag').Value := '<27><><EFBFBD><EFBFBD>';
FieldByName('IOQtyFlag').Value := -1;
FieldByName('STKID').Value := CDS_Sub.fieldbyname('STKID').Value;
FieldByName('FromCoNo').Value := CDS_Sub.fieldbyname('FromCoNo').Value;
FieldByName('FromCoName').Value := CDS_Sub.fieldbyname('FromCoName').Value;
FieldByName('StkCoNo').Value := CDS_Sub.fieldbyname('StkCoNo').Value;
FieldByName('ToCoNo').Value := CDS_Sub.fieldbyname('ToCoNo').Value;
FieldByName('ISInspection').value := '<27><>';
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select BCIOID,FromCoName,StkCoName,C_Name,stkqty=sum(ioqtyflag*qty),stkPiece=sum(ioqtyflag*piece),QtyUnit,StkPosition ');
sql.Add(' from Dye_Cloth_IO A ');
SQL.Add(' where 1=1 '); // isnull(StkQty,0)>0
if FstkName <> '' then
begin
sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');
end;
SQL.Add('GROUP BY BCIOID,FromCoName,StkCoName,C_Name,QtyUnit,StkPosition');
SQL.Add('HAVING sum(ioqtyflag*qty)<0 and sum(ioqtyflag*piece) < 0');
sql.Add('order by BCIOID,StkCoName,C_Name');
// showmessage(sql.Text);
// sql.Add('select * from BS_Yarn_IO where BYIOID=''' + Trim(CDS_Sub.fieldbyname('STKID').AsString) + '''');
Open;
end;
if (ADOQueryTemp.FieldByName('stkqty').Value > CDS_Sub.fieldbyname('Qty').Value) or (ADOQueryTemp.FieldByName('stkPiece').Value > CDS_Sub.fieldbyname('Piece').Value) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>棡');
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update Dye_Cloth_IO Set StkPiece=StkPiece-' + CDS_Sub.fieldbyname('Piece').AsString);
sql.Add(',STKQty=STKQty-' + CDS_Sub.fieldbyname('Qty').AsString);
sql.Add('where BCIOID=''' + Trim(CDS_Sub.fieldbyname('STKID').AsString) + '''');
// showmessage(sql.Text);
ExecSQL;
end;
Next;
end;
end;
CDS_Sub.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmDyeGreyClothOutEdit.TBCloseClick(Sender: TObject);
begin
ModalResult := 1;
Close;
end;
procedure TfrmDyeGreyClothOutEdit.FormShow(Sender: TObject);
var
fsj: string;
begin
inherited;
ReadCxGrid(FSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from Dye_Cloth_IO A');
sql.Add(' where BCIOID=''' + Trim(FBCId) + '''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_Sub);
SInitCDSData(ADOQueryTemp, CDS_Sub);
// fsj:='select name=CJName ,Code=null from CheJian';
// SInitCxGridComboBoxBySql(ADOQueryTemp,v1CheJian,fsj,0,True,'');
end;
procedure TfrmDyeGreyClothOutEdit.TBDelClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if Trim(CDS_Sub.fieldbyname('BCIOID').AsString) <> '' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
Sql.Add('exec P_BS_Cloth_Out_Del ');
Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_Sub.fieldbyname('STKID').AsString)));
Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
Sql.Add(',@DName=' + quotedstr(Trim(DName)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
ADOQueryCmd.Connection.CommitTrans;
CDS_Sub.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end
else
CDS_Sub.Delete;
end;
procedure TfrmDyeGreyClothOutEdit.TBSaveClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if CDS_Sub.Locate('IOTime', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('IOType', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('ToCoName', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('ToCoName', '', []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
{ if CDS_Sub.Locate('CRType;LCKNO', VarArrayOf(['<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>', Null]), [loPartialKey]) then
begin
Application.MessageBox('<27>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end; }
if CDS_Sub.Locate('Piece', null, []) = True then
begin
Application.MessageBox(<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if CDS_Sub.Locate('Qty', null, []) = True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
if SaveCKData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
ModalResult:=1;
Exit;
end;
end;
procedure TfrmDyeGreyClothOutEdit.ToolButton1Click(Sender: TObject);
begin
WriteCxGrid(fSTKName + '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD>ϲֿ<CFB2>');
end;
procedure TfrmDyeGreyClothOutEdit.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmCompanySel := TfrmCompanySel.Create(Application);
with frmCompanySel do
begin
if Trim(self.CDS_Sub.fieldbyname('IOType').AsString) = '<27>˻<EFBFBD>' then
FCoType := '<27>ͻ<EFBFBD>'
else
FCoType := '<27><>Ӧ<EFBFBD><D3A6>';
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Edit;
FieldByName('ToCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
FieldByName('ToCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
end;
end;
end;
finally
frmCompanySel.Free;
end;
end;
procedure TfrmDyeGreyClothOutEdit.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
FFSPID: string;
begin
if CDS_Sub.IsEmpty then
Exit;
if Trim(CDS_Sub.fieldbyname('BCIOID').AsString) <> '' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Cloth_IO where BCIOID=''' + Trim(CDS_Sub.fieldbyname('BCIOID').AsString) + '''');
Open;
end;
FFSPID := Trim(ADOQueryTemp.fieldbyname('BCIOID').AsString);
if Trim(FFSPID) <> '' then
begin
v1CRType.Options.Editing := False;
end
else
begin
v1CRType.Options.Editing := True;
end;
end
else
begin
v1CRType.Options.Editing := True;
end;
end;
end.