一 计算式与编集式
日版理解并翻译手绘,同在学习很辛苦的,请手动点32个赞。
首先需要理解计算式和编集式的用途以及存在意义。当vrq查询数据套用xml模板输出时,如果想要更改某字段的输出数据,就需要计算式和编集式。计算式和编集式是附加在相应字段上的一段公式,目的是改变相应字段的输出内容,例如输出格式20141010->2014-10-10;根据需求和用途内容分为两种公式,同一字段可以同时拥有两种公式。
开篇引用一段原话:
·計算式で指定した場合
式の結果によりフィールドバッファの値を置き換えます。
·編集式で指定した場合
式の結果によってフィールドバッファの値を置き換えません。
意思就是说,当在一个数据字段里定义了计算式,那么除了打印输出时该数据字段的值变味计算式的结果外,这个字段的缓存值也由原值变为了计算式的值,如果之后在别处调用到这个字段,那么调用的也是计算式的结果而不是原值;与之相反,编集式只是在输出这个字段是更改输出内容为编集式的结果,不改动字段缓存值。
两者的关系与差别如图:
fieldname data 计算式 编集式 打印输出的字段结果
理解:假设xml上有四个字段 名称为A,B,C,D且都只有一条数据,对应的数据分别为 东京,大阪,“” ,“”。
A中附加计算式:名古屋(理解为此计算式输出结果为名古屋),则A字段最后打印的数据是东京;
B中附加编辑式:九州,则B的打印输出数据是九州,注意:此时A中缓存存储的数据已经变为名古屋了,而B中还是原始数据大阪;
C中附加了计算式:A,可以理解为计算式的结果为A字段数据,而此时A字段的缓存数据已经变为名古屋,所以C的打印输出数据位名古屋;
D同理相反,不解释;
以上是字符型的,数字型和日期型同理,使用例如下:
二 计算式&编集式解析
1.计算式,首先上图,使用svf打开一个xml模板:
使用svf分两个文件 xml(制订模板)和 vrq(制订数据查询),计算式和编集式位于xml的数据字段处使用,具体如图。
现在以计算式IF(数量>10,単価*数量,0)为例,但是吧 还要改表数据做测试, 就凑乎用别的例子实验一下;
IF(request_id>0,name,value)
PS:IF(conditional_expression,expression_if_true,expression_if_false);
2.编集式,位置一样,上图的下一个属性即是;
padding:如果为0表示【0,空;
zero-suppress:左面位数不够是否补0;
comma:是否有千分位;
integer:显示位数;
decimal:小数几位,小数超长是取舍不是四舍五入,如不满可以调用函数处理;
additional sign:加符号的 钱或百分号;
下面用这个测试:FORMAT(request_id,"ZZZ,ZZ9") 对象为request_id;
PS: FORMAT(numeric_value_or_numeric_field_name,format_string)
FORMAT2(character_field_name_or_numeric_field_name,format_string)
具体format2如以下设计具体再详解。
三 函数解析
1.字符串函数
AT() :获取字符位置
ATW() :获取字符位置