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

📄 baseaccountvoucher.pas

📁 中小企业管理系统------ ERP系统原代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit BaseAccountVoucher;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  BaseForm, ImgList, ExtCtrls, DBData,
  dxBar, dxBarExtItems, Menus, KsSkinForms,
  KsSkinPanels, dxExEdtr, dxEdLib, dxDBELib, Variants,
  KsSkinLabels, dxCntner, dxEditor, dxTL, sncCurrency, dxTLClms, dxDBCtrl,
  dxDBGrid, DB, ADODB, dxDBTLCl, dxGrClms, sncDBCurrency, Grids, DBGrids,
  StdCtrls, se_controls;

type
  TfrmBaseAccountVoucher = class(TfrmBaseForm)
    dxBarManager1: TdxBarManager;
    bbAdd: TdxBarLargeButton;
    bbEdit: TdxBarLargeButton;
    bbDel: TdxBarLargeButton;
    bbType: TdxBarLargeButton;
    bbPrint: TdxBarLargeButton;
    bbExit: TdxBarLargeButton;
    PopupMenu1: TdxBarPopupMenu;
    pbbPrint: TdxBarButton;
    pbbPrintView: TdxBarButton;
    pbbPrintCustom: TdxBarButton;
    pbbPrintInit: TdxBarButton;
    bbFind: TdxBarLargeButton;
    bbDate: TdxBarLargeButton;
    SeSkinLabel1: TSeSkinLabel;
    SeSkinLabel4: TSeSkinLabel;
    SeSkinLabel5: TSeSkinLabel;
    SeSkinLabel6: TSeSkinLabel;
    lblBillDate: TSeSkinLabel;
    lblUserCode: TSeSkinLabel;
    SeSkinLabel2: TSeSkinLabel;
    SeSkinLabel3: TSeSkinLabel;
    lblMemo: TSeSkinLabel;
    dxBarLargeButton1: TdxBarLargeButton;
    dxBarLargeButton2: TdxBarLargeButton;
    dxBarLargeButton3: TdxBarLargeButton;
    bbSave: TdxBarLargeButton;
    bbIns: TdxBarLargeButton;
    bbDelRow: TdxBarLargeButton;
    dxBarLargeButton7: TdxBarLargeButton;
    CurrencyEdit: TsncDBCurrencyEdit;
    CurrencyLabel1: TsncCurrencyLabel;
    CurrencyLabel2: TsncCurrencyLabel;
    dsMaster: TDataSource;
    ADOSetMaster: TADODataSet;
    dsList: TDataSource;
    ADOSetList: TADODataSet;
    edtUserCode: TdxDBEdit;
    edtAccessory: TdxDBEdit;
    edtMemo: TdxDBEdit;
    edtDate: TdxDBDateEdit;
    gridMain: TdxDBGrid;
    gridMainSummary: TdxDBGridButtonColumn;
    gridMainSubjectName: TdxDBGridButtonColumn;
    gridMainDebitTotal: TdxDBGridMaskColumn;
    gridMainLenderTotal: TdxDBGridMaskColumn;
    edtE1: TdxEdit;
    dxEdit1: TdxEdit;
    dxEdit2: TdxEdit;
    GridPopMenu: TdxBarPopupMenu;
    procedure bbExitClick(Sender: TObject);
    procedure pbbPrintClick(Sender: TObject);
    procedure pbbPrintViewClick(Sender: TObject);
    procedure pbbPrintCustomClick(Sender: TObject);
    procedure pbbPrintInitClick(Sender: TObject);
    procedure bbPrintClick(Sender: TObject);
    procedure gridMainCustomDrawCell(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
      ASelected, AFocused, ANewItemRow: Boolean; var AText: string;
      var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
      var ADone: Boolean);
    procedure gridMainChangeColumn(Sender: TObject; Node: TdxTreeListNode;
      Column: Integer);
    procedure CurrencyEditMoveOut(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure gridMainCustomDrawBand(Sender: TObject;
      ABand: TdxTreeListBand; ACanvas: TCanvas; ARect: TRect;
      var AText: string; var AColor: TColor; AFont: TFont;
      var AAlignment: TAlignment; var ADone: Boolean);
    procedure bbInsClick(Sender: TObject);
    procedure bbDelRowClick(Sender: TObject);
    procedure dxBarLargeButton7Click(Sender: TObject);
    procedure gridMainChangedColumnsWidth(Sender: TObject);
    procedure CurrencyEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure gridMainKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
    procedure gridMainKeyPress(Sender: TObject; var Key: Char);
    procedure ADOSetListRecordChangeComplete(DataSet: TCustomADODataSet;
      const Reason: TEventReason; const RecordCount: Integer;
      const Error: Error; var EventStatus: TEventStatus);
    procedure edtDateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure gridMainMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure gridMainCustomDraw(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
      const AText: string; AFont: TFont; var AColor: TColor; ASelected,
      AFocused: Boolean; var ADone: Boolean);
  private
    { Private declarations }
    bReturn: Boolean;
    function ShowCurrecyEdit(ARect: TRect): boolean;
    function DrawCurrencyEdit(ACanvas: TCanvas; ARect: TRect; AText: string):
      Boolean;
    function CheckCurrencyField(FieldName: string): Boolean;
    procedure GridDrawSummaryFooter(Sender: TObject; ACanvas: TCanvas; ARect:
      TRect;
      var AText: string; var AAlignment: TAlignment; AFont: TFont; var AColor:
      TColor;
      var ADone: Boolean);
    procedure LoadGrid;
    procedure LoadData;
    function ChangeCells: Boolean;
  public
    { Public declarations }
  protected
    lSumRow: Integer;
    bDrawFullGrid: Boolean;
    function SetCurrecyLable: Boolean;
    procedure BaseMainShow;
  end;
const
  CurrencyCol: array[0..1] of string = ('DebitTotal', 'LenderTotal');

function BaseAccountVoucherShow: Boolean;

implementation

uses SysPublic;

{$R *.DFM}

function BaseAccountVoucherShow: Boolean;
var
  frmBaseAccountVoucher: TfrmBaseAccountVoucher;
begin
  frmBaseAccountVoucher := TfrmBaseAccountVoucher.Create(Application);
  with frmBaseAccountVoucher do
  begin
    BaseMainShow;
    Result := bReturn;
    Free;
  end;
end;

function TfrmBaseAccountVoucher.CheckCurrencyField(FieldName: string): Boolean;
var
  I: Integer;
begin
  Result := False;
  for I := 0 to Length(CurrencyCol) - 1 do
  begin
    if (FieldName = CurrencyCol[I]) then
    begin
      Result := True;
      Break;
    end;
  end;
end;

procedure TfrmBaseAccountVoucher.BaseMainShow;
begin
  LoadGrid;
  LoadData;
end;

procedure TfrmBaseAccountVoucher.LoadGrid;
begin
  bReturn := false;
  lSumRow := -1;
  Caption := '记财凭证';
  CurrencyEdit.Parent := gridMain;
  gridMainDebitTotal.OnDrawSummaryFooter := GridDrawSummaryFooter;
  gridMainLenderTotal.OnDrawSummaryFooter := GridDrawSummaryFooter;
end;

function TfrmBaseAccountVoucher.SetCurrecyLable: Boolean;
begin
  CurrencyLabel1.Parent := gridMain;
  CurrencyLabel2.Parent := gridMain;
  with gridMain do
  begin
    Bands[0].Width := Columns[0].Width;
    Bands[1].Width := Columns[1].Width;
    Bands[2].Width := Columns[2].Width;
    Bands[3].Width := Columns[3].Width;
    CurrencyLabel1.Left := Bands[0].Width + Bands[1].Width - 1;
    CurrencyLabel1.Width := Bands[2].Width + 1;
    CurrencyLabel1.Top := 14;
    CurrencyLabel2.Left := Bands[0].Width + Bands[1].Width + Bands[2].Width - 1;
    CurrencyLabel2.Width := Bands[3].Width + 1;
    CurrencyLabel2.Top := 14;
  end;
  CurrencyLabel1.Visible := True;
  CurrencyLabel2.Visible := True;
  Result := True;
end;

procedure TfrmBaseAccountVoucher.LoadData;
begin
end;

procedure TfrmBaseAccountVoucher.bbExitClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmBaseAccountVoucher.pbbPrintClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, PRINT_REPORT, sPrintFile);
end;

procedure TfrmBaseAccountVoucher.pbbPrintViewClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, SHOW_REPORT, sPrintFile);
end;

procedure TfrmBaseAccountVoucher.pbbPrintCustomClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, DESIGN_REPORT, sPrintFile);
end;

procedure TfrmBaseAccountVoucher.pbbPrintInitClick(Sender: TObject);
begin
  inherited;
  PrintForm(Self, 1, INITI_REPORT, sPrintFile);
end;

procedure TfrmBaseAccountVoucher.bbPrintClick(Sender: TObject);
begin
  inherited;
  pbbPrintViewClick(nil);
end;

procedure TfrmBaseAccountVoucher.gridMainCustomDrawCell(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
  var AText: string; var AColor: TColor; AFont: TFont;
  var AAlignment: TAlignment; var ADone: Boolean);
begin
  inherited;
  SetGridColor(ANode, AColor);
  if CheckCurrencyField(TdxDBTreeListColumn(AColumn).FieldName) then
  begin
    if AFocused then
      ShowCurrecyEdit(ARect)
    else
      ADone := DrawCurrencyEdit(ACanvas, ARect, AText);
  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -