28.07.2006, 11:36 | #1 |
Участник
|
Построение Report'а по Map'ам
Добрый день! Подскажите, плиз - хочется построить отчёт, у которого два DataSource - грубо говоря, Table и Trans, которые являются Map'ми. Не получается указать при инициализации отчёта - на какую конкретно таблицу (входяющую в Mappings) этим Map'ам смотреть. Буду очень признателен за советы!
__________________
Paul_ST |
|
28.07.2006, 12:42 | #2 |
Модератор
|
Мар - это, скорее, ближе к темповой таблице. Там нет данных. Это логическое объединение. Поэтому и построить отчет будет хм... затруднительно. Мой совет: используйте 2 разных отчета. Или 2 разных дизайна одного и того же отчета.
С Уважением, Георгий |
|
28.07.2006, 12:51 | #3 |
Участник
|
Два разных отчёта изначально и были сделаны. Сейчас хочется единообразия, потому что в случае правок дизайна - придётся дублировать изменения.
Я нашёл в стандартном функционале пример работы отчёта (CustInvoiceJourRegister_LT) по Map (CustVendInvoiceJour). В init() там прописана инициализация: this.queryRun().setCursor(custVendInvoiceJourRegisterReport.custVendInvoiceJour()); - т.е. задаётся курсор (map), который уже инициализирован в классе. У меня почему-то подобное не проходит - пытаяьс сделать аналогично - проселектив нужную табличку в отдельном методе - при передаче её как map в setCursor() получаю ошибку - "Неправильные аргументы". Пока ничего не могу понять.
__________________
Paul_ST |
|
28.07.2006, 13:22 | #4 |
Участник
|
Цитата:
Сообщение от Paul_ST
Два разных отчёта изначально и были сделаны. Сейчас хочется единообразия, потому что в случае правок дизайна - придётся дублировать изменения.
Я нашёл в стандартном функционале пример работы отчёта (CustInvoiceJourRegister_LT) по Map (CustVendInvoiceJour). В init() там прописана инициализация: this.queryRun().setCursor(custVendInvoiceJourRegisterReport.custVendInvoiceJour()); - т.е. задаётся курсор (map), который уже инициализирован в классе. У меня почему-то подобное не проходит - пытаяьс сделать аналогично - проселектив нужную табличку в отдельном методе - при передаче её как map в setCursor() получаю ошибку - "Неправильные аргументы". Пока ничего не могу понять. У меня нет ни класса такого, ни отчета. А по делу - так скорей всего метод custVendinvoiceJour возвращает MAP, а вы пытаетесь туда запихнуть таблицу. |
|
28.07.2006, 13:34 | #5 |
Участник
|
Ну т.е. - склониться в сторону двух отдельных отчётов?
По поводу последнего - передаю я, естественно map, который присваивается предварительно нужной таблицей. Если присвоения не делать, то всё хорошо - ошибки нет, но и данных никаких отчёт не выведет.
__________________
Paul_ST |
|
28.07.2006, 13:34 | #6 |
Участник
|
Отчёт и класс у меня точно есть в АОТ. Axapta 3.0 SP4
__________________
Paul_ST |
|
28.07.2006, 13:53 | #7 |
MCTS
|
Есть... Есть такой отчёт.
Changed by Vaus каким-то
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
28.07.2006, 14:00 | #8 |
Microsoft Dynamics
|
Столкнулась с той же проблемой, но в 4ке.
Ниасилила. Все вроде чики-пики и логично, но когда вытаскиваешь квериран из квери, он пустой. Ввиду отсутствия времени было сделано в итоге 2 отчета на соответствующие таблицы , хотя до этого ковырялась в этом долго. И стандартных отчетов на мапе не нашла, даже сделала джобу, которая по аот проходится и находит все такие. И отчета с классом в сп4 и сп5 у меня нету... |
|
28.07.2006, 14:46 | #9 |
NavAx
|
Цитата:
Сообщение от Paul_ST
Два разных отчёта изначально и были сделаны. Сейчас хочется единообразия, потому что в случае правок дизайна - придётся дублировать изменения.
Я нашёл в стандартном функционале пример работы отчёта (CustInvoiceJourRegister_LT) по Map (CustVendInvoiceJour). В init() там прописана инициализация: this.queryRun().setCursor(custVendInvoiceJourRegisterReport.custVendInvoiceJour()); - т.е. задаётся курсор (map), который уже инициализирован в классе. У меня почему-то подобное не проходит - пытаяьс сделать аналогично - проселектив нужную табличку в отдельном методе - при передаче её как map в setCursor() получаю ошибку - "Неправильные аргументы". Пока ничего не могу понять. PHP код:
|
|
28.07.2006, 16:42 | #10 |
Участник
|
Да, кстати, код этого метода я вытаскивал.
Т.е. это окончательный аргумент в пользу того, что в данном случае Map работает наподобие временной таблицы и просто указать ему из какой таблицы выводить данные нельзя?
__________________
Paul_ST |
|
28.07.2006, 16:49 | #11 |
NavAx
|
Где именно этот аргумент?
|
|
28.07.2006, 18:21 | #12 |
Banned
|
Хотел бы всех огорчить. Гибкий Query сделать можно, но только что это даст? Поля отчета имеют два ключевых свойства 'Table' и 'Datafield', причем первый мап'ы не принимает. Это значит, что все поля такого отчета придется делать "дисплейными". Не уверен, что это сбережет время.
|
|
28.07.2006, 20:14 | #13 |
Banned
|
Поправлю себя: сделать можно. Надо использовать SectionTemplate.
|
|
31.07.2006, 07:37 | #14 |
Участник
|
Фактически аргумент в том, что в коде класса СustVendInvoiceJourRegisterReport в map'у вставляются строки. Map затем передаётся в report CustInvoiceJourRegister_LT. Именно этот map и используется как DataSource для этого отчёта
__________________
Paul_ST |
|