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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.05.2008, 10:29   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
? Как не выводить заголовки в форме, если нет строк?
Добрый день!

Как не выводить заголовки в форме, если нет строк?

Таблицы стандартные InventJournalTable и InventJournalTrans, на данный момент тип связи (на датасоурсе InventJournalTrans) Delayed. Очень интересует как оставить в форме связанные непустые заголовки и строки, т.е. убрать заголовки у которых нет связанных записей.

Спасибо

UPD: Дополнительное условие: строки в форме на входе программно фильтруются по дате (т.е. берутся строки за период)

Последний раз редактировалось DreamCreator; 28.05.2008 в 11:02. Причина: NumOfLines
Старый 28.05.2008, 10:40   #2  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,765 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Навскидку, установить пользовательский фильтр по полю "количество строк" в заголовке журнала. Хотя я помню, что иногда подсчёт приходилось обновлять - кнопка Обновление. И обычно пустые заголовки не должны висеть, потому что заранее их плодить не имеет смысла.
За это сообщение автора поблагодарили: DreamCreator (2).
Старый 28.05.2008, 10:48   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
?
Цитата:
Сообщение от Vals Посмотреть сообщение
Навскидку, установить пользовательский фильтр по полю "количество строк" в заголовке журнала. Хотя я помню, что иногда подсчёт приходилось обновлять - кнопка Обновление. И обычно пустые заголовки не должны висеть, потому что заранее их плодить не имеет смысла.
Круто! А такое поле в заголовке есть? Как называется?

UPD: Нашел! NumOfLines, Спасибо! Пробую.
Старый 28.05.2008, 10:52   #4  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,765 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Также вы можете сохранить этот фильтр. Если у вас 4.0, то поместив форму в Избранное, этот фильтр будет отрабатывать всегда по умолчанию. (фильтр по умолчанию для избранного можно изменить).
Старый 28.05.2008, 10:58   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
:)
Цитата:
Сообщение от Vals Посмотреть сообщение
Также вы можете сохранить этот фильтр. Если у вас 4.0, то поместив форму в Избранное, этот фильтр будет отрабатывать всегда по умолчанию. (фильтр по умолчанию для избранного можно изменить).
3.0 SP3, фильтр я программно зашью.

Дополнительное условие: строки в форме на входе программно фильтруются по дате (т.е. берутся строки за период), здесь NumOfLines не поможет (однако красиво было бы )

Последний раз редактировалось DreamCreator; 28.05.2008 в 11:02. Причина: Строки прогр. фильтруются при открытии формы
Старый 28.05.2008, 12:15   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Можно по-простому, подвязать программно к DS InventJournalTable табл. InventJournalTrans (addDatasource и т.д.) и на нее наложить такие же фильтры, как и на строки.
__________________
Андрей.
Старый 29.05.2008, 14:17   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Можно еще проще. Добавить второй DataSource со строками и установить тип связи InnerJoin. Если нет записей в подчиненной таблице, то по InnerJoin будет исключение записей и из главной. Теоретически... На практике не проверял...
Старый 29.05.2008, 14:26   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Можно еще проще. Добавить второй DataSource со строками и установить тип связи InnerJoin. Если нет записей в подчиненной таблице, то по InnerJoin будет исключение записей и из главной. Теоретически... На практике не проверял...
InnerJoin - пересечение - число отображаемых заголовков будет равно числу строк. (проверю)

Цитата:
Можно по-простому, подвязать программно к DS InventJournalTable табл. InventJournalTrans (addDatasource и т.д.) и на нее наложить такие же фильтры, как и на строки.
Этот вариант проверяю - пока не получилось.
Старый 29.05.2008, 14:40   #9  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
InventJournalTable_DS.init():
X++:
QueryBuildDatasource        qbds;
QueryBuildRange             qbr;

super();
...

qbds = InventJournalTable_ds.query().dataSourceNo(1).addDataSource(tableNum(InventJournalTrans));
qbds.relations(true);
qbds.joinMode(JoinMode::ExistsJoin);
qbr = qbds.addRange(fieldNum(InventJournalTrans, TransDate));
qbr.status(RangeStatus::Locked);
qbr.value(strFmt("%1..", 01\01\2008)); // фильтр
__________________
Андрей.
За это сообщение автора поблагодарили: DreamCreator (2).
Старый 29.05.2008, 15:10   #10  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от Dron AKA andy Посмотреть сообщение
InventJournalTable_DS.init():
X++:
qbds = InventJournalTable_ds.query().dataSourceNo(1).addDataSource(tableNum(InventJournalTrans));
qbds.relations(true);
qbds.joinMode(JoinMode::ExistsJoin);
qbr = qbds.addRange(fieldNum(InventJournalTrans, TransDate));
qbr.status(RangeStatus::Locked);
qbr.value(strFmt("%1..", 01\01\2008)); // фильтр
Спасибо! Сработало!
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Периодическое обновление строк в форме DreamCreator DAX: Программирование 6 15.05.2011 17:51
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Как идёт обращение к форме если она закрыта? Corsar DAX: Программирование 3 23.10.2008 17:48
Копирование строк в форме fialka DAX: Программирование 10 18.12.2006 13:36
Раскраска строк в Grid'е Андре DAX: Программирование 3 14.10.2002 16:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:37.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.