26.09.2013, 15:30 | #1 |
Участник
|
Подскажите, пжлст, как правильно передавать фильтр?
Имеется некая доп. таблица. На ней форма. В форме есть кнопка "Трансфер", по которой вызывается отчет (R50318), переносящий инфо их этой таблицы в две другие. В отчете на Requestform есть параметр: "Обработать строки"(TabFlt) и далее выбор - текущую строну - только маркированные строки - все строки В триггере OnPush() кнопки "Трансфер" имеем: Код: CLEAR(R50318); R50318.SETTABLEVIEW(Rec); R50318.RUNMODAL(); Код: CASE TabFlt OF TabFlt::"Текущая строка": BEGIN // тут не знаю что писать END; TabFlt::"Маркированные строки": BEGIN MARKEDONLY(TRUE); END; TabFlt::"Все строки": BEGIN RESET; END; END; //CASE и как сделать так, что если на таблицу наложен фильтр, то он бы учитывался и в отчете? П.С. пониаю, что вопрос дилетантский, но тем не менее прошу о помощи |
|
26.09.2013, 16:13 | #2 |
Administrator
|
Rec.SETRECFILTER;
CLEAR(R50318); R50318.SETTABLEVIEW(Rec); R50318.RUNMODAL(); |
|
27.09.2013, 12:38 | #3 |
Участник
|
|
|
27.09.2013, 12:43 | #4 |
Участник
|
Так возьмите другую переменную и на нее наложите фильтр по главному ключу из Рек, и уже ее передайте в отчет.
|
|
27.09.2013, 14:39 | #5 |
Участник
|
Цитата:
Оставила пока так: В триггере OnPush() кнопки "Трансфер": Код: CLEAR(R50318); R50318.SETTABLEVIEW(Rec); R50318.RUNMODAL(); Код: CASE TabFlt OF TabFlt::"Маркированные строки": BEGIN MARKEDONLY(TRUE); // это отрабатывает корректно (получаю только маркированные строки) END; TabFlt::"Все строки": BEGIN // здесь ниче дополнительно не делаю, тогда обратаываются все строки, что были в форме (с учетом наложенных фильтров) END; TabFlt::"Текущая строка": BEGIN // а вот тут никак не получается добиться того, чтобы только текущая строка бралась :( END; END; //CASE Weekeeeend!!! |
|
28.09.2013, 11:37 | #6 |
Administrator
|
Код: CASE TabFlt OF TabFlt::"Маркированные строки": BEGIN MARKEDONLY(TRUE); // это отрабатывает корректно (получаю только маркированные строки) END; TabFlt::"Все строки": BEGIN // здесь ниче дополнительно не делаю, тогда обратаываются все строки, что были в форме (с учетом наложенных фильтров) END; TabFlt::"Текущая строка": BEGIN SETRECFILTER(); // а вот тут END; END; //CASE |
|
01.10.2013, 11:28 | #7 |
Участник
|
Цитата:
В итоге сдела следующее: В отчете R50318 создала процедуру: Код: EineZeile(SerNoLokal : Code[20]) SerNoGlobal := SerNoLOkal; Код: CLEAR(R50318); R50318.EineZeile(serial_number); R50318.SETTABLEVIEW(Rec); R50318.RUNMODAL(); CurrForm.UPDATE; Код: TabFlt::"Текущая строка": BEGIN SETRANGE(serial_number, SerNoGlobal); END; Ребята/девчата, всем спасибо за подсказки. что б я без вас делала?! |
|
02.10.2013, 10:24 | #8 |
Участник
|
а не пробовали вариант с SETSELECTIONFILTER?
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|
02.10.2013, 12:09 | #9 |
Участник
|
|
|
03.10.2013, 22:11 | #10 |
Участник
|
В триггере OnPush() кнопки
Код: Rec4Report.COPY(Rec); CLEAR(R50318); R50318.SETTABLEVIEW(Rec4Report); R50318.RUNMODAL(); Код: CASE TabFlt OF TabFlt::"Текущая строка": BEGIN SETRECFILTER(); END; TabFlt::"Маркированные строки": BEGIN MARKEDONLY(TRUE); END; TabFlt::"Все строки": BEGIN RESET; END; END; //CASE |
|
07.10.2013, 11:16 | #11 |
Участник
|
По поводу фильтра, подскажите плз, как сделать фильтр по типу, одного из свойств поля, optionstring: покупка, продажа
|
|
07.10.2013, 11:37 | #12 |
Administrator
|
1 SETRANGE("Document Type", 0{Продажа});
2 SETRANGE("Document Type", "Document Type"::Sale); |
|
07.10.2013, 14:10 | #13 |
NavAx
|
есть отличный чит
написать в коде что-нибудь вроде SETRANGE("Document Type", "Document Type"::БЯБЯБЯ) попытаться скомпилировать получить замечательную подсказку типа --------------------------- Microsoft Business Solutions-Navision --------------------------- 'БЯБЯБЯ' не является опцией. Существующие опции: Quote, Order, Invoice, Credit Memo, Blanket Order --------------------------- ОК ---------------------------
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
07.10.2013, 14:32 | #14 |
Administrator
|
в продолжение примера
SETRANGE("Document Type", "Document Type"::"Blanket Order"); писать тоже не обязательно, достаточно SETRANGE("Document Type", "Document Type"::Bl); |
|
07.10.2013, 16:03 | #15 |
Участник
|
|
|
07.10.2013, 16:32 | #16 |
NavAx
|
тогда да.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
07.10.2013, 16:36 | #17 |
Участник
|
|
|
07.10.2013, 16:46 | #18 |
Участник
|
нужно найти по номеру сотрудника и по дате
номер больничного, каким образом фильтры эти сделать? |
|
07.10.2013, 16:58 | #19 |
Участник
|
Цитата:
Fierce, я порой вообще не могу понять ваших вопросов, что мешает наложить фильтр на соответствующие поля? Или в нужной вам таблице нет таких полей и нужно лезть в какие-то другие справочники чтобы узнать нужные данные? P.S. с зарплатой не работал в НАВ, а я так подозреваю именно в этом блоке вы сейчас разбираетесь? |
|
07.10.2013, 18:47 | #20 |
Участник
|
Я так понял надо найти всех сотрудников болевших в определенный период? И справочники сотрудников не пересекаются со справочником больничных?
__________________
Как только вы проиграете, все ваши прошлые победы забудут. |
|