D7szChenfeng/成品仓库(FinishedClothWarehouse.dll)/U_CPSQSMCK.pas

529 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-07-22 15:51:47 +08:00
unit U_CPSQSMCK;
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,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
dxSkinsDefaultPainters, dxSkinscxPCPainter, dxSkinBlack, dxSkinBlue,
dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle,
dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary,
dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin,
dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin,
dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint,
dxSkinXmas2008Blue;
type
TfrmCPSQSMCK = class(TForm)
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DS_MainSel: TDataSource;
CDS_MainSel: TClientDataSet;
cxGridPopupMenu4: TcxGridPopupMenu;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridDBColumn4: TcxGridDBColumn;
v3Column1: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
v3Column2: TcxGridDBColumn;
Panel2: TPanel;
Label5: TLabel;
Label4: TLabel;
CKOrdNo: TEdit;
SMID: TEdit;
CRTime: TDateTimePicker;
Button2: TButton;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label12: TLabel;
CDS_Main: TClientDataSet;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
cxGrid1: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
V2Column1: TcxGridDBColumn;
DS_FHSQ: TDataSource;
CDS_FHSQ: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
Button3: TButton;
CRType: TEdit;
Label1: TLabel;
Label6: TLabel;
edtIsSMTH: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SMIDKeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Button3Click(Sender: TObject);
procedure edtIsSMTHClick(Sender: TObject);
private
{ Private declarations }
FSMStr, JXFlag, FSubId: string;
FFHPS, FSQPS: integer;
procedure InitFHMX();
function CheckCkd(): Boolean;
function CheckPB(): Boolean;
function JudgeJTMCX(): Boolean;
procedure SaveCKDataJTMCX();
procedure SaveCK();
procedure InitFHPS();
public
{ Public declarations }
end;
var
frmCPSQSMCK: TfrmCPSQSMCK;
implementation
uses
U_DataLink, U_Fun, MMSystem, U_CPFHSQListSel, U_FinishedClothKCList_SMCK; //, U_CKProductBCPKCList
//var
// frmPBKCListSel: TfrmCKProductBCPKCListPB;
{$R *.dfm}
procedure TfrmCPSQSMCK.SaveCKDataJTMCX();
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update CK_Cloth_CR Set CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',CRType=NULL,CRTime=NULL,CRNote=NULL,CKNo=NULL ');
sql.Add(' where CK_Cloth_CR.JYID=' + Quotedstr(Trim(FSMStr)));
sql.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>''');
sql.Add(' UPdate CK_Cloth_KC Set Valid=''Y'' ');
sql.Add(' where CK_Cloth_KC.JYID=' + Quotedstr(Trim(FSMStr)));
sql.Add(' and Valid=''N'' ');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_FHSQ_UP_QTY ' + quotedstr(trim(CKOrdNo.Text)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(''));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B3B7>')));
sql.Add(',' + quotedstr('<27><><EFBFBD><EFBFBD><EFBFBD>룺' + trim(FSMStr) + ' <20><><EFBFBD><EFBFBD>ţ<EFBFBD>' + trim(CKOrdNo.Text)));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
FFHPS := FFHPS - 1;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
function TfrmCPSQSMCK.JudgeJTMCX(): Boolean;
begin
try
if Trim(CKOrdNo.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>');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.SQPiQty,A.FHPiQty,B.* from SQ_FH_Sub A');
sql.Add(' inner join CK_Cloth_CR B on A.p_code=B.p_code');
sql.Add(' where A.FHMainID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.CRFlag=''<27><><EFBFBD><EFBFBD>'' and B.JYID=''' + Trim(FSMStr) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
raise Exception.Create('<27>޿ɳ<DEBF><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end
else
begin
FSubId := ADOQueryTemp.fieldbyname('P_CodeName').AsString;
FSQPS := ADOQueryTemp.fieldbyname('SQPiQty').AsInteger;
FFHPS := ADOQueryTemp.fieldbyname('FHPiQty').AsInteger;
end;
Result := True;
except
Result := false;
PlaySound(PChar('wav\' + Exception(ExceptObject).Message + '.wav'), 0, SND_FILENAME or SND_ASYNC);
end;
end;
procedure TfrmCPSQSMCK.InitFHPS();
begin
with CDS_FHSQ do
begin
Locate('P_CodeName', trim(FSubId), []);
Edit;
FieldByName('FHPiQty').Value := FFHPS;
Post;
Edit1.Text := IntToStr(FFHPS)
end;
end;
procedure TfrmCPSQSMCK.SaveCK();
var
maxno, SMFlag, KYCKFlag: string;
FFQty: Integer;
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPDATE CK_Cloth_CR Set ');
sql.add(' CRTime=getdate() ');
sql.add(',CRType=' + quotedstr(Trim(CRType.Text)));
sql.add(',CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.add(',CKNo=' + Quotedstr(CKOrdNo.Text));
sql.Add(' where CK_Cloth_CR.JYID=' + Quotedstr(Trim(FSMStr)));
sql.Add('and CK_Cloth_CR.CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPDATE CK_Cloth_KC Set ');
sql.add(' Valid=''N'' ');
sql.Add(' where CK_Cloth_KC.JYID=' + Quotedstr(Trim(FSMStr)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_FHSQ_UP_QTY1 ' + quotedstr(trim(CKOrdNo.Text)));
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
FFHPS := FFHPS + 1;
PlaySound('wav\<5C><>ȷ.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
PlaySound('wav\<5C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.wav', 0, SND_FILENAME or SND_ASYNC);
end;
end;
function TfrmCPSQSMCK.CheckCkd(): Boolean;
begin
try
if CKOrdNo.Text = Trim(FSMStr) then
raise Exception.Create('<27>ظ<EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD>뵥!.wav');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from SQ_FH_Main A inner join SQ_FH_Sub B on A.FHMainId=B.FHMainId where A.FHMainId=''' + Trim(FSMStr) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
raise Exception.Create('<27><><EFBFBD><EFBFBD><EBB5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav');
end
else
begin
SCreateCDS20(ADOQueryTemp, CDS_FHSQ);
SInitCDSData20(ADOQueryTemp, CDS_FHSQ);
CKOrdNo.Text := Trim(FSMStr);
CRType.Text := Trim(CDS_FHSQ.FieldByName('SQType').AsString);
InitFHMX();
end;
Result := True;
except
Result := false;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
PlaySound(PChar('wav\' + Exception(ExceptObject).Message + '.wav'), 0, SND_FILENAME or SND_ASYNC);
end;
end;
function TfrmCPSQSMCK.CheckPB(): Boolean;
begin
try
if Trim(CKOrdNo.Text) = '' then
raise Exception.Create('δɨ<CEB4><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5A5>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.SQPiQty,A.FHPiQty,B.* from SQ_FH_Sub A');
sql.Add(' inner join JY_Cloth B on A.P_CODEname=B.P_CODEname ');
sql.Add(' where A.FHMainID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.JYID=''' + Trim(FSMStr) + '''');
// SQL.Add('and A.BatchNo = B.BatchNo and A.WXPH =B.WXPH');
// showmessage(sql.text);
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
end
else
begin
// FSubId := ADOQueryTemp.fieldbyname('SubId').AsString;
FSQPS := ADOQueryTemp.fieldbyname('SQPiQty').AsInteger;
FFHPS := ADOQueryTemp.fieldbyname('FHPiQty').AsInteger;
if FSQPS <= FFHPS then
begin
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
end;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select C.CKNo from SQ_FH_Sub A');
sql.Add(' inner join JY_Cloth B on A.FromMainId=B.MainId');
sql.Add(' inner join CK_Cloth_CR C on B.JYID=C.JYID and C.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' where B.JYID=''' + Trim(FSMStr) + '''');
sql.Add(' and A.FHMainId=''' + Trim(CKOrdNo.Text) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if Trim(ADOQueryTemp.fieldbyname('CKNo').AsString) = Trim(CKOrdNo.Text) then
begin
raise Exception.Create('<27><>ɨ<EFBFBD><C9A8>');
end
else
begin
raise Exception.Create('<27>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
end;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select RKNo from CK_Cloth_CR ');
sql.Add(' where CRFlag=''<27><><EFBFBD><EFBFBD>'' and JYID=''' + Trim(FSMStr) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
raise Exception.Create(<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
end;
Result := True;
except
Result := false;
// application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
PlaySound(PChar('wav\' + Exception(ExceptObject).Message + '.wav'), 0, SND_FILENAME or SND_ASYNC);
end;
end;
procedure TfrmCPSQSMCK.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCPSQSMCK.FormDestroy(Sender: TObject);
begin
frmCPSQSMCK := nil;
end;
procedure TfrmCPSQSMCK.FormShow(Sender: TObject);
begin
SMID.SetFocus;
ReadCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
CRTime.DateTime := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmCPSQSMCK.InitFHMX();
var
MFHPS: integer;
begin
if CDS_FHSQ.IsEmpty then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select B.* ');
sql.Add(' from CK_Cloth_CR A');
sql.Add(' inner join JY_Cloth B on A.JYID=B.JYID');
sql.Add(' where A.CKNO=' + quotedstr(Trim(CKOrdNo.Text)));
sql.Add(' and A.p_codename=' + quotedstr(Trim(CDS_FHSQ.FieldByName('p_codename').AsString)));
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_MainSel);
SInitCDSData20(ADOQueryTemp, CDS_MainSel);
if CDS_MainSel.IsEmpty = False then
MFHPS := Tv3.DataController.Summary.FooterSummaryValues[0]
else
MFHPS := 0;
Edit1.Text := IntToStr(MFHPS);
with CDS_FHSQ do
begin
Edit;
FieldByName('FHPiQty').Value := MFHPS;
end;
end;
procedure TfrmCPSQSMCK.SMIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
FSMStr := Trim(SMID.Text);
SMID.Text := '';
if edtIsSMTH.Text = '' then
begin
if Copy(FSMStr, 1, 2) = 'FC' then
begin
if CheckCkd() then
begin
end;
end
else
begin
if CheckPB() then
begin
SaveCK();
InitFHPS();
InitFHMX();
end;
end;
end
else
begin
if JudgeJTMCX() then //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SaveCKDataJTMCX();
InitFHPS();
InitFHMX
end;
end;
end;
procedure TfrmCPSQSMCK.Button2Click(Sender: TObject);
begin
Close;
WriteCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmCPSQSMCK.Button1Click(Sender: TObject);
var
MKey: Char;
begin
MKey := #13;
try
frmFHSQListSel := TfrmFHSQListSel.Create(self);
with frmFHSQListSel do
begin
if ShowModal = 1 then
begin
SMID.Text := Trim(Order_Main.fieldbyname('FHMainId').AsString);
SMIDKeyPress(SMID, MKey);
end;
end;
finally
frmFHSQListSel.Free;
end;
end;
procedure TfrmCPSQSMCK.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitFHMX();
end;
procedure TfrmCPSQSMCK.Button3Click(Sender: TObject);
var
MKey: Char;
begin
MKey := #13;
if TRIM(SELF.CKOrdNo.Text) = '' then
EXIT;
try
frmFinishedClothKCList_SMCK := TfrmFinishedClothKCList_SMCK.Create(self);
with frmFinishedClothKCList_SMCK do
begin
if ShowModal = 1 then
begin
while frmFinishedClothKCList_SMCK.CDS_Main.Locate('SSel', true, []) do
begin
self.SMID.Text := Trim(frmFinishedClothKCList_SMCK.CDS_Main.fieldbyname('JYID').AsString);
self.SMIDKeyPress(self.SMID, MKey);
frmFinishedClothKCList_SMCK.CDS_Main.Delete;
sleep(500);
end;
end;
end;
finally
frmFinishedClothKCList_SMCK.Free;
end;
end;
procedure TfrmCPSQSMCK.edtIsSMTHClick(Sender: TObject);
begin
SMID.SetFocus;
if edtIsSMTH.Text = '<27><>' then
begin
edtIsSMTH.Text := '';
end
else
begin
if Application.MessageBox(<><C8B7>Ҫɨ<D2AA><C9A8><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) = IDYES then
edtIsSMTH.Text := '<27><>';
end;
end;
end.