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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.05.2011, 17:47   #1  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Коллеги, обращаюсь опять к вам за помощью.

Имеется отчет (см. название темы) R105.
Он берет данные из таблицы 379 (Detailed Cust. Ledg. Entry) и выводит в виде

Код:
Cust.No.   Cust.Name      Before      Jan        Feb       Mar       After       Balance
100        Customer 1   -20.024,72       0,00        0,00    0,00       0,00    -20.024,72  
102        Customer 2     8.050,00     805,00      805,00  805,00  41.647,00     52.112,00  
210        Customer 3   114.391,90   5.844,17    5.844,13    0,00       0,00    126.080,20
Причем средние три столбика (Jan, Feb, Mar), понятное дело, могут вариироваться: это могут быть любые три подряд идущих временнЫх интервала.

Мне нужно эти же самые результаты получить не в виде листа для печати, а в виде таблицы (т.е. должна открыться табличная форма с нужными результатами, чтобы по ней можно было перемещаться курсором, накладывать фильтры, копировать в буфер и т.п.)

Задачу решила пока в лоб: создала временную таблицу, куда заношу нужные мне цифИри, потом с помощью FORM.RUN вызываю форму для просмотра получившейся таблицы.
Подозреваю, что есть более изящное решение: без использования временных таблиц, но с использованием FlowFields и/или SumIndexFields.
Хотелось бы при просмотре результирующей таблицы иметь возможность DrillDown в каждую циферку.

Подскажите,плз, как можно сие реализовать?
Старый 03.05.2011, 18:07   #2  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Сорри, что такая корявая таблица получилась, но никак не могу в удобочитаемый вид привести.
МОжет кто подскажет , как здесь можно вставлять таблицу, чтобы форматирование колонок сохранялось?
Старый 03.05.2011, 21:54   #3  
Eugeny_F is offline
Eugeny_F
Участник
 
371 / 30 (2) +++
Регистрация: 18.11.2003
Адрес: Москва
Посмотрите на форму 12406 (Клиент Оборотная Ведомость). Нечто подобное (не по задаче, а по форме реализации) там сделано.
Старый 04.05.2011, 09:28   #4  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от Eugeny_F Посмотреть сообщение
Посмотрите на форму 12406 (Клиент Оборотная Ведомость). Нечто подобное (не по задаче, а по форме реализации) там сделано.
Вы не пордскажете как эта форма называется на англ.? (у меня нет формы с номером 12406, а Navision англ.-немецкий)
Старый 04.05.2011, 10:13   #5  
Васыо is offline
Васыо
Участник
 
316 / 12 (1) ++
Регистрация: 15.11.2006
Форма 12406 будет только в российской функциональности. Может быть Вам стоит посмотреть в сторону матричных форм?
Старый 04.05.2011, 15:30   #6  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Не советую вам на FlowField'ах делать подобную форму - будет тормозить на больших объемах информации.
Сделайте форму на базе 18 таблицы в виде таблицы, как Вы привели.
На ней кнопку Рассчитать.
При нажатии рассчитываются все значения по клиентам во временную таблицу, на OnAfterGetRecord вы ищете нужную запись для клиента во временной таблице и отображаете суммы.
А проваливаение уже сами запрограммируйте - полагаю, что там 5 строчек кода всего.
Фильтровать по суммам не получится, по клиентам получится.
Старый 04.05.2011, 17:28   #7  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
.Quattro. Почему будет тормозить на вычисляемых полях?
В Финансово Оборотной Ведомости не тормозит. Балансы Клиентов не тормозят.
Или вы про фильтрацию? Тогда будет притормаживать.

Я бы завел нужные поля в 18 табличке и вызывал форму основанную на временной 18 табличке. Т.к. нам все равно считать, то
пишем сразу в табличку формы и выводим. Фильтрация в этом случае работает.

Kadawrik
Еще обратите внимание на поле 69 Payments - они вычисляемое. Создаете точно такое же поле, убрав фильтр по
Initial Document Type и Entry Type, и переделав фильтр даты вместо Posting Date на Initial Entry Due Date.
Теперь, выставив на это поле нужный фильтр по дате, вы должны получить любую цифру из вашего отчета.
Создаете 5 таких полей, ставите на них нужные фильтры и он формочка показывает отчет и фильтруется.
Как менять периоды дат по кнопочками можете посмотреть в формочке 414 G/L Balance.
Старый 04.05.2011, 20:37   #8  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
На больших объемах информации будет тормозить, т.к. каждый раз, когда переходите с одной записи значения будут пересчитываться.
Поэтому лучше все рассчитать заранее, а затем отобразить результат.

Для теста можно засечь, сколько времени открывается 18я таблица через Object Designer - все вычисляемые поля считаются.
Старый 05.05.2011, 10:27   #9  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Да. Табличка Клиентов притормаживает в дизайнере.
Но тут еще другой момент.
Если вы все заранее считаете, то это займет время столько, сколько вы перелистывали бы каждую запись. На чисто вычисляемых полях тратится время только на выведенные записи.
 


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

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

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