anytype オブジェクトに RecId を格納すると、番号が壊れます。私の実装では、ツリービュー アイテムのデータ値フィールドに RecId を格納しています。データ値を取得するたびに、保存した数値は常に大きく変化します。助言がありますか?
次に例を示します。
void fillTree()
{
ABC_Menus _ABC_Menus;
TreeItemIdx parentItemIdx;
;
while select Prompt, RecId from _ABC_Menus
{
parentItemIdx = SysFormTreeControl::addTreeItem(formTreeControl, _ABC_Menus.Prompt, FormTreeAdd::Root, _ABC_Menus.RecId, 0, true);
}
}
public void endLabelEdit(int _idx, str _text, anytype _data)
{
FormTreeItem formTreeItem = this.getItem(_idx);
;
formTreeItem.text(_text);
this.setItem(formTreeItem);
info(_data); //this number comes out all wrong
super(_idx, _text, _data);
}
ツリー値フィールドに RecId を格納しています。しかし、後で検索すると、まったく違う番号が返ってきます。
- テーブル内の RecId: 5637144588
- endLabelEdit メソッドによって表示される RecId: 202520592908288
また、RecId をフィールドに格納するときに num2str(ABC_Table.RecId, 0, 0, 0) を使用してみました。そのように格納すると、数値は一致しますが、「代入/比較で精度が失われます」という警告がスローされます。それは大丈夫ですか、それとももっと良い方法がありますか?
ありがとう