⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bxpzlr.pas

📁 服务信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -