📄 baseaccountvoucher.pas
字号:
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 + -