D7myYunxiang/发货申请(DeliveryApplication.dll)/U_PBSQSMCK.pas
DESKTOP-E401PHE\Administrator 914ef198d5 Apply new .gitignore
2025-07-19 16:54:23 +08:00

472 lines
12 KiB
ObjectPascal
Raw Blame History

unit U_PBSQSMCK;
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, dxSkinsCore,
dxSkinDarkRoom,
dxSkinOffice2013White,
dxSkinSharpPlus,
dxSkinSpringTime,
dxSkinsDefaultPainters,
dxSkinscxPCPainter,
cxNavigator;
type
TfrmPBSQSMCK = class(TForm)
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DS_MainSel: TDataSource;
CDS_MainSel: TClientDataSet;
cxGridPopupMenu4: TcxGridPopupMenu;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
v3Column1: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
v3Column2: TcxGridDBColumn;
Panel2: TPanel;
Label5: TLabel;
CKOrdNo: TEdit;
SMID: TEdit;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label12: TLabel;
CDS_Main: TClientDataSet;
CRType: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
cxGrid1: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
V2Column1: TcxGridDBColumn;
DS_FHSQ: TDataSource;
CDS_FHSQ: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_DCK: TClientDataSet;
v3Column3: TcxGridDBColumn;
V2Column2: TcxGridDBColumn;
V2Column3: TcxGridDBColumn;
Button2: TButton;
Button1: TButton;
Button3: TButton;
Label1: TLabel;
CDS_DB: TClientDataSet;
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);
private
{ Private declarations }
FCKOrdNo, FSMStr, JXFlag, FMainId, FSubId, FIDType: string;
FFHPS, FSQPS: integer;
procedure InitFHMX();
procedure CheckCkd();
procedure CheckPB(MMJID: string);
procedure SaveCK(MMJID: string);
procedure InitFHPS();
public
{ Public declarations }
end;
var
frmPBSQSMCK: TfrmPBSQSMCK;
implementation
uses
U_DataLink, U_Fun, MMSystem, U_FHSQListSel, U_PBKCListSel;
{$R *.dfm}
procedure TfrmPBSQSMCK.InitFHPS();
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select FHPS=Sum(FHPS) from FHSQ_Sub where FSID=''' + Trim(CKOrdNo.Text) + '''');
Open;
end;
Edit1.Text := ADOQueryTemp.fieldbyname('FHPS').AsString;
{with CDS_FHSQ do
begin
Locate('SubId', FSubId, []);
Edit;
FieldByName('FHPS').Value := FFHPS;
Edit1.Text := IntToStr(FFHPS)
end; }
end;
procedure TfrmPBSQSMCK.SaveCK(MMJID: string);
var
maxno, SMFlag, KYCKFlag: string;
FFQty: Integer;
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Do_MLJYCK_MJID ');
sql.Add(' @MJID= ' + Quotedstr(MMJID));
sql.Add(',@CKOrdNo= ' + Quotedstr(CKOrdNo.Text));
sql.Add(',@DName=' + Quotedstr(Trim(DName)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_Update_OrderSub :SubId');
Parameters.ParamByName('SubId').Value := Trim(FSubId);
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
except
PlaySound('wav\<5C><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
ADOQueryCmd.Connection.RollbackTrans;
Exit;
end;
with ADOQueryTemp do
begin
close;
sql.Clear;
sql.Add(' select A.*,B.CRID from JTJY_New A');
sql.Add(' inner join CK_MLCP_CR B on A.JYID=B.MJID and B.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' where A. jyid=''' + Trim(MMJID) + '''');
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_Main);
SInitCDSData20(ADOQueryTemp, CDS_Main);
FMainId := Trim(CDS_Main.fieldbyname('NewMLID').AsString);
FSubId := Trim(CDS_Main.fieldbyname('NewSubid').AsString);
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Do_FHSQ @CKOrdNo=' + quotedstr(trim(CKOrdNo.Text)));
ExecSQL;
end;
with CDS_MainSel do
begin
Append;
FieldByName('NewMLID').Value := Self.CDS_Main.fieldbyname('NewMLID').Value;
FieldByName('NewSubid').Value := Self.CDS_Main.fieldbyname('NewSubid').Value;
FieldByName('JYKG').Value := Self.CDS_Main.fieldbyname('JYKG').Value;
FieldByName('JYLen').Value := Self.CDS_Main.fieldbyname('JYLen').Value;
FieldByName('JYID').Value := Self.CDS_Main.fieldbyname('JYID').Value;
FieldByName('JYNo').Value := Self.CDS_Main.fieldbyname('JYNo').Value;
FieldByName('GangNo').Value := Self.CDS_Main.fieldbyname('GangNo').Value;
Post;
end;
FFHPS := FFHPS + 1;
if FIDType <> '<27><><EFBFBD>ⵥ' then
PlaySound('wav\<5C><>ȷ.wav', 0, SND_FILENAME or SND_ASYNC);
end;
procedure TfrmPBSQSMCK.CheckCkd();
begin
if CKOrdNo.Text = Trim(FSMStr) then
exit;
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
JXFlag := '999';
PlaySound('wav\<5C><><EFBFBD><EFBFBD><EBB5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end
else
begin
SCreateCDS20(ADOQueryTemp, CDS_FHSQ);
SInitCDSData20(ADOQueryTemp, CDS_FHSQ);
CKOrdNo.Text := Trim(FSMStr);
InitFHMX();
end;
JXFlag := <><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>';
end;
procedure TfrmPBSQSMCK.CheckPB(MMJID: string);
begin
if Trim(CKOrdNo.Text) = '' then
begin
PlaySound('wav\δɨ<CEB4><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5A5>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YS_Money_CR where isnull(CKNO,'''')=''' + Trim(CKOrdNo.Text) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
PlaySound('wav\<5C>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.SQPS,A.FHPS,B.* from FHSQ_Sub A');
sql.Add(' inner join JTJY_New B on A.Subid=B.NewSubid ');
sql.Add(' where A.FSID=''' + Trim(CKOrdNo.Text) + '''');
sql.Add(' and B.JYID=''' + Trim(MMJID) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
PlaySound('wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end
else
begin
FSQPS := ADOQueryTemp.fieldbyname('SQPS').AsInteger;
FFHPS := ADOQueryTemp.fieldbyname('FHPS').AsInteger;
if FSQPS <= FFHPS then
begin
PlaySound('wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end;
FSubId := Trim(ADOQueryTemp.fieldbyname('NewSubid').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select MJID from CK_MLCP_CR C ');
sql.Add(' where C.CRFlag=''<27><><EFBFBD><EFBFBD>'' and C.MJID=''' + Trim(MMJID) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
PlaySound('wav\δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select C.CKOrdNo from CK_MLCP_CR C ');
sql.Add(' where C.CRFlag=''<27><><EFBFBD><EFBFBD>'' and C.MJID=' + quotedstr(Trim(MMJID)));
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if Trim(ADOQueryTemp.fieldbyname('CKOrdNo').AsString) = Trim(CKOrdNo.Text) then
begin
PlaySound('wav\<5C><>ɨ<EFBFBD><C9A8>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end
else
begin
PlaySound('wav\<5C>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>.wav', 0, SND_FILENAME or SND_ASYNC);
Exit;
end;
end;
JXFlag := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end;
procedure TfrmPBSQSMCK.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmPBSQSMCK.FormDestroy(Sender: TObject);
begin
frmPBSQSMCK := nil;
end;
procedure TfrmPBSQSMCK.FormShow(Sender: TObject);
begin
SMID.SetFocus;
ReadCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmPBSQSMCK.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_MLCP_CR A');
sql.Add(' inner join JTJY_New B on A.MJID=B.JYID ');
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[2]
else
MFHPS := 0;
Edit1.Text := IntToStr(MFHPS);
with CDS_FHSQ do
begin
Edit;
FieldByName('FHPS').Value := MFHPS;
end;
end;
procedure TfrmPBSQSMCK.SMIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
JXFlag := '';
FSMStr := Trim(SMID.Text);
SMID.Text := '';
if (Copy(FSMStr, 1, 2) = 'CK') or (Copy(FSMStr, 1, 2) = 'NK') then
begin
FIDType := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
CheckCkd()
end
else if (Copy(FSMStr, 1, 2) = 'DB') then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from JTJY_New where baoID=''' + Trim(FSMStr) + '''');
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_DB);
SInitCDSData20(ADOQueryTemp, CDS_DB);
with CDS_DB do
begin
First;
while not eof do
begin
FIDType := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
CheckPB(CDS_DB.FieldByName('jyid').AsString);
if JXFlag = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
SaveCK(CDS_DB.FieldByName('jyid').AsString);
InitFHPS();
end;
Next;
end;
end;
end
else
begin
FIDType := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
CheckPB(FSMStr);
if JXFlag = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
SaveCK(FSMStr);
InitFHPS();
end;
end;
end;
end;
procedure TfrmPBSQSMCK.Button2Click(Sender: TObject);
begin
Close;
WriteCxGrid(<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmPBSQSMCK.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 TfrmPBSQSMCK.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitFHMX();
end;
procedure TfrmPBSQSMCK.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(SELF.CKOrdNo.Text);
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;
end.