457 lines
11 KiB
ObjectPascal
457 lines
11 KiB
ObjectPascal
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;
|
||
|
||
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.
|
||
|