我正在使用webmerge创建文档。
我有一个看起来像这样的规则(忽略此问题的import dask.dataframe as dd
df = dd.read_csv(r'file.csv', delim_whitespace=True,
parse_dates=['start_date', 'end_date'])
df['days'] = (df['end_date'] - df['start_date']).dt.days
print(df.compute())
start_date end_date days
0 2018-09-01 2018-10-01 30
1 2018-09-02 2018-09-22 20
条件):
然后我传递如下所示的JSON数据:
{$docType}
这很好用,并将根据需要提供的URL加载每个表单。
但是,如果我有两个相同的表单,但{
"forms": [
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "2000000"
}
},
{
"formID": 20,
"formUrl": "https://www.webmerge.me/merge/111111/a2X5yn",
"fillIns": []
}
]
}
不同,如下所示:
fillIns
它会合并两个表单,但每个表单都具有{
"forms": [
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "1000000"
}
},
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "2000000"
}
}
]
}
的两个值,基于以下映射:
retainedAmount
所以两种形式的最终结果都将如下所示:
保留金额:10000002000000
我想要的结果是显示表单的第一个实例
保留金额:1000000
第二个显示
保留金额:2000000
看来,由于映射每次都循环遍历数组中的每个元素,因此每个表单都将两个值相加。
我一直在玩{foreach from=$forms item=_row}{if $_row.formID == 19}{if !empty($_row.fillIns.retainedAmount)}{$_row.fillIns.retainedAmount|number_format}{/if}{/if}{/foreach}
和array_shift
,以便重复该规则,但一次只考虑一个元素,但是我似乎无法使其正常工作。
我认为我需要将每个元素都放入一个变量中,然后在映射中引用该变量,但是我似乎无法使其正常工作。我会展示我的所有尝试,但我认为这将是丑陋的。
最后,我永远也不会知道在哪个索引处显示多少个具有不同fillIns的相同表单,因此我也无法使用任何键来指导我。
由于我意识到并不是每个人都有webmerge,因此通过打印的最终结果将是这样的:
array_pop