2012-07-12 14 views
6

TLDR: Arama, alan arama boş değilken neden arama gruplarına göre devre dışı bırakıldı?Özel Arama ve Grup Tarafından

Formdaki bir alana özel bir arama yapmak istiyorum.

Val Spec 
------------ 
A alpha 
A beta 
A gamma 
B delta 
C epsilon 

bakmak sadece üzerinde temel bir ilişkisi olan bir EDT kullanılarak tanımlanır Val sütunu ilgilidir: tablo CTable şöyle Val == CTable.Val

arama açıkçası böyle Bana bir liste veriyor:

Yinelenen tümlerden kurtulmak için bir grup yapalım, diye düşündüm! çizgisinde şey:

QueryBuildDataSource.orderMode(OrderMode::GroupBy); 
QueryBuildDataSource.addGroupByField(fieldNum(CTable, Val)); 

Şimdi ben garip davranışları ve benim soruya fiili noktayı geliyor. Bunun yerine "B" tıklayın istedim çünkü o sırada yine arama gerçekleştirin aramada "A" seçelim Şimdi

A 
B 
C 

: Boş bir alana günü, grup doğru yürütülür ve bana böyle . Grup tarafından şu anda bilinmeyen nedenlerle devre dışı bırakılmış ve daha önce sahip olduğum ilk sonuçla aynı sonuçlara ulaşıyorum.

Neden böyle? Bunu nasıl aşabilirim?

cevap

5

Aynı soru ve kullanışlı cevap: false SysTableLookup içinde useLookupValues ​​ayarlayarak bu davranışı devre dışı bırakabilirsiniz http://dynamicsuser.net/forums/t/63438.aspx

. Ne yazık ki AX'in neden böyle olduğunu tam olarak bilmiyorum. OrderMode'u OrderBy'ye değiştirdiğinden şüpheleniyorum.

+3

[Sadece bağlantıya verilen cevaplar] (http://meta.stackoverflow.com/tags/link-only-answers/info) önerilmediğini unutmayın, SO cevapları bir çözüm arayışının son noktası olmalıdır. zaman içinde bayat eğilimi olan referanslardan başka bir duraklama). Lütfen bağlantıyı referans olarak tutarak, burada tek başına bir özet eklemeyi düşünün. – kleopatra

2

Ben de aynı problemi yaşadım.

Sanırım bu kod "init" içinde olabilir mi?

QueryBuildDataSource.orderMode(OrderMode::GroupBy); 
QueryBuildDataSource.addGroupByField(fieldNum(CTable, Val)); 

aşağıdaki satırı benim sorgudan groupBys çıkarmadan becuase, executeQuery yöntemine benim "GroupBy" kodunu (yukarıda) eklemek zorunda (bu kullanarak kesme noktaları kontrol);

qbsSum.sortClear(); 

Kesme noktaları kullanırsanız, sorguyu yeniden çalıştırmadan önce GroupBy seçeneklerinin temizlendiğini umuyorum.

+0

Hayır, init değil. Arama işlemini gerçekleştirecek olan tablo seviyesindeki yöntemdedir. Bu yöntem, bir parametre olarak bir stringControl dizesi alır, yerel bir sorgu nesnesine göre arama yapmak için bir SysTableLookup nesnesi kullanır. Bu yerel sorgu nesnesinin üzerinde Group By Clause vardır. Görünür "executeQuery" yöntemi yoktur, ancak yöntemin sonunda "performLookup" vardır. – Max

+0

Sorgunun yeniden çalışmasına (sorguyu çalıştırılmadan önce (yani B'yi tıklattığınızda) tekrar QueryBuildDataSource'a yeniden grup ekleyene kadar bir kez çalışırsa aynı sorunu yaşamanızı beklerim. – AnthonyBlake

1

Aynı problem vardı. Bu, bana yardımcı oldu: