aardio - 虚标库全新升级,支持图片系列专题
Posted 卢光庆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aardio - 虚标库全新升级,支持图片系列专题相关的知识,希望对你有一定的参考价值。
虚表库经过我本人(光庆)的不断升级,已经成为了一个非常好用的库,特别是对于aardio来说,没有典型的表格组件,我这个虚表就显得比较有用了。
上一个版本的虚表,只支持文字处理,不支持图片,整体效果偏素净。
这个版本,进行了全面升级,内核做了全面修改,着重加强了对图片的支持、文字图片混合排版。
这个版本,效果偏靓丽。
先看效果:
图片调用格式:
<img name="pic1",w=30,h=20,scale=true,full=false>
关键词解释:
<img >:嵌入图片标识,分为两部分:以"<img"+空格 开头,以">"结尾,中间为图片参数。
name:图片名称,使用 addImg(name,data) 添加的图片name。
w:图片宽度。大于1为像素值,0到1为比例值,按照单元格有效区域宽高计算,1为100%
h:图片高度。大于1为像素值,0到1为比例值,按照单元格有效区域宽高计算,1为100%
scale:是否按比例进行缩放。如果为 ture 则在w和h范围内,按比例缩放到合适大小。如果为 false 则在w和h范围内拉伸填满。
full:是否填满单元格。如果为 true,则忽略w、h设置,并自动根据单元格宽度、高度、scale设置进行绘制。full时,图片不占用单元格内容宽度。放置于单元格内容的开始(最先绘制),可以当做单元格背景。放置于单元格内容末尾(最后绘制),可以当做单元格前景。
使用文档:
1、添加图片:
使用图片前,需要先添加指定名称的图片。如:
// 1、从文件添加一个名称为 “name1” 的图片:
mainForm.listview.addImg( "name1", "~\\doc.png" );
// 2、从内存数据添加一个名称为 “name2” 的图片:
var buffer = ..string.load("/res/doc.png");
mainForm.listview.addImg( "name2", buffer );
2、将图片嵌入单元格内容或表头内容:
只需按图片调用格式,将文本和图片任意混合排版即可,支持单元格内容和表头内容。
var cellText = "文本<img name='name1',w=20,h=20,scale=true>图片<img name='name2',w=20,h=20,scale=true>混合排版"
效果如下:
其中图片宽度和高度,可以用0-1之间的数值,代表单元格有效(不包含padding)宽度、高度的比例值,如:
var cellText = "<img name='pro',w=0.3,h=20> 60%"
效果如下:
有了图片,就可以将单元格模拟为按钮、进度条等各种非常漂亮的组件了。
3、将图片作为单元格背景或前景:
作为背景图:
var cellText = "<img name='bk',full=true>我有背景图";
将图片放到单元格文本的开头位置,并设置 full=true 就作为单元格的背景图了。
背景图不需要设置w和h,需要的话设置一下 scale 即可。
效果:
作为前景图:
var cellText = "<img name='bk',full=true>我有背景图和前景图<img name='fk',full=true>";
将图片放到单元格文本末尾位置,并设置 full=true 就作为单元格的前景图了。
设置方法跟背景图一致。
效果如下,第一张为按比例缩放的心形png透明图,第二张为拉伸的左右渐变的透明图,第三张为拉伸的心形:
4、将图片作为表头排序图标:
表头排序图标,总是放在表头内容后面。设置方法如下:
mainForm.listview.setSortMark("<img name='asc',w=30,h=30,scale=1>" /*升序符号*/,"<img name='desc',w=30,h=30,scale=1>" /*降序符号*/)
效果如下:
5、将图片作为 checkBox 图标:
可以通过设置 checkBox.checkedImg 和 checkBox.unCheckedImg 属性为对应的图片名称,来设置选中和非选中状态下的图片:
mainForm.listview.checkBox.checkedImg = "checked";
mainForm.listview.checkBox.unCheckedImg = "unchecked";
效果如下:
一个比较完整的图片系列调用代码:
import win.ui;
import godking.vlistEx;
/*DSG*/
mainForm = win.form(text="vlistEx - table adapter";right=599;bottom=449)
mainForm.add(
listview=cls="vlistEx";left=11;top=20;right=590;bottom=430;acceptfiles=1;aw=1;db=1;dl=1;dr=1;dt=1;hscroll=1;vscroll=1;z=1
)
/**/
mainForm.listview.addImg("icon","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\Credit card.png")
mainForm.listview.addImg("alert","E:\\图片素材\\png\\png32_常用图标\\alert.png")
mainForm.listview.addImg("on","C:\\Users\\Administrator\\Desktop\\on.png")
mainForm.listview.addImg("off","C:\\Users\\Administrator\\Desktop\\off.png")
mainForm.listview.addImg("pro","C:\\Users\\Administrator\\Desktop\\pro.png",,50,20)
mainForm.listview.addImg("bk","E:\\图片素材\\png\\png_花边纸底纹\\花边\\frame3_bc_happytime.png",,50,20)
mainForm.listview.addImg("1","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\copy doc.png")
mainForm.listview.addImg("2","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\Picture Cast.png")
mainForm.listview.addImg("3","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\splash green.png")
mainForm.listview.addImg("4","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\window.png")
mainForm.listview.addImg("5","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\unread mail.png")
mainForm.listview.addImg("6","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\advanced.png")
mainForm.listview.addImg("7","E:\\图片素材\\png\\png32_96个蛮实用的png格式图标\\64 bit.png")
mainForm.listview.headerAlign = 1
mainForm.listview.checkBox.show = true
mainForm.listview.headerBkcolor = 0xDDEEFF;
var t =
for(i=1;100;1)
..table.push(t,"[@rowindex]",
"文本<img name='alert',w=20,h=20,scale=true>图片<img name='icon',w=20,h=20,scale=true>混合排版",
"<img name='pro',w="+i/100*0.6+",h=20,scale=0> "++i++"%",
"<img name='off',w=50,h=20,scale=1>",
"<img name='bk',full=true>我有背景图<img name='6',w=20,h=20>",
"等待中")//使用行索引标识符
mainForm.listview.setTable(t)
mainForm.listview.setColumns("<img name='1',w=20,h=20,scale=1> 编号",
"<img name='2',w=20,h=20,scale=1> 文本 + 图片",
"<img name='3',w=20,h=20,scale=1> 模拟进度",
"<img name='4',w=20,h=20,scale=1> 开关",
"<img name='5',w=20,h=20,scale=1> 背景图",80,180,100,70,130,1,0,0,1,1)
mainForm.show();
mainForm.listview.onClick = function(row/*行*/,col/*列*/)
/*鼠标左键点击项目事件*/
if col==4
if mainForm.listview.getCellImg(row,col)=='on' mainForm.listview.setCellImg(row,col,'off');
else mainForm.listview.setCellImg(row,col,'on');
win.loopMessage();
SWIFT报文升级系列专题 ※ MT700(上)
SWIFT又叒叕升级了
为了提高报文处理效率,改善客户体验,SWIFT组织从2017年12月开始了新一轮的报文格式升级工作,本次升级主要分为两个阶段:第一阶段计划在2018年11月完成信用证类相关报文内容升级。升级后的信用证类报文将于2018年11月18日上线。第二阶段计划在2019年完成保函类相关报文内容升级。
在本期及后续系列内容中,小编将分期为大家介绍本次报文格式升级后,信用证七类报文变化及实务影响,以及咱行配套系统优化升级的相关工作。
第七类报文格式升级解析
之
MT700(上篇)
本次MT700共有15个栏位发生了明显变化,其中包含3个新增栏位和12个修订栏位。在12个修订栏位中,有5个栏位引入了Z字符,小编马上会为大家讲解究竟什么是令人喜大普奔的Z字符~
由于本次升级涉及内容较多为了便于大家更直观的理解,小编把700报文的变化归类为显著变化与轻微变化。本期内容先和大家分享MT700报文47A及之前栏位发生的各项变化。
显著变化
1
701随附份数增至7份
❖ 升级前,一份MT700报文最多可附加3份MT701报文。
❖ 升级后,一份MT700报文最多可附加7份MT701报文。
*同样的,一份MT707报文最多可附加7份MT708 (升级前最多加5份)。
BIGGER THAN BIGGER!
2
自由格式栏位引入Z字符集
本次升级最喜大普奔的好消息当然是自由格式栏位增加可使用字符数啦。也就是自由格式栏位(如45A、46A、47A、71D、72Z等),由原先X字符集升级为Z字符集,增加了对= !”%&*<>;{@#_等特殊字符的使用!等等!这…怎么看起来有点像乱码(划去)呢?!可别小看了这几个小符号的作用,举个小栗子大家就明白啦,例如升级之前45A中有下面这些货描信息:
45A:Description of Goods and/or Services
COMMODITY: ABC EQUIPMENT
QUANTITY: 45MT
’TON’ EQUALS TO ‘METRIC TONS’ EQUALS TO ‘MT’
DIMENSION: 20M X 40M X 50M
FE2O3 MORE THAN 23PCT
CONTRACT NO. 2018No.01
升级后就可以直接用上面提到的= * > % #分别代替原报文中的EQUAL TO, X, MORE THAN, PCT和No.了!所以,升级后以上货描就可以直接写成:
45A:Description of Goods and/or Services
COMMODITY: ABC EQUIPMENT
QUANTITY: 45MT
’TON’ = ‘METRIC TONS’ = ‘MT’
DIMENSION: 20M * 40M * 50M
FE2O3>23%
CONTRACT NO. 2018#01
打字变少了,开证瞬间变快了,看起来更加一目了然!Z字符集可以说是大家的福音了!
等等!新增符号太少没什么用?那你可太小看SWIFT组织的诚意了,因为新增字符可不止这5个。再举一个小栗子,升级之前的46A中有下面的单据要求:
46A:Documents Required
GOODS DESCRIPTION AND SHIPMENT INFORMATION MUST BE SENT BY EMAIL TO: ABC-INSURANCE-CO(AT)BOC.COM AND ABC(UNDERSCORE)XYZ(AT)BOC.COM
看到这两行反应了5秒钟发现两个邮箱:
ABC-INSURANCE-CO@BOC.COM
ABC_XYZ@BOC.COM
现在!喜大普奔的消息来了!Z字符一键解决以上烦恼!升级后的46A可以直接写成下面这样啦:
46A:Documents Required
GOODS DESCRIPTION AND SHIPMENT INFORMATION MUST BE SENT BY EMAIL TO: ABC-INSURANCE-CO@BOC.COM AND ABC_XYZ@BOC.COMS
用便捷的符号代替长长的英文以后SWIFT也要走上时尚便捷的阳光大道啦!
另外,!”;{ &这五个字符也拥有了姓名!大家可以放心大胆的在自由栏位中输入它们。而且!这些新增字符在45A、46A、47A、71D、72Z栏位中都适用!
3
42P新增议付信用证的付款细节
升级前的MT700报文中一旦41A选择了AVAILABLE BY NEGOTIATION,由于原42P描述仅包含了Deferred Payment一种情况而无法填写,所以不需要汇票的议付信用证付款期限仅能在其他位置列明,例如:
41A:Available With...By...
ABC BANK BY NEGOTIATION
46A:Documents Required
PAYMENT FOR 100 PCT INVOICE VALUE WILL BE PAID AT 30 DAYS AFTER SHIPMENT DATE.
升级后的42P增加了Negotiation选项后可以直接在42P这一栏位中录入付款日期和付款方式:
41A:Available With...By...
ABC BANK BY NEGOTIATION
42P:Negotiation/Deffered Payment Details
30 DAYS AFTER SHIPMENT DATE
同时,需要汇票的议付信用证仍按原操作,是不是很方便~撒花庆祝!~
随附一张图看懂付款期限大组合:
轻微变化
1
27报文序号栏位
Sequence of Total
升级前最大是4/4(一份MT700加上三份701),升级后最大是8/8(1份MT700加上7份MT701)。新增加网络校验规则,700报文的编号必须是1,报文总数必须是1至8的整数哟。
2
31C信用证开立日期栏位
Date of Issue
❖ 升级前“选填”,如若空缺则报文发送日期视为信用证开立日期。
❖ 升级后“必填”。
不过,据小编观察,咱家的GTS系统对于这个栏位一直是系统自动抓取的~
3
39B信用证最大金额栏位
Maximum Credit Amount
升级后取消39B,和信用证金额相关的栏位只剩下了39A(信用证金额浮动允许范围)和39C(附加金额),如果需要关于信用证最大金额的特殊条款要到47A里面找啦!
例如,客户爸爸要求开立支取金额不超过100万美元的信用证:
❖ 升级前是这样式的:
39B:Maximum Credit Amount
NOT EXCEEDING
❖ 升级后可以是这样式的:
47A:Additional Conditions
TOTAL DRAWING AMOUNT NOT EXCEEDING USD1,000,000.00.
特别需要各位小伙伴注意的是,在新旧格式过渡期间,大家一定不要强行忽略39B。由于原有的信用证开出时带有39B,到单时银行系统打印出的MT700报文应该保留39B或予以额外备注。
4
40A信用证类型栏位
Form of Documentary Credit
升级后的700报文停止了所有可撤销信用证与备用信用证的开立。40A信用证类型栏位也相应地取消了与REVOCABLE及STANDBY相关的短码。这也就意味着以后所有通过MT700方式开立的信用证均为不可撤销信用证啦。
不过,咱家的GTS系统里面一直以来都只控制为IRREVOCABLE和IRREVOCABLE TRANSFERRABLE两个选项,这项更改对咱没影响~
5
40E信用证使用规则栏位
Applicable Rules
鉴于目前大部分的信用证选择UCP LATEST VERSION这一短码,升级影响不大呢!
6
43P分批装运栏位
Partial Shipments
43P升级前可选
❖ALLOWED
❖NOT ALLOWED
❖录入35个X字符
43P升级后可选
❖ALLOWED
❖NOT ALLOWED
❖CONDITIONAL
43P新增了CONDITIONAL短码,例如对于只允许分两批装运时:
❖升级前为:
43P:Partial Shipments
ALLOWED IN 2 LOTS ONLY
❖升级后可以为:
43P:Partial Shipments
CONDITIONAL
47A:Additional Conditions
PARTIAL SHIPMENTS ALLOWED IN TWO LOTS ONLY.
分批装运想加什么花样就加什么花样!
7
43T转运栏位
Partial Shipments
43T升级前可选
❖ALLOWED
❖NOT ALLOWED
❖ALLOWED IN
43T升级后可选
❖ALLOWED
❖NOT ALLOWED
❖CONDITIONAL
43T新增了CONDITIONAL短码,例如对于只允许在香港转运时:
❖升级前为:
43T:Transshipment
ALLOWED IN HONG KONG
❖升级后可以为:
43T:Transshipment
CONDITIONAL
47A:Additional Conditions
TRANSSHIPMENT ONLY ALLOWED IN HONG KONG
大胆设想一下,如果一路转运,周游全球不是梦!
8
45A货描栏位
Description of Goods and/or Services
46A单据条款栏位
Documents Required
47A特殊条款栏位
Additional Conditions
❖升级前,MT700只能出现一次45A/46A/47A,并且内容限制为100行65个X字符。实在打不下的内容只好放在MT701的45B/46B/47B里面了。
❖升级后,MT700出现45A/46A/47A之后,如果内容超过100行65个Z字符,在MT701中仍然可以出现45A/46A/47A继续显示(同时,MT701不再有45B/46B/47B),大幅增加了信用证货物描述、单据条款及特殊条款可以输入的行数, Z字符的引入也更加方便了开证环节。
本期47A及之前栏位变化就讲到这里啦~让我们一起期待下期关于47A栏位之后的变化解析吧。据说第七类报文格式升级解析之MT700(下篇)还有好几项重大变化,小编已经搬好小板凳迫不及待啦~
未完
待续
编辑:刘畅 王霞 赵赫
顾问:王晓娜
敬请扫描关注
以上是关于aardio - 虚标库全新升级,支持图片系列专题的主要内容,如果未能解决你的问题,请参考以下文章
aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译