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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.01.2013, 13:11   #1  
digol is offline
digol
Участник
 
6 / 10 (1) +
Регистрация: 23.01.2013
Здравствуйте, господа программисты.

Прошу помощи.
Есть таблица с полем Код Менеджера. Есть карточная форма на основании этой таблицы.

Необходимо сделать так, чтобы выбор менеджера в форме происходил не стандартным способом с помощью установки свойств
lookup и TableRelation, а чтобы TextBox работал как ComboBox.
Чтобы выбор Менеджера происходил не "проваливанием" в списочкую форму Сотрудники, а выбором из выпадающего списка, который бы заполнялся динамически в момент запуска формы.
Нужно это для того, чтобы пользователям было удобно работать на тачскрине.

Я хотела было попробовать динамически сформировать свойство OptionString контрола TextBox, но до него из C/AL редактора не достучаться.
Пробовала сформировать темповую таблицу со списком менеджеров и подсунуть её в свойство SourceExpr контрола TextBox. Тоже не получилось. Выдает ошибку.

Поискала на форуме, ничего не нашла, кроме того, что использование сторонних ActiveX компонентов крайне проблематично.

Может решение на поверхности, но я не вижу.
Поделитесь мыслями, если есть.


Заранее спасибо.
Старый 23.01.2013, 13:42   #2  
digol is offline
digol
Участник
 
6 / 10 (1) +
Регистрация: 23.01.2013
Ой, досадная ошибка в названии темы.
Конечно же:
ВОзможно ли динамическое формирование свойства OptionString контрола TextBox?
Прошу прощения...
Старый 23.01.2013, 14:59   #3  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Есть очень извращенный способ.

Создать табличку с единственным полем и определить набор значений в поле Option Value, например [0000],[1111],[2222],[3333] и т.д.
При запуске формы которая должна отображать значение этого поля с нужными значениями, делать выгрузку объекта BLOB Reference в текстовой файл, заменять
например [0000] на АААААА, [1111] на ББББББ и т.д. После чего снова загружать этот изменный файл в BLOB поле Объекта.
__________________
Want to believe...
Старый 23.01.2013, 15:47   #4  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
Есть очень извращенный способ.

Создать табличку с единственным полем и определить набор значений в поле Option Value, например [0000],[1111],[2222],[3333] и т.д.
При запуске формы которая должна отображать значение этого поля с нужными значениями, делать выгрузку объекта BLOB Reference в текстовой файл, заменять
например [0000] на АААААА, [1111] на ББББББ и т.д. После чего снова загружать этот изменный файл в BLOB поле Объекта.
а как же "другой пользователь изменил определиние поля" при изменении объектов? Думается мне что среда будет шибко против таких действий в многопользовательском режиме.
Старый 23.01.2013, 15:58   #5  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Можно написать свой OCX и использовать на форме. Кажется начиная с 5 такая штука работает.
Есть еще strmenu - позволяет делать динамический радиобатон с кнопками ок и отмена.
Старый 23.01.2013, 16:49   #6  
Captain is offline
Captain
Участник
Лучший по профессии 2017
 
300 / 81 (3) ++++
Регистрация: 28.02.2003
Может попробуете DIALOG.STRMENU на триггере Lookup поля, если подойдет ))?

Location = record Location
MyOptionString = text 1024


PHP код:
CLEAR(MyOptionString);
IF 
Location.FINDSET THEN
   REPEAT
        MyOptionString
:=MyOptionString+Location.Code +',';
   
UNTIL Location.NEXT=0;

Selection := DIALOG.STRMENU(MyOptionString,1); 
С уважением,
__________________
---------------------------------------------------------------------------------------------
"Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица
Старый 23.01.2013, 22:44   #7  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от captain Посмотреть сообщение
Может попробуете DIALOG.STRMENU на триггере Lookup поля, если подойдет ))?

Location = record Location
MyOptionString = text 1024


PHP код:
CLEAR(MyOptionString);
IF 
Location.FINDSET THEN
   REPEAT
        MyOptionString
:=MyOptionString+Location.Code +',';
   
UNTIL Location.NEXT=0;

Selection := DIALOG.STRMENU(MyOptionString,1); 
И в один прекрасный день кол-во location (или менеджеров итд.) выросло настолько, что не вместятся в MyOptionString (благо text 1024) и юзер получает некрасивую ошибку.
Как здорово, что в NAV2013 у текстовых переменных отпало ограничение в 1024!
Старый 23.01.2013, 23:14   #8  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
Есть очень извращенный способ.

Создать табличку с единственным полем и определить набор значений в поле Option Value, например [0000],[1111],[2222],[3333] и т.д.
При запуске формы которая должна отображать значение этого поля с нужными значениями, делать выгрузку объекта BLOB Reference в текстовой файл, заменять
например [0000] на АААААА, [1111] на ББББББ и т.д. После чего снова загружать этот изменный файл в BLOB поле Объекта.
А коллега знает толк в извращениях )) Неплохой совет даме )

А по теме:
1. не понятно, что за клиент - классический или ролеориентированный. Или вообще web.
2. если на планшете / ноуте с тачем / RDP открывается какой бы то ни было клиент Нав, то не проблема работать с лукап формами. Не очень удобно, но можно

Динамический список от InTacto тоже вариант - не разворачивает форму на весь экран, но работает только если менеджеров 5-10. Иначе при 40-100 менеджеров он на экран не поместится.

Т.е. трудозатраты на изобретение динамического выпадающего списка совершенно не сопоставимы с мнимым удобством от его использования.
А как быть с полями дат, которые на яблочной продукции превращаются в крутилки гггг.мм.дд ? тоже изобретать ?
Проще web клиент написать с использованием WS на серверной части имхо.

А я бы еще ништяков захотел типа "вводишь первые буквы фамилии менеджера, а он тебе выпадающий список автоматом фильтрует" )
Старый 24.01.2013, 00:43   #9  
Captain is offline
Captain
Участник
Лучший по профессии 2017
 
300 / 81 (3) ++++
Регистрация: 28.02.2003
Если код менеджера совпадает по длине со словом "Козел", то 204,8 "Козла" на 1024 в выпадающем списке.Полагаю, что их намного меньше.))
С уважением.
__________________
---------------------------------------------------------------------------------------------
"Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица
Старый 24.01.2013, 10:33   #10  
digol is offline
digol
Участник
 
6 / 10 (1) +
Регистрация: 23.01.2013
Огромное спасибо всем кто откликнулся!

Цитата:
Сообщение от max_hl Посмотреть сообщение
А по теме:
1. не понятно, что за клиент - классический или ролеориентированный. Или вообще web.
Динамический список от InTacto тоже вариант - не разворачивает форму на весь экран, но работает только если менеджеров 5-10. Иначе при 40-100 менеджеров он на экран не поместится.

А как быть с полями дат, которые на яблочной продукции превращаются в крутилки гггг.мм.дд ? тоже изобретать ?
Проще web клиент написать с использованием WS на серверной части имхо.
Клиент у нас 5.0. Планшеты не яблочные, так что с датами надеюсь будет все в порядке.
Менеджеров не больше 10 чел.

А "Динамический список от InTacto " - это имеется в виду "strmenu - позволяет делать динамический радиобатон с кнопками ок и отмена." ? Я правильно поняла? Или что-то другое?


Цитата:
Сообщение от captain Посмотреть сообщение
Может попробуете DIALOG.STRMENU на триггере Lookup поля, если подойдет ))?

Location = record Location
MyOptionString = text 1024


PHP код:
CLEAR(MyOptionString);
IF 
Location.FINDSET THEN
   REPEAT
        MyOptionString
:=MyOptionString+Location.Code +',';
   
UNTIL Location.NEXT=0;

Selection := DIALOG.STRMENU(MyOptionString,1); 
С уважением,
Сегодня попробую воплотить этот вариант.

Цитата:
Сообщение от InTacto Посмотреть сообщение
Можно написать свой OCX и использовать на форме. Кажется начиная с 5 такая штука работает.
Есть еще strmenu - позволяет делать динамический радиобатон с кнопками ок и отмена.
ОСХ -это на крайний случай, а вот с strmenu не совсем поняла. Сегодня попробую разобраться.

Ещё раз всем большое спасибо!
Старый 24.01.2013, 20:32   #11  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Цитата:
Динамический список от InTacto тоже вариант - не разворачивает форму на весь экран, но работает только если менеджеров 5-10. Иначе при 40-100 менеджеров он на экран не поместится.
Искренне прошу прощения, ошибочка вышла ) Вместо "Динамический список" читать STRMENU, а вместо InTacto - captain )
Видимо про OCX мысли были.. Но у ТС клиент 5, так что не годится вариант.

При таком кол-ве менеджеров вариант с STRMENU возможен.
Старый 25.01.2013, 07:51   #12  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от digol Посмотреть сообщение
lookup и TableRelation, а чтобы TextBox работал как ComboBox.
Чтобы выбор Менеджера происходил не "проваливанием" в списочкую форму Сотрудники, а выбором из выпадающего списка, который бы заполнялся динамически в момент запуска формы.
Нужно это для того, чтобы пользователям было удобно работать на тачскрине.
Я хотела было попробовать динамически сформировать свойство OptionString контрола TextBox, но до него из C/AL редактора не достучаться.
Пробовала сформировать темповую таблицу со списком менеджеров и подсунуть её в свойство SourceExpr контрола TextBox. Тоже не получилось. Выдает ошибку.
Поискала на форуме, ничего не нашла, кроме того, что использование сторонних ActiveX компонентов крайне проблематично.
Возможно ценой невероятных усилий Вы все-таки введете источник данных в option одной формы. Однако за одним контролом потянутся другие, вместо одной формы попросят переделать все... Если ли смысл использовать интерфейсы Навижна?
Я бы посоветовал подумать об веб-интерфейсах или смене платформы с Навижна, если удобство работы с тачкскрином основное требование.
Старый 25.01.2013, 10:07   #13  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Следующей задачей для вас будут скорее всего древообразные списки и календарик
Забыл, еще калькулятор.
Старый 25.01.2013, 11:49   #14  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
Возможно ценой невероятных усилий Вы все-таки введете источник данных в option одной формы. Однако за одним контролом потянутся другие, вместо одной формы попросят переделать все... Если ли смысл использовать интерфейсы Навижна?
Я бы посоветовал подумать об веб-интерфейсах или смене платформы с Навижна, если удобство работы с тачкскрином основное требование.
+1

Если очень хочется можно перейти на 2009-й. Там в ролеорнтированном интерфейсе выпадающие списки. Но там будут свои проблемы )
Старый 25.01.2013, 19:09   #15  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Но там будут свои проблемы )
Можно поподробнее ? Планируем..
Старый 26.01.2013, 00:58   #16  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от max_hl Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Но там будут свои проблемы )
Можно поподробнее ? Планируем..
От души советую переходить не на 2009, а сразу 2013! В 2013-м и кое-какие баги 2009-го исправили, и новых примочек добавилось, прога стала быстрее и зрелой. А главное: программа стала по настоящему ролеориентированной!
Всех новшеств не перечислишь, инфы полно и в partner source и вообще в инете.
Старый 26.01.2013, 16:55   #17  
Captain is offline
Captain
Участник
Лучший по профессии 2017
 
300 / 81 (3) ++++
Регистрация: 28.02.2003
..
Цитата:
От души советую переходить не на 2009, а сразу 2013! В 2013-м и кое-какие баги 2009-го исправили, и новых примочек добавилось, прога стала быстрее и зрелой. А главное: программа стала по настоящему ролеориентированной!
Всех новшеств не перечислишь, инфы полно и в partner source и вообще в инете.
+100
Поддерживаю. А иначе не все смогут перестроить мышление. Нав 2009 - окончание поддержки 2014.
__________________
---------------------------------------------------------------------------------------------
"Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица
Старый 28.01.2013, 10:29   #18  
digol is offline
digol
Участник
 
6 / 10 (1) +
Регистрация: 23.01.2013
В общем, я поняла, что ничего путного пока не выйдет.
Вариант с STRMENU не подошел.
Ещё раз всем спасибо.
Старый 31.01.2013, 12:55   #19  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Цитата:
Сообщение от captain Посмотреть сообщение
..
Цитата:
От души советую переходить не на 2009, а сразу 2013! В 2013-м и кое-какие баги 2009-го исправили, и новых примочек добавилось, прога стала быстрее и зрелой. А главное: программа стала по настоящему ролеориентированной!
Всех новшеств не перечислишь, инфы полно и в partner source и вообще в инете.
+100
Поддерживаю. А иначе не все смогут перестроить мышление. Нав 2009 - окончание поддержки 2014.
Обо всех нововведениях 2013 я в курсе и считаю, что MS выпустили по-настоящему революционный продукт, однако..
Когда сотни человек годами работают в классическом клиенте, когда годами разрабатывались достаточно специфические формы на временных талицах, куча отчетов наподобие счет-фактуры или ТОРГ-12, боюсь представить себе сколько Report'ов, которые используются в учете, коррекции себестоимости..
Я к тому, что все нужно делать постепенно и мышление менять тоже - сначала переход на ролиориентированный клиент, затем на web. Да и ресурсы нужны нешуточные. Была бы типовая платформа - другое дело.

А вообще, читая багфикс по 2013 Наву как-то не возникает желания менять версию клиента.. И главное, уважаемые, где локализованный клиент ?
З.Ы. Я клиент, а не партнер, доступа к ps нет.
 


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

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

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