2013-06-25 34 views
1

我有一個自定義表,我基本上是在CustGroup表之後建模的。無法確定自定義表上的主鍵字段

該表有兩個字段,一個擴展SysGroup,另一個是Name類型。我添加了一個索引AllowDuplicates = No和一個SysGroup字段。

而在桌子上,我設置PrimaryIndex等於我的SysGroup字段。

我刪除了axapd.aoi文件並重新啓動了AOS。我也跑了交叉引用更新和SysFlushAOD::main(null);

當我運行下面的代碼時,第一行返回0,第二行返回0,表示它能夠找到主鍵。

info(strfmt("MyCustGroup: %1", new SysDictTable(40390).primaryKeyField())); // Returns 0 
info(strfmt("CustGroup: %1", new SysDictTable(57).primaryKeyField())); // Returns 1 

任何想法我做錯了什麼?

+0

你的索引在AOT中看起來像什麼?它的圖標上是否有一個'1'來表示它是主要的? – AnthonyBlake

+0

是的,它有一點點1. –

+1

在這裏抓住吸管,而不是40390,試試:SysDictTable(tablenum(MyCustGroup))。primaryKeyField())); 如果您在AOS服務中複製表,它們之間可能會有不同的TableID。 –

回答

0

您的主鍵應該擴展您自己擴展的數據類型(EDT),擴展SysGroup。 在EDT的關係節點中與您的表和關鍵字段有正常關係。然後改變你的關鍵領域,從你的EDT延伸。

將您的表的TableGroup屬性設置爲Group。 然後確保表格完全符合Best Practice檢查。

如果這樣不能解決您的問題,請導出,刪除並導入您的表格。

+0

啊!我忘了在EDT上添加正常的關係。 –