?? bas200_14.pas.svn-base
字號:
unit Bas200_14;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Bas100_01, Menus, ActnList, ComCtrls, ToolWin, ExtCtrls,
dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBTL, DB, ADODB;
type
TBas200_14Form = class(TBas100_01Form)
Panel1: TPanel;
Image1: TImage;
CoolBar1: TCoolBar;
ToolBar2: TToolBar;
tlbFirst: TToolButton;
tlbPrior: TToolButton;
tlbNext: TToolButton;
tlbLast: TToolButton;
ToolButton1: TToolButton;
tlbInsert: TToolButton;
tlbUpdate: TToolButton;
tlbDelete: TToolButton;
ToolButton2: TToolButton;
tlbLocate: TToolButton;
ToolButton6: TToolButton;
tlbExit: TToolButton;
ActionList1: TActionList;
ActFirst: TAction;
ActPrior: TAction;
ActNext: TAction;
ActLast: TAction;
ActInsert: TAction;
ActUpdate: TAction;
ActDelete: TAction;
ActLocate: TAction;
ActExit: TAction;
ScrollBox1: TScrollBox;
dxDBTreeList1: TdxDBTreeList;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
tlbRefresh: TToolButton;
tlbSearch: TToolButton;
ActRefresh: TAction;
ActSearch: TAction;
ActPrint: TAction;
tlbPrint: TToolButton;
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 ActExitExecute(Sender: TObject);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure dxDBTreeList1DblClick(Sender: TObject);
private
procedure SetButtonState(AInsUpd:Boolean);
{ Private declarations }
public
{ Public declarations }
protected
ARecordCount:Integer;
procedure SetInterface; virtual;
procedure InsertEvent; virtual;
procedure UpdateEvent; virtual;
procedure DeleteEvent; virtual;
procedure BrowseEvent; virtual;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); virtual;
end;
var
Bas200_14Form: TBas200_14Form;
implementation
uses CommFun, SYSDATA;
{$R *.dfm}
//設置按鈕狀態
procedure TBas200_14Form.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:=not AInsUpd;
ActExit.Enabled:=True;
end;
procedure TBas200_14Form.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'); //打印
ActExit.Caption:=GetDBString('COM00005015'); //退出
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); //將數據打印出來
ActExit.Hint:=GetDBString('COM00005015',2); //關閉當前窗口
end;
procedure TBas200_14Form.FormCreate(Sender: TObject);
begin
inherited;
//設置界面信息
SetInterface;
try
ADOQuery1.Open;
except
ShowMsg(SYSDM.ADOC.Errors[0].Description,1);
Close;
end;
SetButtonState(False);
LoadFromReg(Self); //這行一定放在打開數據集后面,否則無效
end;
procedure TBas200_14Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
ADOQuery1.Close;
Action:=caFree;
end;
procedure TBas200_14Form.ActFirstExecute(Sender: TObject);
begin
inherited;
//最前
if ADOQuery1.IsEmpty then Exit;
ADOQuery1.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TBas200_14Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if ADOQuery1.IsEmpty then Exit;
ADOQuery1.Prior;
ActNext.Enabled:=not ADOQuery1.Eof;
ActLast.Enabled:=not ADOQuery1.Eof;
ActFirst.Enabled:=not ADOQuery1.Bof;
ActPrior.Enabled:=not ADOQuery1.Bof;
end;
procedure TBas200_14Form.ActNextExecute(Sender: TObject);
begin
inherited;
//下移
if ADOQuery1.IsEmpty then Exit;
ADOQuery1.Next;
ActNext.Enabled:=not ADOQuery1.Eof;
ActLast.Enabled:=not ADOQuery1.Eof;
ActFirst.Enabled:=not ADOQuery1.Bof;
ActPrior.Enabled:=not ADOQuery1.Bof;
end;
procedure TBas200_14Form.ActLastExecute(Sender: TObject);
begin
inherited;
//最后
if ADOQuery1.IsEmpty then Exit;
ADOQuery1.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TBas200_14Form.ActInsertExecute(Sender: TObject);
begin
inherited;
//新增
try
Screen.Cursor:=crHourGlass;
InsertEvent;
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActUpdateExecute(Sender: TObject);
begin
inherited;
//修改
if ADOQuery1.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
UpdateEvent;
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActDeleteExecute(Sender: TObject);
begin
inherited;
//刪除
if ADOQuery1.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Abort;
end;
if dxDBTreeList1.FocusedNode.HasChildren then
begin
ShowMsg('UMS10000059'); //選中的記錄含有子集,不能刪除
Abort;
end;
if ShowDialog('UMS10000008')=IDNO then Abort; //確定要刪除此記錄嗎?
try
Screen.Cursor:=crHourGlass;
DeleteEvent;
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActRefreshExecute(Sender: TObject);
var
ABookmark:TBookmark;
begin
inherited;
//刷新
ABookmark:=ADOQuery1.GetBookmark;
try
Screen.Cursor:=crHourGlass;
ADOQuery1.DisableControls;
ADOQuery1.Close;
ADOQuery1.Open;
ARecordCount:=GetDataSetCount(ADOQuery1);
if ADOQuery1.BookmarkValid(ABookmark) then ADOQuery1.GotoBookmark(ABookmark);
finally
ADOQuery1.FreeBookmark(ABookmark);
ADOQuery1.EnableControls;
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActLocateExecute(Sender: TObject);
begin
inherited;
//查找
if ADOQuery1.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Abort;
end;
try
Screen.Cursor:=crHourGlass;
LocateDialog(DataSource1);
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActSearchExecute(Sender: TObject);
begin
inherited;
//查詢
try
Screen.Cursor:=crHourGlass;
FilterDialog(DataSource1);
ARecordCount:=GetDataSetCount(ADOQuery1);
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActPrintExecute(Sender: TObject);
begin
inherited;
//打印
try
Screen.Cursor:=crHourGlass;
SelectReport(ADOQuery1,AProgramID,AReportName,ReportGetValue);
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
procedure TBas200_14Form.ActExitExecute(Sender: TObject);
begin
inherited;
//退出
Close;
end;
procedure TBas200_14Form.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
inherited;
if not Active then Exit;
ActNext.Enabled:=not ADOQuery1.Eof;
ActLast.Enabled:=not ADOQuery1.Eof;
ActFirst.Enabled:=not ADOQuery1.Bof;
ActPrior.Enabled:=not ADOQuery1.Bof;
end;
//打印報表的多語種處理
procedure TBas200_14Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName='USENM' then ParValue:=AUserName
else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006') //列印日期
else if ParName='PRNNM' then ParValue:=GetDBString('COM00006007') //列印人員
else if ParName='REPNM' then ParValue:=AReportTitle
else if ADOQuery1.FindField(ParName)<>nil then ParValue:=ADOQuery1.FieldByName(ParName).DisplayLabel;
end;
procedure TBas200_14Form.DeleteEvent;
begin
end;
procedure TBas200_14Form.InsertEvent;
begin
end;
procedure TBas200_14Form.UpdateEvent;
begin
end;
procedure TBas200_14Form.BrowseEvent;
begin
end;
procedure TBas200_14Form.dxDBTreeList1DblClick(Sender: TObject);
begin
inherited;
if ADOQuery1.IsEmpty then Exit;
try
Screen.Cursor:=crHourGlass;
BrowseEvent;
ActRefresh.Execute;
finally
Screen.Cursor:=crDefault;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -