📄 bxpzlr.pas
字号:
unit bxpzlr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DB, DBTables, dxExEdtr, ImgList, DBCtrlsEh,
StdCtrls, Mask, dxDBTLCl, dxGrClms, dxTL, dxDBCtrl, dxCntner, dxDBGrid,
DBCtrls, ExtCtrls, ComCtrls, ToolWin, BUMessageBox, BUTypes, dxLayout,
dxGrClEx;
type
Tfrmbxpzlr = class(TForm)
CoolBar1: TCoolBar;
oToolBar: TToolBar;
NewButton: TToolButton;
EditButton: TToolButton;
SaveButton: TToolButton;
DeleteButton: TToolButton;
PrintButton: TToolButton;
PrintviewButton: TToolButton;
ToolButton3: TToolButton;
DBNavigator: TDBNavigator;
ToolButton7: TToolButton;
ExitButton: TToolButton;
Panel1: TPanel;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBText1: TDBText;
Label6: TLabel;
BxpzmxdxDBGrid: TdxDBGrid;
BxbmDBEditEh: TDBEditEh;
bxryDBEditEh: TDBEditEh;
BxrqDBEditEh: TDBDateTimeEditEh;
ImageList: TImageList;
bxpzmxDataSource: TDataSource;
bxpzmxtable: TTable;
bxpzTable: TTable;
bxpzDataSource: TDataSource;
BxpzmxdxDBGridColumn1: TdxDBGridColumn;
BUMessageBox: TBUMessageBox;
ygdaTable: TTable;
ygdaDataSource: TDataSource;
bmmlDataSource: TDataSource;
bmmlTable: TTable;
DBText2: TDBText;
CxQuery: TQuery;
BxpzmxdxDBGridColumn3: TdxDBGridCurrencyColumn;
BxpzmxdxDBGridColumn2: TdxDBGridExtLookupColumn;
dxDBGridLayoutList1: TdxDBGridLayoutList;
dxDBGridLayoutList1Item1: TdxDBGridLayout;
fylxTable: TTable;
fylxDataSource: TDataSource;
fylxTablefybh: TStringField;
fylxTablefymc: TStringField;
bxpzmxtablepz_bh: TStringField;
bxpzmxtablepz_zy: TStringField;
bxpzmxtablepz_lxbh: TStringField;
bxpzmxtablepz_bxje: TFloatField;
bxpzmxtablepz_jlbh: TSmallintField;
bxpzmxtablepz_fymc: TStringField;
procedure ExitButtonClick(Sender: TObject);
procedure SaveButtonClick(Sender: TObject);
procedure BxpzmxdxDBGridColumn1DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: string;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
procedure BxpzmxdxDBGridColumn3DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: string;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
procedure NewButtonClick(Sender: TObject);
procedure DBNavigatorClick(Sender: TObject; Button: TNavigateBtn);
procedure bxryDBEditEhExit(Sender: TObject);
procedure DBEditEh1EditButtons0Click(Sender: TObject; var Handled: Boolean);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure EditButtonClick(Sender: TObject);
procedure BxpzmxdxDBGridEditChange(Sender: TObject);
procedure BxbmDBEditEhChange(Sender: TObject);
procedure bxryDBEditEhChange(Sender: TObject);
procedure BxrqDBEditEhChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bxryDBEditEhEditButtons0Click(Sender: TObject;
var Handled: Boolean);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBNavigatorBeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure BxbmDBEditEhExit(Sender: TObject);
private
{ Private declarations }
procedure Editenabled(const enabledzt: Boolean);
function dataverify(Verify_lx: string): Boolean; //数据校验函数
function datasave: Boolean; //数据保存函数
function Getmaxbxpzdh: string; //凭证单编号生成器
function DataSummary(Summarylx: string): string; //合计统计函数
public
{ Public declarations }
end;
var
frmbxpzlr: Tfrmbxpzlr;
bxpz_pzcxbh: string;
bxpz_bjzt: string; //编辑状态
bxpz_recordcount: string; //记录数量
bxpz_bxjehj: string; //报销金额合计
//bxpz_save: Boolean;
implementation
uses bmmlcx, mainform, PubProc, ygzlxz;
{$R *.dfm}
procedure Tfrmbxpzlr.ExitButtonClick(Sender: TObject);
begin
Close;
end;
procedure Tfrmbxpzlr.SaveButtonClick(Sender: TObject);
var
lsbl_save: Boolean;
begin
lsbl_save := dataverify('111');
if lsbl_save = True then
begin
lsbl_save := datasave();
if lsbl_save = True then
begin
ygdatable.CancelUpdates;
bmmltable.CancelUpdates;
SaveButton.Enabled := False;
bxpz_bjzt := '';
Editenabled(False);
BxpzmxdxDBGrid.OptionsView := [edgoBandHeaderWidth, edgoIndicator, edgoRowSelect];
bxpz_pzcxbh := bxpzTable.FieldByName('pz_bh').AsString;
bxpzmxtable.Filter := '[pz_bh]=''' + bxpz_pzcxbh + '''';
bxpzmxtable.Filtered := True;
end;
end;
end;
procedure Tfrmbxpzlr.BxpzmxdxDBGridColumn1DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: string;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
AFont.Color := clYellow;
AAlignment := taLeftJustify;
AText := '记录数:' + bxpz_recordcount;
end;
procedure Tfrmbxpzlr.BxpzmxdxDBGridColumn3DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: string;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
AFont.Color := clYellow;
AAlignment := taRightJustify;
AText := bxpz_bxjehj;
end;
procedure Tfrmbxpzlr.NewButtonClick(Sender: TObject);
begin
bxpz_bjzt := 'New';
bxpz_pzcxbh := '';
bxpztable.Append;
bxpztable.FieldByName('pz_zdr').AsString := sys_czyxm;
ygdatable.Edit;
bmmltable.Edit;
bxpzmxtable.Append;
bxpzmxtable.Filter := '[pz_bh]=''' + bxpz_pzcxbh + '''';
bxpzmxtable.Filtered := True;
BxrqDBEditEh.Value := Now;
Editenabled(True);
EditButton.Enabled := False;
DeleteButton.Enabled := False;
BxbmDBEditEh.SetFocus;
end;
procedure Tfrmbxpzlr.DBNavigatorClick(Sender: TObject; Button: TNavigateBtn);
begin
bxpz_pzcxbh := bxpzTable.FieldByName('pz_bh').AsString;
bxpzmxtable.Filter := '[pz_bh]=''' + bxpz_pzcxbh + '''';
bxpzmxtable.Filtered := True;
bxpz_recordcount := DataSummary('Count');
bxpz_bxjehj := DataSummary('Summary');
Editenabled(False);
end;
procedure Tfrmbxpzlr.bxryDBEditEhExit(Sender: TObject);
var
lsbl_bxrycxdata, lsbl_bxry: string;
begin
if bxpz_bjzt <> '' then
begin
lsbl_bxry := Trim(bxryDBEditEh.Text);
if lsbl_bxry <> '' then
begin
case Getryfunction(lsbl_bxry) of
0: lsbl_bxrycxdata := '';
1:
begin
bxpztable.FieldByName('pz_rybh').AsString := selecttext1;
Exit;
end;
2: lsbl_bxrycxdata := lsbl_bxry;
end;
selecttext1 := '';
selecttext2 := '';
frmygzlxz := Tfrmygzlxz.Create(Self);
with frmygzlxz do
begin
fwrycx_data := lsbl_bxrycxdata;
ShowModal;
end;
if selecttext1 <> '' then
begin
bxpztable.FieldByName('pz_rybh').AsString := selecttext1;
end
else
begin
bxryDBEditEh.SetFocus;
Exit;
end;
end
else
begin
BUMessageBox.Text := '【报销人员】不能为空,请选择【报销人员】';
BUMessageBox.style := bsOk;
BUMessageBox.Display := bdIconWarning;
BUMessageBox.Execute;
bxryDBEditEh.SetFocus;
Exit;
end;
end;
end;
procedure Tfrmbxpzlr.DBEditEh1EditButtons0Click(Sender: TObject;
var Handled: Boolean);
begin
selecttext1 := '';
selecttext2 := '';
selectboolean := False;
frmbmmlcx := Tfrmbmmlcx.Create(Self);
frmbmmlcx.ShowModal;
if selectboolean = True then
begin
BxbmDBEditEh.Text := selecttext2;
bxpztable.FieldByName('pz_bmbh').AsString := selecttext1;
end;
end;
procedure Tfrmbxpzlr.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if not (ActiveControl is TdxDbgrid) then
begin
Key := #0;
SelectNext(ActiveControl, True, True);
end;
end;
procedure Tfrmbxpzlr.Editenabled(const enabledzt: Boolean);
begin
BxbmDBEditEh.enabled := enabledzt;
BxryDBEditEh.enabled := enabledzt;
BxrqDBEditEh.enabled := enabledzt;
SaveButton.Enabled := False;
NewButton.Enabled := True;
if bxpztable.RecordCount = 0 then
begin
EditButton.Enabled := False;
DeleteButton.Enabled := False;
end
else
begin
EditButton.Enabled := True;
DeleteButton.Enabled := True;
end;
if enabledzt = True then
begin
BxbmDBEditEh.Font.Color := clBlack;
BxryDBEditEh.Font.Color := clBlack;
BxrqDBEditEh.Font.Color := clBlack;
BxpzmxdxDBGrid.OptionsView := [edgoBandHeaderWidth, edgoDrawEndEllipsis, edgoHideFocusRect, edgoHotTrack, edgoIndicator];
end
else
begin
BxbmDBEditEh.Font.Color := clGray;
BxryDBEditEh.Font.Color := clGray;
BxrqDBEditEh.Font.Color := clGray;
BxpzmxdxDBGrid.OptionsView := [edgoBandHeaderWidth, edgoDrawEndEllipsis, edgoHideFocusRect, edgoHotTrack, edgoIndicator, edgoRowSelect];
end;
end;
procedure Tfrmbxpzlr.EditButtonClick(Sender: TObject);
begin
bxpz_bjzt := 'Edit';
bxpztable.Edit;
ygdatable.Edit;
bmmltable.Edit;
bxpzmxtable.Edit;
Editenabled(True);
NewButton.Enabled := False;
DeleteButton.Enabled := False;
BxbmDBEditEh.SetFocus;
end;
procedure Tfrmbxpzlr.BxpzmxdxDBGridEditChange(Sender: TObject);
begin
if bxpz_bjzt <> '' then
SaveButton.Enabled := True;
end;
procedure Tfrmbxpzlr.BxbmDBEditEhChange(Sender: TObject);
begin
if bxpz_bjzt <> '' then
SaveButton.Enabled := True;
end;
procedure Tfrmbxpzlr.bxryDBEditEhChange(Sender: TObject);
begin
if bxpz_bjzt <> '' then
SaveButton.Enabled := True;
end;
procedure Tfrmbxpzlr.BxrqDBEditEhChange(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -