📄 syspub.~pas
字号:
unit SysPub;
interface
uses Windows, Messages, SysUtils, Dialogs, Forms,
Classes, Variants, StdCtrls, Db,
ADODB, Controls, WinSock, ShellApi, jpeg, graphics, TypInfo,
ExtCtrls, ComObj, ComCtrls, IdSMTP,
IdMessage,DBGrids;
var
_AppPath:String; //系统路径
_UserName:String;
_UserID:String; //用户ID
_FPassFlag:Boolean;
_FormModal:Boolean;
_Fopen,_Fnew,_FEdit,_Fdel,_FinSert,_Fprint,_Fok:boolean;
ADOQ_FindTemp:TADOQuery;
Procedure GetRight(AdoQTmp:TAdoQuery;FormName:String);//得到权限
Procedure GetAppPath; //得到系统路径
Procedure SetForm(FormTmp:TComponentClass;FormName:String);// 开启画面
Function SetFindForm(FormCaption:Tcaption;SqlStr:String):String; //动态查询窗体;
Procedure FormClose(Slf,Sender: TObject; var Action: TCloseAction); //退出自定义窗体
Const
_ScreenCaption='DSPACESOFT 进销存管理系统 交流版V2005';
implementation
uses DataM1P;
procedure GetAppPath ;
begin
_AppPath := ExtractFilePath(ExtractFilePath(Application.Exename));
if _AppPath[length(_apppath)] <> '\' then
_AppPath := _AppPath + '\';
end;
Procedure GetRight(ADOQTmp:TAdoQuery;FormName:String);
begin
ADOQTmp.Requery();
IF ADOQTmp.Locate('fuserid;fname',VarArrayOf([_UserId,FormName]), [loPartialKey]) Then
Begin
_Fopen:=ADOQTmp.FieldByName('Fopen').AsBoolean ;
_Fnew:=ADOQTmp.FieldByName('Fnew').AsBoolean ;
_FEdit:=ADOQTmp.FieldByName('FEdit').AsBoolean ;
_Fdel:=ADOQTmp.FieldByName('Fdel').AsBoolean ;
_Finsert:=ADOQTmp.FieldByName('Finsert').AsBoolean ;
_Fprint:=ADOQTmp.FieldByName('Fprint').AsBoolean ;
_Fok:=ADOQTmp.FieldByName('Fok').AsBoolean ;
End
Else
Begin
_Fopen:=False;
_Fnew:=False;
_Fedit:=False;
_Fdel:=False;
_Finsert:=False;
_Fprint:=False;
_Fok:=False;
End;
end;
Procedure SetForm(FormTmp:TcomponentClass;FormName:String);
Begin
IF FindWindow(FormTmp,FormName)=True; Then
ShowMessage('画面已打开');
GetRight(DataM1.ADOQ_DsRight,FormName);
If (_Fopen=True) Or (_UserId='dspace') Then
Begin
Application.CreateForm(FormTmp,FormName);
Tform((FormName)).Show;
End
Else
Begin
Application.MessageBox('对不起,您没有此画面的查看权限!','提示信息',64);
Abort;
End;
End;
Function SetFindForm(FormCaption:Tcaption;SqlStr:String):string;
Var FrmFindTmp:TForm;
DS1:TdataSource;
Dg1:TDBGrid;
Begin
FrmFindTmp:=TForm.Create(nil);
@FrmFindTmp.OnClose:=@FormClose;
Ds1:=TdataSource.Create(nil);
Dg1:=TDbGrid.Create(nil);
Dg1.Parent:=FrmFindTmp;
with FrmFindTmp Do
Begin
Caption:=FormCaption;
BorderStyle := bsSingle;
FormStyle:= fsMDIChild;
Position:=poScreenCenter;
BorderIcons:=BorderIcons-[BiMinimize]-[biMaximize];
Left:=242;
Width:=393;
Show ;
End;
With Dg1 Do
Begin
Left:=0;
Top:=0;
Width:=385;
height:=217;
DataSource:=Ds1;
Readonly:=True;
Font.Size :=12;
TitleFont.Size :=12;
options:=options+[dgRowSelect];
@Dg1.OnDblClick:=@FrmFindTmp.OnClose ;
End;
ADOQ_FindTemp:=TADOQuery.Create(Nil);
ADOQ_FindTemp.Connection :=DataM1.Adoc;
ADOQ_FindTemp.SQL.Clear ;
ADOQ_FindTemp.SQL.Text :=SqlStr;
ADOQ_FindTemp.Active :=True;
ADOQ_FindTemp.ExecSQL ;
Ds1.DataSet :=ADOQ_FindTemp;
Dg1.DataSource:=DS1;
Result:=ADOQ_FindTemp.Fields[0].Value;
end;
Procedure Formclose(Slf,Sender: TObject; var Action: TCloseAction);
Begin
If ADOQ_FindTemp<>nil Then
Begin
ADOQ_FindTemp:=Nil;
ADOQ_FindTemp.Free ;
End;
action:=cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -