【GcExcel7.0.3】processTemplate是否可以支持选择数据源/更新数据源上数
本帖最后由 Lynn.Dou 于 2024-4-23 09:44 编辑问题2调研编号:DOCXLS-9514
1、提供标准的接口可以获取到相关模板的数据源列表。
比如模板中设置了a,b,c三个数据源,我直接可以通过Workbook对象调用相关方法获取数据源列表a,b,c。
2、支持对当前报表模板进行数据源选择上数。
比如模板中设置了a,b,c三个数据源,在我进行第一次上数时基于报表模板文件A.ssjson我们只选择数据源a进行上数,然后保存文件为B.ssjson(只上了数据源a),后续我们再次打开报表文件B.ssjson,然后添加数据源b,c进行上数并保存文件为C.ssjson(此时数据源a,b,c都上数了)。
3、支持数据源更新后重新对当前已经上数的模板进行上数。
比如模板中有一个数据源ds,在使用processTemplate对模板文件A.ssjson进行上数后,保存当前Workbook为B.ssjson文件。过一段时间ds数据源更新了,我们再次使用gc打开B.ssjson文件添加数据源ds,然后使用processTemplate对报表文件B上数,然后保存新的报表文件C.ssjson。
您好,
关于问题1、问题2 已作为需求记录下来,后续如有相关进展,会在贴中做通知。
关于问题3目前正在做进一步的确认,待有结果贴中做更新。
关于问题3,与相关同事进行了沟通,在您描述的需求基础之上做了补充,您看下我的理解是否正确:
“模板中有一个数据源ds,在使用processTemplate对模板文件A.ssjson进行上数后,保存当前Workbook为B.ssjson文件。
B.ssjson文件在SpreadJS显示时,用户可能会做一些修改,比如添加批注等,之后再次保存为B_afrer.ssjson
过一段时间ds数据源更新了,我们期望GcExcel可以直接打开B_afrer.ssjson文件,并绑定更新后的数据源ds ,然后使用processTemplate对报表文件B_afrer.ssjson上数,然后保存新的报表文件C.ssjson。”
Lynn.Dou 发表于 2024-3-28 14:52
关于问题3,与相关同事进行了沟通,在您描述的需求基础之上做了补充,您看下我的理解是否正确:
“模板 ...
是的我们是这个需求。 经过我们内部讨论,从产品层目前也没有很好的方案了,建议还是从应用层入手尝试解决。
比如将做的添加批注等行为在另一个新sheet中做记录,待模板文件对数据源完成上数之后,再根据记录的修改复原回去。
对于问题1、2,如1楼所述,已作为需求记录下来,后续如有相关进展,会在贴中做通知。
Lynn.Dou 发表于 2024-3-29 17:35
经过我们内部讨论,从产品层目前也没有很好的方案了,建议还是从应用层入手尝试解决。
比如将做的添加批注 ...
如果只对数据源做更新,比如一个模板A我第一次上数时添加了数据源ds1,ds2然后保存为文件B。过一段时间数据源更新了,我重新打开文件B然后选择数据源ds1或则ds2或者ds1和ds2对模板进行重新上数。此时gc只需要帮我还原相关数据区域并完成相关新数据源的上数就行了。不用去关心用户的修改记录,只对数据源做更新重新上数。这样的需求可以实现吗? 如果是这样,为什么不在数据源更新后,还是使用模板A进行上数呢?对于模板A来说,只需要分别执行对应的数据源就好。
对于文件B来说,它已经是上数后的文件了,即单元格内不再有模板语言,所以对于更新后的数据源无法识别并进行上数。 Lynn.Dou 发表于 2024-4-1 11:54
如果是这样,为什么不在数据源更新后,还是使用模板A进行上数呢?对于模板A来说,只需要分别执行对应的数据 ...
因为这样的话我可以做模板数据源与用户使用的数据区域隔离,比如我们在一个模板中做A、B、C三个sheet,我的sheetA是用来上数的,其中的B、C可以引用sheetA中上数的数据进行计算。因此,我可以在当前模板上数后保存为一个文件为ReportA,然后用户可以对当前文件进行编辑,我后面重新对文件ReportA进行打开然后再基于sheetA进行上数然后保存为文件ReportB, 此时就可以在保存当前用户修改数据的前提进行更新数据源了。 我的理解其实又回到5楼所述了,因为ReportA已经是上数后的文件,内已经没有模板语言,所以GcExcel无法进行识别并加载数据源了。如5楼所述,还是还是从应用层做下解决,比如对于用户做的修改性行为做下二次记录,在更新数据源之后将修改复原回去,以实现“在保存当前用户修改数据的前提进行更新数据源” Lynn.Dou 发表于 2024-4-2 18:13
我的理解其实又回到5楼所述了,因为ReportA已经是上数后的文件,内已经没有模板语言,所以GcExcel无法进行 ...
其实我这种是想简单实现,我只是想让后端有二次上数的能力,模板中的上数sheet和用户修改的sheet是完全分开的了。这样我就可以基于当前已经上数的文件进行数据源更新了
目前我们的实现的思路是在我们解析模板时(设置类似"{{xxx}}"格式的模版),记录相关后端模板设定方式以及相关坐标,写到一张配置sheet中,然后再次上数时我去读取配置sheet进行相关上数数据区域(gc上数区域)还原以及重新标记模板"{{xxx}}" 然后再重新调用gc上数 即可完成重新上数过程。
页:
[1]
2