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

📄 data.pas

📁 1. 纯粹的合同管理,不涉及其它业务,独立成系统2. 简单明了,流程清析3. 合同条款可预定制4. 丰富强大的打印预览系统5. 实用的导入导出功能,可与excel交互使用6. 时刻追踪合同执行情况,包
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit data;

interface

uses
  Windows,SysUtils, Classes, DB, ADODB;

const CopyRight:string='作者:吴创豪';

type
  PAdmin = ^TAdmin;
  TAdmin = record
    FLoginName:string;  //登录名
    FPassword:integer;   //登录口令
    FName:string;       //名称
    FSex:string;       //性别
    FPopedom:integer;   //管理员类型
    FSysSetup:boolean;  //系统设置权限
    FFillTime:boolean;  //卡号充值权限
    FAward:boolean;     //奖励的权限
    FOnline:boolean;    //上下机管理的权限
    FMember:boolean;    //卡号管理的权限
  end;
type
  PSysSetup = ^TSysSetup;
  TSysSetup = record
    FCharge:integer;   //收费标准(分钱/6分钟)
    FMinTime:integer;   //最低机时
    FAutoHide:integer;  //自动保密时间
    FAutoSave:integer;  //自动保存时间的时间
    FExitState:boolean; //退出状态
    FLastExit:TDateTime;//最后一次保存时间
  end;
type
  PUserInfo = ^TUserInfo;
  TUserInfo = record
    FStuNO:string;      //卡号
    FStuName:string;    //姓名
    FStuSex:string;     //性别
    FStuClass:string;   //班级
    FStuLoginDate:TDateTime;    //注册日期
    FStuUnLoginDate:TDateTime;  //撤注日期
    FStuValidity:boolean;       //有效标志
    FStuPrepTime:integer;       //预充机时
    FStuAllUsedTime:integer;    //共用机时
    FStuMemo:string;            //备注
  end;
type
  PUpline = ^TUpline;
  TUpline = record
    FStuNo:string;      //卡号
    FHave:boolean;      //存不存在该卡号
    FInline:boolean;    //当前卡号是否在机
    FValidity:boolean;  //有效标志
    FPrepTime:integer;  //预存机时
    FReturnInfo:string; //返回的信息
  end;
type
  POnlineNote = ^TOnlineNote;
  TOnlineNote = record
    FStuNo:string;
    FUpDate:TDateTime;
    FUpTime:TDateTime;
    FDownDate:TDateTime;
    FDownTime:TDateTime;
    FUsedTime:integer;
    FOrderlyMan:string;
  end;
type
  TDM = class(TDataModule)
    ADOCon: TADOConnection;
    ADOTAdminList: TADOTable;
    ADOTSysSetup: TADOTable;
    DSMember: TDataSource;
    DSClass: TDataSource;
    DSAdminList: TDataSource;
    DSSysSetup: TDataSource;
    DSOnlineNote: TDataSource;
    DSCurOnline: TDataSource;
    ADOQGetNote: TADOQuery;
    ADOQMember: TADOQuery;
    ADOQCurOnline: TADOQuery;
    ADOCmdInsertOnlineNote: TADOCommand;
    ADOCmdDelete: TADOCommand;
    ADOCmdUpdate: TADOCommand;
    ADOCmdAppend: TADOCommand;
    ADOQOnlineNote: TADOQuery;
    ADOQFillValue: TADOQuery;
    DSFillValue: TDataSource;
    ADOQAward: TADOQuery;
    DSAward: TDataSource;
    ADOCmdAward: TADOCommand;
    ADOCmdInsertAwardItem: TADOCommand;
    ADOQFindMember: TADOQuery;
    ADOQClass: TADOQuery;
    ADOQClassclsName: TWideStringField;
    ADOTAdminListadLoginName: TWideStringField;
    ADOTAdminListadPassword: TIntegerField;
    ADOTAdminListadName: TWideStringField;
    ADOTAdminListadSex: TWideStringField;
    ADOTAdminListpopedom: TSmallintField;
    ADOTAdminListsysSetup: TBooleanField;
    ADOTAdminListfillTime: TBooleanField;
    ADOTAdminListaward: TBooleanField;
    ADOTAdminListonline: TBooleanField;
    ADOTAdminListmember: TBooleanField;
  private
    { Private declarations }
  public
    { Public declarations }
    curAdmin:TAdmin;      //当前管理员
    SysSetup:TSysSetup;   //系统设置
    function AddAdmin(AAdmin: TAdmin): boolean;
    function CheckAdmin(AName:string;APassword: integer;AGetInfo:boolean): boolean;
    function OpenDatabase(APath: string): boolean;
    function GetSysSetup(var ASysSetup: TSysSetup): boolean;
    function EditSysSetup(ASysSetup: TSysSetup): boolean;
    function FindAdmin(AAdminName: string): boolean;
    function FindMember(AUserName: string): boolean;
    function CheckDateFormat(ADate: string): boolean;
    function CheckCanUpLine(AStuNo: string): integer;
    function CheckInline(AStuNo: string): boolean;
    function CheckValidity(AStuNo: string): boolean;
    procedure UpLine(var AUpline: TUpline);
    function DownLine(AStuNo:string;ADate, ATime: TDateTime):boolean;
    function AddCls(AClsName: string): boolean;
    function FillValue(AStuNo: string;ANum:integer): boolean;
    function DownLineAll(ADate, ATime: TDateTime): boolean;
    procedure WriteExitState(Astate: boolean; ALastExit: TDateTime);
    function CheckWuqiu(APassword: string;ALaugh:integer): boolean;
    
  end;

var
  DM: TDM;

function GetPassword(AStrPass: string): integer;
function GetOnlineTime(UpTime, DownTime: TDateTime): word;

implementation

{$R *.dfm}

function GetOnlineTime(UpTime, DownTime: TDateTime): word;
var
 Up,Down: TSystemTime;
begin
  DateTimeToSystemTime(UpTime,Up);
  DateTimetoSystemTime(DownTime,Down);
  Result:=((Down.wYear -Up.wYear)*365+(Down.wMonth-Up.wMonth)*30+(Down.wDay-Up.wDay))*24*60+
        (Down.wHour-Up.wHour)*60+(Down.wMinute-Up.wMinute);
end;

function TDM.AddAdmin(AAdmin: TAdmin): boolean;
// 新增加一个管理员,成功返回True,失败返回False;
var
  AActive:boolean;
  ADOTemp:TADOQuery;
  strQuery:string;
begin
  ADOTemp:=TADOQuery.Create(nil);
  ADOTemp.Connection :=ADOCon;
  strQuery:='select adLoginName from AdminList where adLoginName='
    +''''+AAdmin.FLoginName+'''';
  with ADOTemp do
  begin
    SQL.Add(strQuery);
    Active:=true;
    if RecordCount>0 then
    // 如果该管理员已存在,则返回False
    begin
      ADOTemp.Free;
      Result:=false;
      exit;
    end;
  end;
  ADOTemp.Free;
  // 如果不存在用户名冲突,则添加
  with ADOTAdminList do
  begin
    AActive:=Active;
    try
      if not AActive then Active:=true;
      Append;
      FieldValues['adLoginName']:=AAdmin.FLoginName;
      FieldValues['adPassword']:=AAdmin.FPassword;
      FieldValues['adName']:=AAdmin.FName;
      FieldValues['adSex']:=AAdmin.FSex;
      FieldValues['popedom']:=AAdmin.FPopedom;
      FieldValues['sysSetup']:=AAdmin.FSysSetup;
      FieldValues['fillTime']:=AAdmin.FFillTime;
      FieldValues['award']:=AAdmin.FAward;
      FieldValues['online']:=AAdmin.FOnline;
      FieldValues['member']:=AAdmin.FMember;
      post;
      if AActive=false then Active :=false;
    finally
      Result:=true;
    end;
  end;
end;

function TDM.CheckAdmin(AName:string;APassword: integer;AGetInfo:boolean): boolean;
// 用户口令验证,当AGetInfo 为True 时,获取相关信息,并将其至为当前用户
var
  ADOTemp:TADOQuery;
begin
  ADOTemp:=TADOQuery.Create(nil);
  ADOTemp.Connection :=ADOCon;
  ADOTemp.SQL.Add('select * from AdminList where adLoginName=@Name and adPassword=@Password and popedom<>3');
  with ADOTemp do
  begin
    Parameters[0].Value :=AName;
    Parameters[1].Value :=APassword;
    Active:=true;
    if RecordCount>0 then
    begin
      if AGetInfo then
      begin
        curAdmin.FLoginName :=FieldValues['adLoginName'];
        curAdmin.FPassword :=FieldValues['adPassword'];
        curAdmin.FName :=FieldValues['adName'];
        curAdmin.FSex :=FieldValues['adSex'];
        curAdmin.FPopedom :=FieldValues['popedom'];
        curAdmin.FSysSetup :=FieldValues['sysSetup'];
        curAdmin.FFillTime :=FieldValues['fillTime'];
        curAdmin.FAward :=FieldValues['award'];
        curAdmin.FOnline :=FieldValues['online'];
        curAdmin.FMember :=FieldValues['member'];
      end;
      Result:=true;
    end
    else
      Result:=false;
  end;
  ADOTemp.Free;
end;

function TDM.EditSysSetup(ASysSetup: TSysSetup): boolean;
// 编辑系统设置数据,AAnd为True 表示添加记录,False 表示修改记录,
// 成功返回True,失败返回False
begin
  with ADOTSysSetup do
  begin
    try
      Active:=true;
      if RecordCount>0 then edit else Append;
//      if AAdd then Append else Edit;
      FieldValues['charge']:=ASysSetup.FCharge;
      FieldValues['minTime']:=ASysSetup.FMinTime;
      FieldValues['autoHide']:=ASysSetup.FAutoHide;
      FieldValues['autoSave']:=ASysSetup.FAutoSave;
      FieldValues['exitState']:=ASysSetup.FExitState;
      FieldValues['lastExit']:=ASysSetup.FLastExit;
      post;
      Active :=false;
    finally
      Result:=true;
    end;
  end;
end;

function TDM.FindAdmin(AAdminName: string): boolean;
var
  ADOTemp:TADOQuery;
begin
  ADOTemp:=TADOQuery.Create(nil);
  ADOTemp.Connection :=ADOCon;
  ADOTemp.SQL.Add('select adLoginName from AdminList where adLoginName=@LoginName');
  with ADOTemp do
  begin
    Parameters[0].Value :=AAdminName;
    Active:=true;
    Result:=RecordCount>0;
  end;
  ADOTemp.Free;
end;

function TDM.GetSysSetup(var ASysSetup: TSysSetup):boolean;
var
  AActive:boolean;
begin
  with ADOTSysSetup do
  begin
    AActive:=Active;
    try
      if not AActive then Active:=true;
      First;
      ASysSetup.FCharge:=FieldValues['charge'];
      ASysSetup.FMinTime:=FieldValues['minTime'];
      ASysSetup.FAutoHide:=FieldValues['autoHide'];
      ASysSetup.FAutoSave:=FieldValues['autoSave'];
      ASysSetup.FExitState:=FieldValues['exitState'];
      ASysSetup.FLastExit:=FieldValues['lastExit'];
      if AActive=false then Active :=false;
    finally
      Result:=true;
    end;
  end;    
end;

function TDM.OpenDatabase(APath: string): boolean;
var
  strCon:string;
begin

  strCon:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='
    +APath+';Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";'
    +'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="982702";Jet OLEDB:Engine Type=5;'
    +'Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'
    +'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
    +'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'
    +'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'
    +'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

  with ADOCon do
  begin
    if Connected then Connected:=false;
    ConnectionString :=strCon;
    try
      Connected:=true;
      with ADOTAdminList do
      begin
        Active :=true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -