【已解决】SPL 使用过程中遇到的问题
1、IDE 脚本编辑网格界面问题
- 不支持中英文字体分开设置,字体设置成英文字体后中文显示为方块,不可识别,不能使用常用的编程字体如 Consolas。[已解决]
- IDE 代码网格里没有字体平滑,代码的阅读体验略差。但值网格、网格变量等里面却支持平滑的字体(版本是 20230117 更新后的 20231208)[无影响]
- 双击网格横线,行高不会自适应,但双击网格竖线可以列宽自适应。[已解决](好像有行高自适应的配置)
解决方案:1、字体不影响使用;2、锯齿不影响使用;3、行高自适应有配置项。
2、导入 Excel 字段名换行问题
- 导入 Excel 数据时候,表字段名如果有换行,在导入的时候,字段名必须敲个回车进行物理换行,不能使用 \n 转义等方案,导致一行公式变成了多行。虽然 splx 支持,但另存为 spl 脚本重新打开会直接解析错误。[已解决]
比如 splx 中:
=file(A1).xlsimport@t(字段一,字段\\n二;"Sheet1",3).rename(字段\\n二:字段二)
只能写成(物理换行,且 spl 中不支持):
= file(A1).xlsimport@t(字段一,字段
二;"Sheet1",3).rename(字段
二:字段二)
解决方案:使用 #i+ 去掉 @t 来避免字段名换行问题。
3、自定义函数开发 API
- 自定义函数的一些 API 没看到文档(也可能我没找到),对于不同优先级的参数的处理也很迷惑(比如:;, 的参数),没找到相关文档,看 Param 的使用也云里雾里,isleaf、getsub、getsubsize、getleafexpression 等 API 都不是很清晰,没有系统化的概念。[已解决]
- 另外二次开发的自定义函数,**Cli 目录下的 jar 包里的其他静态方法不能使用 invoke 进行调用,不知道是不是因为有用不同的 classloader [无影响]
解决方案:1、已找到文档:SPL:自定义函数;2、无影响。
4、序表 select 筛选
- 序表的 select 函数筛选条件似乎不支持 in 判断,比如:【姓名 in (“A”, “B”)】或【姓名 in [“A”, “B”]】的写法不支持,只能写 【姓名 ==“A” || 姓名 ==“B”】多条件或使用【[“A”, “B”].contain(姓名)】等不太直观的写法。 [已解决]
解决方案:使用 序列.contain(字段)
5、使用 SQL 查询序表的问题
- 当在数据库连接配置中连接某个数据库后(比如 demo,不是使用 connect),会导致网格中【$select * from {序表}】这样的查询报错。[已解决]
解决方案:使用 $()select…
6、非规范数据的拆分支持
- 有时候职场中收集的数据,某一列是不规范的,比如开发提交工作任务的时候,任务编号一列有多个任务编号拼接在一起,目前还没看到可以将数据拆分成多行的支持。目前是使用 regex 或 split 手工把复合字段拆成序列,再根据序列生成多行数据,插入到新表来解决。[已解决]
*解决方案:使用 news 进行笛卡尔积运算,参考:7.25 CrossApply 运算
7、httpfile 的 header 处理
- httpfile 对 header 处理是以 K:V 的形式写在函数中的,但是 header 很多或 V 很长的时候(比如 jwt 的 token),函数看起来就非常的“肥胖”,目前通过先定义 record,将 record 转 json 字符串在去掉首尾 {},以宏的方式写到 httpfile 的函数里,但宏只能解析一次,是否 header 参数可以支持 record。[待定]
2、xmsimport和rename支持#i指定列, f.xlsimport@t (#1,#2).rename(#2:字段二)
3、参 SPL:自定义函数
4、又不是类自然语言,为啥非要 in 操作符?参见 java 的 Collection.contains
5、$(db)sql;… (db) 省略时用最后一次使用的 db
$()sql;… db 省略时才是针对文件系统的简单 sql
6. 可以使用 A.news 函数,参 7.25 CrossApply 运算
单引号里不转义
fyi…
1、字段有换行的,要用宏 ${“‘字段 \n 换行’”},双引号 + 单引号,比较麻烦,用 #i 是最省事的。
非要引用字段名,可以尝试以下写法:
2、IDE 界面字体,win 版本里的视觉呈现确实有锯齿,但 MAC 版本里很平滑,观感很好。
尝试过了单引号用 \n 的方式,会报不存在。
好的,学习了。
关于【IDE 代码网格中字体显示有锯齿】问题,程序已进行优化,请前往下载贴中下载最新的 esproc-bin.jar 文件。
好的,感谢。已经在使用了!
关于字体平滑的一个不成熟的修改,我在自己 windows10 上编译替换了 jar,查看字体平滑的效果已经很好了,应该是利用了 Windows 自身的 ClearType 字体特性:
感谢您的回复和支持!