07.08.2015, 14:05 | #1 |
Участник
|
Фильтрация на форме
Добрый день!
Есть форма InventNonconformanceTable Хочу сделать таким образом чтобы по умолчанию при открытие формы производилась фильтрация по остаткам который на текущий момент есть в наличии. Форма под собой содержить два datasource InventNonconformanceTable и InventDim с relation по inventDimId. В моем случае нужно сделать следующее проверять остатки в наличии(InventSum.AvailPhysical !=0) но не по InventDimId а по WMSpalletID и InventBatchId, так как паллета может сменить аналитики месторасположение и склад. Попытался сделать так: в метод init InventDim_DS дописал следующее: X++: qbdsfilter = this.query().dataSourceTable(tablenum(InventDim)).addDataSource(tableNum(InventDim),"InventDimInventSum"); qbdsfilter.addLink(fieldNum(InventDim,wMSPalletId),fieldNum(InventDim,wMSPalletId)); qbdsfilter.addLink(fieldNum(InventDim,InventBatchId),fieldNum(InventDim,InventBatchId)); qbdsfilter.joinMode(JoinMode::ExistsJoin); qbdsfilter = this.query().dataSourceName("InventDimInventSum").addDataSource(tableNum(InventSum)); qbdsfilter.joinMode(JoinMode::InnerJoin); qbdsfilter.addRange(fieldNum(InventSum, ClosedQty)).value(int2str(NoYes::No)); qbdsfilter.addRange(fieldNum(InventSum, AvailPhysical)).value(strfmt("(%1 != %2)", fieldStr(InventSum, AvailPhysical), 0)); |
|
07.08.2015, 14:32 | #2 |
Участник
|
Пропущена связь между InventDimInventSum и InventSum?
И для чего так мудрёно? можно же проще X++: //qbdsfilter.addRange(fieldNum(InventSum, AvailPhysical)).value(strfmt("(%1 != %2)", fieldStr(InventSum, AvailPhysical), 0)); qbdsfilter.addRange(fieldNum(InventSum, AvailPhysical)).value(SysQuery::valueNot(0)); Последний раз редактировалось S.Kuskov; 07.08.2015 в 14:35. |
|
|
За это сообщение автора поблагодарили: Art_Tanis (1). |
07.08.2015, 15:01 | #3 |
Участник
|
Спасибо больше) и ведь верно где же связь??
Имеющий глаза да увидит. |
|