16.12.2005, 12:15 | #1 |
Axapta
|
Здравствуйте.
Может быть кто-нибудь подскажет, как формируется заголовок формы? Понятно, что есть Caption и TitleDataSourse, а если TitleDataSourse не указан, то откуда береться заголовок? У меня на одной из форм возникает какое-то странное "Invisible = Нет" в заголовке, но я никак не могу понять откуда. Заранее спасибо. |
|
16.12.2005, 14:26 | #2 |
Axapta
|
А если я задам вопрос чуть конкретнее?
Есть форма A. На ней кнопка, которая вызывает форму Б. Как определить, какие данные из формы А попадают в заголовок формы Б? |
|
18.12.2005, 23:07 | #3 |
Axapta
|
Ну так никто не подскажет, как отредактировать заголовок формы?
|
|
18.12.2005, 23:35 | #4 |
Участник
|
Цитата:
А в чем вопрос то? Вроде в руководстве разработчика написано Description of properties for form design - TitleDataSource Using methods in your tables - Caption |
|
19.12.2005, 00:24 | #5 |
Axapta
|
Вопрос такой, можно ли как-то удалить вывод какого-нить поля из заголовка? При этом изменяя что-либо только в данной форме. Или еще вопрос, как можно получить текущий заголовок в виде строки?
Чтобы его ручками поправить и запихнуть назад (хотя это конечно не метод, но по-другому что-то не выходит). P.S. А метод Капшн вроде формирует заголовок из полей TitleField1 и TitleField2? Или я не прав? Тут он вроде не поможет... P.P.S Если что не так спрашиваю, сорри. Стаж общения с Аксаптой - 1 месяц. |
|
19.12.2005, 00:40 | #6 |
Участник
|
Все правильно спрашиваете.
Только непонятно зачем вам это нужно. element.design().caption( [myCaption] ); |
|
19.12.2005, 00:46 | #7 |
Axapta
|
element.design().caption - выводит только то, что прописано в Капшн дизайна. А содержимые полей не выдает, т.е. целиком заголовок получить и отредактировать не получается. Задача - убрать значение одного из полей из загаловка. (там на форме "А" стоит что-то типа фильтра "Invisibl=No" (не помню точно где именно этот запрос реализован, в каком методе, аксапта сейчас не под рукой), а на вызываемой форме Б этот параметр выводится в звголовок автоматически. Нужно его убрать оттуда, ибо Invisible=Нет в загаловке формы - раздражает.)
|
|
19.12.2005, 01:03 | #8 |
Участник
|
invisible - это поле в вашей форме, по которому выполнена связь с предыдущей формой?
вы спрашиваете для какой-то стандартной формы? |
|
19.12.2005, 01:12 | #9 |
Axapta
|
Инвисибл - это поле из таблицы, которая является датасорсом для формы "А" (скажем так). В форме "Б" его нет совсем.
Да, для стандартной, видимо так и в стандартной майкрософтовской фунциональности. Если нужно, могу завтра в рабочее время сказать для какой именно. Я просто думал, что можно как-нить просто отредактировать заголовок. |
|
19.12.2005, 01:37 | #10 |
Участник
|
я не пробовал.
может завтра кто другой подскажет. |
|
19.12.2005, 10:02 | #11 |
Axapta
|
РП\Журналы\Платежи\Журнал платежей\(любой разнесенный журнал)\Строки\Запросы\Документ ГК - нужно убрать из заголовка Инвизибл=Нет, да и номер журнала отображается 2 раза - тоже нужно исправить. Может кто подскажет что-нибудь?
P.s. Сам фильтр инвизибл=нет возникает в датасорсе LedgerJournalTrans формы LedgerJournalTransVendPaym в методе init. |
|
19.12.2005, 20:27 | #12 |
Участник
|
Значит так.
В заголовке пишутся поля: 1. Из TitleDataSource, указанного в дизайне формы 2. Поля и критерии, установленные для формы пользователем или программистом 3. Поля из dynaLink. В вашей форме TitleDataSource не указан, поэтому поля самой таблицы не показываются. Показываются только поля из таблицы-источника. См. картинку 1. Если вы включите TitleDataSource у дизайна формы LedgerTransVoucher то получите в заголовке поля из таблицы данной формы. См. картинку 2. Обратите внимание на то, что в этом случае показывается правильный фильтр - По кредиту: Нет На картинке 3 показан заголовок, если выключить фильтр Видимо, международные разработчики получили замечательный результат без TitleDataSource для каких-то таблиц. Наши добавили фильтр по дебету-кредиту. Но на то, как отображаются поля в загловке не обратили внимание... |
|
20.12.2005, 09:13 | #13 |
Axapta
|
Таким образом, просто удалить Invisible и второе упоминание номера журнала никак нельзя?
P.S. Огромное спасибо за участие в разрешении этого вопроса! |
|
20.12.2005, 12:08 | #14 |
Участник
|
Укажите TitleDataSource в дизайне формы LedgerTransVoucher
Я не знаю такого способа. |
|
20.12.2005, 12:30 | #15 |
Axapta
|
Ясно, спасибо. Просто задача не так стояла. Задачу-то не я ставил.
Кстати, если указать TitleDataSourse, то два раза выводиться номер документа (на Вашей второй картинке - ГК00038). Этого тоже, как я понял, изменить нельзя? Пойду обрадую постановщика задачи. Спасибо. P.S. А респект я могу добавить? |
|
20.12.2005, 12:31 | #16 |
Участник
|
Чтобы добавить респект, нажмите на + в левой части сообщения, которое вам понравилось.
|
|
20.12.2005, 12:34 | #17 |
Axapta
|
Добавил. Еще раз спасибо за помощь и отличный сайт. Мне он очень помогает войти в большой мир Аксапты.
|
|
20.12.2005, 13:06 | #18 |
Участник
|
Вчера пытался несколько раз запостить - не получилось
Можно перекрыть метода Active() на датасоурсе LedgerTrans и добавить туда этот код <div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]int[/color] ret; ret = [color=:blue]super[/color](); [color=:blue]if[/color] (!fromMenu) winapi::setWindowText(element.hWnd(), element.design().caption());[color=:blue]return[/color] ret;</div> Если необходимо, то можно добавить нужную информацию в заголовок.
__________________
Axapta v.3.0 sp5 kr2 |
|
20.12.2005, 13:18 | #19 |
Axapta
|
Хм... Неожиданное решение, остроумное Да, так получилось. А есть минусы у такого решения?
|
|
20.12.2005, 13:52 | #20 |
Участник
|
Кроме того, что движек Axapta'ы во время вызова Super() переключает загловок, так что наблюдается некоторое мельтешение в нем - больше не вижу проблем.
__________________
Axapta v.3.0 sp5 kr2 |
|