edward
2014-10-29 16:53:13
5/71408

序号 功能简介            

1 abs(Value1):求一个数的绝对值,如果此数小于零,返回该数的正数数值。如果此数大于零,既返回该数的数值,例如abs(-14.5)=14.5 ; abs(24.5)=24.5;不能带文本函数。

2 exp(Value1) :返回一个以e 为底的Value1次方的数值。例如exp(2) = e2=7.389056;不能带文本函数。

3 floor(Value1):返回不大于给定数值的最大整数,舍小数取整。例如:floor(4.69) = 4 ,floor(-4.69) = -5;不能带文本函数。

4 Mod(Value1,Value2) :返回Value1除以Value2的余数。例如mod(10 , 3) = 1 , mod(-10 , 3) = -1;不能带文本函数。

5 ln(Value1) :返回给定值的自然对数, ln(14.5) = 2.674149;不能带文本函数。

6 log(Value1) :返回以10 为底的对数, log(14.5) = 1.161368;不能带文本函数。

7 pow(Value1,Value2) :返回Value1的Value2次方,例如pow(3.4,4) = 133.6336;不能带文本函数。

8 sqrt(Value1) :返回x 的平方根,例如sqrt(4.5) = 2.12132;不能带文本函数。

9 round(Value1,Value2):根据Value1的保留位数Value2进行四舍五入。例如:round(3.446 , 2) = 3.45 , round(3.446 , 1) = 3.4 , round(3.446,3) = 3.446, round(-3.446,2) = -3.45, round(-3.446, 1) = -3.4, round(-3.446,3)=-3.446;不能带文本函数。

10 trunc(Value1,Value2) :将数字Value1截为整数或按指定位数Value2进行截留。例如:trunc(3.456 , 3) = 3.456 , trunc(3.456 , 2) = 3.45 , trunc(3.456 , 1) = 3.4 trunc(3.456 , 0) = 3;不能带文本函数。

11 特别注意以下文本函数操作时,本软件采用Unicode的编码方式,不管是双字节字符,还是单字节字符,在本软件中作为一个文字来处理,例如 "上海市" 是6个字节,但是在软件中是以3个文字来处理。

12 Left(string,nLen) :从文本左侧截取指定的字符string的nLen个数。例如Left(This is an book,4) = This , Left(上海市,2) = 上海;不能带文本函数。

13 Mid(string,nStart,nLen) :从文本string指定的起始位置nStart开始,提取nLen位数长度的字符串,注意nStart=0表示从左面第1位(包含第1位字符串)。例如Mid(1234567890,0,3)=123,Mid(1234567890,3,3)=456 ,Mid(上海市,2,3)=市;不能带文本函数。

14 Right(string,nLen) :从文本string右侧截取指定的字符个数nLen。例如Right(This is an book,4) = book ,Righ(上海市,1) = 市;不能带文本函数。

15 ConvertNumToRMB(value,nDotLen,nHidenFlag): 金额,保留小数点位数,前面可以补零的显示元角分等描述. 将数字金额转换成大写人民币符号,
例如  ConvertNumTORMB(1920.456,3,0) = 壹仟玖佰贰拾元肆角伍分陆厘
     ConvertNumTORMB(1920.456,2,0) = 壹仟玖佰贰拾元肆角伍分整
;不能带文本函数。
     ConvertNumTORMB(1920.45,2,1) = 壹玖贰零肆伍
     ConvertNumTORMB(1920.45,2,8) = 零零零零壹玖贰零肆伍,8表示整数位数,不够的话前面补零。


16 ToDay(format) :将当天的日期按指定的格式输出,格式有以下几种:yyyy( 小写数字年的表示),yy(小写数字年的后两位表示),YYYY( 大写数字年的表示),yy( 大写数字年的后两位表示),mm(小写月份的表示),MM(大写月份的表示),dd(小写天数的表示),DD(大写天数的表示),ww(英文的星期表示),WW(大写的中文星期表示),hh(小写的小时表示),HH( 大写的小时表示),hm(小写的分钟表示)HM(大写分钟的表示),ss(小写的秒表示),SS(大写的秒表示).以上几种可以任意组合,当所有参与组合的元素格式为大写时,最后表示才为大写表示,否则为小写表示方式,最小元素格式之间可以用任意其他字符分割。例如: ToDay(yyyy-mm-dd) = 2005-01-23 ,ToDay(yyyy/mm/dd) = 2005/01/23 , ToDay(yy 年mm 月dd 日) = 05 年01 月23 日,ToDay(mm-dd-ww) = 01-23-Sunday. ToDay(hh-hm-ss)= 08-49-55,ToDay( 公元YYYY 年MM 月DD 日)= 公元二〇〇五年一月二十三日。ToDay( 北京时间:HH 时HM 分SS 秒)=北京时间:九时十分四秒⋯⋯用户可按自己指定的格式显示。不能带文本函数。

英文版VariPrint的Today函数支持下列日期表达式(假设今天是2010年4月5日星期一)

ToDay(mm dd,yyyy)=04 05,2010
ToDay(dd mm,yyyy)=05 04,2010
ToDay(MM dd,yyyy)=April 05,2010
ToDay(dd MM,yyyy)=05 April,2010
ToDay(dd M.,yyyy)=05 Apr,2010
ToDay(yyyy,mm,dd)=2010,04,05
ToDay(yyyy/mm/dd)=2010/04/05(美式)
ToDay(yyyy/dd/mm)=2010/05/04(英式)
ToDay(yyyy-mm-dd)=2010-04-05
ToDay(ww,MM dd,yyyy)=Monday,April 05,2010
Today(ww)=Monday


17 Date(yyyy,mm,dd,format) :将指定的日期转换为指定的格式表示,格式可为yyyy yy mm dd YYYY YY MM DD 的组合。使用参照ToDay 方法.例如Date(2008,6,6,今天是yyyy年mm月dd日)=今天是2008年06月06日。不能带文本函数。

***特别应用说明:如果想把8位的日期文本转变成6位的当中用"-"分隔的日期形式,可以用Data($主数据库.日期,yy-mm-dd),举例Data(20070812,yy-mm-dd)=07-08-12

18 Time(hh,hm,ss,format):将指定的时间转换为指定的格式表示,格式可为hh hm ss HH HM SS 的组合。参照ToDay 方法;不能带文本函数。

19 Week(ww,format):将指定的星期转换为指定的格式表示,星期的数字为(1-7)。格式为ww WW.例如Week(7,今天是WW)=今天是星期日;不能带文本函数。

19-1 Replace(old_text,start,len,new_text),即Replace(文本,开始位置,长度,新文本):从文本指定的起始位置和长度部分文本替换成新。例如Replace(1390745,3,2,**)=13**745;不能带文本函数。
       ***该函数特别用途:去除文本中的连续空格,用一个空格替换。 比如Replace($主数据库.sn$,-1,  , ),注意:逗号前面那个空档输入2个空格,逗号后面那个空档输入1个空格。假设$主数据库.sn$=我们          CHN,那么这个参数计算的结果=我们 CHN

20 ConvertNumToCaptialStr(Value1):转换数值为大写字符例如:
ConvertNumToCaptialStr(12345)=壹万贰仟叁佰肆拾伍;不能带文本函数。

21 ConvertNumToCaptialNum(Value1):转换数值为大写字符例如:
ConvertNumToCaptialStr(12345)=一万二千三百四十五;不能带文本函数。

22 系统数据库: 动态页数文件中提取当前页码和总页码。。等等动态的数据。在“数据库”--“系统数据库设置”下。

23 PageOrder(Offset) 页面序号,返回当前打印时底版页面序号。(例如一个大版拼10个底版,在打印第一页大版时,如果当前在打印第5个底版,那PageOrder的结果就是5。不是大版的一页概念)Offset是偏移页码数,即起始页码数定义。不填默认为1开始。

24 RecordIndex(database,reset_num,format_len):返回数据库的索引号,database是数据库的名称,reset_num:是表示索引号大于该值时将从1开始记数。Format_len:表示索引号的显示格式。例如:
RecordIndex(主数据库,0,0)  返回的值1,2,3,4,…主数据库的最大记录号
RecordIndex(主数据库,6,0)  返回的值1,2,3,4,5,6,1,2,3,4,5,6,1……
RecordIndex(主数据库,0,4)  返回的值0001,0002,…0100,...主数据库的最大记录号

25 CountKind(column_name):统计某列不重复的类型, 统计columnname出现的次数。主要用于从数据库字段方面的统计

26 AccountTotalPage(database,pageNum):用于动态帐单的页数总计计算,database从数据库的别名,pageNum为一个页面打印几条从数据库记录

27 AccountCurPage(database,recordpage,pageoffset):用于动态帐单的当前页数序号表示,database从数据库的别名,recordpage为一个页面打印几条从数据库记录,pageOffset为动态帐单在模版中的偏移量

 

 

 

 

 

 

 

 

 

edward

28.Switch(express)
Case Value1:result1;break
Case Value2:result1;break
Case Value3:result3;break
default:defaultResult
多种条件判断函数,是IF函数的功能扩充。express填写参数和数据库字段名,Value填写字符串或数值, result填写符合条件下的结果,可以是文本,图片路径或其他设定的参数。注意“;break”一定要加上。参见贴子277。举例:
1.Switch($主数据库.编号$)
case 27001: 深圳交易所;break
case 27002: 香港交易所;break
case 27003:杭州交易所;break
case 27004: 北京交易所;break
default:上海交易所
1-1.$主数据库.编号$=27001,结果为" 深圳交易所"
1-2.$主数据库.编号$=27004,结果为" 北京交易所"
express可为带文本函数表达式

29 ReplaceCondition(old_text,start,len,condition,new_text),即ReplaceCondition(字符串,起始位置,长度,条件字符,替换字符)函数,有别于Replace函数,它是一个带条件的替换函数。参见贴子276。举例:
ReplaceCondition(.45,1,1,.,0.)=0.45
表示从字符串(.45)的第一个位置起的一个长度的字符(那就是.),如果等于条件字符(.),那么则替换成希望的字符(0.)
不能带文本函数


30 AutoValue(startValue,stepValue,format,dotLen)参数解释:自动产生数字功能.
1.startValue初始值(注:这是根据具体的应用来设置的起始值,可正可负),
2.stepValue为步进数值,一般序列号都是1,2,3…,根据具体的应用设置,步进数值一般设为1
3.format为数字的格式,产生数字的表示形式,如果format为2,则结果为01,02,03...如果format为6,则结果为000001,0000002...
4.dotLen为小数点位数,0表示没有小数点。

例如:
1.AutoValue(1,1,1,0)=[1,2,3…]
2.AutoValue(1,2,1,0)=[1,3,5…]
3.AutoValue(-1,1,1,0)=[-1,0,1…]
4.AutoValue(1,1,3,0)=[001,002,003…]
5.AutoValue(1.0,0.1,1,1)=[1.1,1.2,1.3…]

不能带文本函数


31 IsEmpty(str1):如果数值为空,那么isempty(str1)的结果就为0;如果数值不为空,那么isempty(str1)的结果就为1。举例:
1.IsEmpty($str$)
1-1. $str$="" ,上面结果为1
1-2. $str$=abc,上面结果为0
文本可为带文本函数表达式

32 SplitStr(str1,count,str2,tailflag):str1是需要进行分组的字符串,count是以几个字符为一组分割str1,str2是分割str1的字符串。例如:
1.SplitStr(123456789,3,#)=123#456#789
2.SplitStr(123456789,3, )=123 456 789
str1可为带文本函数表达式

33 InsertStr(str1,index,str2)函数:将str2插入到str1中指定的index位置的后面。例如InsertStr(271216,1,00)结果就是20071216,1表示第一个位置,即第一个2。举例:
1.InsertStr(271216,1,00)=20071216
2.InsertStr(271216,0,00)=00271216
str1可为带文本函数表达式

34 IsExistFile(filename)函数:用于判断目标文件是否存在。filename代表文件的路径名,如c:\abc.jpg或者c:\$主数据库.name$.jpg。如果这个文件存在,则函数值为1,反之则为0。filename可为带文本函数表达式

35 Trim(str1)函数:用来去掉文本头部和尾部的空格。str1可为带文本函数表达式。

edward

36 Bar128(bar_type,bar_data)函数:对code128字体进行处理,用以定义监管码,即利用条形码字体开发中国大陆用的电子监管码。

37 Len(str1)函数:计算字符串长度。举例:
1.Len(abc)=3
2.Len(上海)=2
3.Len(Left(ABCD,1))=1
文本可为带文本函数表达式

38 Fill(str1,totalLen,fillChar,flag)函数:自动用指定字符串填充文本str1-被填充文本,totalLen-被填充后文本总长度,fillChar-填充字符,flag-1:后面填充,flag-0:前面填充。
举例:
1.Fill(abcd,8,*,0)=****abcd
2.Fill(abcd,8,*,1)=abcd****
3.Fill(Left(abcd,2),4,*,0)=**ab
str1可为带文本函数表达式

39 NumFormat(str1,nDotLen,nCammarLen)函数: 格式化数值显示(使之带逗号显示或小数点显示)。举例 千分位:
1.NumFormat(1000,2,1)=1,000.00
2.NumFormat(1000,0,1)=1,000
3.NumFormat(1000.1,2,0)=1000.10
num可为带文本函数表达式

40 CompareNocaseStr(string1,string2)函数:不区分大小写比较两个字符串是否相同,不区分大小写。举例:1.CompareStr(AbC,AbC)=1,2.CompareStr(AbC,abc)=1;不能带文本函数。

41 CompareStr(string1,string2)函数: 比较两个字符串是否相同,区分大小写。举例:1.CompareStr(AbC,AbC)=1,2.CompareStr(AbC,abc)=0;不能带文本函数。

42 PageNum(startValue,ImposePages,format)函数:用来定义页码。startValue指起始页码,ImposePages指大版中拼板的个数,format指数字格式,如PgeNum(1,10,3),那么实际的意思指页码从第一页开始,单个大版中拼板的数量为10个,最后的效果是001,002,。。。

43 TotalPage(ImposePages,format)函数:指大版中拼板的个数,format指数字格式。

44 GetBarValidateStr(BarcodeType,value,modNo): 根据条码类型以及条形码原始数据以及验证模式来获取加过校验码后的数据。BarcodeType选择黑色条码控件的属性中名称,如Code 3 of 9。modNo选择检验码模式。检验码目前仅支持mod10, mod10(2-1)和mod43。该函数用来生产校验位的条形码生成数据。其中$主数据库.sn$为数据文件中相应的字段。举例:GetBarValidateStr(Code 3 of 9,$主数据库.sn$,mod43), GetBarValidateStr(Code 3 of 9,$主数据库.sn$,mod10(2-1))。


注:

1)如果原本客户的数据是偶数,那么要在前面先补0,然后再用上述参数算校验位。
2)何时选择mod10?何时选择mod43?
   a)EAN, UPC,2 of 5 interleaved(交叉25)默认支持mod10,
   b)Code39默认支持mod43
3) Mod10(2-1) 只针对code39码定制的加密校验位算法。

4) Codebar的检验码模式为mod16,怎么计算的,请参考帖子:http://www.haiyaatech.com/bbs/article.asp?Id=1482

5) Code 9 of 3的检验码模式为mod47,另外开帖解释计算方法,先注。


特别设置(用位数来设置函数GetBarValidateStr):

从12位的UPCA或EAN13数据推算出含检验位的全部数据,也可以用到这个函数。GetBarValidateStr(EAN 13,$主数据库.sn$,11),如GetBarValidateStr(EAN 13,761327616881,11)=7613276168812,GetBarValidateStr(UPC A,76132761688,11)=761327616885,注意:EAN与13之间,UPC与A之间要加一个空格。如果客户给的code128码是14位,让您算出第15位校验位的一共15位数据,GetBarValidateStr(code128,$主数据库.sn$,14),Code与128之间不要加空格。

45 GetBarDisplayStr(type,value): 如GetBarDisplayStr(barcode-39,$主数据库.sn$):根据条码类型以及条条形码原始数据获取条码显示内容,该函数用来生产mod10(2-1)校验位的code39条形码数字。其中$主数据库.sn$为数据文件中相应的字段。

该函数还支持EAN128的校验位自动生成功能,生成带校验位的EAN128数据。如GetBarDisplayStr(EAN 128C,00612121221212)=006121212212129。用户可以把它当条形码文本显示或EAN128C条形码的数据来源。

46 GetDatabaseCount(database):该函数用来读取数据库文件中某记录行里面的有内容字段的数量。database为当前工程中的数据库名称。

47 SetPos(左上角X坐标,左上角Y坐标,宽度,高度):该函数用来定义可变文本或图片的可变位置。左上角X坐标,左上角Y坐标,宽度,高度这些信息可全部取自于数据库文件中的字段,或者VP的参数。

48 GetTifPage(abc.tif):提取多页abc.tif文件的页数。

49 GetLeftPrintHeight():用于获取剩余打印高度,剩余高度小于多少不打印某个控件等等。在动态打印账单中,获取纸张下半部分剩下的空白空间的高度,用来判断另一组可变或固定内容放不放得下,从而做处不插入,插入还是换到下一页插入的动作判断。


50 SearchString(string,key,pos):在字符串string中pos位置开始查找key对应的字符串,返回查找到的位置,找不到返回-1

如果key不填写,就表示查找回车符号,如SearchString(string,,pos)

51 SelectFirstNotEmpty(field1,field2,...):按顺序选择第一个不为空的数据

52 GetMoneyValue(money):把文本字符串转换成数据,如money为文本形式的“-12.05”,无法判断正负,用了本函数计算后就变成数值形式的“-12.05”

53 GetEnvelopePage(Value1):在动态账单中一个人账单打印多页的情况下,按设置的分信封数(一个信封只能装指定的页数)来获取这个人总共有几个信封数量。

54 GetRecordCount(Value):提取字段名为Value的数据记录数,即获取数据库对应某个字段的记录条数。

55 ExtractImage($行数据$,startValue,endValue,recordaccountNo):针对保险账单原始数据中的某一行字符提取保险单格式合同图片文件的文件名。

56 ConnectWithSplitStr(str1,str2,...,SplitStr): 把Str1,Str2...连接起来,分隔符用SplitStr。

57 ToStr(str1):对普通表单或动态表单中的含有运算符号的字段内容不进行数学运算。例如字段单元内容为2009-12-6,如果不加ToStr直接导入该字段,则结果为1991,如果ToStr(2009-12-6)=2009-12-6。注意,该函数在表达式当中添加,而不是参数设置当中设置。

58 InsertEnter(string,startpos,searchkey,flag):对某个字段文本从定义的字符位置进行特别符号的搜索,搜到后插入软回车控制符号。举例:InsertEnter($主数据库.描述$,1,*,0),如果“描述”字段的内容为:*案例一描述。*案例二描述。*案例三描述。,那么这个参数返回的是:

案例一描述。

案例二描述。

案例三描述。

特别注意:如果$主数据库.描述$字段是一段文字,里面有逗号、句号等等,填写函数时请在$主数据库.描述$字段左右加英文双引号,如InsertEnter("$主数据库.描述$",1,*,0),

59 ToLower(string):把英文字母转成小写

60 ToUpper(string,flag):即把英文字母转成大写,flag=1,表示词首大写,例如ToUpper(we are,1)=We Are;flag=0,表示句首大写,例如ToUpper(we are,0)=We are;不添加flag,则表示全部转大写,例如ToUpper(we are)=WE ARE

61 ConvertNumToEnglish(Value):把金额数字转成英文文本。

62 IsPrintComplete():这个函数用判断在固定可变文本框中其可变文本内容是否全部打得下,即是否可全部显示出来。如果全部显示=1,如果不全部显示=0,配合字体动态属性里面的其它设置调整字体大小等属性设置。这是另外一种有效控制可变内容与边框关系的方案。

63 SetTextAlign(H-ALIGN,V-ALIGN): 设置对应可变文本框的对齐方式,H-ALIGN为水平对齐方式,V-ALIGN为垂直对齐方式。配合字体动态属性可做到内容可变之外,内容的对齐方式也可变。



edward

64 RemoveStr(str1,removestr): 对str1中的removertr全部删除。举例:RemoveStr(ab cd 12, )=abcd12,即把空格全部删除。

如果想删除换行符,不要填写removestr即可,即RemoveStr(str1,)

65 ReplaceText(string,startpos,oldtext,newtext):针对string变量,从startpos位开始搜索,然后用newtext替换oldtext。ReplaceText(12121 3434 2121,0, , - )=12121-3434-2121

66 ceil(Value1):求不小于Value1的最小整数。如ceil(2.2)=3

67 GetSplitStrByIndex(string,splitchar,index):根据以splitchar的字符为分隔符分割string,然后把分割后的第index段字符提取出来,如果index超过实际分割的组数数值,返回0。举例:GetSplitStrByInde(a b c d, ,1)=a, GetSplitStrByInde(a b c d, ,4)=d, GetSplitStrByInde(a b c d, ,6)=0

如果分割符不填写,说明以软回车为分隔符。

如果String里面本身有逗号分隔符号,又要用逗号作为分隔符splitchar,那么String和splitchar用括号括起来,GetSplitStrByIndex("$主数据库.STYLE NAME$",",",1)


68 Get2DArrayByIndex(string,rowsplit,colsplit,rowindex,colindex):根据rowsplit(即行分隔符)和colsplit(即列分隔符)把String一段一段分拆开来,然后把rowindex(即第几行)的clindex(即第几段)数据取出来。举例:

40%聚酯纖維

60%棉

Get2DArrayByIndex($主数据库.(4)成份/比例$,,%,1,1)=40

Get2DArrayByIndex($主数据库.(4)成份/比例$,,%,1,2)=聚酯纖維

Get2DArrayByIndex($主数据库.(4)成份/比例$,,%,2,1)=60

Get2DArrayByIndex($主数据库.(4)成份/比例$,,%,2,2)=棉

如果分割符不填写,说明以软回车为分隔符。

69 GetSplitStrByRegion(string,splitchar,start,end):根据以splitchar为分隔符分割string字符串,并从start位置(含该位置数据)到end位置(含该位置数据)提取出来,end符号为空时,表示该字符串的最末位置。举例:

GetSplitStrByRegion(a/d/e/f,/,1,2)=a/d

GetSplitStrByRegion(a/d/e/f,/,3,)=e/f

70 isDigit(string):判断字符串是否全部由数字构成。如果是,返回1,如果否,返回0

71 IF(logical_test,Value_if_true,Value_if_false)函数:使用三个参数,第一个写判断条件,第二个写条件为真时的结果,第三个写条件为真时的结果。在其他帖子里有很多IF函数的应用,请参阅。举例:

1.IF(3>1,真,假)=真.

2.IF(SCORE>59,IF(SCORE>90,优秀,及格),不及格).

2-1. SCORE=91,上面结果为优秀

2-2. SCORE=65,上面结果为及格

2-3. SCORE=50,上面结果为不及格

1.条件可为带文本函数表达式

2.真值可为带文本函数表达式

3.假值可为带文本函数表达式

72 GetKeyValue(key)函数:配和KeyData.xml文件使用,通过该函数,把在Keydata.xml中key对应的字符串内容作为该函数的返回值。举例,在KeyData,xml中<KeyData name="卡其">8200</KeyData>, 那么GetKeyValue(卡其)=8200。

73 Hex(str1,totalLen,fillChar)函数:数字转16进制数据。totallen是需要转换后的数据长度,fillchar是不够长度时补充的字符。提醒:从20210922版本起,这个函数最大数据支持允许大于十进制数4294967295。

74 GetMainDBName()函数:提取数据库的文件名。如主辅数据库,只提取主数据库的文件名。

75 ConvertHM(text)

76 Random(min,max): 在min和max数值范围之间(包括min和max)随机生成数字,可以重复。举例:Random(0,9)就是在0-9之间随机生产数据,如0,2,4,6,9,0,2,1....

77.ContentTranslate(str,flag,Delimiter1,Delimiter2,Delimiter3,PercentDisplay,PercentPosition,Flag1,Flag2,Language):这个函数用于吊牌制作中的成份字段内容多国语言一次性翻译。

举例:

数据库中成份字段的内容为:

SHELL:67%POLYESTER 7%WOOL^LINING:52%POLYESTER 48%WOOL

注意:1)成份之间的分隔符为^ 2)成份名称与成分内容之间分隔符为半角冒号 3)成份内容之间分隔符为空格

最终要把它翻译成简体中文。前提条件:在Keydata.xml中已经有SHELL,POLYESTER WOOL对应的简体中文翻译

参数应写为

ContentTranslate(SHELL:67%POLYESTER 7%WOOL^LINING:52%POLYESTER 48%WOOL,1, ,^,:,%,0,0,0,_CN)

注:

flag=0,表示无成份名称,flag=1,表示有成份名称。这里SHELL, LINING为成份名称所以选择1

Delimiter1表示成份内容之间分隔符

Delimiter2表示成份之间的分隔符

Delimiter3表示成份名称与成分内容之间分隔符

PercentDisplay表示将来百分比显示字符,如%或% 。类似普通文本T控件对应“成份%组合换行”中的百分比%显示字符。

PercentPosition表示百分比显示位置。类似普通文本T控件对应“成份%组合换行”中的百分比%显示位置,不同国家语言对百分比显示位置位置不同。0-举例50%聚酯纤维,1-举例%50聚酯纤维,2-举例聚酯纤维50%

Flag1对应普通文本T控件对应“成份%组合换行”中“成分名称与成份内容各占一行”选项,0--不选,1--选

Flag2对应普通文本T控件对应“成份%组合换行”中“多个成分名称并列时各占一行”选项,0--不选,1--选

Language选择对应的Keydata中的多国语言代码(前面带下划线),这里简体中文为_CN。


78. AutoData36(key,startvalue,stepvalue,format,forbidden,uplow):针对12349ABC,。。。Z一共36位进制的序列号的创建函数。
Key--
考虑到一个标签中可能有多个上述序列号,所以没设置一个序列号,给他一个标志字符,任意字符,不要重复即可
startvalue--
起始数值
stepvalue--
步进数值
format--
序列号长度
forbidden--
禁止字符,把不要的字符列出来,支持多个禁止字符,当中没有分隔符。
uplow--1
代表此序列号输出大写,0代表此序列号输出小写。

举例:AutoData36(A,1,1,4,QI4,1)。里面Q,I,4会跳过,输出序列号是大写。4位序列号,1位一跳。

79. TranslateMultiLang(str,multi_lang,connect_str):针对洗标当中的产地,成份等集中在一起自动翻译并插入分隔符的处理。这里以产地举例,
原始数据库中产地字段为英文的China,希望看到的结果是:
Made in China/ Hiinas/ Cinā/ Kinijoje/ Китае/ Chinach/
中国制造/

如果栏位的宽度有限制,可能显示的最终结果是
Made in China/
Hiinas/
Cinā/
Kinijoje/
Китае/
Chinach/
中国制造/

在这里函数的设置如下:
TranslateMultiLang($
主数据库.Country of origin$,"_EN,_EE,_LV,_LT,_RU,_PL,_CN",/ )

其中翻译的对应内容必须在KeyData.xml有。

80. DivideListValue(list,offset),这是一个用offset数字批量除以list数据的一个函数,主要用于洗标的动态高度数值的计算,自动保留3位小数。举例,加了list的内容为40,50,60三档,那么DivideListValue("40,50,60",2)返回值为20.000,25.000,30.000 假设这三档数值是做在数据文件名为"HeightLevel"的字段的内容,那么写到函数是
DivideListValue("
主数据库.HeightLevel",2),注意被除数是英文逗号分隔,且一定要加英文"括起来,否则会与外面的逗号混淆。





edward

81. OffsetListValue(list,offset),这是一个用offset数字批量与List数据相加的一个函数,主要用于洗标的动态高度数值的计算,自动保留3位小数。假设list的内容为40,50,60三档,那么OffsetListValue("40,50,60",2)返回值为42.000,52.000,62.000。如果是批量相减,只要把offset数字设为负数即可,如OffsetList&#118alue("40,50,60",-2)返回值为38.000,48.000,58.000。假设这三档数值是做在数据文件名为"HeightLevel"的字段的内容,那么写到函数是

OffsetListValue("主数据库.HeightLevel",2),注意被相加数是英文逗号分隔,且一定要加英文"括起来,否则会与外面的逗号混淆。

82.GetPageContentHeight()是获取动态内容总高度的函数,用于动态长度洗标排版逻辑,用此函数获取高度后,可根据用户要求做进一步分页设置。

83.GetPaperHeight()是用来获取每页PDF页面高度的函数,用于动态长度洗标排版逻辑,更进一步是计算洗标在动态计算的情况下的每个PDF的长度(或者叫页面高度)。获取此高度后可以用来计算这个页面中可变栏位的相对位置,打印的最大位置。

83.GetCeilingValue(list,val),这是一个用于在list一组数据中选取大于val数值的整数值的函数,主要用于洗标制作,自动保留3位小数。假设list的内容为40,50,60三档,那么GetCeilingValue("40,50,60",40.1)返回值为50.000,GetCeilingValue("40,50,60",50.9)返回值为60.000

84.GetControlPos(controlName),获取自定义名称为controlName数值的栏位的底边位置。这个函数必须在动态长度洗标版本才有效。操作方法:首先页面必须为动态洗标(打印高度和设计高度必须不一样),然后选中需要获取的控件栏位,设置“名称属性”的“自定义名称”,如A1,然后在右下角“打印机信息”的“页面信息”的“打印页面动态高度档次设置“设置打印高度数值,然后设置参数,GetControlPos(A1),这时候打印,才能看到实际的参数返回值。另外注意:这个参数的返回值是控件栏位的底边Y位置,而不是左上角坐标位置。

85.GetControlHeight(controlName),获取自定义名称为controlName数值的栏位的高度。这个函数必须在动态长度洗标版本才有效。操作方法:首先页面必须为动态洗标(打印高度和设计高度必须不一样),然后选中需要获取的控件栏位,设置“名称属性”的“自定义名称”,如A1,然后在右下角“打印机信息”的“页面信息”的“打印页面动态高度档次设置“设置打印高度数值,然后设置参数,GetControlHeight(A1),这时候打印,才能看到实际的参数返回值。

86.Reverse(str):是用来颠倒字符串中的字符。假设Reverse(1234)=4321

87 GetMultiLineFontSizeScale(str,fontname,boxwidth,boxheight,row distance,bold,italic), 获取多行文本在特定字体字形设定,间距设定和边框高度和宽度设定下,最大使用的字体大小和最宽文本撑满眶时的压缩比。Str是多行文本, fontname为字体字形,boxwidth为边框宽度,boxheight为边框高度,row distance为行间距,bold为是否粗体,utalic为是否斜体。

88. SetFont(中文字型,中文字体大小,英文字型,英文字体大小,字体压扁,粗体,斜体,色值),主要用在OTF中动态表达式中,字体的属性可以通过设置SetFont动态变化。举例:SetFont(宋体,12,Arial,14,0.8,0,0,:CMYK(0,0,0,100)。

89. GetOTFFormatMaxLineLength(otf name): Otf name是指该OTF栏位的自定义名称,这个函数的返回时是这个OTF栏位中最宽文本的字符数。

90. GetOTFFormatLineNum(otf name)): Otf name是指该OTF栏位的自定义名称,这个函数的返回时是这个OTF栏位中多行文本的行数。

91. GetOTFFormatMaxLineWidth(otf name): Otf name是指该OTF栏位的自定义名称,这个函数的返回时是这个OTF栏位中最宽文本的绝对宽度数值。

92. AddOTFCMYKColor(color1,color2,...):OTF控件支持专色功能函数,需要将所有OTF使用的专色在这个地方进行设置一下。

93. AddSpotcolorsCollection(color1,color2,...):字体动态属性和边框动态属性都支持专色,但要用本函数做一个参数。如AddSpotcolorsCollection(PANTONE 1485 C:CMYK(0,50,100,0),PANTONE 352 C:CMYK(0,0,100,50),color2,PANTONE 639 C:CMYK(100,0,100,0),PANTONE 372 C:CMYK(100,50,0,0),PANTONE 297 C:CMYK(0,100,50,0),PANTONE 256 C:CMYK(0,100,50,0),PANTONE 131 C:CMYK(0,100,50,0),PANTONE 131 C:CMYK(0,100,50,0))

94. AttachNotEmptyLine(str1,str2,...,trimend,attach):将非空字符串去除指定末位字符并以指定的字符串连接起来 例如AttachNotEmptyLine(A1,A2,A3,A4*,*,#) 结果为A1#A2#A3#A4#。如果attach不填写,如AttachNotEmptyLine(A1,A2,A3,A4*,*,),那么输出结果为:

A1

A2

A3

A4

如果attach填写空格,如AttachNotEmptyLine(A1,A2,A3,A4*,*, ),那么输出结果为:A1 A2 A3 A4


95. ConnectNoRepeatWithSplitStr(str1,str2,...,SplitStr):以SplitStr字符串作为中间字符串连接各个不重复的字符串  例如ConnectNoRepeatWithSplitStr(A1,A2,A2,A3,#)  结果为A1#A2#A3。

96. ConnectStr(str1,str2):将str1和str2字符串连接起来。

97. ConvertArabic(text):将text转换为阿拉伯语。

98. TrimEndReturn(str):去除字符串中尾部的回车或换行字符。

99.GetDBRecordCount(database):获取指定数据库名的记录条数。具体为GetDBRecordCount(主数据库)

100. GetImageSize(imgName):获取指定图片的大小 返回值为  宽度 高度。以毫米为单位。

101. GetMPDName():获取当前工程文件名称。

102. GetOTFBoxSize(otfName,width/height):获取OTF控件宽和高。

103. GetPaperWidth():获取纸张的打印宽度。

104. GetPDFHeight(pdfname):获取PDF文件的高度。

105. GetTableRowInterval(tableName):获取表格的行间隔。

106. MultiLineMaxWidth(str,fontname,fontsize,bold,italic,...):根据指定的字体属性获取文本字符串中最长行的宽度,(文本串中以回车换行分隔的文本)。

107. ParseArabicPercent(str,NamePercentSplitChar,PercentSplitChar,index):分析阿拉伯成份内容。

108. RemoveEmptyLine(str):移除文本中空行。

109. RemoveLine(str,start/end/toline,removeLineNum/containkey):移除文本串中指定行 start:从开始位置移除 end: 从尾部开始移除, toline:获取到指定的行(保含指定的关键字)。

110. ReplaceEnter(string,startpos,searchkey,flag):替换特殊字符串为回车换行 flag:目前暂未使用  例如  ReplaceEnter("A1#A2#A3#A4",0,#,0) 结果为

A1

A2

A3

A4



edward

111. ReplaceKeyValue(key,oldtxt,newtxt,oldtxt1,newtxt1):替换KeyData.xml中key对应值 (使用设置中的oldtxt替换为newtxt,…)。

112. RollValue(startValue,endValue,stepvalue,format):根据设置值自动生成循环值,以数据库记录序号为Index   例如RollValue(1,200,1,6)    000001-000200 ,000001-000200 这样循环打印。

113. ShowErrMsg(string):显示错误信息对话框。

114. SplitEncode(str,index):按单字节和双字节进行分组,并获取指定序号的分组内容 例如 SplitEncode(English英语Chinese中文,1)  首先会将文本内容分成四组 第一组 English 第二组 英语 第三组 Chinese 第四组 中文 返回Index指定的组 第一组 作为结果 就是Enlish 如Index 指定为4就是返回第四组 中文。

115. StrFilter(str,filterflag):按filterflag将文本串中的内容进行保留

filterflag:0   保留文本串中的数字内容 例如  StrFilter(Test 12 中国上海黄浦108号,0)   结果为 12108

filterflag:1   保留文本串中的大小写英文字符内容 例如  StrFilter(Test 12 中国上海黄浦108号,1)   结果为 Test

filterflag:2   保留文本串中的大小写英文字符和数字内容 例如  StrFilter(Test 12 中国上海黄浦108号,2)   结果为 Test12108

filterflag:3   保留文本串中的大写英文字符内容 例如  StrFilter(Test 12 中国上海黄浦108号,3)   结果为 T

filterflag:4   保留文本串中的小写英文字符内容 例如  StrFilter(Test 12 中国上海黄浦108号,4)   结果为 est

filterflag:5   保留文本串中的双字节内容       例如  StrFilter(Test 12 中国上海黄浦108号,5)   结果为 中国上海黄浦号。

116. TextWidth(str,fontname,fontsize,bold,italic):按指定的字体属性获取文本串的宽度 结果为毫米。

117. TranslateArabicNum(str1):翻译阿拉伯数字。

118. GetMainDBPath():获取存放主数据库的文件夹路径

119. SUM(Column,DotLen): 获取某个字段数值的求和。例如:SUM($主数据库.QTY$,0),那么返回值就是QTY字段内容的求和值。DotLen表示小数点位数,0代表无小数位。

120. ReplaceStringToHex(String,SN1,SN4): 用来处理<GS> <RS> <EOT>...等等GS1 DataMetrix内容字符串中的符号。举例:ReplaceStringToHex($主数据库.SN$,<GS>,29), 这里的SN字段内容中有<GS>符号,GS实际就是Group Separator, 对应的Dec为29. <RS>对应30,<EOT>对应4。 这里的28,30,4都是十进制数值,对应的Hex十六进制数值为1D,1E和04.

121.  ReplaceCharToHex($主数据库.SN$),是为一家公司定制的,作用是把$主数据库.SN$中含有的#符号强制替换到<GS>分隔符号代码,用来制作GS1 DataMatrix码时有时会用到。正常情况下#符号的16进制为35。

122. ToVal(str1), 文本转数字,举例ToVal(10-4),返回值为6。

123. GetDBRecordIndex(database)提取当前数据库记录数(编号),具体为:简体中文版,GetDBRecordIndex(主数据库);繁体中文版,GetDBRecordIndex(主資料庫)


第 1/1 页

发表回复

发表