📄 sy_qlbzd.pas
字号:
{*******************************************************}
{ }
{ 集邮票请领表制定 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
省级集邮票,省级集邮品管理 地市集邮品,地市集邮票
*)
unit SY_QLBZD;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, DBCtrls,
Mask, ToolEdit, CurrEdit, RXDBCtrl, Db, DBTables, RXCtrls, ImgList,
FieldComboBox;
type
TFrmY_QLBZD = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
BBt_Modify: TBitBtn;
BBt_Delete: TBitBtn;
BBt_Save: TBitBtn;
BBt_Cancel: TBitBtn;
BBt_Quit: TBitBtn;
ALi_Edit: TActionList;
Act_Add: TAction;
Act_Delete: TAction;
Act_Modify: TAction;
Act_Find: TAction;
Act_Print: TAction;
Act_Save: TAction;
Act_Cancel: TAction;
Qry_JJWXQB: TQuery;
DataSource1: TDataSource;
UpdateSQL1: TUpdateSQL;
Panel4: TPanel;
Label1: TLabel;
CB_SQDH: TComboBox;
Label2: TLabel;
XttxTitle: TRxLabel;
ImageList: TImageList;
BBt_Print: TBitBtn;
Label4: TLabel;
Label5: TLabel;
Qry_JJWXQBQLDH: TStringField;
Qry_JJWXQBTDM: TStringField;
Qry_JJWXQBDWDM: TStringField;
Qry_JJWXQBND: TStringField;
Qry_JJWXQBPPMC: TStringField;
Qry_JJWXQBXQZTS: TFloatField;
Qry_JJWXQBBZ: TStringField;
Qry_JJWXQBTPMS: TFloatField;
Qry_JJWXQBTPMZ: TFloatField;
Qry_JJWXQBZH: TStringField;
Panel5: TPanel;
Label6: TLabel;
BBt_Add: TBitBtn;
E_XQTS: TCurrencyEdit;
Mem_SY: TMemo;
Qry_JJWXQBZBR: TStringField;
Qry_JJWXQBZDRQ: TDateTimeField;
Qry_JJWXQBZT: TStringField;
E_ZH: TEdit;
Label8: TLabel;
E_PPMC: TEdit;
Label7: TLabel;
BBt_AddDW: TBitBtn;
BBt_DeleteDW: TBitBtn;
Label9: TLabel;
DBGrid1: TRxDBGrid;
CB_DWMC: TFieldComboBox;
Qry_JJWXQBTPSJ: TFloatField;
RG_JB: TRadioGroup;
Qry_Static: TQuery;
Bbt_Send: TBitBtn;
Label3: TLabel;
ND: TSpinEdit;
Qry_JJWXQBSDATE: TDateTimeField;
procedure FormCreate(Sender: TObject);
procedure NDChange(Sender: TObject);
procedure Act_AddExecute(Sender: TObject);
procedure Act_DeleteExecute(Sender: TObject);
procedure Act_ModifyExecute(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure Act_CancelExecute(Sender: TObject);
procedure CB_SQDWChange(Sender: TObject);
procedure BBt_PrintClick(Sender: TObject);
procedure Qry_JJWXQBXQZTSGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Qry_JJWXQBXQZTSSetText(Sender: TField; const Text: string);
procedure E_ZHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BBt_AddDWClick(Sender: TObject);
procedure BBt_DeleteDWClick(Sender: TObject);
procedure Qry_JJWXQBTPMZGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure RG_JBClick(Sender: TObject);
procedure Bbt_SendClick(Sender: TObject);
procedure Qry_JJWXQBBeforeInsert(DataSet: TDataSet);
private
V_QLDH, V_DWDM: string;
procedure PS_SetStatus(Value: Boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_QLBZD: TFrmY_QLBZD;
implementation
uses
pub, SY_DataSend, GY_ADDPPDM, GY_JHWXQCX_RPT, DATAS;
{$R *.DFM}
procedure TFrmY_QLBZD.FormCreate(Sender: TObject);
begin
// DWMC.Caption := ' 使用单位:' + VG_UnitName;
RG_JBClick(nil);
ND.Value := VG_Year;
PS_SetStatus(True);
end;
procedure TFrmY_QLBZD.NDChange(Sender: TObject);
begin
Mem_SY.Text := '';
Qry_JJWXQB.Close;
CB_SQDH.Items.Clear;
CB_SQDH.OnChange := nil;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('Select DISTINCT QLDH from TY_JJWXQB ');
SQL.Add('Where ND =''' + ND.Text + '''');
SQL.Add('and DWDM =''' + CB_DWMC.FieldString + '''');
SQL.Add('and ZT =''' + CG_WCL + '''');
SQL.Add('order by QLDH DESC');
Open;
while not Eof do
begin
CB_SQDH.Items.Add(Fields[0].AsString);
Next;
end;
Close;
end;
CB_SQDH.OnChange := CB_SQDWChange;
if CB_SQDH.Items.Count > 0 then
CB_SQDH.ItemIndex := 0;
CB_SQDWChange(nil);
end;
procedure TFrmY_QLBZD.Act_AddExecute(Sender: TObject);
begin
if CB_DWMC.Text = '' then exit;
V_DWDM := CB_DWMC.FieldString;
V_QLDH := 'QLDH000000';
with Qry_JJWXQB do
begin
Close;
ParamByName('QLDH').AsString := V_QLDH;
Open;
end;
Mem_SY.Text := '';
Mem_SY.SetFocus;
PS_SetStatus(False);
end;
procedure TFrmY_QLBZD.Act_DeleteExecute(Sender: TObject);
begin
// if Qry_JJWXQB.IsEmpty then Exit;
if Qry_JJWXQB.IsEmpty then
begin
CHQMsgBox('请选择要进行处理的申请单号!');
Exit;
end;
if not Qry_JJWXQB.FieldByName('SDate').IsNull then
begin
CHQMsgBox('此数据已发送!');
Exit;
end;
if Qry_JJWXQB.FieldByName('ZT').Asstring <> CG_WCL then
begin
CHQMsgBox('分配单已处理!');
Exit;
end;
if CHQMsgBox('确实要删除吗?', 2) = IDNO then Exit;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('Delete TY_JJWXQB ');
SQL.Add('where QLDH=:QLDH ');
Prepare;
Params[0].AsString := V_QLDH;
ExecSQL;
end;
{ if Qry_JJWXQB.IsEmpty then Exit;
with Qry_JJWXQB do
begin
First;
while not Eof do
Delete;
end ;
PS_SetStatus(False); }
NDChange(nil);
end;
procedure TFrmY_QLBZD.Act_ModifyExecute(Sender: TObject);
begin
if Qry_JJWXQB.IsEmpty then
begin
CHQMsgBox('请选择要进行处理的申请单号!');
Exit;
end;
if not Qry_JJWXQB.FieldByName('SDate').IsNull then
begin
CHQMsgBox('此数据已发送!');
Exit;
end;
if Qry_JJWXQB.FieldByName('ZT').Asstring <> CG_WCL then
begin
CHQMsgBox('分配单已处理!');
Exit;
end;
if Qry_JJWXQB.IsEmpty then Exit;
Qry_JJWXQB.Edit;
PS_SetStatus(False);
end;
procedure TFrmY_QLBZD.Act_SaveExecute(Sender: TObject);
function CheckEmpty: boolean;
begin
Result := true;
with Qry_JJWXQB do
begin
first;
while not Eof do
begin
if FieldByName('XQZTS').AsFloat > 0 then
begin
Result := false;
exit;
end;
Next;
end;
end;
end;
begin
//******************************************************************************
if CheckEmpty then
exit;
if (V_QLDH = 'QLDH000000') and (not Qry_JJWXQB.IsEmpty) then
begin
V_QLDH := GetQLDH(V_DWDM);
with Qry_JJWXQB do
begin
First;
Edit;
if not Eof then
FieldByName('BZ').AsString := Mem_SY.Text;
post;
while not Eof do
begin
Edit;
FieldByName('QLDH').AsString := V_QLDH;
Next;
end;
First;
end;
CB_SQDH.Items.Insert(0, V_QLDH);
CB_SQDH.ItemIndex := 0;
end;
//******************************************************************************
with Qry_JJWXQB do
begin
First;
Edit;
if (not Eof) and (FieldByName('BZ').AsString <> Mem_SY.Text) then
FieldByName('BZ').AsString := Mem_SY.Text;
while not Eof do
begin
if FieldByName('XQZTS').AsInteger = 0 then
begin
Delete;
Continue;
end;
Next;
end;
First;
end;
with Qry_JJWXQB do
begin
Database.StartTransaction;
try
ApplyUpdates;
Database.Commit;
Close;
Open;
except
Database.RollBack;
CHQMsgBox('数据存储错误!');
exit;
end;
CommitUpdates; //清除缓存的内容
end;
PS_SetStatus(True);
NDChange(nil);
// CB_SQDWChange(nil);
end;
procedure TFrmY_QLBZD.Act_CancelExecute(Sender: TObject);
begin
Qry_JJWXQB.CancelUpdates;
Qry_JJWXQB.CommitUpdates;
PS_SetStatus(TRUE);
NDChange(nil);
end;
procedure TFrmY_QLBZD.PS_SetStatus(Value: Boolean);
begin
BBt_Add.Enabled := Value;
BBt_Delete.Enabled := Value;
BBt_Modify.Enabled := Value;
BBt_Print.Enabled := Value;
Bbt_Send.Enabled := Value;
BBt_Save.Enabled := not Value;
BBt_Cancel.Enabled := not Value;
DBGrid1.ReadOnly := Value;
Panel5.Enabled := not Value;
BBt_AddDW.Enabled := not Value;
BBt_DeleteDW.Enabled := not Value;
CB_DWMC.Enabled := Value;
ND.Enabled := Value;
CB_SQDH.Enabled := Value;
Mem_SY.ReadOnly := Value;
RG_JB.Enabled := Value;
end;
procedure TFrmY_QLBZD.CB_SQDWChange(Sender: TObject);
begin
Mem_SY.Text := '';
if CB_SQDH.Text = '' then Exit;
with Qry_JJWXQB do
begin
Close;
ParamByName('QLDH').AsString := CB_SQDH.Text;
Open;
First;
if not Eof then
begin
Mem_SY.Text := FieldByName('BZ').AsString;
end;
end;
V_DWDM := Qry_JJWXQB.FieldByName('DWDM').AsString;
V_QLDH := CB_SQDH.Text;
end;
procedure TFrmY_QLBZD.BBt_PrintClick(Sender: TObject);
begin
// if Qry_JJWXQB.IsEmpty then Exit;
if Qry_JJWXQB.IsEmpty then
begin
CHQMsgBox('请选择要进行处理的申请单号!');
Exit;
end;
JHWXQCX_RPT := TJHWXQCX_RPT.Create(nil);
try
JHWXQCX_RPT.Qry_Print.ParamByName('QLDH').AsString := CB_SQDH.Text;
JHWXQCX_RPT.dwmC.Caption := CB_DWMC.Text;
JHWXQCX_RPT.QRM_BZ.Lines := Mem_SY.Lines;
JHWXQCX_RPT.Qry_Print.Open;
JHWXQCX_RPT.Preview;
finally
JHWXQCX_RPT.Free;
end;
end;
procedure TFrmY_QLBZD.Qry_JJWXQBXQZTSGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
Text := FormatFloat('#,##0', Sender.AsFloat);
end;
procedure TFrmY_QLBZD.Qry_JJWXQBXQZTSSetText(Sender: TField;
const Text: string);
begin
if Text = '' then
Sender.AsInteger := 0
else
Sender.AsInteger := StrToInt(Text);
end;
procedure TFrmY_QLBZD.E_ZHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
begin
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('Select TDM,ZH,TPMS,TPMZ,TPSJ,TMC from TB_YZPPTXXB ');
SQL.Add('where UPPER(ZH) =''' + UpperCase(E_ZH.Text) + '''');
Open;
if not Eof then
begin
E_PPMC.Text := Qry_Static.FieldByName('TMC').AsString;
E_XQTS.SetFocus;
end
else
begin
E_ZH.SelectAll;
E_ZH.SetFocus;
end;
end;
end;
end;
procedure TFrmY_QLBZD.BBt_AddDWClick(Sender: TObject);
begin
FrmY_ADDPPDM1 := TFrmY_ADDPPDM1.Create(nil);
with FrmY_ADDPPDM1 do
begin
DBG_YZPPTXXB.Options := DBG_YZPPTXXB.Options + [dgMultiSelect];
ShowModal;
if ModalResult <> MrOK then
begin
Free;
Exit;
end;
with Qry_PPDM do
begin
First;
Qry_JJWXQB.BeforeInsert := nil;
while not Eof do
begin
if DBG_YZPPTXXB.SelectedRows.CurrentRowSelected then
if not Qry_JJWXQB.Locate('TDM', FieldByName('TDM').AsString, [loPartialKey]) then
begin
Qry_JJWXQB.Append;
Qry_JJWXQB.FieldByName('QLDH').AsString := V_QLDH;
Qry_JJWXQB.FieldByName('ZH').AsString := FieldByName('ZH').AsString;
Qry_JJWXQB.FieldByName('TDM').AsString := FieldByName('TDM').AsString;
Qry_JJWXQB.FieldByName('PPMC').AsString := FieldByName('TMC').AsString;
Qry_JJWXQB.FieldByName('TPMS').AsInteger := FieldByName('TPMS').AsInteger;
Qry_JJWXQB.FieldByName('TPMZ').AsInteger := FieldByName('TPMZ').AsInteger;
Qry_JJWXQB.FieldByName('TPSJ').AsInteger := FieldByName('TPSJ').AsInteger;
Qry_JJWXQB.FieldByName('DWDM').AsString := V_DWDM;
Qry_JJWXQB.FieldByName('XQZTS').AsInteger := 0;
Qry_JJWXQB.FieldByName('ND').AsString := Self.ND.Text;
Qry_JJWXQB.FieldByName('ZT').Asstring := CG_WCL;
Qry_JJWXQB.FieldByName('ZBR').Asstring := VG_UserName;
Qry_JJWXQB.FieldByName('ZDRQ').AsString := FormatDateTime('yyyy-mm-dd', GetSysDate);
end;
Next;
end;
Qry_JJWXQB.BeforeInsert := Qry_JJWXQBBeforeInsert;
end;
Free;
end;
DBGrid1.SetFocus;
Qry_JJWXQB.Edit;
end;
procedure TFrmY_QLBZD.BBt_DeleteDWClick(Sender: TObject);
begin
if Qry_JJWXQB.IsEmpty then Exit;
Qry_JJWXQB.Delete;
end;
procedure TFrmY_QLBZD.Qry_JJWXQBTPMZGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
if Sender.IsNull then Exit;
Text := FloatToStr(Sender.AsFloat / 100);
end;
procedure TFrmY_QLBZD.RG_JBClick(Sender: TObject);
begin
Bbt_Send.Visible := RG_JB.ItemIndex = 0;
CB_DWMC.ClearAll;
if RG_JB.ItemIndex = 1 then
begin
XttxTitle.Caption := '集邮票请领表制定';
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('select DWJC DWMC,DWDM from TGS_GXDWSJB ');
SQL.Add('where JYYW=''1'' and FHDX=''1'' order by PXM');
Open;
while not Eof do
begin
CB_DWMC.Items.Add(Fields[0].AsString);
CB_DWMC.FieldItems.Add(Fields[1].AsString);
Next;
end;
Close;
end;
end
else
begin
XttxTitle.Caption := '本级请领表制定';
CB_DWMC.Items.Add(VG_UnitName);
CB_DWMC.FieldItems.Add(VG_UnitID);
end;
CB_DWMC.ItemIndex := 0;
NDChange(nil);
end;
procedure TFrmY_QLBZD.Bbt_SendClick(Sender: TObject);
begin
if Qry_JJWXQB.IsEmpty then
begin
CHQMsgBox('请选择要上报的请领单报表!');
Exit;
end;
VG_SQLWhere := ' select * from TY_JJWXQB '
+ ' where QLDH =''' + V_QLDH + ''' ';
if SendData(VG_SQLWhere, 'TY_JJWXQB', false) = IDOK then
CHQMsgBox('信息发送成功!');
end;
procedure TFrmY_QLBZD.Qry_JJWXQBBeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -