29.04.2005, 12:39 | #1 |
Участник
|
Есть отчет который вызывается из карточки чего либо . Вопрос такой можно ли перед запуском отчета узнать номер записи по которой будет сроиться отчет?
|
|
29.04.2005, 12:48 | #2 |
NavAx
|
Как именно вызывается из карточки чего-то?
В смысле какой код прописан на менюайтеме, вызывающем отчет? В принципе, обычно отчеты из всяческих карточек вызываются по текущей записи, т.е. номер записи, который Вам нужен - это первичный ключ Rec (Rec."No.", Rec.Code etc).
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.04.2005, 13:13 | #3 |
Участник
|
данный отчет вызывается из карточки работы - да я знаю что если из карточки то значит по текущей записи строится но проблема в том что необоходимо сделать возможность на реквест форме выбирать другую работу а код работы из карточки которой вызвали проставлялся по умолчанию
|
|
29.04.2005, 13:47 | #4 |
Участник
|
PurchRcptHeader.SETFILTER(PurchRcptHeader."No.",Rec."No.");
FIND; REPORT.RUNMODAL(50135,TRUE,FALSE,PurchRcptHeader); Подойдет? |
|
29.04.2005, 13:50 | #5 |
NavAx
|
Приведите код, которым вызывается отчет.
Например, если он вызывается через REPORT.RUN, то там есть параметр ReqWindow и если его выставить в YES, то как раз будет нужный Вам эффект.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.04.2005, 14:03 | #6 |
Участник
|
REPORT.RUNMODAL(RepSelectionTmp."Report ID",TRUE,FALSE,JobRecord)
дело в том что первый датаайтем в отчете - Job так вот если я убираю для показа ReqFilterFields, на реквест форме у меня есть текст бокс через который можно выбрать любую другую работу - datasource у этого текст бокса - текстовая переменная JobNo - как мне сделать что бы JobNo = JobRecord."No." сразу при открытии реквест формы то бишь отчет то будет строиться правильно именно по той работе по котороя я его вызвал но передать номер работы я не могу в переменную |
|
29.04.2005, 14:21 | #7 |
NavAx
|
Если оч. хочется сделать именно так, то стоит в отчете написать функцию SetJobNo, которая будет устанавливать значение этой переменной.
А отчет запускать через переменную типа JobReport : Report. Т.е. вызов отчета будет выглядеть как JobReport.SetJobNo(JobNo); //далее можно наложить какие-нибудь SETTABLEVIEW, если надо //а можно уже внутри отчета смотреть на JobNo и разбираться JobReport.RUN
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.04.2005, 14:27 | #8 |
Участник
|
Понятно.... спасибо .... вопщем стандартными средствами отчета не получить - надо писать функцию
|
|
29.04.2005, 14:30 | #9 |
NavAx
|
Дело в том, что если Вы хотите видеть некое установленное значение на реквест-форме, то оно должно быть задано либо на OnInitReport, либо внешней функцией до запуска отчета.
Но если задавать это значение на OnInitReport, то фильтры с датаайтема получить не удастся...
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.04.2005, 14:33 | #10 |
Участник
|
угу спасибо... я уже это понял ... искал искал думал вот может чего не доглядел - дело в том что для распечатки используется стандартная схема через настройку отчетов и отдельно функцию писать и вызывать отдельно какой то отчет не совсем правильно и удобно мне кажется
|
|
29.04.2005, 14:45 | #11 |
NavAx
|
Гм. А Вы уверены, что правильно и удобно задавать номер джоба на реквест-форме, а не на датаайтеме?
Ну если совсем не хочется отменять вызов репорта через РепортСелекшн - передавайте параметр через кодъюнит с SingleInstance = Yes, а в отчете на OnInitReport считывайте.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.04.2005, 14:52 | #12 |
Участник
|
может быть и неудобно но это требование руководителя а по поводу кодеюнита это хорошая идея
|
|