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

📄 unit_public.pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 PAS
📖 第 1 页 / 共 5 页
字号:

{//------------------------------------------------------------------------
//设计时间      : 2002.1.21
//初始设计者    : 曾忠诚
//模块名称      : 大客户系统公共模块和全部变量的存放地
//模块功能      : 把系统需要使用到的全局变量和部分的函数写入该模块
//输入          : 密文原文和密码的CRC码
//输出          : 加密或者解密的内容
//本单元的构成方式为:
// 1.interface --> uses --> type --> const  --> Procudure / Function  --> var 
// 2.const --> procedure/function 
//------------------------------------------------------------------------
//以下内容是本模块的修改历史
}

unit Unit_Public;

interface

uses Classes , Windows , SysUtils , Registry , IniFiles , WinSock , Dbtables ,
     Forms , Controls , Series , Teengine , Db , Stdctrls , Comctrls , Messages , Dialogs ,
     ComObj , Grids , Dbgrids , Dbctrls , QuickRpt, ExtCtrls , QRCTRLS , QRPrntr , printers ,
     Graphics , TFlatEditUnit , TFlatSpinEditUnit , TFlatComboBoxUnit , TFlatCheckBoxUnit,
     TFlatMemoUnit ,Dmmain, unit_ArchivesCustInfo, Unit_ArchivesGroupInfo ;

Type

  TCpuType = (cpu8086, cpu286, cpu386, cpu486, cpuPentium);  //类出CPU的各种类,目前出现的类
  TDateStyle = (pDate, pTime, pDateTime);
  TStatusStyle =(Clear,Stat);
  TStringArray = Array[0..100] Of String;

Const //全局常量的定义

  IniName = 'DooneVip.ini';     //INI文件名
  RegName = 'Software\Doonesoft\VipSystem\'; //注册表的键名

  //声明执行Sql语句的函数.
  function Fun_GExecSqlText(SSqlText, SModu : string; STag : integer=-1) : integer;
  //声明修改历史的函数
  function Fun_LExeUpdateHis(SRecordValue : TStringList) : integer;

  function GF_pressshift:boolean;
  function GF_ReadIni(INI_app:string;INI_key:string;INI_default:string;INI_file:string=IniName):string;
  procedure GP_WriteIni(INI_app:string;INI_key:string;INI_val:string;INI_file:string=IniName);
  function GF_readreg(const v_key:string;const v_name:string;v_default:string=''):string;
  procedure GP_writereg(const v_key:string;const v_name:string;v_value:string);
  procedure GP_delreg(const v_key:string;const v_name:string='');
  procedure GP_CreateSeries(Aparent:Twincontrol;Achart:TcustomAxisPanel;Atable:Tdataset;x,y,Atitle:string;Aname:integer;Aflag:integer=0);//创建所有的TCustomSeries对象
  procedure GP_FreeSeries(Achart:TcustomAxisPanel;Aflag:integer=0);  //释放所有的TCustomSeries对象

  Function CpuType : TCpuType;  //使用汇编获取CPU的型号
  function GetWindowVersion : String;  //获取WINDOWS的版本号
  function GetPhysicalMemory : String; //获取系统的内存的大小
  function getIPs: TStrings; //获取本机固定IP地址
  function GetLastIP:string; //获取本机动态IP地址
  function Get_IP:string;    //获取本地机器的ip地址
  function PingByName(ComputerName : String) : String;  //使用ping的命令,来ping指定的机器

  function SearchByPYIndexStr(SourceStrs:TStrings;PYIndexStr:string):string; //获取指定汉字的拼音的第一个字母
  function GetPYIndexChar( hzchar:string):char;  //获取指定汉字的拼音

  function GetNormal_Month( Current_Date : TDateTime):String;  //获取正常出帐月(福建移动)
  function GetCurrentMax_Month( Current_Date_YYYYMMDD : String):String;   //获取指定月份的最大出帐年月日
  function GetCurrentMin_Month( Current_Date_YYYYMMDD : String):String;   //获取指定月份的最小出帐年月日
  function GetNextSeq(FilePath : String ; Section : String ; KeyWord : String ; Step : Integer) : String;//获取指定文件中的指定Section中的关键字的累加Step的数值

  function HasInternetConnect:boolean;

  //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  function GF_UserEnter_Log(EntryModule : String ;  //操作人员登陆时候的模块名称
                            EntryEvt    : String ;  //操作人员登陆时候操作的模块的某一个按钮或者事件的名称
                            Login_Seq   : Integer ;  //登陆唯一序列号,如果传入参数为-1,则登入;否则为退出登陆
                            Wk_no       : String;   //操作人员登陆工号
                            MEMO:String               //具体的操作事件的说明
                            ):Integer;               //系统返回登陆序列号
  function GF_SaveAndGetSeq(Form_Name : String ; NewSeq : Integer ) : integer ;
  //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


  Procedure Obtain_A_Chart(Aparent:Twincontrol;Achart:TcustomAxisPanel;ATable:Tdataset;X,Y,ATitle:string;Aflag:integer=0);

  Function GF_ExportData(FileName     : String ; //数据导出的文件名,
                         ReportTitle  : String ; //到处报表的标题
                         ObjectSource : TObject  //导出的数据源的存放地
                         ):Boolean;              //导出成功 - true 导出错误 - false


  Function GF_ConnectDB( PS_ConnectUserName : String ) : TDatabase ;


  Procedure Pro_GFillInitValue(pFormName:TForm;pValue:String='');               //初始化下拉框控件值

  Function Fun_GetDomiBound(pComponents:TObject;pGetType:Integer;pValue:String=''):Boolean;   //读取登陆用户所管辖的地市、局向、工号

  Function Fun_CorrCode(pValue:String='';pGetType:Integer=1):Integer;           //读取地市代码或局向代码。

  Function ShowRecord(pQuery:TQuery;pObject:TObject):Integer;                   //显示记录

  Function Fun_GetCodeName(pObject:TObject;pValue:String=''):String;            //读取下拉框值的代码

  Function Fun_GetCity(pObject:TObject;pValues:String='';pStyle:Integer=0;pPlace:String=''):String;  //初始化地市下拉框及读取下拉框地市的代码

  Function Fun_GetCounty(pObject:TObject;pValues:String='';pCity:String='';pStyle:Integer=0;pPlace:String=''):String;  //初始化局向下拉框及读取下拉框局向的代码

  Function Fun_GetRoom(pObject:TObject;pAddValues:String='';pCityName :String='';pHome_Name:String='';pStyle:Integer=0;pPlace:String=''):String;

  Function Fun_GetArea(pObject:TObject;pValues:String='';pCity:String='';pCounty:String='';pStyle:Integer=0;pPlace:String=''):String;  //初始化区域下拉框或读取下拉框区域的代码

  Function Fun_GetManager(pObject:TObject;pValues:String='';pCity:String='';pCounty:String='';pPlace:String=''):String;  //初始化工号下拉框框

  Function Fun_GetDate(Between:Integer=0;Style:Integer=0):String;      //读取系统时间

  Function Fun_GetIndiTop(pObject:TObject;pValues:String='';pStyle:Integer=0):String;    //初始化大类喜好或读取大类喜好值的代码

  Function Fun_GetIndiTitle(pObject:TObject;pValues:String='';pIndiTop:String='';pStyle:Integer=0):String;   //初始化小类喜好或读取小类喜好值的代码

  Function Fun_GetCityCountyName(pQuery:TQuery;pStyle:Integer=0):String;

  Function Fun_GetIndi(pQuery:TQuery;pStyle:Integer=0):String;

  Function Fun_GetSERV_TOPIC(pObject:TObject;psCityNo:String;piOff_No_Home,piStyle:Integer;psAddString:String=''):String;

  Function AnalyzeSQL(pSQL:String):Integer;

  procedure GP_ToCallCustInfo( MP_Sid : String ) ;

  procedure GP_ToCallGroupInfo( MP_GroupId : String ) ;

  Function Fun_Purview(pForm:TForm;pGrade:Integer):Boolean;       //权限控制

  procedure Gp_sortDbgrid(column:Tcolumn;Dbgrid_sort:TDbgrid);   //DBGRID排序




var //全局变量的定义

  GS_Wk_No : String ; //当前登陆的人员的工号,由系统在登陆的时候对该变量的值进行写入,
                      //在整个系统结束之前不允许任何的修改。add by zengzc 2002.01.21
  GS_WK_name:String;
  GS_IpAddress : String ; //当前登陆的人员的工号,由系统在登陆的时候对该变量的值进行写入,
                      //可以使用函数getIPs[0]获取当前的第一个IP地址
                      //在整个系统结束之前不允许任何的修改。add by zengzc 2002.01.21
  GS_Wk_No_Lvl : Integer ; //登陆人员的级别

  GS_DB_UserName :  String='db_vip' ;  //默认的‘vip'主要使用测试的时候使用,在测试完毕后删除。
                       // 登陆到后台数据库服务器的用户名 ,主要用于在动态生成数据库控件的时候判断是哪个database连接到了数据库种?vip
                       // 在登陆导系统的时候,写入该全局变量
  GI_Sign : Integer ; //用于公共的整型的符号,如在模块中需要使用的1-代表增加 2-代表删除等等。。
  GS_Sign : String  ; //用于公共的字符型的符号,如在模块中需要使用的1-代表增加 2-代表删除等等。。
                      //以上两个主要用户在窗体和窗体之间的数据信号的传递,在本窗体的传递建议是用自己定义的模块全部变量
  GI_role : integer;  //用于定义LOGIN权限管理中的角色 其对应关系统查ROLE_DEFINE表
  GS_Role_name:string;
  GS_canton: string='福建';  //用于定义省
  GI_CITY :integer;    //用于定义市
  GS_City_Name:string;
  GS_exch :string  ;   //用于定义局向
  GS_exch_name:string;
  GI_DEPT: integer;    //用于定义部门
  GS_dept_name:string;
  Gs_DEPT_no:string;  //用于定义部门主任
  GI_Class: integer;   //用于定义班组
  GS_class_name:string;
  GS_Class_no:string; //用于定义班组长
  GS_ACCESS:STRING;//有权使用编辑功能功能 W_F_ACCESS->W_F_A_CODE;
  GS_D_BOUNT_CODE:STRING ;//有权使用管辖范围
  GS_TEL:STRING;  //电话号码
  AUpdateValue:TStringArray;

implementation
 uses main;
const  //本单元局部变量

  MP_OperateTable =  'TL_OPERATE_LOG' ;        //写入操作日志的表名称
  MP_OperateSeq = 'SEQ_LOG_ID' ;  //写入操作日志的序列号名称


(*********************************************************************
 功能:读INI文件(默认为本目录的vipset.ini)
 参数:INI_app--INI文件中的section    INI_key--ini文件中的key
       ini_default--value的默认值
       返回--ini文件中的value
**********************************************************************)
function GF_ReadIni(INI_app:string;INI_key:string;INI_default:string;INI_file:string=IniName):string;
var
    v_ini:tinifile;
begin
    v_ini:=tinifile.Create(extractfilepath(application.exename)+ini_file);
    result:=v_ini.ReadString(INI_app,INI_key,INI_default);
    v_ini.Free;
end;
(*********************************************************************
 功能:写INI文件(默认为本目录的vipini.ini)
 参数:INI_app--INI文件中的section    INI_key--ini文件中的key
       ini_val--ini文件中的value
**********************************************************************)
procedure GP_WriteIni(INI_app:string;INI_key:string;INI_val:string;INI_file:string=IniName);
var
  v_ini:tinifile;
begin
  v_ini:=tinifile.Create(extractfilepath(Application.ExeName)+ini_file);
  v_ini.WriteString(INI_app,INI_key,INI_val);
  v_ini.UpdateFile;
  v_ini.Free;
end;
(**********************************************************
 功能:读注册表
**********************************************************)
function GF_readreg(const v_key:string;const v_name:string;v_default:string=''):string;
var
  v_Reg:TRegistry;
begin
    v_reg:=TRegistry.Create;
    with v_reg do
    begin
       RootKey:=HKEY_LOCAL_MACHINE;
       try
           begin
             if keyexists(REGNAME+v_key) then
             begin
                OpenKey(REGNAME+v_key,false);
                result:=readstring(v_name);
                if result='' then
                   result:=v_default;
             end
             else
               result:=v_default;
           end;
    except
    end;
    v_Reg.CloseKey;
    v_reg.Free;
    end;
end;
(**********************************************************
 功能:写注册表
**********************************************************)
procedure GP_writereg(const v_key:string;const v_name:string;
   v_value:string);
var
  v_Reg:TRegistry;
begin
    v_reg:=TRegistry.Create;
    with v_reg do
    begin
       RootKey:=HKEY_LOCAL_MACHINE;
       try
         begin
           if not KeyExists(REGNAME+v_key) then
              createkey(REGNAME+v_key);
           openkey(REGNAME+v_key,true);
           writestring(v_name,v_value);
         end;
    except
    End;
    v_Reg.CloseKey;
    v_reg.Free;
    end;
end;
(**********************************************************
 功能:删除注册表
**********************************************************)
procedure GP_delreg(const v_key:string;const v_name:string='');
var
  v_Reg:TRegistry;
begin
    v_reg:=TRegistry.Create;
    with v_reg do
    begin
       RootKey:=HKEY_LOCAL_MACHINE;
       try
         if v_name='' then
            deletekey(REGNAME+v_key)
         else
            if KeyExists(REGNAME+v_key) then
            begin
               openkey(REGNAME+v_key,true);
               v_reg.DeleteValue(v_name);
            end;
       except
       End;
    v_Reg.CloseKey;
    v_reg.Free;
    end;
end;



function GF_pressshift:boolean;
var
//  v_time:single;
  v_shiftkey:byte;
begin
   result:=false;
//   v_time:=gettickcount/1000;
   //延迟2秒
//   while(gettickcount/1000-v_time<=2) do
//   begin
//     application.ProcessMessages;
     v_shiftkey:=getkeystate(vk_shift);
     v_shiftkey:=v_shiftkey shr 7;
     if v_shiftkey=1 then     //如果按SHIFT键
     begin
       result:=true;
//       break;
     end;
//   end;
end;
procedure GP_CreateSeries(
             Aparent:Twincontrol;
             Achart:TcustomAxisPanel;
             Atable:Tdataset;
             x,y,Atitle:string;
             Aname:integer;
             Aflag:integer=0);
//创建所有的TCustomSeries对象
begin
  case Aflag of
    0:
    begin
      with Tlineseries.Create(Aparent) do  //折线图
      begin
        ParentChart:=Achart;
        name:='series'+inttostr(aflag)+inttostr(Aname);

⌨️ 快捷键说明

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