D7zzCixin/坯布仓库(GreyClothWarehouse.dll)/U_CPSQSMCK.pas
DESKTOP-E401PHE\Administrator 48a82ff3f9 0
2025-09-30 15:00:54 +08:00

547 lines
15 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;
Tv3Column1: TcxGridDBColumn;
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_FHSQListSel, U_PBKCListSel; //, 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'' ');
sql.Add('exec P_Do_PBCK @CRFlag='<><CEB4><EFBFBD><EFBFBD>'', @CKOrdNo=' + quotedstr(trim(CKOrdNo.Text)) + ', @MJID=' + quotedstr(trim(FSMStr)) + ', @DName=' + quotedstr(trim(DName)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
// sql.Add('exec P_FHSQ_UP_QTY ' + quotedstr(trim(CKOrdNo.Text)));
sql.Add('exec P_Do_FHSQ ''' + 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 CK_PBCP_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) + '''');
// ShowMessage(sql.text);
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', trim(FSubId), []);
Edit;
FieldByName('FHPSHZ').Value := FFHPS;
Post;
Edit1.Text := IntToStr(FFHPS)
end;
end;
procedure TfrmCPSQSMCK.SaveCK();
var
maxno, SMFlag, KYCKFlag, FAPBatchNo: string;
FFQty: Integer;
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Do_PBCK @CRFlag='<>ӳ<EFBFBD><D3B3><EFBFBD>'', @CKOrdNo=' + quotedstr(trim(CKOrdNo.Text)) + ', @MJID=' + quotedstr(trim(FSMStr)) + ', @DName=' + quotedstr(trim(DName)));
// ShowMessage(sql.text);
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Do_FHSQ ''' + Trim(CKOrdNo.Text) + '''');
// ShowMessage(sql.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;
var
FAPBatchNo: string;
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.FHPS,A.SQPS,B.* from FHSQ_Sub A');
sql.Add(' inner join WFB_MJJY_PB B on A.SubId=B.SubId ');
sql.Add(' where A.FSID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.MJID=''' + Trim(FSMStr) + '''');
// 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('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 WFB_MJJY_PB B on A.MainId=B.MainId');
sql.Add(' inner join CK_PBCP_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) + '''');
// ShowMessage(SQL.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 MJID from WFB_MJJY_PB ');
sql.Add(' where MJStr2=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and MJID=''' + Trim(FSMStr) + '''');
// ShowMessage(SQL.text);
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
raise Exception.Create(<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>');
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select top 1 APBatchNo from WFB_MJJY_PB A INNER JOIN CK_PBCP_CR B on A.MJID =B.MJID where B.CKOrdNo =''' + trim(CKOrdNo.Text) + '''');
sql.Add('and CRFlag =''<27><><EFBFBD><EFBFBD>'' order by CRTime desc');
open;
end;
if ADOQueryCmd.IsEmpty = False then
begin
FAPBatchNo := ADOQueryCmd.fieldbyname('APBatchNo').AsString;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select APBatchNo from WFB_MJJY_PB where MJID =''' + trim(FSMStr) + '''');
// ShowMessage(sql.text);
open;
end;
if Trim(ADOQueryCmd.fieldbyname('APBatchNo').AsString) <> Trim(FAPBatchNo) then
begin
PlaySound('wav\<5C><><EFBFBD><EFBFBD><EFBFBD>б䶯.wav', 0, SND_FILENAME or SND_ASYNC);
Sleep(1500);
end;
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_PBCP_CR A');
sql.Add(' inner join WFB_MJJY_PB B on A.MJID=B.MJID');
sql.Add(' where A.CKOrdNo=' + quotedstr(Trim(CKOrdNo.Text)));
sql.Add(' and A.SubId=' + quotedstr(Trim(CDS_FHSQ.FieldByName('SubId').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('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) = 'CK' 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('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 := TfrmPBKCListSel.Create(self);
with frmPBKCListSel do
begin
FCKOrdNo := trim(CKOrdNo.text);
if ShowModal = 1 then
begin
while frmPBKCListSel.CDS_Main.Locate('SSel', true, []) do
begin
self.SMID.Text := Trim(CDS_Main.Fieldbyname('MJID').AsString);
self.SMIDKeyPress(self.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.