📄 upublic.pas
字号:
//***************************************
{公共单元:定义公共变量,常量;公共方法过程.
罗朝旺,2002-10-5
l 当生成过程中将一个不可改变的静态记录值赋值给一个记录时,可以使用一个frVariables,就象这样:
frVariables['Reporting Period'] := 'January';
frReport1.ShowReport;
l 当生成过程中将一个可改变的记录值赋值给一个记录时,你可以使用数据字典或TfrReport.OnGetValue事件处理,就象这样:
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant);
begin
if AnsiCompareText(ParName, 'Reported Period') = 0 then
ParValue := Table1OtchPeriod.Value;
end;
l 也可以通过编程为一个变量列表赋值:
with frReport1.Dictionary do
begin
Variables['Number'] := 1;
Variables['Sum'] := '0.2 * Table1."Summa"';
Variables['Date'] := '''' + 'January' + '''';
end;
(在这个例子中需要另外说明的是要定义一个字符常量)。
FastReport中指定给数据字典中的变量的字符串,可以作为一个表达式被计算。常常用来使用一个没有在数据字典中定义的变量。
必须记住的是如果你从frVariables列表中使用变量或者你通过OnGetValue事件遍历它们,它们不能放进数据字典。
}
//***************************************
//单元名称
unit uPublic;
//单元接口
interface
uses
Windows, Classes, DBGrids, Controls, SysUtils, forms;
const
csEmail = 'EMail:itluo@hotmail.com';
csHomePage = 'http://www.itluo.sohu.com';
csUpdateDate = '2004.05.29';
iwidth = 20;
iheight = 130;
iTop = 102;
iLeft = 10;
resourcestring
sdelinfo='删除记录吗? ';
sclose='欢迎再次使用,退出吗?';
sformNoOne = '有其他窗体打开,请关闭!';
//SQuestion='确认吗?';
//sinfo='提示';
serror='错误';
sconnetE = '服务器已关闭,请稍后再连接或选择其他服务器试试!';
sinitsave = '请确认所有的数据已经保存,退出吗?';
sexcelerror = '请安装Excel!';
sOldPassE = '旧密码不正确!';
sNewPassE = '两次输入的新密码不一致!';
sDateE = '日期不能为空!';
sdFromDToE = '开始日期应该小于结束日期!';
sDelError = '该产品已经发生业务,不能删除!';
procedure InfoWnd(Msg: String);
procedure ErrorWnd(Msg: string);
function QueryWnd(Msg: string): Boolean;
procedure dbgridnext(sender: Tobject; t: boolean);
procedure gettime(ddate: Tdatetime);
procedure runone;
function xToD(num: real): string;
var
yea,mon,day,ick:word;
dqtime:Tdatetime;//当前凭证日期
path,codeUser,user,cGroup:string;
//实现部分
implementation
uses
uGlobal;
//application run one
procedure runone;
var
ZAppName: array[0..127] of char;
Hold: String;
Found: HWND;
begin
Hold := Application.Title;
Application.Title := 'OnlyOne'
+ IntToStr(HInstance); // 暂时修改窗口标题
StrPCopy(ZAppName, Hold); // 原窗口标题
Found := FindWindow(nil, ZAppName); // 查找窗口
Application.Title := Hold; // 恢复窗口标题
if Found<>0 then
begin// 若找到则激活已运行的程序并结束自身
ShowWindow(Found, SW_SHOW);
Application.Terminate;
end;
end;
//gettime
procedure gettime(ddate: Tdatetime);
begin
dqtime:=ddate;
DecodeDate(dqtime,yea,mon,day);
end;
//enter代TAB键
procedure dbgridnext(sender: Tobject; t: boolean);
begin
with TDBgrid(sender) do
begin
if selectedindex<fieldcount-1 then
selectedindex:=selectedindex+1
else
begin
if not DataSource.DataSet.Eof then
DataSource.DataSet.next
else
if t then
DataSource.DataSet.Append;
selectedindex:=0;
end;
end;
end;
//显示提示窗口
procedure InfoWnd(Msg: String);
begin
Application.MessageBox(Pchar(Msg), '提示', MB_OK + MB_ICONINFORMATION);
end;
//显示错误窗口
procedure ErrorWnd(Msg: string);
begin
Application.MessageBox(PChar(Msg), '错误', MB_OK + MB_ICONSTOP);
end;
//显示查询是否窗口
function QueryWnd(Msg: string): Boolean;
begin
Result := Application.MessageBox(PChar(Msg), '确认吗?',
MB_YESNO + MB_ICONQUESTION) = IDYES;
end;
function xToD(num: real): string;
const
d='零壹贰叁肆伍陆柒捌玖分角元拾佰仟万拾佰仟亿';
var
m,k:string;
j:integer;
begin
k:='';
if num>=0 then
m:=floattostr(int(num*100+0.01))
else
m:=floatToStr(int(-num*100+0.01));
for j:=length(m) downto 1 do
k:=k+d[(strtoint(m[Length(m)-j+1])+1)*2-1]+
d[(strtoint(m[Length(m)-j+1])+1)*2]+d[(10+j)*2-1]+d[(10+j)*2];
if num>=0 then result:=k
else result:='负数 '+k;
end;
//END结束单元
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -