qrasvasdf
分类: SQLServer
2014-10-10 09:28:38
原文地址:sql 中打印方案设定 作者:cissdy
a>解释器函数
cury--返回当前BAND显示的Y向坐标,以像素为单位。
DEC--在某数值的基础上递减;格式DEC
FINALPASS--若是最后扫描返回TRUE。
FREESPACE--返回页中没有打印的空白部分,以像素为单位。
INT--在某数值基础上递增;格式INT
b>逻辑函数
AND,FALSE,TRUE, OR,NOT
c>其他函数
IF--if{
LINE#--返回数据的行数,如果当前有分组设置,该函数从分组头位置开始起;否则以主项数据的第一条位置开始起。
LINETHROUGH#--返回数据行数;无论有无分组,都是从主项数据第一条记录开始起。
PAGE#--当前页的页数。
TOTALPAGES--报表总页数。需要将“文件”菜单下的“报表设置”中的“两边报表”前打“√”,否则函数无效。
d>求整函数
AVG,COUNT,MAX,MIN,SUM
e>日期函数
DATE--返回当前日期
TIME--当前时间
year of--返回年份
f>数学函数
FRAC--返回小数部分
INT--返回整数部分
MAXNUM--最大值 MINNUM--最小值 MOD--求余 ROUND--四舍五入
g>字符串
COPY--返回字符串的子串 LOWERCASE--返回字符串的小写
TRIM--去掉前后空格的字符串 UPPERCASE--返回字符串的大写
具体分析:
ReadIni
用于读取当前目录下指定的INI文件中的设置信息;
语法:ReadIni(<IniFileName>,
参数:
IniFileName:INI文件名
Section:段名
Ident:项目名称
应用举例:
需求:由于多台机器共用一台打印机,需要在销售开票单据上打印出当前工作站的名称,用于标识此单据是从哪台机器开出的;
实现:[ReadIni('shikong.ini', '本工作站', '当前工作站名称')]
GetSQLVal
返回SQL语句第一个字段的执行结果;
语法:GetSQLVal(<SQLStr>)
参数:
SQLStr:要执行的SQL语句,必须是能返回结果集的SELECT语句
应用举例:
需求:某公司有几十家独立核算的分公司,管理模式一致,单据打印时需要打印各自的公司名称,不希望每个公司再进行调整设置;
实现:[GetSQLVal(select top 1 dwmch from sk_reg80(nolock))]销售开票单
说明:打印方案建立时单据标题不使用固定信息,而是从sk_reg80表中读取出单位名称,拼在单据标题中,这样就实现了动态报表方案复制到其他公司也同样适用;
注意:由于每次打印、预览时都会执行GetSQLVal函数的SQLStr语句,会对系统效率产生些许影响,在SQL语句中建议使用NOLOCK脏读参数;
3,selectfa eg:
[SelectFa(select case [ReadIni('shikong.ini','本工作站','打印机名称')] when '1600K' then '1600K'
else 'OKI'
end)]
4,单据控制交互的使用举例:
begin
if getSQLVal('select yshye-xsxde from zhiydoc where dzyname=[hz.ywy]')>0 then
begin
MessageBox('您的信贷额度已使用完毕,无法新开单据!', '友情提示', 64);
SetField('销售 开 票 单', 'Font.Color', clRed);
SetField('beizhu','Text','您的信贷额度已使用完毕,无法新开单据!');
SetMenu('存盘(&S)', 'Enabled', False);
SetField('bm', 'SetFocus', True);
end;
end