📄 unit_editbase.pas
字号:
unit Unit_editbase;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
TFlatButtonUnit, ExtCtrls, Db, DBTables, ComCtrls, StdCtrls;
type
Tfrm_edtbase = class(TForm_base)
Panel_browse: TPanel;
dsedit_normal: TDataSource;
edit_normal: TQuery;
query_tmp: TQuery;
pcAppeal: TPageControl;
TabSheet1: TTabSheet;
Panel_client: TPanel;
Panel_normal: TPanel;
Panel_control: TPanel;
Memo1: TMemo;
Panel5: TPanel;
Btn_Add: TFlatButton;
Btn_Modify: TFlatButton;
Btn_Delete: TFlatButton;
Btn_Save: TFlatButton;
Btn_Cancel: TFlatButton;
Btn_Print: TFlatButton;
Btn_Exit: TFlatButton;
procedure Btn_AddClick(Sender: TObject);
procedure Btn_ModifyClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Btn_DeleteClick(Sender: TObject);
procedure Btn_SaveClick(Sender: TObject);
procedure Btn_CancelClick(Sender: TObject);
procedure Btn_ExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
protected
iSign:integer;// 0 :browse 1:insert 2:update; 3:delete 4:cancel
ed_sqltext:string;
MI_SEQ:integer;
function check_userright(sender:tobject):boolean;virtual;
function check_insertrecord(sender:tobject):boolean;virtual;
function check_updaterecord(sender:tobject):boolean;virtual;
function check_saverecord(sender:tobject):boolean;virtual;
function get_sqltext(sender:tobject;posttype:integer):string;virtual;abstract;
procedure post_record(sender:tobject;strsql:string);virtual;
procedure refresh_record(sender:tobject);virtual;
procedure db_operate(sender:tobject;iSign:integer);virtual;
public
{ Public declarations }
end;
var
FRM_EDTBASE: TFRM_EDTBASE;
implementation
Uses unit_main,unit_public;
//按钮控制
function Fun_ButtonStatus(pFormName:TForm;pStatus:Boolean=False):Boolean;stdcall;export;external'winfun.dll';
//输框状态控制
//Function Fun_ComponentStatus(pFormName:TForm;pStatusStyle:Integer=0;pStatus:Boolean=False):Integer;stdCall;external'winfun.dll';
Function Fun_ComponentStatus(pFormName:TForm;pStatusStyle:Integer=0;pStatus:Boolean=False;pObject:TObject=Nil):Integer;stdCall;external'winfun.dll';
//控制回车
Function Fun_MsgBox(pMsg:String='';pCaption:Integer=0;pButton:Integer=0):Integer;stdCall;external'winfun.dll';
{$R *.DFM}
procedure TFRM_EDTBASE.Btn_AddClick(Sender: TObject);
begin
if edit_normal.active=true then
begin
Fun_ButtonStatus(self,true); //按钮有效性控制
Fun_ComponentStatus(self,0,True); //--可输入-- 使输入框有效,用户可以输入数值
Fun_ComponentStatus(self,1,False); //--清空-- 使输入框有效,用户可以输入数值
iSign:=1;
end;
end;
procedure TFRM_EDTBASE.Btn_ModifyClick(Sender: TObject);
begin
try
if (not edit_normal.Eof) then
begin
Fun_ButtonStatus(self,true); //按钮有效性控制
Fun_ComponentStatus(self,0,true); //输框状态控制(可输入)
iSign:=2;
end
else
exit;
except
end;
end;
procedure TFRM_EDTBASE.FormShow(Sender: TObject);
begin
try
iSign:=0;
refresh_record(self);
except
end;
end;
procedure TFRM_EDTBASE.Btn_DeleteClick(Sender: TObject);
begin
if (not edit_normal.Eof) then
begin
iSign:=3;
db_operate(self,iSign);
end
else
exit;
end;
procedure TFRM_EDTBASE.Btn_CancelClick(Sender: TObject);
begin
iSign:=4;
refresh_record(self);
end;
procedure TFRM_EDTBASE.Btn_SaveClick(Sender: TObject);
begin
db_operate(self,iSign);
end;
procedure TFRM_EDTBASE.Btn_ExitClick(Sender: TObject);
begin
close;
end;
function TFRM_EDTBASE.check_insertrecord(sender: tobject): boolean;
begin
end;
function TFRM_EDTBASE.check_updaterecord(sender: tobject): boolean;
begin
end;
procedure TFRM_EDTBASE.refresh_record(sender: tobject);
begin
if (iSign=1) or (iSign=2) or (iSign=3) then//insert
begin
edit_normal.close;
edit_normal.open;
if (iSign=1) or (iSign=2)then
edit_normal.Locate('App_Id',MI_SEQ,[]);
end;
iSign:=0;
Fun_ButtonStatus(self,false); //按钮有效性控制
Fun_ComponentStatus(self,0,false);
if edit_normal.Active=false or edit_normal.Eof then
Fun_ComponentStatus(self,1,false);
end;
function Tfrm_edtbase.check_saverecord(sender: tobject): boolean;
begin
end;
procedure Tfrm_edtbase.db_operate(sender: tobject; iSign: integer);
var
tmpstr:string;
begin
if (iSign=1) or(iSign=2) or (iSign=3) then
begin
try
if (iSign=1) or(iSign=2)then //添加或修改
if check_saverecord(self) then
begin
if iSign=1 then
if not check_insertrecord(self) then
exit;
if iSign=2 then
if not check_updaterecord(self) then
exit;
end
else
exit;
if iSign=3 then
If (not edit_normal.eof)then
If fun_msgbox('真的要删除该记录吗?',0,1)<>id_ok then
exit;
tmpstr:=get_sqltext(self,iSign);
post_record(self,tmpstr);
refresh_record(self);
except
end;
end;
end;
procedure Tfrm_edtbase.post_record(sender: tobject; strsql: string);
begin
with query_tmp do
begin
close;
sql.clear;
sql.add(strsql);
Memo1.Clear;
Memo1.Lines.Text:=sql.Text;
execsql;
end;
end;
function Tfrm_edtbase.check_userright(sender: tobject): boolean;
begin
end;
procedure Tfrm_edtbase.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
action:=cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -