📄 bas200_05.pas.svn-base
字号:
unit Bas200_05;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Bas100_01, DB, ADODB, ComCtrls, ToolWin, ActnList, Menus,
ExtCtrls, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxtree, dxdbtree;
type
TBas200_05Form = class(TBas100_01Form)
Panel1: TPanel;
Image1: TImage;
pmPrint: TPopupMenu;
mmiPrint: TMenuItem;
mmiExport: TMenuItem;
ActionList1: TActionList;
ActFirst: TAction;
ActPrior: TAction;
ActNext: TAction;
ActLast: TAction;
ActInsert: TAction;
ActUpdate: TAction;
ActDelete: TAction;
ActRefresh: TAction;
ActLocate: TAction;
ActSearch: TAction;
ActPrint: TAction;
ActExport: TAction;
ActExit: TAction;
CoolBar1: TCoolBar;
ToolBar2: TToolBar;
tlbFirst: TToolButton;
tlbPrior: TToolButton;
tlbNext: TToolButton;
tlbLast: TToolButton;
ToolButton1: TToolButton;
tlbInsert: TToolButton;
tlbUpdate: TToolButton;
tlbDelete: TToolButton;
ToolButton2: TToolButton;
tlbRefresh: TToolButton;
tlbLocate: TToolButton;
tlbSearch: TToolButton;
tlbPrint: TToolButton;
ToolButton6: TToolButton;
tlbExit: TToolButton;
tvLists: TdxDBTreeView;
Splitter1: TSplitter;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
pmGrid: TPopupMenu;
tlbClassInsert: TToolButton;
tlbClassUpdate: TToolButton;
tlbClassDelete: TToolButton;
ActClassInsert: TAction;
ActClassUpdate: TAction;
ActClassDelete: TAction;
ToolButton7: TToolButton;
pmTreeView: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
ScrollBox2: TScrollBox;
PageControl2: TPageControl;
TabSheet2: TTabSheet;
dxDBGrid1: TdxDBGrid;
dsLists: TDataSource;
adsLists: TADODataSet;
adsListsFNo: TIntegerField;
adsListsFName: TStringField;
adsListsFParent: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ActFirstExecute(Sender: TObject);
procedure ActPriorExecute(Sender: TObject);
procedure ActNextExecute(Sender: TObject);
procedure ActLastExecute(Sender: TObject);
procedure ActInsertExecute(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure ActDeleteExecute(Sender: TObject);
procedure ActRefreshExecute(Sender: TObject);
procedure ActLocateExecute(Sender: TObject);
procedure ActSearchExecute(Sender: TObject);
procedure ActPrintExecute(Sender: TObject);
procedure ActExportExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure ActClassInsertExecute(Sender: TObject);
procedure ActClassUpdateExecute(Sender: TObject);
procedure ActClassDeleteExecute(Sender: TObject);
procedure ADOQuery2AfterScroll(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
procedure dxDBGrid1DblClick(Sender: TObject);
procedure dxDBGrid1BackgroundDrawEvent(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
procedure ADOQuery2BeforeOpen(DataSet: TDataSet);
procedure ADOQuery2AfterOpen(DataSet: TDataSet);
procedure adsListsAfterOpen(DataSet: TDataSet);
procedure adsListsAfterScroll(DataSet: TDataSet);
procedure adsListsBeforeOpen(DataSet: TDataSet);
procedure dxDBGrid1CustomDrawFooterNode(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; AFooterIndex: Integer; var AText: String;
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
var ADone: Boolean);
private
procedure SetButtonState(AInsUpd:Boolean);
// procedure MenuItemClick(Sender: TObject);
// procedure CreatePopmeun(AGrid:TdxDBGrid);
{ Private declarations }
public
ABusy:Boolean;
{ Public declarations }
protected
ARecordCount:Integer;
procedure SetInterface; virtual;
procedure InsertClassEvent; virtual;
procedure UpdateClassEvent; virtual;
procedure DeleteClassEvent; virtual;
procedure InsertEvent; virtual;
procedure UpdateEvent; virtual;
procedure DeleteEvent; virtual;
procedure BrowseEvent; virtual;
procedure ClassAfterScroll; virtual;
procedure DetailAfterScroll; virtual;
procedure GetAllClass; virtual;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); virtual;
end;
var
Bas200_05Form: TBas200_05Form;
implementation
uses CommFun, SYSDATA, HwExport;
{$R *.dfm}
//设置按钮状态
procedure TBas200_05Form.SetButtonState(AInsUpd:Boolean);
begin
ActFirst.Enabled:=not AInsUpd;
ActPrior.Enabled:=not AInsUpd;
ActNext.Enabled:=not AInsUpd;
ActLast.Enabled:=not AInsUpd;
ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
ActRefresh.Enabled:=not AInsUpd;
ActLocate.Enabled:=not AInsUpd;
ActSearch.Enabled:=not AInsUpd;
ActPrint.Enabled:=(ARights[5]='Y') and (not AInsUpd);
ActExit.Enabled:=True;
ActClassInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActClassUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
ActClassDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
end;
procedure TBas200_05Form.SetInterface;
begin
Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
ActFirst.Caption:=GetDBString('COM00005001'); //最前
ActPrior.Caption:=GetDBString('COM00005002'); //上移
ActNext.Caption:=GetDBString('COM00005003'); //下移
ActLast.Caption:=GetDBString('COM00005004'); //最后
ActInsert.Caption:=GetDBString('COM00005005'); //新增
ActUpdate.Caption:=GetDBString('COM00005006'); //修改
ActDelete.Caption:=GetDBString('COM00005007'); //删除
ActRefresh.Caption:=GetDBString('COM00005010'); //刷新
ActLocate.Caption:=GetDBString('COM00005011'); //查找
ActSearch.Caption:=GetDBString('COM00005012'); //查询
ActPrint.Caption:=GetDBString('COM00005013'); //打印
ActExport.Caption:=GetDBString('COM00005014'); //导出数据
ActExit.Caption:=GetDBString('COM00005015'); //退出
ActClassInsert.Caption:=GetDBString('COM00005023'); //增类别
ActClassUpdate.Caption:=GetDBString('COM00005024'); //改类别
ActClassDelete.Caption:=GetDBString('COM00005025'); //删类别
ActClassInsert.Hint:=GetDBString('COM00005023'); //新增一个类别
ActClassUpdate.Hint:=GetDBString('COM00005024'); //修改一个类别
ActClassDelete.Hint:=GetDBString('COM00005025'); //删除一个类别
ActFirst.Hint:=GetDBString('COM00005001',2); //移到第一条记录
ActPrior.Hint:=GetDBString('COM00005002',2); //移到上一条记录
ActNext.Hint:=GetDBString('COM00005003',2); //移到下一条记录
ActLast.Hint:=GetDBString('COM00005004',2); //移到最后一条记录
ActInsert.Hint:=GetDBString('COM00005005',2); //新增一条记录
ActUpdate.Hint:=GetDBString('COM00005006',2); //修改当前记录
ActDelete.Hint:=GetDBString('COM00005007',2); //删除当前记录
ActRefresh.Hint:=GetDBString('COM00005010',2); //取得最新的数据
ActLocate.Hint:=GetDBString('COM00005011',2); //快速定位记录
ActSearch.Hint:=GetDBString('COM00005012',2); //按条件查询数据
ActPrint.Hint:=GetDBString('COM00005013',2); //将数据打印出来
ActExport.Hint:=GetDBString('COM00005014',2); //导出数据到文件中
ActExit.Hint:=GetDBString('COM00005015',2); //关闭当前窗口
PageControl1.ActivePageIndex:=0;
end;
{
procedure TBas200_05Form.MenuItemClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=not TMenuItem(Sender).Checked;
dxDBGrid1.ColumnByFieldName(TMenuItem(Sender).Name).Visible:=TMenuItem(Sender).Checked;
end;
procedure TBas200_05Form.CreatePopmeun(AGrid:TdxDBGrid);
var
ADataSet:TDataSet;
I:Integer;
AMenuItem:TMenuItem;
begin
if AGrid.DataSource=nil then Exit;
if AGrid.DataSource.DataSet=nil then Exit;
if AGrid.PopupMenu=nil then Exit;
ADataSet:=AGrid.DataSource.DataSet;
for I:=0 to ADataSet.FieldCount-1 do
begin
if ADataSet.Fields[I].Visible then
begin
AMenuItem:=TMenuItem.Create(nil);
AMenuItem.Name:=ADataSet.Fields[I].FieldName;
AMenuItem.Caption:=ADataSet.Fields[I].DisplayLabel;
AMenuItem.Checked:=AGrid.ColumnByFieldName(ADataSet.Fields[I].FieldName).Visible;
AMenuItem.OnClick:=MenuItemClick;
AGrid.PopupMenu.Items.Add(AMenuItem);
end;
end;
end;
}
procedure TBas200_05Form.FormCreate(Sender: TObject);
begin
inherited;
//设置界面信息
SetInterface;
ABusy:=True;
GetAllClass;
tvLists.Items.BeginUpdate;
tvLists.Items[0].Expand(True);
tvLists.Items.EndUpdate;
ABusy:=False;
adsListsAfterScroll(adsLists);
LoadFromReg(Self); //这行一定放在打开数据集后面,否则无效
SetButtonState(False);
end;
procedure TBas200_05Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
adsLists.Close;
ADOQuery2.Close;
Action:=caFree;
inherited;
end;
procedure TBas200_05Form.ActFirstExecute(Sender: TObject);
begin
inherited;
//最前
if ADOQuery2.IsEmpty then Exit;
ADOQuery2.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TBas200_05Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if ADOQuery2.IsEmpty then Exit;
ADOQuery2.Prior;
ActNext.Enabled:=not ADOQuery2.Eof;
ActLast.Enabled:=not ADOQuery2.Eof;
ActFirst.Enabled:=not ADOQuery2.Bof;
ActPrior.Enabled:=not ADOQuery2.Bof;
end;
procedure TBas200_05Form.ActNextExecute(Sender: TObject);
begin
inherited;
//下移
if ADOQuery2.IsEmpty then Exit;
ADOQuery2.Next;
ActNext.Enabled:=not ADOQuery2.Eof;
ActLast.Enabled:=not ADOQuery2.Eof;
ActFirst.Enabled:=not ADOQuery2.Bof;
ActPrior.Enabled:=not ADOQuery2.Bof;
end;
procedure TBas200_05Form.ActLastExecute(Sender: TObject);
begin
inherited;
//最后
if ADOQuery2.IsEmpty then Exit;
ADOQuery2.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TBas200_05Form.ActInsertExecute(Sender: TObject);
begin
inherited;
//新增
try
Screen.Cursor:=crHourGlass;
InsertEvent;
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_05Form.ActUpdateExecute(Sender: TObject);
begin
inherited;
//修改
if ADOQuery2.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
UpdateEvent;
ActRefresh.Execute;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -