📄 u_base.pas
字号:
procedure TF_base.Btn_nextClick(Sender: TObject);
begin
Q_MAIN.NEXT;
end;
procedure TF_base.Btn_LastClick(Sender: TObject);
begin
Q_MAIN.Last;
end;
procedure TF_base.Btn_newClick(Sender: TObject);
var i:integer;
begin
if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //是否是系统管理员
if not Is_INSERT then
begin
MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end; //
//if not (Q_main.State in [Dsedit, Dsinsert]) then Q_main.Edit;
Q_MAIN.APPEND;
//设置焦点
for I := 0 to ComponentCount - 1 do // 设置DBGRID 颜色
begin
try
if Components[I].ClassType=Tdbedit then
begin
if Tdbedit(Components[I]).TabOrder=0 then
BEgin
Tdbedit(components[i]).SetFocus;
break;//退出循环
End;
end;
except
CONTINUE;
end;
end;
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo) VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''增加主表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Btn_EditClick(Sender: TObject);
begin
if Uppercase(LOGIN_CODE) <> 'SYSTEM' then // 权限
begin
if not Is_EDIT then
begin
MessageDlg('你没有修改的权限,请与管理员联系!', mtError, [mbOK], 0);
Exit;
end; // 权限
end;
Q_MAIN.EDIT;
end;
procedure TF_base.Btn_SaveClick(Sender: TObject);
var
I: INTEGER;
begin
//===================================保存从表===================================
if not OneTable_flag then //如果是主从表
begin
Q_DETAIL.DisableControls;
Q_DETAIL.First;
while not Q_DETAIL.Eof do
begin
Q_DETAIL.Edit;
try
Q_DETAIL.FieldByName('CNID').ASSTRING := Q_MAIN.FieldByName('SID').ASSTRING;
// Q_DETAIL.FieldByName(KEY_FIELD).ASSTRING := Q_MAIN.FieldByName(KEY_FIELD).ASSTRING;
except
raise;
end;
for I := 0 to Q_DETAIL.FieldCount - 1 do
begin ////暂时屏蔽掉
if Q_DETAIL.Fields[I].Tag = 1 then
begin
if TRIM(Q_DETAIL.Fields[I].ASSTRING) = '' then
begin
SHOWMESSAGE('项目:' + Q_DETAIL.FieldS[I].DisplayLabel + ' 必需输入数据!');
EXIT;
BREAK;
end;
end;
end;
Q_DETAIL.Next;
end;
try
Q_DETAIL.UpdateBatch(ARALL);
// SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''存盘'')';
// Insert_log(sql_s);
except
// SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''存盘失败'')';
// insert_log(sql_s);
end;
Q_DETAIL.EnableControls;
end;
//==============================================================================
//==============================保存主表========================================
for I := 0 to Q_MAIN.FieldCount - 1 do
begin
if Q_MAIN.Fields[I].Tag = 1 then
begin
if TRIM(Q_MAIN.Fields[I].ASSTRING) = '' then
begin
SHOWMESSAGE('项目:' + Q_MAIN.FieldS[I].DisplayLabel + ' 必需输入数据!');
EXIT;
BREAK;
end;
end;
end;
try
Q_MAIN.UpdateBatch(ARALL);
Q_main.First;
except
raise;
end;
//==============================================================================
end;
procedure TF_base.Btn_CancelClick(Sender: TObject);
begin
try
Q_MAIN.CancelUpdates;
except
raise;
end;
end;
procedure TF_base.Btn_DeleteClick(Sender: TObject);
begin
if Q_MAIN.RecordCount = 0 then exit; //无记录则退出
if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //
if not Is_DELETE then
begin
MessageDlg('你没有删除的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
if APPLICATION.MessageBox('你真的要删除这个记录吗?', '系统提示', MB_YESNO + MB_DEFBUTTON2) = IDNO then EXIT;
try
Q_MAIN.Delete;
except
raise;
end;
Q_MAIN.UpdateBatch(ARALL);
end;
procedure TF_base.Btn_FindClick(Sender: TObject);
begin
if Uppercase(LOGIN_CODE) <> 'SYSTEM' then //
if not Is_Find then
begin
MessageDlg('你没有查找记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Exit;
end; //
//if MAIN_TABLE = '' then
//begin
// MessageDlg('没有注册主表名称,请重新注册!', mtWarning, [mbOK], 0);
// EXIT;
//end;
application.CreateForm(TF_select, F_select);
F_select.Mquery:=Q_main;
if F_select.ShowModal = mrok then
begin
//查找记录模块 待加++++++++++++++++++++++++++++
Sql_s := 'Select * From TB_Employ where 1=1 ' + F_Select.Rsql;
Sql_change(Q_main, Sql_s);
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),GetDate(),20),''' + CAPTION + ''',''查找记录'')';
Insert_log(sql_s);
end;
end;
procedure TF_base.Btn_PrintClick(Sender: TObject);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
begin
if not IS_print then
begin
MessageDlg('你没有打印的权限,请与管理员联系!', mtError, [mbOK], 0);
Exit;
end;
end;
//======打印代码 待加++++++++++++++++++++++
Report_Form:=name;
application.CreateForm(TF_Form_Report,F_Form_Report);
F_Form_Report.ShowModal;
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),GetDate(),20),''' + CAPTION + ''',''打印数据'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_detailAfterScroll(DataSet: TDataSet);
begin
if (DataSet.RecordCount <> 0) and (DataSet.DataSource.DataSet.state in [dsedit, dsinsert])
and (not (DataSet.state in [dsedit, dsinsert])) then
DataSet.Edit;
end;
procedure TF_base.Q_detailAfterInsert(DataSet: TDataSet);
var
I: INTEGER;
begin
//开始设置GUID
for i := 0 to q_DETAIL.FieldCount - 1 do
if q_DETAIL.Fields[i].DataType = ftGuid then
begin
if q_DETAIL.Fields[i].FieldName = 'SID' then
begin
CREATEGUID(NID);
Q_DETAIL.Fields[I].AsString := GUIDTOSTRING(NID);
end
else
if q_DETAIL.Fields[i].FieldName = 'CNID' then
begin
Q_DETAIL.Fields[I].AsString := Q_MAIN.FIELDBYNAME('SID').ASSTRING;
end;
end;
//设置完毕GUID
for I := 0 to Q_MAIN.FieldCount - 1 do
begin
if Q_MAIN.FIELDS[I].ConstraintErrorMessage <> '' then
begin
if Q_MAIN.FIELDS[I].ConstraintErrorMessage = '当前日期' then
begin
if Q_MAIN.Fields[I].DataType in [ftDate, ftTime, ftDateTime] then
Q_MAIN.FieldS[I].ASDATETIME := DATE();
end
else
Q_MAIN.FieldS[I].ASSTRING := Q_MAIN.FIELDS[I].ConstraintErrorMessage;
end;
end;
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''新增从表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_mainAfterInsert(DataSet: TDataSet);
var
I: INTEGER;
begin
{ for I := 0 to COMPONENTCOUNT - 1 do
if COMPONENTS[I] is TWINCONTROL then
begin
if TWINCONTROL(COMPONENTS[I]).TabOrder = 0 then
begin
if TWINCONTROL(COmPONENTS[I]).Visible then
try
TWINCONTROL(COmPONENTS[I]).SetFocus;
except
end;
break;
end;
end; }
//焦点设置完毕
//开始设置GUID
for i := 0 to q_main.FieldCount - 1 do
if q_main.Fields[i].DataType = ftGuid then
begin
CREATEGUID(NID);
Q_MAIN.Fields[I].AsString := GUIDTOSTRING(NID);
end;
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo) VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''增加主表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_mainAfterScroll(DataSet: TDataSet);
begin
SET_BUTTON;
end;
procedure TF_base.DS_mainStateChange(Sender: TObject);
begin
SET_BUTTON;
set_edit_enabled;
STATE_FLAG := Q_MAIN.STATE in [Dsedit, DSINSERT];
end;
procedure TF_base.Q_mainBeforeInsert(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if not Is_Insert then
begin
MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.Q_mainBeforeDelete(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if not Is_Delete then
begin
MessageDlg('你没有删除记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.Q_mainAfterEdit(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''修改主表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_mainAfterPost(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Computer,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',''' + computer_name + ''',Convert(varchar(20),Getdate(),20),''' + CAPTION + ''',''保存主表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_mainAfterDelete(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''删除主表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_detailAfterDelete(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''删除从表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_detailAfterEdit(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''修改从表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_detailAfterPost(DataSet: TDataSet);
begin
SQL_S := 'INSERT INTO TB_SYS_LOG (UCODE,Dotime,TITLE,Havedo)VALUES(''' + LOGIN_CODE + ''',Convert(varchar(20),Getdate(),20),''' + LAST_ACTIVE_FORM_CAPTION + ''',''保存从表记录'')';
Insert_log(sql_s);
end;
procedure TF_base.Q_mainBeforeEdit(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if (not IS_edit) then
begin
MessageDlg('你没有修改记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.Q_detailBeforeEdit(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if (not IS_edit) then
begin
MessageDlg('你没有修改记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.Q_detailBeforeDelete(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if not Is_Delete then
begin
MessageDlg('你没有删除记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.Q_detailBeforeInsert(DataSet: TDataSet);
begin
if Uppercase(Login_code) <> 'SYSTEM' then
if not Is_Insert then
begin
MessageDlg('你没有新增记录的权限,请与管理员联系!', mtError, [mbOK], 0);
Abort;
end;
end;
procedure TF_base.FormKeyPress(Sender: TObject; var Key: Char);
var
Sft: Byte;
begin
if ActiveControl is Tdbgrideh then exit;
//如果是wwDBGrid,则让其自行处理回车键问题
if (Key <> #13) or //实现页面中按回车键就=TAB键,并且可以用SHFIT键回退
(GetKeyState(VK_CONTROL) < 0) then exit;
{ Shift Key Pressed or not }
if GetKeyState(VK_Shift) < 0 then
Sft := 1
else
Sft := 0;
//如果当前的ActiveControl的onKeyPress未被赋值,使此事件停止(#0),用於lastcontrolenterexit过程使用
//其中TMyWinControl类中用来是把TWinControl中的OnKeyPress 给Published! COOL!!!
if (TForm(sender).ActiveControl is TWinControl) and assigned(TMyWinControl((sender as TForm).ActiveControl).OnKeyPress) then
Key := #13
else
key := #0;
Perform(WM_NEXTDLGCTL, Sft, 0); // 将ENTER 代替 TAB。。
end;
procedure TF_base.BitBtn1Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -