📄 sharefun.pas
字号:
free;
exit;
end;
if recordcount =0 then max_id:=0
else
begin
first;
max_id:=strtoint(fieldvalues[FieldName]);
end;
inc(max_id);
end;
TmpQuery.Close;
TmpQuery.Free;
end;
//根据出生年月计算出年龄
function CalcAge(indate:Tdate):integer;
var
year1,year2:string;
begin
year1:=formatdatetime('yyyy',date);
year2:=formatdatetime('yyyy',indate);
result:=strtoint(year1)-strtoint(year2);
end;
//取两个日期之间的天数
function Get_Days(sdate,edate:tdatetime):integer;
var i:real;
mindate,maxdate:integer;
begin
i:=sdate;
mindate:=strtoint(format('%8.0f',[i]));
i:=edate;
maxdate:=strtoint(format('%8.0f',[i]));
result:=maxdate-mindate;
end;
function JustIDCard(indata:string;var outdata:tdate):boolean;
var i,nlen:integer;tmpyear,tmpmonth,tmpday:string;
begin
result:=false;
if trim(indata)='' then exit;
ClearSpaceBar(indata);
nlen:=length(indata);
//1.身份证长度15或18
if (nlen<>15) and (nlen<>18) then
begin
MessageDlg('身份证号长度为15或18位!',mterror,[mbok],0);
exit;
end;
//2.身份证为0~9之间的数字
for i:=1 to nlen do
if (indata[i]>'9') or (indata[i]<'0') then exit;
//3.取出年月日
if nlen=15 then
begin
tmpyear:='19'+copy(indata,7,2);
tmpmonth:=copy(indata,9,2);
tmpday:=copy(indata,11,2);
end
else
begin
tmpyear:=copy(indata,7,4);
tmpmonth:=copy(indata,11,2);
tmpday:=copy(indata,13,2);
end;
try
outdata:=strtodate(tmpyear+'-'+tmpmonth+'-'+tmpday);
except
MessageDlg('身份证号中出生日期错:['+tmpyear+'-'+tmpmonth+'-'+tmpday+']!',mterror,[mbok],0);
exit;
end;
result:=true;
end;
//将ADOQuery数据集中字段对应的中文字段名称取出
function GetFieldTitle():boolean;
var
i:integer;
myRs :TADOQuery;
begin
result:=false;
myRs:=TADOQuery.Create(nil);
myRs.Connection :=DataMod.ADOCon;
with myRS do
begin
Close;
SQL.Add('select * from fieldnote');
try
Open;
SetLength(FieldDetials,recordcount);
FieldDetialCount:=recordcount;
First;
i:=0;
while not eof do
begin
FieldDetials[i].fieldid:=Fields[0].AsString;
FieldDetials[i].chinesename :=Fields[1].AsString;
inc(i);
next;
end;
except
messagedlg('Open table[fieldnote] Error!',mterror,[mbok],0);
Close;
Free;
exit;
end;
first;
Close;
free;
end;
result:=true;
end;
//将DBGrid字段以中文形式显示
procedure SetQueryTitle(adoquery:TADOQuery);
var
i,j:integer;
begin
for i:=0 to adoquery.FieldCount-1 do
for j:=0 to FieldDetialCount-1 do
if adoquery.Fields.Fields[i].FieldName = FieldDetials[j].fieldid then
begin
adoquery.Fields.Fields[i].DisplayLabel:=FieldDetials[j].chinesename;
// adoquery.Fields.Fields[i].Alignment:=taCenter;
end;
end;
//将DBGrid字段以中文形式显示
procedure SetTableTitle(adoTable:TADOTable);
var
i,j:integer;
begin
for i:=0 to adoTable.FieldCount-1 do
for j:=0 to FieldDetialCount-1 do
if adoTable.Fields.Fields[i].FieldName = FieldDetials[j].fieldid then
begin
adoTable.Fields.Fields[i].DisplayLabel:=FieldDetials[j].chinesename;
// adoTable.Fields.Fields[i].Alignment:=taCenter;
end;
end;
function GetRecordCount(TmpADOCON:TADOConnection;TableName:string;sessionid:string;sessiontimeid:integer):Integer;
var
TmpQuery:TADOQuery;
begin
TmpQuery:=TADOQuery.Create(nil);
TmpQuery.Connection:=TmpADOCON;
with TmpQuery do
begin
close;
sql.clear;
sql.add('select * from ' + TableName+' where sessionsid='+''''+sessionid+''''+' and sessionstimeid='+inttostr(sessiontimeid));
try
open;
except
result:=0;
close;
free;
exit;
end;
result:=recordcount;
end;
TmpQuery.Close;
TmpQuery.Free;
end;
function GetHostDateTime(TmpADOCON:TADOConnection;var hostdatetime:Tdatetime):boolean;
var
TmpQuery:TADOQuery;
begin
result:=true;TmpQuery:=TADOQuery.Create(nil);
TmpQuery.Connection:=TmpADOCON;
with TmpQuery do
begin
close;sql.clear;sql.add('SELECT getdate() AS dt'); //convert(char(10),getdate(),20)
try open;except result:=false;close;free;exit;end;
hostdatetime:=fieldvalues['dt']; Close;Free;
end;
end;
function GetMaxID(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 +' asc');
try
open;
except
result:=false;
close;
free;
exit;
end;
if recordcount =0 then max_id:=0
else
begin
last;
max_id:=fieldvalues[FieldName];
end;
inc(max_id);
end;
TmpQuery.Close;
TmpQuery.Free;
end;
function GetMaxIDBySessionID(TmpADOCON:TADOConnection;TableName:string;FieldName:string;SessionID: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 + ' where sessions='+''''+SessionID+''''+' order by '+FieldName +' asc');
try
open;
except
result:=false;
close;
free;
exit;
end;
if recordcount =0 then max_id:=0
else
begin
last;
max_id:=fieldvalues[FieldName];
end;
inc(max_id);
end;
TmpQuery.Close;
TmpQuery.Free;
end;
//增加会务编号时,自动产生新的编号
function GetMaxSessionID(TmpADOCON:TADOConnection;TableName:string;FieldName:string;FieldValue:string;var MAXID:string):boolean;
var
TmpQuery:TADOQuery;
a,b,i:integer; tmpstr:string;
begin
result:=true;
TmpQuery:=TADOQuery.Create(nil);
TmpQuery.Connection:=TmpADOCON;
with TmpQuery do
begin
close;
sql.clear;
tmpstr:='select '+ FieldName +' from ' + TableName + ' where '+FieldName +' Like '+''''+FieldValue+'-%'+'''';
sql.Text:=tmpstr;
try
open;
except
result:=false;
close;
free;
exit;
end;
if recordcount =0 then MAXID:=FieldValue+'-1'
else
begin
first;
b:=0;
//get current date max id
while not eof do
begin
MAXID:=trim(fieldvalues[FieldName]);
i:=POS('-',MAXID);
tmpstr:=copy(MAXID,i+1,length(MAXID)-i);
a:=strtoint(tmpstr);
if (b<a) then b:=a;
next;
end;
inc(b);
MAXID:= FieldValue+'-'+inttostr(b);
end;
end;
TmpQuery.Close;
TmpQuery.Free;
end;
function FindValue(TmpADOCON:TADOConnection;tablename : string;fieldname:string;FieldValue:string):boolean;
var
tmpado:TADOQuery;
begin
result:=false;
tmpado:=TadoQuery.Create(nil);
tmpado.ConnectionString :=TmpADOCON.ConnectionString;
with tmpado do
begin
sql.Text:= 'select * from ' + tablename+' where '+ fieldname +'='+''''+ fieldvalue+'''';
try
open;
except
Messagedlg('操作数据库失败![GetMaxID]',mterror,[mbok],0);
tmpado.Close;
tmpado.Free;
exit;
end;
result:=recordcount >0;
end;
tmpado.Close;
tmpado.Free;
end;
function FindOtherRecord(TmpADOCON:TADOConnection;tablename : string;MasterColname:string;MasterValue:integer;fieldname:string;FieldValue:string):boolean;
var
tmpado:TADOQuery;
begin
result:=false;
tmpado:=TadoQuery.Create(nil);
tmpado.ConnectionString :=TmpADOCON.ConnectionString;
with tmpado do
begin
// sql.Text:= 'SELECT * FROM ' + tablename+' where ('+ fieldname +'='+''''+ fieldvalue+''''+') and ('+MasterColname+ ' <> '+inttostr(MasterValue)+') and temid='+inttostr(SysConfig.TerminalID);
sql.Text:= 'SELECT * FROM ' + tablename+' where ('+ fieldname +'='+''''+ fieldvalue+''''+') and ('+MasterColname+ ' <> '+inttostr(MasterValue)+')';
try
open;
except
Messagedlg('操作数据库失败![GetMaxID]',mterror,[mbok],0);
tmpado.Close;
tmpado.Free;
exit;
end;
result:=recordcount >0;
end;
tmpado.Close;
tmpado.Free;
end;
function FindAdmin(TmpADOCON:TADOConnection;tablename : string;fieldname:string;FieldValue:string):boolean;
var
tmpado:TADOQuery;
begin
result:=false;
tmpado:=TadoQuery.Create(nil);
tmpado.ConnectionString :=TmpADOCON.ConnectionString;
with tmpado do
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -