⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_editbase.pas

📁 中国移动大客户管理系统
💻 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 + -