📄 sharefun.pas
字号:
unit sharefun;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DBClient,
MConnect, MidasCon,ADOdb,registry,adoconed,inifiles,dbgrids,StdCtrls, Tlhelp32,
ScktComp, ShellApi,Variants,ExtCtrls,sharevar,DB,DateUtils,ComCtrls,DBCtrls,RpRave, RpBase,
RpSystem, RpDefine, RpCon, RpConDS;
function getEmpID(var str:string):string;
function changestr(var str:string):string;
function GetMaxID_1(TmpADOCON:TADOConnection;TableName:string;FieldName:string;var max_id:integer):boolean;
function MsgQst(handle:integer;Text:String):integer;
function MsgErr(handle:integer;Text:String):integer;
function MsgOK(handle:integer;Text:String):integer;
function GetFieldTitle():boolean;
procedure SetTableTitle(adoTable:TADOTable);
procedure SetQueryTitle(adoquery:TADOQuery);
function GetMaxID(TmpADOCON:TADOConnection;TableName:string;FieldName:string;var max_id:integer):boolean;
function FindValue(TmpADOCON:TADOConnection;tablename : string;fieldname:string;FieldValue:string):boolean;
function FindOtherRecord(TmpADOCON:TADOConnection;tablename : string;MasterColname:string;MasterValue:integer;fieldname:string;FieldValue:string):boolean;
procedure ClearSpaceBar(var instr:string);
function MemComp(str1,str2:string;nLen:integer):integer;
procedure GetSysConfig();
procedure GetCominfo();
procedure GetTerminalInfo();
function WriteIniFile(WsType:integer;Section:string;Ident:string;DestValue:Variant):boolean;
function ReadIniFile(WsType:integer;Section:string;Ident:string):Variant;
function Right_Str(indata:string;count:integer):string;
function GetRecordCount(TmpADOCON:TADOConnection;TableName:string;sessionid:string;sessiontimeid:integer):Integer;
function CalcAge(indate:Tdate):integer;
function JustIDCard(indata:string;var outdata:tdate):boolean;
function GetHostDateTime(TmpADOCON:TADOConnection;var hostdatetime:Tdatetime):boolean;
function FindAdmin(TmpADOCON:TADOConnection;tablename : string;fieldname:string;FieldValue:string):boolean;
//取指定时间的对应的最大天数
function GetDays(inDate:TDate):integer;
//取上月最大的日期
function GetLastMonthMaxDate(inDate:TDate):TDate;
//取两个日期之间的天数
function Get_Days(sdate,edate:tdatetime):integer;
//判断金额的输入格式是否正确
function ToMoney(inText:string;var OutText:string):boolean;
function findRec(tablename,fieldname,recvalue:string;var info:string):boolean;
procedure DispDepInf(TV:TTreeView;ParentNode:TTreeNode;NodeName:string;stateid:integer);
procedure DrawItem(obj:TLabel);
procedure showform_dbconfig;
function check_dateformat(temp_str:string):boolean;
function find_record(tablename,field1,field2,value1,value2:string;var info:string):boolean;
function get_oper_tmpid(operid:string; var tmp_id:integer ):boolean;
function Getquery_char(str1,str2,str3,str4,str5,str6:string):string;
//返回单个汉字的拼音首字母
function GetPyIndexChar(hzchar:string):char;
function getstringpy(sourcestr:string):string;
function checkdate(tmpstr:string):boolean;
//初始化页
procedure InitPage(TrvProj:TRvProject;TrvSys:TRvSystem;ProjectFile,NDRFileName:string;Orientation:integer);
//页选择
function SelectPage(TrvProj:TRvProject;PageName:string;index:integer):boolean;
//传递参数
procedure AddParameter(TrvProj:TRvProject;param,value:string);
//显示页
procedure PageShow(TrvProj:TRvProject);
implementation
uses data,DBConfig,Sflash;
//初始化页
procedure InitPage(TrvProj:TRvProject;TrvSys:TRvSystem;ProjectFile,NDRFileName:string;Orientation:integer);
begin
TrvProj.ProjectFile:=ProjectFile;
if Orientation=1 then
TrvSys.SystemPrinter.Orientation:=poLandScape
else
TrvSys.SystemPrinter.Orientation:=poPortrait;
end;
//页选择
function SelectPage(TrvProj:TRvProject;PageName:string;index:integer):boolean;
begin
result:=true;
try
TrvProj.Open;
TrvProj.SelectReport(PageName,true);
TrvProj.ProjMan.FindReport(PageName,true).FirstPage :=TrvProj.ProjMan.FindReport(PageName,true).LoadedPage[index];
except
result:=false;
end;
end;
//传递参数
procedure AddParameter(TrvProj:TRvProject;param,value:string);
begin
TrvProj.SetParam(param,value);
end;
//显示页
procedure PageShow(TrvProj:TRvProject);
begin
TrvProj.Execute;
TrvProj.Close;
end;
//检查字符串是否日期格式
function checkdate(tmpstr:string):boolean;
begin
result:=false;
try
strtodate(tmpstr);
except
exit;
end;
result:=true;
end;
//返回单个汉字的拼音首字母
function GetPyIndexChar(hzchar:string):char;
begin
case word(hzchar[1]) shl 8 +word(hzchar[2]) of
$B0A1..$B0D0 : RESULT :='A';
$B0D1..$B2C0 : RESULT :='B';
$B2C1..$B4F2 : RESULT :='C';
$B4F3..$B6E9 : RESULT :='D';
$B6EA..$B7A1 : RESULT :='E';
$B7A2..$B8C0 : RESULT :='F';
$B8C1..$B9FD : RESULT :='G';
$B9FE..$BBF6 : RESULT :='H';
$BBF7..$BFA5 : RESULT :='J';
$BFA6..$C0AB : RESULT :='K';
$C0AC..$C2E7 : RESULT :='L';
$C2E8..$C4C2 : RESULT :='M';
$C4C3..$C5B5 : RESULT :='N';
$C5B6..$C5BD : RESULT :='O';
$C5BE..$C6D9 : RESULT :='P';
$C6DA..$C8BA : RESULT :='Q';
$C8BB..$C8F5 : RESULT :='R';
$C8F6..$CBF9 : RESULT :='S';
$CBFA..$CDD9 : RESULT :='T';
$CDDA..$CEF3 : RESULT :='W';
$CEF4..$D1B8 : RESULT :='X';
$D1B9..$D4D0 : RESULT :='Y';
$D4D1..$D7F9 : RESULT :='Z';
else
//result :=char(0);
result :='V';
end;
end;
//返回汉字串的拼首字母串
function getstringpy(sourcestr:string):string;
var
I_temp : integer;
B_temp : bool;
begin
result:='';
B_temp:=false;
for i_temp:=1 to length(sourcestr) do
begin
if B_temp then
B_temp:=false
else
begin
if word(sourcestr[i_temp])<176 then
result:=result+sourcestr[i_temp]
else
begin
result:=result+GetPyIndexChar(sourcestr[i_temp]+sourcestr[i_temp+1]);
b_temp:=true;
end;
end;
end;
end;
//得到数值条件查询的条件语句
function Getquery_char(str1,str2,str3,str4,str5,str6:string):string;
begin
if str2='' then begin result:=''; exit end;
if (str3='') or (str5='') then
begin
result:='and ('+str6+str1+str2+')';
exit;
end;
if (str3='and') and (str5<>'') then
begin
result:='and ('+'('+str6+str1+str2+') and ('+str6+str4+str5+') )';
exit;
end;
if (str3='or') and (str5<>'') then
begin
result:='and ('+'('+str6+str1+str2+') or ('+str6+str4+str5+') )';
exit;
end;
end;
function get_oper_tmpid(operid:string; var tmp_id:integer ):boolean;
var
Adoq_temp:TAdoquery;
begin
result:=false;
Adoq_temp:=TAdoquery.Create(nil);
Adoq_temp.Connection:=DataMod.ADOCon;
with Adoq_temp do
begin
Close;
SQL.Clear;
SQL.Add('select * from operator where operid = '+''''+operid+'''');
try
Open;
result:=recordcount>=1;
tmp_id:= Adoq_temp.fieldvalues['tmp_id'];
except
Close;
Free;
exit;
end;
Close;
Free;
end;
end;
function find_record(tablename,field1,field2,value1,value2:string;var info:string):boolean;
var
Adoq_temp:TAdoquery;
begin
result:=false;
Adoq_temp:=TAdoquery.Create(nil);
Adoq_temp.Connection:=DataMod.ADOCon;
with Adoq_temp do
begin
Close;
SQL.Clear;
SQL.Add('select * from '+tablename+' where '+field1+'='+''''+value1+''''+' and '+field2+'='+''''+value2+'''');
try
Open;
result:=not (recordcount<1);
except
info:='提示: 查找记录值失败!';
Close;
Free;
exit;
end;
Close;
Free;
end;
end;
function check_dateformat(temp_str:string):boolean;
begin
Result:=false;
try
StrToDate(temp_str);
Result:=true;
except
ShowMessage('请输入正确的日期格式,例如: 2005-8-10');
end;
end;
function MsgQst(handle:integer;Text:String):integer;
var
tmpbuf:array[0..255]of char;
begin
strpcopy(tmpbuf,' '+text);
result:=MessageBox(handle,tmpbuf,'确认',MB_YESNO or MB_ICONQUESTION);
end;
function MsgErr(handle:integer;Text:String):integer;
var
tmpbuf:array[0..255]of char;
begin
strpcopy(tmpbuf,' '+text);
result:=MessageBox(handle,tmpbuf,'错误',MB_OK or MB_ICONERROR);
end;
function MsgOK(handle:integer;Text:String):integer;
var
tmpbuf:array[0..255]of char;
begin
strpcopy(tmpbuf,' '+text);
result:=MessageBox(handle,tmpbuf,'提示',MB_OK or MB_ICONWARNING);
end;
function getEmpID(var str:string):string;
var
i,j,k:integer;
tmpstr:string;
begin
tmpstr:=str;
i:=length(str);
if not i>=10 then begin result:=str; exit; end;
if i<10 then
begin
j:=9-i;
for k:=0 to j do
begin
tmpstr:='0'+tmpstr;
end;
end;
result:=tmpstr;
end;
function changestr(var str:string):string;
var
i,j,k:integer;
tmpstr:string;
begin
tmpstr:=str;
i:=length(str);
if not i>=4 then begin result:=str; exit; end;
if i<4 then
begin
j:=3-i;
for k:=0 to j do
begin
tmpstr:='0'+tmpstr;
end;
end;
result:=tmpstr;
end;
function GetMaxID_1(TmpADOCON:TADOConnection;TableName:string;FieldName:string;var max_id:integer):boolean;
var
TmpQuery:TADOQuery;
begin
result:=true;
TmpQuery:=TADOQuery.Create(nil);
TmpQuery.Connection:=TmpADOCON;
with TmpQuery do
begin
close;
sql.clear;
sql.add('select '+ FieldName +' from ' + TableName + ' order by '+FieldName +' desc');
try
open;
except
result:=false;
close;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -