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

📄 data.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 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 + -