?? unit_public.pas
字號:
{//------------------------------------------------------------------------
//設計時間 : 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 + -