使用凭证交易查询,我已在GeneralJournalEntry表中添加了自定义字段。
当我尝试将此字段添加到我的查询表单时,它会正确添加(呈现为下拉列表),我可以输入一个值或从下拉列表中选择一个 - 问题是如果我尝试放入在通配符(*)中,我将收到堆栈跟踪错误:
SysDictType object not initialized.
(S)\Classes\SysTableRelation\getDictFieldID - line 7
(S)\Classes\SysTableRelation\findRelation - line 41
(C)\Classes\SysLookup\lookupTableRelation - line 13
(C)\Classes\SysLookup\lookupRange - line 133
(C)\Forms\SysQueryForm\Data Sources\Range\Fields\RangeValue\Methods\lookup - line 36
(C)\Classes\FormStringControl\PerformDBLookup
(C)\Classes\FormStringControl\lookup
(C)\Forms\SysQueryForm\Designs\DesignList\RangeValue\Methods\lookup - line 27
对这些类没有任何修改,我找不到任何会让我相信通配符在此字段中无效的内容。
答案 0 :(得分:1)
出现此问题的原因是方法\SysTableRelation\getDictFieldID
使用了行dictType = new SysDictType (sysDictField.typeId ())
行的字段的EDT;
我通过在现场添加EDT来修复。
答案 1 :(得分:0)
我猜你还没有完全编译/同步所有内容和/或你需要重新启动AOS。您应该能够使用调试器对此进行调试。
如果查看堆栈跟踪顶部的代码,它会引用这段代码:
dictType = new SysDictType(sysDictField.typeId());
if(dictType.arraySize() > 1) // <--This is the error...that it's not initialized
您可以看到我添加评论的位置,如果未初始化,则表示上述行无法创建dict类型。 sysDictField
然而typeId()
返回\Classes\SysTableRelation\getDictFieldID - line 7
时没有问题。
在{{1}}上放一个断点,看看问题是什么。我怀疑它只是环境起作用,一些编译/重启将会解决。