15.11.2013, 12:50 | #1 |
Участник
|
В некоем отчете на печать надо выводить строки счета, но не все, а только
1) с типом Item - все 2) с типом G/L Account - с номерами, заданными пользователем на RequestForm Вопрос: я правильно подозреваю, что одновременно такой фильтр не наложить? нужно будет делать в два прохода: первый раз выбрать все строки с Item, второй раз - с G/L Account, одновременно накладывая фильтр на поле "No." Т.е. будет два DataItem'а одного уровня и одного типа (Sales Invoice Line), но с разными фильтрами? |
|
15.11.2013, 13:05 | #2 |
Участник
|
Если Sections должны быть одинаковыми для обоих типов строк, логичнее, наверное, заполнить строками обоих типов темповую табличку, а затем сделать DataItem, основанный на Integer, с обходом этой таблички.
Так и сортировать строки удобнее. |
|
15.11.2013, 13:15 | #3 |
Участник
|
Sections-то одинаковые. Но ведь чтобы заполнить эту табличку все равно придется строки счета просматривать 2 раза? или?
|
|
15.11.2013, 13:30 | #4 |
Участник
|
Дата айтем по строкам счета.
OnPreDataItem() Код: SETFILTER(Type, '%1|%2', Type::Item, Type::"G/L Account"); Код: IF Type = Type::"G/L Account" THEN IF [Счет не из списка с реквеста] THEN CurrReport.SKIP; |
|
15.11.2013, 14:03 | #5 |
Участник
|
Цитата:
Но если в реквесте фильтр задан строковой переменной(назовем ее, н-р, AccFilter) и виде: СчетA|СчетB|счетC..счетD|счетXYZ, как вот эту проверку [Счет не из списка с реквеста] делать? Вариант с Код: IF NOT ("No." IN AccFilter) THEN |
|
15.11.2013, 14:09 | #6 |
Участник
|
|
|
15.11.2013, 15:08 | #7 |
Участник
|
Накладываете один фильтр, копируете строки в темповую таблицу, накладываете второй, снова копируете. После этого делаете с ней что хотите - упорядочиваете, суммируете поля...
|
|
15.11.2013, 15:28 | #8 |
Участник
|
Цитата:
(Прим.: пользователю порядок строк неважен.) Имхо, менее затратно (в смысле времени) решить задачу в лоб, т.е. с помощью двух DI. |
|
15.11.2013, 15:39 | #9 |
Участник
|
"решить задачу в лоб" - сильно субъективное понятие. Я думаю для каждого из нас оно предполагает тот вариант решения, который нам известен, которым мы привыкли пользоваться. Два датаайтема - это возможно два набора секций отчета, которые надо раскопировать. Возможно что-то еще, что усложнит реализацию и поддержку. Выбирать вам. Но сама по себе функция, определяющая вхождение конкретного кода в строку фильтра очень полезна и применимость ее будет высока.
|
|