09.09.2011, 14:34 | #1 |
Участник
|
Коллеги, столкнулся с указанной ниже проблемой – помогите, пожалуйста.
Есть форма, на которой выбирается «Код Склада» и «Номер Товара». При нажатии на соотв. кнопку открывается report, куда необходимо передать эти два параметра, с целью их дальнейшего использования в качестве фильтров по умолчанию по таблицам указанным в отчете. Report состоит из следующих DataItem:
Код: Location.SETRANGE(Code, "Location Code"); ReportName.SETTABLEVIEW(Location); ReportName.RUNMODAL; Пытался в отчете создавать функцию следующего содержания: Код: SetItemFilter(VAR ItemRec : Record Item) Item.COPYFILTERS(Item); Код: Location.SETRANGE(Code, "Location Code"); Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item); ReportName.SETTABLEVIEW(Location); ReportName.RUNMODAL; Есть у кого какие мысли? |
|
09.09.2011, 16:12 | #2 |
Участник
|
Доброго дня всем.
делаю вот так .. (не помню , где подсмотрела ) Во-первых, нужно подготовить отчет, чтобы он мог эти передаваемые параметры принять. Для этого создадим в нем функцию: SetProperties(lmyParam1 : Boolean; lmyParam2 : Integer) gmyParam1 := lmyParam1; //присваиваем полученные значения gmyParam2 := lmyParam2; //глобальным переменным отчета Потом передадим требуемые параметры в отчет GReport50055.SetProperties(TRUE,123); А потом отчет запускаем GReport50055.RUNMODAL; Так пробовали? |
|
09.09.2011, 16:33 | #3 |
Участник
|
Цитата:
Сообщение от kudrenko
А вот установить фильтр по таблице Item не получается.
Пытался в отчете создавать функцию следующего содержания: Код: SetItemFilter(VAR ItemRec : Record Item) Item.COPYFILTERS(Item); Код: Location.SETRANGE(Code, "Location Code"); Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item); ReportName.SETTABLEVIEW(Location); ReportName.RUNMODAL; Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item); - Почему Item? Откуда он взялся? Фильтр наложен же на Item_на_форме, его и передавайте в отчет. |
|
09.09.2011, 16:56 | #4 |
Участник
|
Цитата:
Сообщение от .Quattro.
Цитата:
Сообщение от kudrenko
А вот установить фильтр по таблице Item не получается.
Пытался в отчете создавать функцию следующего содержания: Код: SetItemFilter(VAR ItemRec : Record Item) Item.COPYFILTERS(Item); Код: Location.SETRANGE(Code, "Location Code"); Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item); ReportName.SETTABLEVIEW(Location); ReportName.RUNMODAL; Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item); - Почему Item? Откуда он взялся? Фильтр наложен же на Item_на_форме, его и передавайте в отчет. .Quattro., вы безусловно правы - это я просто здесь сделал опечатку, в коде было конечно же так (спасибо, что поправили): На кнопке формы: Код: Location.SETRANGE(Code, "Location Code"); Item_на_форме.SETRANGE(“No.”, ‘Номер товара’); ReportName.SetItemFilter(Item_на_форме); ReportName.SETTABLEVIEW(Location); ReportName.RUNMODAL; Код: SetItemFilter(VAR ItemRec : Record Item) Item.COPYFILTERS(ItemRec); Код: MESSAGE(Item.GETFILTERS); Тем не менее ума не приложу, почему я не наблюдаю "Выбранный Код Товара" на гриде фильтров таблицы Item. |
|
09.09.2011, 17:01 | #5 |
Участник
|
Цитата:
Сообщение от mira
Доброго дня всем.
делаю вот так .. (не помню , где подсмотрела ) Во-первых, нужно подготовить отчет, чтобы он мог эти передаваемые параметры принять. Для этого создадим в нем функцию: SetProperties(lmyParam1 : Boolean; lmyParam2 : Integer) gmyParam1 := lmyParam1; //присваиваем полученные значения gmyParam2 := lmyParam2; //глобальным переменным отчета Потом передадим требуемые параметры в отчет GReport50055.SetProperties(TRUE,123); А потом отчет запускаем GReport50055.RUNMODAL; Так пробовали? |
|
09.09.2011, 19:47 | #6 |
Участник
|
Всё гораздо проще:
т.к. таблица Item в вашем report'е тоже DataItem (как и Location), то и для неё можно "подсовывать" report'у наложенные фильтры посредством SETTABLEVIEW. Всё прекрасно работает, при старте report'a видны фильтры и на Location, и на Item. Так что в этом случае можно обойтись и без функции. Код: Location.SETRANGE(Code,'BLUE'); ReportName.SETTABLEVIEW(Location); Item.SETRANGE("No.",'1000'); ReportName.SETTABLEVIEW(Item); ReportName.RUNMODAL; |
|
09.09.2011, 23:35 | #7 |
Участник
|
Цитата:
Сообщение от AlexB
Всё гораздо проще:
т.к. таблица Item в вашем report'е тоже DataItem (как и Location), то и для неё можно "подсовывать" report'у наложенные фильтры посредством SETTABLEVIEW. Всё прекрасно работает, при старте report'a видны фильтры и на Location, и на Item. Так что в этом случае можно обойтись и без функции. Код: Location.SETRANGE(Code,'BLUE'); ReportName.SETTABLEVIEW(Location); Item.SETRANGE("No.",'1000'); ReportName.SETTABLEVIEW(Item); ReportName.RUNMODAL; |
|
10.09.2011, 17:51 | #8 |
Administrator
|
|
|
12.09.2011, 10:56 | #9 |
Участник
|
|
|