2011-05-03 66 views
1

我有一個下拉(Dimesions)和一個字符串編輯LookUp(dimensionValue)當我選擇一個維度時,假設'分支'和一個數值例如「B001」我用下面的查詢通過多維數值過濾

queryRun.query().dataSourceTable(tablenum(LedgerTrans)).addange(fieldId2Ext(fieldNum(LedgerTrans, Dimensions), dimensions)).value(dimensionValue);

其中dimensions是enumValue過濾結果,在上述查詢enumValue分支是3dimensionValue是一個字符串EDT。

現在我想過濾多維度值,例如'B001,B002,B002'等。我在查詢中需要做些什麼修改?請協助。

回答

2

使用此代碼,您應該可以在Value StringEdit控件中簡單地輸入「B001,B002,B002」(不帶引號)。

通過我勸你如下使相同的範圍將不會被添加一遍又一遍修改代碼的方式:

SysQuery::findOrCreateRange(queryRun.query().dataSourceTable(tablenum(LedgerTrans)), fieldId2Ext(fieldNum(LedgerTrans, Dimensions), dimensions)).value(dimensionValue); 
+0

感謝您的答覆,但我得到一個錯誤'參數' _queryBuildDataSource'與所需的類型不兼容。':( – piku 2011-05-03 11:15:57

+0

參數_queryBuildDataSource是'queryRun.query()。dataSourceTable(tablenum(LedgerTrans))'',我不明白爲什麼它會給出這樣的錯誤,但無論如何,甚至你應該可以通過輸入「B001,B002,B002」(不帶引號)來過濾你的原始代碼。 – 10p 2011-05-03 11:38:58

+1

這應該更具可讀性: QueryBuildDataSource qbds = queryRun.query()。dataSourceTable(tablenum(Led gerTrans)); FieldId fieldId = fieldId2Ext(fieldNum(LedgerTrans,Dimensions),dimensions); ; SysQuery :: findOrCreateRange(qbds,fieldId).value(dimensionValue);' – 10p 2011-05-03 11:41:49