2017-03-22 6 views
0

Mit der Anfrage zu Gutscheintransaktionen wurde der Tabelle GeneralJournalEntry ein benutzerdefiniertes Feld hinzugefügt.Fehler beim Hinzufügen eines Felds zum Anfrageformular

Wenn ich versuche, dieses Feld zu meinem Anfrageformular hinzuzufügen, fügt es korrekt hinzu (wird als Dropdown-Liste dargestellt), und ich kann einen Wert eingeben oder einen aus der Dropdownliste auswählen - das Problem ist, wenn ich versuche lege in einem Platzhalter-Zeichen (*), ich werde eine Stack-Trace Fehlermeldung erhalten:

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 

Es gibt keine Änderungen an diesen Klassen, und ich kann nichts finden, das mich führen würde zu glauben, dass die Wildcard ist in diesem Feld ungültig.

Antwort

1

Dieses Problem tritt auf, weil die Methode \SysTableRelation\getDictFieldID den EDT des Feldes an der Zeile dictType = new SysDictType (sysDictField.typeId()) Zeile verwendet;

Ich habe durch Hinzufügen eines EDT zum Feld behoben.

+0

Ja, schließlich gab es ein Problem mit etwas Arbeit aus einer anderen Modifikation, und eine fehlende EDT war der Schuldige – tsweatt

0

Ich würde vermuten, dass Sie nicht vollständig kompiliert/synchronisiert haben und/oder Sie müssen das AOS neu starten. Sie sollten dies jedoch mit dem Debugger debuggen können.

Wenn Sie den Code in der Spitze des Stack-Trace sehen, es mit Bezug auf dieses Stück Code:

dictType = new SysDictType(sysDictField.typeId()); 
if(dictType.arraySize() > 1) // <--This is the error...that it's not initialized 

Sie können sehen, wo ich meinen Kommentar hinzugefügt, dass, wenn das nicht dann initialisiert bedeutet, dass die obige Zeile einen Dict-Typ nicht erstellen konnte. sysDictField hatte jedoch keine Probleme, die typeId() zurückgeben.

Setzen Sie einen Haltepunkt auf \Classes\SysTableRelation\getDictFieldID - line 7 und sehen Sie, was das Problem ist. Ich vermute, dass es nur eine Umgebung ist, die funktioniert und einige Compiles/Neustarts reparieren.

Verwandte Themen