RTFormwork/项目代码/RTBasicsV1/E04梭织坯布仓库/U_TatClothDROutEdit.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

487 lines
13 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_TatClothDROutEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls, BtnEdit, ShellAPI, cxTextEdit,
RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, RM_e_Xls,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList;
type
TfrmTatClothDROutEdit = class(TfrmBaseList)
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DS_MainSel: TDataSource;
CDS_MainSel: TClientDataSet;
GPM_1: TcxGridPopupMenu;
Panel2: TPanel;
Label5: TLabel;
Label4: TLabel;
Label9: TLabel;
edtScan: TEdit;
CRTime: TDateTimePicker;
ToCoName: TEdit;
Button2: TButton;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label12: TLabel;
CDS_Main: TClientDataSet;
CRType: TEdit;
Button1: TButton;
RMXLSExport1: TRMXLSExport;
RMDBMX: TRMDBDataSet;
RM1: TRMGridReport;
CDS_JuanPRT: TClientDataSet;
Label10: TLabel;
edtIsSMTH: TEdit;
btn1: TButton;
ds1: TClientDataSet;
ds2: TDataSource;
Panel1: TPanel;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cv3Column3: TcxGridDBColumn;
VC_MJXH: TcxGridDBColumn;
v3Column1: TcxGridDBColumn;
v3Column2: TcxGridDBColumn;
cv3Column4: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxGrid1: TcxGrid;
TV4: TcxGridDBTableView;
cCXCONNO: TcxGridDBColumn;
cV4Column1: TcxGridDBColumn;
cCXCOLOR: TcxGridDBColumn;
VC_SQQTY: TcxGridDBColumn;
cCXFHPS: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
TV4Column1: TcxGridDBColumn;
Tv3Column1: TcxGridDBColumn;
TV4Column2: TcxGridDBColumn;
TV4Column3: TcxGridDBColumn;
OutNo: TEdit;
Tv3Column2: TcxGridDBColumn;
Tv3Column3: TcxGridDBColumn;
GPM_2: TcxGridPopupMenu;
TV4Column5: TcxGridDBColumn;
Tv3Column4: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure edtScanKeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure edtIsSMTHClick(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure TV4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
FCKNO, FSMStr, JXFlag, CZZT, fcuowu: string;
procedure InitCKGrid();
procedure InitSQGrid();
procedure PlayWav(MWav: string);
function JudgeSQD(): Boolean;
function SaveCKJTM(MStkIds: string): Boolean;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
procedure SaveCKJTMCX(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public
{ Public declarations }
end;
var
frmTatClothDROutEdit: TfrmTatClothDROutEdit;
implementation
uses
U_DataLink, U_RTFun, MMSystem, U_TatDRSel;
procedure TfrmTatClothDROutEdit.PlayWav(MWav: string);
begin
if FileExists(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav'), 0, SND_ASYNC);
end;
procedure TfrmTatClothDROutEdit.SaveCKJTMCX();
begin
try
if Trim(OutNo.Text) = '' then
raise Exception.Create('<27><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!');
if CDS_MainSel.IsEmpty then
raise Exception.Create('<27>޿ɳ<DEBF><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule) ');
sql.Add('values('<>׳<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(OutNo.Text));
sql.Add(',''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(',' + quotedstr(dname));
sql.Add(',' + quotedstr(self.Caption));
sql.Add(') ');
Sql.Add('exec P_Tat_Cloth_ReOut ');
Sql.Add(' @StkIds=' + quotedstr(trim(FSMStr)));
Sql.Add(',@IOIDS=' + quotedstr(trim('')));
Sql.Add(',@FillId=' + Quotedstr(DCode));
Sql.Add(',@Filler=' + Quotedstr(DName));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
ADOQueryCmd.Connection.CommitTrans;
PlayWav('<27><>ȷ');
except
ADOQueryCmd.Connection.RollbackTrans;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Tat_Cloth_DR @OutNo=' + Quotedstr(Trim(OutNo.Text)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
except
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// PlayWav('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
end;
procedure TfrmTatClothDROutEdit.TV4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited;
InitCKGrid();
end;
function TfrmTatClothDROutEdit.SaveCKJTM(MStkIds: string): Boolean;
begin
try
if Trim(OutNo.Text) = '' then
raise Exception.Create('<27><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!');
// if CDS_2.IsEmpty then
// raise Exception.Create('δѡ<CEB4><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
//
// if not CDS_1.Locate('StkId', Trim(FScan), []) then
// raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Tat_Cloth_DRJudge @OutNo=' + Quotedstr(Trim(OutNo.Text)));
sql.Add(',@StkIds=' + Quotedstr(Trim(MStkIds)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
Sql.Clear;
sql.Add('insert into Finance_Need_Up(UType,UDataId) values('<>׳<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>'',' + quotedstr(OutNo.Text) + ') ');
Sql.Add('exec P_Tat_Cloth_Out ');
Sql.Add(' @StkIds=' + quotedstr(trim(MStkIds)));
Sql.Add(',@IOTime=' + Quotedstr(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)));
Sql.Add(',@IOType=' + Quotedstr(crtype.Text));
Sql.Add(',@IONO=' + Quotedstr(OutNo.Text));
Sql.Add(',@FillId=' + Quotedstr(DCode));
Sql.Add(',@Filler=' + Quotedstr(DName));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
raise Exception.Create(PChar(Exception(ExceptObject).Message));
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Tat_Cloth_DR @OutNoS=' + Quotedstr(Trim(OutNo.Text)));
Open;
end;
if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
begin
raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
end;
PlayWav('<27><>ȷ');
Result := True;
except
Result := False;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// PlayWav('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
end;
{$R *.dfm}
function TfrmTatClothDROutEdit.JudgeSQD(): Boolean;
begin
Result := false;
try
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from Tat_Cloth_DR_Main A inner join Tat_Cloth_DR_Sub B on A.DRMID=B.DRMID where A.DRMID=''' + Trim(FSMStr) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EBB5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>!');
if Trim(OutNo.Text) <> '' then
begin
FCKNO := Trim(OutNo.Text);
end;
OutNo.Text := Trim(FSMStr);
if FSMStr <> FCKNO then
begin
InitCKGrid();
InitSQGrid();
end;
Result := True;
except
Result := false;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// PlaySound('δɨ<CEB4><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5A5>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
end;
end;
procedure TfrmTatClothDROutEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmTatClothDROutEdit.FormDestroy(Sender: TObject);
begin
inherited;
frmTatClothDROutEdit := nil;
end;
procedure TfrmTatClothDROutEdit.FormShow(Sender: TObject);
begin
inherited;
edtScan.SetFocus;
ReadCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv4', Tv4, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv3', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
CRTime.DateTime := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmTatClothDROutEdit.edtScanKeyPress(Sender: TObject; var Key: Char);
var
maxno, SMFlag, KYCKFlag, FMainId, ff: string;
FFQty: Integer;
begin
if Key = #13 then
begin
FSMStr := TRIM(edtScan.Text);
if Copy(FSMStr, 1, 3) = 'TDM' then
begin
if not JudgeSQD() then
exit;
end
else
begin
if Trim(edtIsSMTH.Text) = '' then
begin
if Copy(FSMStr, 1, 2) = 'BI' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select StkIdS=CAST((select distinct lTRIM(RTRIM(X.StkId)) + '','' ');
sql.Add(' from Tat_Cloth_Stock X where X.PacketId=' + quotedstr(FSMStr) + ' for xml path('''') ) AS NVARCHAR(MAX)) ');
Open;
end;
if SaveCKJTM(ADOQueryTemp.FieldByName('StkIdS').AsString) then
begin
PlayWav('<27><>ȷ');
end
else
exit;
end
else
begin
if SaveCKJTM(FSMStr) then
begin
PlayWav('<27><>ȷ');
end
else
exit;
end;
end
else
begin
SaveCKJTMCX();
end;
InitSQGrid();
InitCKGrid();
end;
edtScan.Text := '';
end;
end;
procedure TfrmTatClothDROutEdit.Button2Click(Sender: TObject);
begin
WriteCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv4', Tv4, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tv3', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmTatClothDROutEdit.Button1Click(Sender: TObject);
var
MKey: Char;
begin
MKey := #13;
try
frmTatDRSel := TfrmTatDRSel.Create(self);
with frmTatDRSel do
begin
if ShowModal = 1 then
begin
edtScan.Text := Trim(Order_Main.fieldbyname('DRMID').AsString);
edtScanKeyPress(edtScan, MKey);
end;
end;
finally
frmTatDRSel.Free;
end;
end;
procedure TfrmTatClothDROutEdit.edtIsSMTHClick(Sender: TObject);
begin
if Trim(edtIsSMTH.Text) = '' then
edtIsSMTH.Text := '<27><>'
else
edtIsSMTH.Text := '';
end;
procedure TfrmTatClothDROutEdit.btn1Click(Sender: TObject);
var
MKey: Char;
begin
MKey := #13;
CZZT := 'ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
fcuowu := '1';
// try
// frmCKProductCPKCListSel := TfrmCKProductCPKCListSel.Create(Application);
// with frmCKProductCPKCListSel do
// begin
//// CustomerNoName.text := trim(Self.KHName.text);
// if ShowModal = 1 then
// begin
// with frmCKProductCPKCListSel.CDS_Main do
// begin
// First;
// while not Eof do
// begin
// if Fieldbyname('ssel').AsBoolean then
// begin
//
// Self.edtScan.Text := Trim(Fieldbyname('JYID').AsString);
// edtScanKeyPress(Self.edtScan, MKey);
// if fcuowu = '<27><><EFBFBD><EFBFBD>' then
// begin
// Break;
// end;
// Sleep(200);
// end;
// Next;
// end;
// end;
// end;
// end;
// finally
// frmCKProductCPKCListSel.Free;
// end;
InitCKGrid();
end;
procedure TfrmTatClothDROutEdit.InitSQGrid();
begin
if OutNo.Text <> '' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM Tat_Cloth_DR_Sub B');
sql.Add('inner join Tat_Cloth_DR_Main A ON A.DRMID=B.DRMID ');
sql.Add('WHERE B.DRMID=''' + Trim(OutNo.Text) + '''');
Open;
end;
SCreateCDS(ADOQueryTemp, DS1);
SInitCDSData(ADOQueryTemp, DS1);
crtype.Text := Trim(ADOQueryTemp.FieldByName('OutType').AsString);
ToCoName.Text := Trim(ADOQueryTemp.FieldByName('ToCoName').AsString);
end;
end;
procedure TfrmTatClothDROutEdit.InitCKGrid();
begin
if OutNo.Text <> '' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * ');
sql.Add(' from Tat_Cloth_Stock A inner join Tat_Cloth_IO B on A.STKID=B.StkId ');
sql.Add(' where B.IONO=''' + Trim(OutNo.Text) + '''');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_MainSel);
SInitCDSData(ADOQueryTemp, CDS_MainSel);
end;
end;
end.