📄 tx_file_u.pas
字号:
unit tx_file_u;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGridEh, RzTabs, ADODB, RzButton,
StdCtrls, Mask, RzEdit, ComCtrls, ExtCtrls, RzPanel, RzCmboBx,
TFlatMaskEditUnit, TFlatMaskDateUnit, RzStatus, WinSkinData, DBGridEhImpExp;
type
Tcxbsj_f = class(TForm)
DataSource1: TDataSource;
SaveDlg: TSaveDialog;
btn_sc: TRzBitBtn;
btn_exit: TRzBitBtn;
RzGroupBox1: TRzGroupBox;
Label1: TLabel;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
dbg_xs: TDBGridEh;
btn_cx: TRzBitBtn;
DataSource2: TDataSource;
StatusBar1: TStatusBar;
SkinData1: TSkinData;
btn_hf: TRzBitBtn;
Dialog1: TOpenDialog;
edt_bm: TRzEdit;
Label3: TLabel;
cbx_bm: TRzComboBox;
procedure btn_exitClick(Sender: TObject);
procedure btn_cxClick(Sender: TObject);
procedure edt_qssjKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cbx_lxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dbg_xsDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure btn_hfClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn_scClick(Sender: TObject);
procedure cbx_bmChange(Sender: TObject);
procedure cbx_bmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_bmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_bmChange(Sender: TObject);
private
{ Private declarations }
procedure p_mouse(lx:integer);
public
{ Public declarations }
end;
var
cxbsj_f: Tcxbsj_f;
implementation
uses dm_u;
{$R *.dfm}
procedure Tcxbsj_f.p_mouse(lx: Integer); //控制鼠标形状
begin
if lx = 1 then Screen.Cursor := -19 //等待状态
else Screen.Cursor := -2; //恢复原状
end;
procedure Tcxbsj_f.btn_exitClick(Sender: TObject);
begin
close;
end;
procedure Tcxbsj_f.btn_cxClick(Sender: TObject);
var sql: string;
begin
p_mouse(1);
with dm.ads1 do
begin
close;
commandtext := 'select * from ' + edt_bm.Text;
open;
dbg_xs.Columns[0].Footer.valuetype:=fvtStaticText;
dbg_xs.Columns[0].Footer.value:='总计:';
dbg_xs.Columns[1].Footer.valuetype:=fvtCount;
end;
p_mouse(0);
end;
procedure Tcxbsj_f.edt_qssjKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
perform(wm_nextdlgctl, 0, 0);
end;
procedure Tcxbsj_f.cbx_lxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then btn_cx.SetFocus;
end;
procedure Tcxbsj_f.dbg_xsDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if gdSelected in State then Exit; //隔行改变网格背景色:
if dm.ads1.RecNo mod 2 = 0 then
(Sender as TDBGridEh).Canvas.Brush.Color := clwhite //clinfobk //定义背景颜色
else
(Sender as TDBGridEh).Canvas.Brush.Color := clCream; //RGB(191, 255, 223); //定义背景颜色
//定义网格线的颜色:
dbg_xs.DefaultDrawColumnCell(Rect, DataCol, Column, State);
with (Sender as TDBGridEh).Canvas do //画 cell 的边框
begin
Pen.Color := $00D8E9EC; //$00ff0000; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
Pen.Color := clbtnface; //定义画笔颜色(兰色)
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色
end;
end;
procedure Tcxbsj_f.btn_hfClick(Sender: TObject);
begin
Dialog1.filter := 'Skin files (*.skn)|*.SKN';
Dialog1.initialdir := '..\..\skins\';
if Dialog1.execute then
SkinData1.skinfile := dialog1.filename;
if not SkinData1.Active then
SkinData1.Active := true;
end;
procedure Tcxbsj_f.FormCreate(Sender: TObject);
begin
rzpagecontrol1.ActivePageIndex := 0;
with dm.ads2 do
begin
close;
commandtext:='select * from tab order by tname';
open;
first;
while not eof do
begin
cbx_bm.Items.Add(fieldbyname('tname').AsString);
next;
end;
end;
end;
procedure Tcxbsj_f.btn_scClick(Sender: TObject);
var dbg: Tdbgrideh;
ExpClass: TDBGridEhExportClass;
Ext: string;
path: string;
begin
SaveDlg.FileName := edt_bm.Text;
if SaveDlg.Execute then
begin
case SaveDlg.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
3: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
4: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
6: begin ExpClass := TDBGridEhExportAsRTF; Ext := '*.*'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDlg.FileName, Length(SaveDlg.FileName) - 2, 3)) <>
UpperCase(Ext) then
SaveDlg.FileName := SaveDlg.FileName + '.' + Ext;
dbg := dbg_xs;
dbg.Selection.SelectAll;
SaveDBGridEhToExportFile(ExpClass, dbg {TDBGridEh(ActiveControl)},
SaveDlg.FileName, False);
dbg.Selection.Clear;
ShowMessage('导出' + SaveDlg.FileName + '.' + Ext + '文件成功。');
end;
end;
end;
procedure Tcxbsj_f.cbx_bmChange(Sender: TObject);
begin
edt_bm.Text:=cbx_bm.Items.Strings[cbx_bm.itemindex];
end;
procedure Tcxbsj_f.cbx_bmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then edt_bm.SetFocus;
end;
procedure Tcxbsj_f.edt_bmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then btn_cx.SetFocus;
end;
procedure Tcxbsj_f.edt_bmChange(Sender: TObject);
begin
cbx_bm.ItemIndex:=cbx_bm.Items.IndexOf(edt_bm.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -