我用C#编写了代码来汇总InvoiceTable
的值,并将这些汇总值移动到Abbyy FlexiCapture中的GroupTable
。该软件相对较新,运行时没有显示任何错误。
需要编写两组代码:
1.在技术领域。
1.在事件处理程序中。InvoiceTable
包含:
- 税号
- 装运数量
- 金额
- 首席运营官
GroupTable
包含:
- HS代码
- 数量
- 金额
- 国家OO
事件处理程序代码如下(C#):
if (ChangedStates.Has(7)) {
int currentRow = 0;
int i;
for (i = 0; i < Document.Field("Invoice2\\InvoiceTable").Items.Count; i++) {
if (Document.Field("Invoice2\\InvoiceTable").Cell("TariffNumber", i).Value == "") {
Document.Field("Invoice2\\GroupTable").Cell("HSCode", currentRow).Value = Document.Field("Invoice2\\InvoiceTable").Cell("TariffNumber", i).Value;
Document.Field("Invoice2\\GroupTable").Cell("Amt", currentRow).Value = Document.Field("Invoice2\\InvoiceTable").Cell("Amount", i).Value;
Document.Field("Invoice2\\GroupTable").Cell("Qty", currentRow).Value = Document.Field("Invoice2\\InvoiceTable").Cell("ShipQty", i).Value;
currentRow++;
}
}
}
技术字段如下所示(JScript):
for (i = 0; i < Field("ShipQty").Items.Count - 1; i++) {
for (j = i + 1; j < Field("ShipQty").Items.Count; j++) {
// if same new items are found
if (Field("TariffNumber").Items(i).Value == Field("TariffNumber").Items(j).Value && Field("CoO").Items(i).Value == Field("CoO").Items(j).Value)
{
// summarise quantities
Field("ShipQty").Items(i).Value = parseInt(Field("ShipQty").Items(i).Value) + parseInt(Field("ShipQty").Items(j).Value);
// and weights
Field("Amount").Items(i).Value = parseFloat(Field("Amount").Items(i).Value) + parseFloat(Field("Amount").Items(j).Value);
}
}
}
条件:
在InvoiceTable
中,如果TariffNumber
和COO
相等,则应将ShipQty
和Amount的值相加并放入GroupTable
中。
代码没有显示任何错误,但也没有给出输出。如果你们中的任何人能帮我解决这个问题,那就太好了。
1条答案
按热度按时间f0brbegy1#
您可以尝试在文档定义中添加一个汇总节。这可能需要您创建一个文档集。
我发现创建字段被识别时检查的规则更容易。这里有一些信息:https://help.abbyy.com/en-us/flexicapture/12/distributed_administrator/docsets_settings/