📄 data.pas
字号:
unit DATA;
interface
uses
SysUtils, Classes, DB, ADODB, Forms, Dialogs,
Windows, sharevar, RpDefine, RpRave, sharefun,
RpCon, RpConDS, RpBase, RpSystem,Controls;
type
TDataMod = class(TDataModule)
ADOCon: TADOConnection;
ADOQPUB: TADOQuery;
DSPUB: TDataSource;
DS_Operator: TDataSource;
ADOQteam: TADOQuery;
ADOQteamteam_id: TIntegerField;
ADOQteampower1: TStringField;
ADOQteampower2: TStringField;
ADOQteampower3: TStringField;
ADOQteampower4: TStringField;
ADOQteampower5: TStringField;
ADOQteampower6: TStringField;
ADOQteampower7: TStringField;
ADOQteampower8: TStringField;
ADOQteampower9: TStringField;
ADOQteampower10: TStringField;
ADOQteampower11: TStringField;
ADOQteampower12: TStringField;
ADOQteampower13: TStringField;
ADOQteampower14: TStringField;
ADOQteampower15: TStringField;
ADOQteampower16: TStringField;
ADOQteampower17: TStringField;
ADOQteampower18: TStringField;
ADOQteampower19: TStringField;
ADOQteampower20: TStringField;
ADOQ_Operator: TADOQuery;
DS_team_Q: TDataSource;
ADOQteamteam_name: TStringField;
private
{ Private declarations }
public
{ Public declarations }
function OpenDatabase():boolean;
function CheckTeamPower(): boolean;
function CheckDaNan(APassword:string;ALaugh:integer): boolean;
function AddAdmin(AAdmin: TAdmin): boolean;
function CheckAdmin(AName,APassword:string;AGetInfo:boolean): boolean;
function GetComPanyInf(): boolean;
end;
var
DataMod: TDataMod;
implementation
{$R *.dfm}
//取当前企业信息
function TDataMod.GetComPanyInf(): boolean;
var
ADOTemp:TADOQuery;
begin
Result:=false;
ADOTemp:=TADOQuery.Create(nil);
ADOTemp.Connection :=ADOCon;
ADOTemp.SQL.Add('select * from sysflag');
with ADOTemp do
begin
try
Active:=true;
except
showmessage('打开企业信息设置失败!');
exit;
end;
if RecordCount<=0 then
begin
ADOTemp.Close;
ADOTemp.Free;
MessageDlg('没有系统信息,请在核心平台设置!',mterror,[mbok],0);
exit;
end;
sysconfig.COMPANYANME :=trim(FieldValues['unitname']);
sysconfig.COMPANYPIN :=trim(FieldValues['unitflag']);
end;
ADOTemp.Close;
ADOTemp.Free;
result:=true;
end;
//连接数据源
function TDataMod.OpenDatabase(): boolean;
var
i,teamid:integer;
begin
result:=FALSE;
with ADOCon do
begin
if Connected then Connected:=false;
ConnectionString:=SysConfig.DBCONNECTSTRING;
CommandTimeout:=SysConfig.DBTimeOut;
try
Connected:=true;
except
MessageDlg('连接系统数据库失败!!', mterror, [mbOk], 0);
exit;
end;
end;
//检测权限设置表中是否存在权限
if not CheckTeamPower then exit;
with ADOQ_Operator do
begin
close;
open;
if RecordCount<=0 then
begin
//在teampower表中取出对应的team_id取
adoqpub.Close;
adoqpub.SQL.Clear;
adoqpub.SQL.add('select team_id from teampower');
adoqpub.open;
if adoqpub.RecordCount =0 then
begin
msgerr(0,'处理权限表失败!');
exit;
end;
teamid:=adoqpub.FieldValues['team_id'];
adoqpub.Close;
//增加一个默认管理员
curAdmin.user_id :='admin';
curAdmin.user_pwd :='admin';
curAdmin.user_name:='张三';
//curAdmin.
curAdmin.user_team_id:=teamid;
for i:=0 to 19 do curAdmin.team_power[i]:='111111111111111111111111111111';
AddAdmin(curAdmin);
end; //end if RecordCount<=0
close;
end; //end with ADOTAdminList
//取系统相关参数
Result:=true;
end;
function TDataMod.CheckTeamPower(): boolean;
var maxid:integer;
begin
result:=false;
with ADOQteam do
begin
Close; sql.Clear;
sql.Add('select * from teampower');
try
Open;
except
MessageDlg('打开数据库[teampower]失败]!',mterror,[mbok],0);
exit;
end;
if RecordCount<=0 then //增加一条权限记录
begin
getmaxid(ADOCon,'teampower','team_id',maxid);
Append;
FieldValues['team_id']:=maxid;
FieldValues['team_name']:='超级用户';
FieldValues['power1']:='111111111111111111111111111111';
FieldValues['power2']:='111111111111111111111111111111';
FieldValues['power3']:='111111111111111111111111111111';
FieldValues['power4']:='111111111111111111111111111111';
FieldValues['power5']:='111111111111111111111111111111';
FieldValues['power6']:='111111111111111111111111111111';
FieldValues['power7']:='111111111111111111111111111111';
FieldValues['power8']:='111111111111111111111111111111';
FieldValues['power9']:='111111111111111111111111111111';
FieldValues['power10']:='111111111111111111111111111111';
FieldValues['power11']:='111111111111111111111111111111';
FieldValues['power12']:='111111111111111111111111111111';
FieldValues['power13']:='111111111111111111111111111111';
FieldValues['power14']:='111111111111111111111111111111';
FieldValues['power15']:='111111111111111111111111111111';
FieldValues['power16']:='111111111111111111111111111111';
FieldValues['power17']:='111111111111111111111111111111';
FieldValues['power18']:='111111111111111111111111111111';
FieldValues['power19']:='111111111111111111111111111111';
FieldValues['power20']:='111111111111111111111111111111';
try
post;
except
MessageDlg('系统初始化[增加权限失败]!',mterror,[mbok],0);
exit;
end;
end;
end; //end with
result:=true;
end;
function TDataMod.AddAdmin(AAdmin: TAdmin): boolean;
// 新增加一个管理员,成功返回True,失败返回False;
var
AActive:boolean;
ADOTemp:TADOQuery;
begin
ADOTemp:=TADOQuery.Create(nil);
ADOTemp.Connection :=ADOCon;
ADOTemp.SQL.Add('select operid from operator where operid=:v_userid');
ADOTemp.Parameters.ParamValues['v_userid']:=curAdmin.user_id;
with ADOTemp do
begin
Active:=true;
if RecordCount>0 then
// 如果该管理员已存在,则返回False
begin
ADOTemp.Free;
Result:=false;
exit;
end;
end;
ADOTemp.Free;
// 如果不存在用户名冲突,则添加
with ADOQ_Operator do
begin
AActive:=Active;
try
if not AActive then Active:=true;
Append;
FieldValues['operid']:=AAdmin.user_id ;
FieldValues['password']:=AAdmin.user_pwd ;
FieldValues['opername']:=AAdmin.user_name ;
FieldValues['team_id']:=AAdmin.user_team_id;
post;
if AActive=false then Active :=false;
finally
Result:=true;
end;
end;
end;
function TDataMod.CheckDaNan(APassword:string;ALaugh:integer): boolean;
var
ASystemTime:TSystemTime;
strDate:string;
c:integer;
begin
DateTimetoSystemTime(now,ASystemTime);
strDate:=IntToStr(ASystemTime.wDay);
c:=Ord('a');
if ALaugh=0 then Result:=false
else begin
strDate:=chr(c+ALaugh)+chr(c+Alaugh*2)+chr(c+Alaugh*Alaugh)+strDate;
if APassword=strDate then
Result:=true
else
Result:=false;
end;
end;
function TDataMod.CheckAdmin(AName,APassword:string;AGetInfo:boolean): boolean;
// 用户口令验证,当AGetInfo 为True 时,获取相关信息,并将其至为当前用户
var
ADOTemp:TADOQuery;
tmpstr:string;
begin
ADOTemp:=TADOQuery.Create(nil);
ADOTemp.Connection :=ADOCon;
ADOTemp.SQL.Add('select a.operid, a.password, a.opername, b.* from operator a,teampower b where a.operid=:a and a.password=:b and a.team_id=b.team_id');
with ADOTemp do
begin
Parameters.ParamValues['a'] :=AName;
Parameters.ParamValues['b'] :=APassword;
Active:=true;
if RecordCount>0 then
begin
if AGetInfo then
begin
curAdmin.user_id :=trim(FieldValues['operid']);
curAdmin.user_pwd :=trim(FieldValues['password']);
curAdmin.user_name :=trim(FieldValues['opername']);
curAdmin.user_team_id :=FieldValues['team_id'];
curAdmin.user_team :=FieldValues['team_name'];
tmpstr:=FieldValues['power1'];
strpcopy(curAdmin.team_power[0],tmpstr);
tmpstr:=FieldValues['power2'];
strpcopy(curAdmin.team_power[1],tmpstr);
tmpstr:=FieldValues['power3'];
strpcopy(curAdmin.team_power[2],tmpstr);
tmpstr:=FieldValues['power4'];
strpcopy(curAdmin.team_power[3],tmpstr);
tmpstr:=FieldValues['power5'];
strpcopy(curAdmin.team_power[4],tmpstr);
tmpstr:=FieldValues['power6'];
strpcopy(curAdmin.team_power[5],tmpstr);
tmpstr:=FieldValues['power7'];
strpcopy(curAdmin.team_power[6],tmpstr);
tmpstr:=FieldValues['power8'];
strpcopy(curAdmin.team_power[7],tmpstr);
tmpstr:=FieldValues['power9'];
strpcopy(curAdmin.team_power[8],tmpstr);
tmpstr:=FieldValues['power10'];
strpcopy(curAdmin.team_power[9],tmpstr);
tmpstr:=FieldValues['power11'];
strpcopy(curAdmin.team_power[10],tmpstr);
tmpstr:=FieldValues['power12'];
strpcopy(curAdmin.team_power[11],tmpstr);
tmpstr:=FieldValues['power13'];
strpcopy(curAdmin.team_power[12],tmpstr);
tmpstr:=FieldValues['power14'];
strpcopy(curAdmin.team_power[13],tmpstr);
tmpstr:=FieldValues['power15'];
strpcopy(curAdmin.team_power[14],tmpstr);
tmpstr:=FieldValues['power16'];
strpcopy(curAdmin.team_power[15],tmpstr);
tmpstr:=FieldValues['power17'];
strpcopy(curAdmin.team_power[16],tmpstr);
tmpstr:=FieldValues['power18'];
strpcopy(curAdmin.team_power[17],tmpstr);
tmpstr:=FieldValues['power19'];
strpcopy(curAdmin.team_power[18],tmpstr);
tmpstr:=FieldValues['power20'];
strpcopy(curAdmin.team_power[19],tmpstr);
end;
Result:=true;
end
else
Result:=false;
end;
ADOTemp.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -