D7gmYongjin/成品仓库(FinishedClothWarehouse.dll)/U_CPSQSMCK.pas
DESKTOP-E401PHE\Administrator 8452f471f5 新建3-04
2026-03-04 09:51:44 +08:00

520 lines
14 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_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,
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, dxSkinsDefaultPainters, dxSkinValentine,
dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter;
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_CKProductBCPKCList
//var
// frmPBKCListSel: TfrmCKProductBCPKCListPB;
{$R *.dfm}
procedure TfrmCPSQSMCK.SaveCKDataJTMCX();
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update FinishedCloth_CR Set CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',CRType=NULL,CRTime=NULL,CRNote=NULL,CKOrdNo=NULL ');
sql.Add(' where FinishedCloth_CR.MJID=' + Quotedstr(Trim(FSMStr)));
sql.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>''');
sql.Add(' UPdate FinishedCloth_KC Set KCValid=''Y'' ');
sql.Add(' where FinishedCloth_KC.MJID=' + Quotedstr(Trim(FSMStr)));
sql.Add(' and KCValid=''N'' ');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_FinishedCloth_FHSQ ' + 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.SQPS,A.FHPS,B.* from FHSQ_Sub A');
sql.Add(' inner join FinishedCloth_CR B on A.MainId=B.MainId');
sql.Add(' where A.FSID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.CRFlag=''<27><><EFBFBD><EFBFBD>'' and B.MJID=''' + 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('SubId').AsString;
FSQPS := ADOQueryTemp.fieldbyname('SQPS').AsInteger;
FFHPS := ADOQueryTemp.fieldbyname('FHPS').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('SubId', FSubId, []);
Edit;
FieldByName('FHPS').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 FinishedCloth_CR Set ');
sql.add(' CRTime=getdate() ');
sql.add(',CRType=' + quotedstr(Trim(CRType.Text)));
sql.add(',CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.add(',CKOrdNo=' + Quotedstr(CKOrdNo.Text));
sql.Add(' where FinishedCloth_CR.MJID=' + Quotedstr(Trim(FSMStr)));
sql.Add('and FinishedCloth_CR.CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPDATE FinishedCloth_KC Set ');
sql.add(' KCValid=''N'' ');
sql.Add(' where FinishedCloth_KC.MJID=' + Quotedstr(Trim(FSMStr)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_FinishedCloth_FHSQ ' + 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 FHSQ_Main A inner join FHSQ_Sub B on A.FSId=B.FSId where A.FSID=''' + 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('CRType').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.SQPS,A.FHPS,B.* from FHSQ_Sub A');
sql.Add(' inner join FinishedCloth_Inspect B on A.MainId=B.MainId');
sql.Add(' where A.FSID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.MJID=''' + Trim(FSMStr) + '''');
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('SQPS').AsInteger;
FFHPS := ADOQueryTemp.fieldbyname('FHPS').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.CKOrdNo from FHSQ_Sub A');
sql.Add(' inner join FinishedCloth_Inspect B on A.MainId=B.MainId');
sql.Add(' inner join FinishedCloth_CR C on B.MJID=C.MJID and C.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' where B.MJID=''' + Trim(FSMStr) + '''');
sql.Add(' and A.FSID=''' + Trim(CKOrdNo.Text) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if Trim(ADOQueryTemp.fieldbyname('CKOrdNo').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 C.CKOrdNo from FHSQ_Sub A');
sql.Add(' inner join FinishedCloth_Inspect B on A.MainId=B.MainId');
sql.Add(' inner join FinishedCloth_CR C on B.MJID=C.MJID and C.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' where B.MJID=''' + 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
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select B.* ');
sql.Add(' from FinishedCloth_CR A');
sql.Add(' inner join FinishedCloth_Inspect B on A.MJID=B.MJID');
sql.Add(' where A.CKOrdNO=' + quotedstr(Trim(CKOrdNo.Text)));
sql.Add(' and A.MainId=' + quotedstr(Trim(CDS_FHSQ.FieldByName('MainId').AsString)));
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('FHPS').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
CheckCkd()
end
else
begin
if CheckPB() then
begin
SaveCK();
InitFHPS();
end;
end;
end
else
begin
if JudgeJTMCX() then //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SaveCKDataJTMCX();
InitFHPS();
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('FSID').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
// frmPBKCListSel := TfrmCKProductBCPKCListPB.Create(self);
// with frmPBKCListSel do
// begin
//
// if ShowModal = 1 then
// begin
// while frmPBKCListSel.CDS_Main.Locate('SSel', true, []) do
// begin
// self.SMID.Text := Trim(frmPBKCListSel.CDS_Main.fieldbyname('MJID').AsString);
// self.SMIDKeyPress(SMID, MKey);
// frmPBKCListSel.CDS_Main.Delete;
// sleep(500);
// end;
// end;
// end;
// finally
// frmPBKCListSel.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.