AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2012, 05:43   #1  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Подскажите, пожалуйста, как в отчета вставить значение "Text box" в секцию из другой секции. Когда я его вывожу в секцию той таблицы в которой он расчитывается, он отображается. А если я его пытаюсь вывести в другой секции, то нет.
Старый 12.04.2012, 07:06   #2  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Разобралась как выводить значения. Но теперь возникла такая проблема. Отчет состоит из двух таблиц. Соответственно у меня есть 2 секции, Значение расчитанное на основании данных второй секции должно подставляться в секцию один. Оно у меня подставляется, но со сдвигом на 1 стоку вниз, т.е. присваивает значение строке не ее, а значение предыдущей строки. Как сделать так, пробы программа откатилась назад и подставила его в правильное место.
Старый 12.04.2012, 10:15   #3  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Очевидно, что при первом проходе первой секции значение ещё не рассчитано; при втором проходе 1-й секции подставляется значение, рассчитанное при первом проходе 2-й секции, поэтому и сдвиг.

Предложение такое: вычислять нужное значение в первой секции, либо вообще не в секции, а в DataItem, который выполняется до секции.
Старый 12.04.2012, 10:35   #4  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Очевидно, что при первом проходе первой секции значение ещё не рассчитано; при втором проходе 1-й секции подставляется значение, рассчитанное при первом проходе 2-й секции, поэтому и сдвиг.

Предложение такое: вычислять нужное значение в первой секции, либо вообще не в секции, а в DataItem, который выполняется до секции.
А как быть в таком случае подскажите пожалуйста (рисунок 1-3)
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 391
Размер:	32.0 Кб
ID:	10706   Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 311
Размер:	12.6 Кб
ID:	10708  

Изображения
 
Старый 12.04.2012, 10:48   #5  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Очевидно, что при первом проходе первой секции значение ещё не рассчитано; при втором проходе 1-й секции подставляется значение, рассчитанное при первом проходе 2-й секции, поэтому и сдвиг.

Предложение такое: вычислять нужное значение в первой секции, либо вообще не в секции, а в DataItem, который выполняется до секции.
А разве можно из 1 секции брать значения из другой таблицы, может можно как нибудь из первой секции перейти во вторую а потом сново с первую и подставить значение. DataItem где распологается, можно поподробнее.
Старый 12.04.2012, 11:45   #6  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Думаю, что проблема в том, что вы используете GroupHeader для промежуточных таблиц. Эта секция отработает до того как будут получены записи из таблицы. Я так понимаю, что документы у вас правильно показываются? Используйте Body и все у вас получится.
Значения можно брать из любой таблицы, которая глобально определена, и вы уверены что указатель в ней на нужной вам записи.

ЗЫ Вы так и не открыли Application Designer’s Guide? Там про то какие секции когда вызываются доходчиво написано.
Старый 12.04.2012, 21:14   #7  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от zoya210489 Посмотреть сообщение
А разве можно из 1 секции брать значения из другой таблицы, может можно как нибудь из первой секции перейти во вторую а потом сново с первую и подставить значение. DataItem где распологается, можно поподробнее.
Про DataItem странный вопрос На одной из ваших картинок это заголовок перечня таблиц, используемых в отчёте.

Я не разобрался, что советует InTacto, а я бы, как вариант, сделал так:
- определить переменную для таблицы G/L Account, например: GLA Record <G/L Account>
- в коде DataItem (таблицы) Vendor Ledger Entry вручную соответствующими фильтрами найти нужную запись в GLA
- взять уже оттуда значение GLA.Name - поставить его в секцию вместо "G/L Account.Name"
Старый 12.04.2012, 22:15   #8  
Alex Che is offline
Alex Che
Участник
 
74 / 10 (1) +
Регистрация: 04.04.2006
Цитата:
Сообщение от InTacto Посмотреть сообщение
Думаю, что проблема в том, что вы используете GroupHeader для промежуточных таблиц. Эта секция отработает до того как будут получены записи из таблицы. Я так понимаю, что документы у вас правильно показываются? Используйте Body и все у вас получится.
Я чего-то не понял... ведь в Body выводятся данные на каждой строке таблицы, значит, и заголовок будет на каждой строке, а это совсем не надо. Разве что ставить триггер, который будет срабатывать после первой строки и проверять его в каждой строке... бр-р-р...
Старый 13.04.2012, 04:39   #9  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Цитата:
Сообщение от Alex Che Посмотреть сообщение
Цитата:
Сообщение от zoya210489 Посмотреть сообщение
А разве можно из 1 секции брать значения из другой таблицы, может можно как нибудь из первой секции перейти во вторую а потом сново с первую и подставить значение. DataItem где распологается, можно поподробнее.
Про DataItem странный вопрос На одной из ваших картинок это заголовок перечня таблиц, используемых в отчёте.

Я не разобрался, что советует InTacto, а я бы, как вариант, сделал так:
- определить переменную для таблицы G/L Account, например: GLA Record <G/L Account>
- в коде DataItem (таблицы) Vendor Ledger Entry вручную соответствующими фильтрами найти нужную запись в GLA
- взять уже оттуда значение GLA.Name - поставить его в секцию вместо "G/L Account.Name"
а не могли бы вы написать какой нибудь пример кода как вручную найти нужную запись и из нее взять только ее наименование. Просто делаю это впервые, поэтому не знаю с чего начать.
Старый 13.04.2012, 05:24   #10  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Опишу задачу которую хочу решить. Необходимо создат отчет, в котором мы выбираем счет гк (ну или же учетную группу поставщика или клиента) далее по нему должны отобразится все обороты за какой-либо период.Далее под счетом ГК (например 60) должны отобразится контрагенты которые учавсвуют в формировании движение д/с по счету 60. Далее под контрагентом должны отобразится его договора тоже с оборотами. А под каждым договором должны быть документы, которые эту сумму сформировали. Я начила делать этот отчет на основании отчета "Поставщик-оборотная ведомость", но возникла проблема что я не могу договор, точнее его обороты считать от таблицы с договорами. Т.к. они не привязаны к счету ГК, тоже самое касается и поставщиков, т.к. у них может менятся учетная группа. Поэтому получается, что я явно могу определить обороты по счету гк и операциям по поставщикам. Вообщем решила началь создавать отчет с самого начало, чтобы было все ясно. И я думаю его можно создать на основании одной таблицы "Vendor Ledger Entry". Единственно что у меня сейчас вызывает трудность это как в отчет вывести поля, например названия клиента, договора, счета, которые к таблице "Vendor Ledger Entry" представлены номерами, а не описанием. Подскажите как это сделать. И правильно ли я вообще мыслю по отношению построения отчета.
Старый 13.04.2012, 08:07   #11  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Не могу определится с иерархией в отчете (как не пытаюсь сделать, поля группируются но данные теряются, или наоборот).
Хочу сделать так что бы в отчет выводилась следующая информация (для примера)(это если мы по фильтру ставим счет 60):

Номер___________Наименование_____________Дебет_Кредит
Счет 60_________Расчеты с поставщиками____500___500
_Поставщик 1____Петров___________________100
___Договор 1____Договор 1__________________50
_____Документ 1_Документ №12______________30
_____Документ 1_Документ №14______________20
___Договор 2____Договор 2__________________50
_____Документ 1_Документ № 23______________50
Поставщик 2____Иванов____________________400___500
___Договор 1____Договор 1_________________400___300
_____Документ 1_Документ №17_____________400
_____Документ 1_Документ №18___________________300
___Договор 2____Договор 2_______________________200
_____Документ 1_Документ № 25__________________200

Я вот думаю что все это надо строить на таблицы Vendor Ledger Entry, но у меня сразу возникают вопросы:
1) Как сделать так что бы сгруппировать записи по счету, поставщику, договору при чем так чтобы ничего не потерялась;
2) Как взять данные с другой таблицы, каким то образом их отфильтровать и вставить в отчет( например номер счета есть в таблице Vendor Ledger Entry, а вот его описание (наименования) нет и т.п;
3) Итоги по всему я думаю делать через глобальные переменные, т.е. когда выводим данные по документам рассчитываем, потом постепенно их суммируем и выводим в отчет. Правильно ли я думаю;
Подскажите пожалуйста.
Старый 13.04.2012, 08:31   #12  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Цитата:
Сообщение от zoya210489 Посмотреть сообщение
Единственно что у меня сейчас вызывает трудность это как в отчет вывести поля, например названия клиента, договора, счета, которые к таблице "Vendor Ledger Entry" представлены номерами, а не описанием. Подскажите как это сделать. И правильно ли я вообще мыслю по отношению построения отчета.
Можно, например, объявить переменные типа Rec на нужные вам таблицы и после того, как получаете строчку из таблицы "Vendor Ledger Entry", делаете

Код:
IF Agreement.GET("Vendor Ledger Entry"."Agreement No.") THEN ...
и после этого, у вас в переменной Agreement будет запись из таблицы договоров. Аналогично делаете с другими нужными вам таблицами.
Старый 13.04.2012, 08:32   #13  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Почему у меня данные при такой группировки теряются?? Как сделать что бы такого не было?
Изображения
  
Старый 13.04.2012, 08:40   #14  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Цитата:
Сообщение от Constantine Посмотреть сообщение
Цитата:
Сообщение от zoya210489 Посмотреть сообщение
Единственно что у меня сейчас вызывает трудность это как в отчет вывести поля, например названия клиента, договора, счета, которые к таблице "Vendor Ledger Entry" представлены номерами, а не описанием. Подскажите как это сделать. И правильно ли я вообще мыслю по отношению построения отчета.
Можно, например, объявить переменные типа Rec на нужные вам таблицы и после того, как получаете строчку из таблицы "Vendor Ledger Entry", делаете

Код:
IF Agreement.GET("Vendor Ledger Entry"."Agreement No.") THEN ...
и после этого, у вас в переменной Agreement будет запись из таблицы договоров. Аналогично делаете с другими нужными вам таблицами.
Спасибо большое за ответ, с этим разобралась. Не подскажите как мне теперь сделать группировки по полям, т.к. я беру все данные с одной таблицы.
Старый 13.04.2012, 09:46   #15  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Разобралась с группировкой. Надо было добавить код CurrReport.ShowOutput(CurrReport.TOTALSCAUSEDBY=FIELDNO("...")) для каждой группировки. Пока двигаюсь дальше.
Старый 13.04.2012, 10:02   #16  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Теперь отчет работает правильно. Осталось только посчитать итоги по договорам, затем по поставщикам, а потом уже по самому счету. Если кто нибудь сможет помочь, направить буду рада.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 379
Размер:	7.8 Кб
ID:	10711  
Старый 13.04.2012, 10:47   #17  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Подскажите как сделать так, что значения которые у меня вычисляются в GroupFilter выводились в Group Header.
Старый 13.04.2012, 11:16   #18  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Так то все у меня расчитывается. Единственная проблема итоги отображаются после записей, а мне бы хотелось сверху, чтобы видеть структуру документа.
Старый 14.04.2012, 06:24   #19  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Подскажите, пожалуйста, кто-нибудь. Очень надо, как отобразить значение итогов над записями.
Старый 16.04.2012, 07:22   #20  
ZoyaKom is offline
ZoyaKom
Участник
 
99 / 10 (1) +
Регистрация: 05.04.2012
Можно, например, объявить переменные типа Rec на нужные вам таблицы и после того, как получаете строчку из таблицы "Vendor Ledger Entry", делаете

Код:
IF Agreement.GET("Vendor Ledger Entry"."Agreement No.") THEN ...
и после этого, у вас в переменной Agreement будет запись из таблицы договоров. Аналогично делаете с другими нужными вам таблицами.


Таким образом я выведа из 3 таблиц интересующие меня поля: Наименование счета, Наименования поставщика, Описание договора. Только вот когда я просматриваю отчет у меня все отображается, кроме наименования договора. Подскажите, в чем проблема?

- Уже разобралась)
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:45.