📄 sy_ndfpjhzd_lm.pas
字号:
{*******************************************************}
{ }
{ 纪特零枚年度分配计划制定 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在省级零枚票管理模块 计划管理部分的纪特零枚年度分配计划制定菜单调用。
*)
unit SY_NDFPJHZD_LM;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, Mask,
ToolEdit, CurrEdit, DBTables, Db, RXCtrls, DBCtrls, RXDBCtrl, Menus,
DBGridExport;
type
TFrmY_NDFPJHZD_LM = class(TForm)
Panel1: TPanel;
DWMC: TLabel;
Label3: TLabel;
ND: TSpinEdit;
Panel3: TPanel;
BBt_AddFPJH: TBitBtn;
BBt_Modify: TBitBtn;
BBt_DeleteFPJH: TBitBtn;
BBt_Save: TBitBtn;
BBt_Cancel: TBitBtn;
BBt_Quit: TBitBtn;
ALi_Edit: TActionList;
Act_ModifyFPJH: TAction;
Act_Print: TAction;
Act_Save: TAction;
Act_Cancel: TAction;
Panel2: TPanel;
Qry_JHFPCSHB: TQuery;
DataSource1: TDataSource;
Qry_JJNXQB: TQuery;
DataSource2: TDataSource;
Act_AddFPJH: TAction;
Act_DeleteFPJH: TAction;
Qry_Static: TQuery;
XttxTitle: TRxLabel;
BBt_Print: TBitBtn;
BBt_Send: TBitBtn;
Qry_JJNFPJH: TQuery;
DataSource3: TDataSource;
UpdateSQL1: TUpdateSQL;
Panel4: TPanel;
Label5: TLabel;
Label6: TLabel;
DBEdit2: TDBEdit;
DBEdit4: TDBEdit;
Panel6: TPanel;
DBG_JHFPCSHB: TDBGrid;
Label7: TLabel;
Panel7: TPanel;
Splitter1: TSplitter;
Label8: TLabel;
DBG_JJNXQB: TDBGrid;
Panel8: TPanel;
Splitter2: TSplitter;
DBG_JJNFPJH: TRxDBGrid;
Label9: TLabel;
Label2: TLabel;
E_SYZTS: TCurrencyEdit;
Edt_ypmc: TEdit;
Label1: TLabel;
Qry_JJNXQBSQDWDM: TStringField;
Qry_JJNXQBXQZTS: TFloatField;
Qry_JJNFPJHJHH: TStringField;
Qry_JJNFPJHTX: TFloatField;
Qry_JJNFPJHDWDM: TStringField;
Qry_JJNFPJHND: TStringField;
Qry_JJNFPJHPPMC: TStringField;
Qry_JJNFPJHJHFPZTS: TFloatField;
Qry_JJNFPJHZT: TStringField;
Qry_JJNFPJHZBR: TStringField;
Qry_JJNFPJHPZR: TStringField;
Qry_JJNFPJHZDRQ: TDateTimeField;
Qry_JJNFPJHBZ: TStringField;
Qry_JJNFPJHSDATE: TDateTimeField;
Qry_JHFPCSHBJHH: TStringField;
Qry_JHFPCSHBPPMC: TStringField;
Qry_JHFPCSHBTX: TFloatField;
Qry_JHFPCSHBJHFPZTS: TFloatField;
Qry_JHFPCSHBXH: TStringField;
Qry_JJNXQBDWJC: TStringField;
Qry_JJNFPJHDWJC: TStringField;
procedure FormCreate(Sender: TObject);
procedure Act_AddFPJHExecute(Sender: TObject);
procedure Act_DeleteFPJHExecute(Sender: TObject);
procedure Act_ModifyFPJHExecute(Sender: TObject);
procedure Act_PrintExecute(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure Act_CancelExecute(Sender: TObject);
procedure NDChange(Sender: TObject);
procedure Qry_JJNFPJHJHFPZTSSetText(Sender: TField;
const Text: string);
procedure E_SYZTSEnter(Sender: TObject);
procedure BBt_SendClick(Sender: TObject);
procedure Qry_JJNFPJHBeforeDelete(DataSet: TDataSet);
procedure Qry_JHFPCSHBAfterScroll(DataSet: TDataSet);
procedure DBG_JJNFPJHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Edt_ypmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Qry_JJNFPJHBeforeInsert(DataSet: TDataSet);
procedure Qry_JJNFPJHAfterScroll(DataSet: TDataSet);
procedure Qry_JHFPCSHBFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
private
V_S_locPPMC: string;
SYZTS: Integer;
SS: string;
procedure PS_SetStatus(Value: Boolean);
procedure PS_CaculSYZTS(AJHH, ATX: string);
function CheckExit(): boolean;
procedure DoAppFPJH;
public
{ Public declarations }
end;
var
FrmY_NDFPJHZD_LM: TFrmY_NDFPJHZD_LM;
implementation
uses
Datas,Pub, SY_DataSend, SY_NDFPJHZD_RPT{, SY_CKJHDZD_XZDW};
{$R *.DFM}
procedure TFrmY_NDFPJHZD_LM.FormCreate(Sender: TObject);
begin
DWMC.Caption := '使用单位:' + VG_UnitName;
ND.Value := VG_Year;
PS_SetStatus(True);
GetAllColWidth(self);
end;
procedure TFrmY_NDFPJHZD_LM.NDChange(Sender: TObject);
begin
E_SYZTS.Text := '';
Qry_JJNXQB.Close;
Qry_JJNFPJH.Close;
Qry_JHFPCSHB.Close;
Qry_JHFPCSHB.Params[0].AsString := ND.Text;
Qry_JHFPCSHB.Open;
end;
procedure TFrmY_NDFPJHZD_LM.Act_AddFPJHExecute(Sender: TObject);
begin
if Qry_JHFPCSHB.IsEmpty then Exit;
if not Qry_JJNFPJH.IsEmpty then
begin
CHQMsgBox('已做分配计划!');
Exit;
end;
VG_SQLWhere := 'select JHH from TY_JJNFPJH_LM '
+ ' where JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
+ ' and TX=''' + Qry_JHFPCSHB.FieldByName('TX').AsString + ''' and SDATE Is not null ';
if PY_IsExist(VG_SQLWhere) then
begin
CHQMsgBox('此分配分配单已发送!');
Exit;
end;
if Qry_JJNFPJH.FieldByName('ZT').Asstring = CG_DG then
begin
CHQMsgBox('分配单已签批!');
Exit;
end;
if Qry_JJNFPJH.FieldByName('ZT').Asstring = CG_YCL then
begin
CHQMsgBox('分配单已使用!');
Exit;
end;
//******************************************************************************
with Qry_JJNFPJH do
begin
Close;
Prepare;
Params[0].AsString := '1';
Params[1].AsString := '1';
Open;
end;
DoAppFPJH;
end;
procedure TFrmY_NDFPJHZD_LM.DoAppFPJH;
begin
try
Qry_JJNXQB.First;
if not Qry_JJNXQB.Eof then
with Qry_JJNXQB do
begin
Qry_JJNFPJH.BeforeInsert := nil;
DisableControls;
First;
while not Eof do
begin
{ VG_SQLWhere := 'select JHH from TY_JJNFPJH_LM '
+ ' where JHH =''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
+ ' and TX=''' + Qry_JHFPCSHB.FieldByName('TX').AsString
+ ''' and DWDM =''' + Qry_JJNXQB.FieldByName('SQDWDM').AsString + '''';
if PY_IsExist(VG_SQLWhere) then}
if Qry_JJNFPJH.Locate('DWDM', Qry_JJNXQB.FieldByName('SQDWDM').AsString, []) then
begin
Next;
Continue;
end;
with Qry_JJNFPJH do
begin
Append;
FieldByName('JHH').AsString := Qry_JHFPCSHB.FieldByName('JHH').AsString;
FieldByName('TX').AsString := Qry_JHFPCSHB.FieldByName('TX').AsString;
FieldByName('ND').AsString := ND.Text;
FieldByName('DWDM').AsString := Qry_JJNXQB.FieldByName('SQDWDM').AsString;
FieldByName('ZBR').AsString := VG_UserName;
FieldByName('PZR').AsString := '';
FieldByName('PPMC').AsString := Qry_JHFPCSHB.FieldByName('PPMC').AsString;
FieldByName('BZ').AsString := '';
FieldByName('ZT').AsString := CG_WCL;
FieldByName('JHFPZTS').AsInteger := Qry_JJNXQB.FieldByName('XQZTS').AsInteger;
FieldByName('DWJC').AsString := Qry_JJNXQB.FieldByName('DWJC').AsString;
SYZTS := SYZTS - Qry_JJNFPJH.FieldByName('JHFPZTS').AsInteger;
Post;
end;
Next;
end;
EnableControls;
Qry_JJNFPJH.First;
Qry_JJNFPJH.BeforeInsert := Qry_JJNFPJHBeforeInsert;
end;
except
Act_CancelExecute(nil);
end;
PS_SetStatus(False);
if SYZTS < 0 then
E_SYZTS.Font.Color := clRed
else
E_SYZTS.Font.Color := clBlack;
E_SYZTS.Text := IntToStr(SYZTS);
end;
procedure TFrmY_NDFPJHZD_LM.Act_DeleteFPJHExecute(Sender: TObject);
begin
if Qry_JJNFPJH.IsEmpty then
begin
CHQMsgBox('没有可删除的分配计划!');
Exit;
end;
VG_SQLWhere := 'select JHH from TY_JJNFPJH_LM '
+ ' where JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
+ ' and TX=''' + Qry_JHFPCSHB.FieldByName('TX').AsString
+ ''' and ZT=''' + CG_YCL + '''';
if PY_IsExist(VG_SQLWhere) then
begin
SS := '<<' + Qry_JHFPCSHB.FieldByName('PPMC').AsString + '>> 的分配计划已被使用!';
CHQMsgBox(Pchar(SS));
Exit;
end;
VG_SQLWhere := 'select JHH from TY_JJNFPJH_LM '
+ ' where JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
+ ' and TX=''' + Qry_JHFPCSHB.FieldByName('TX').AsString + ''' and SDate is not NULL';
if PY_IsExist(VG_SQLWhere) then
begin
SS := '<<' + Qry_JHFPCSHB.FieldByName('PPMC').AsString + '>> 的分配计划已发送!';
CHQMsgBox(Pchar(SS));
Exit;
end;
if CHQMsgBox('确定要删除分配计划吗?', 2) = IDNo then
exit;
try
with Qry_JJNFPJH do
begin
First;
while not EOF do
Delete;
end;
Act_SaveExecute(nil);
except
Act_CancelExecute(nil);
end;
if SYZTS < 0 then
E_SYZTS.Font.Color := clRed
else
E_SYZTS.Font.Color := clBlack;
E_SYZTS.Text := IntToStr(SYZTS);
end;
procedure TFrmY_NDFPJHZD_LM.Act_ModifyFPJHExecute(Sender: TObject);
begin
if Qry_JJNFPJH.IsEmpty then
begin
CHQMsgBox('没有可修改的分配计划!');
Exit;
end;
VG_SQLWhere := 'select JHH from TY_JJNFPJH_LM '
+ ' where JHH=''' + Qry_JHFPCSHB.FieldByName('JHH').AsString + ''''
+ ' and TX=''' + Qry_JHFPCSHB.FieldByName('TX').AsString
+ ''' and ZT=''' + CG_YCL + '''';
if PY_IsExist(VG_SQLWhere) then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -