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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.06.2006, 11:54   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
? Проблемы с созданием Web-Form
1. это только у меня одного, чтобы запретить редактирование поля, нужно ставить свойство AllowEdit непосредственно на этом веб-контроле? Попытки запрета редактирование объекта-контейнера (webGroup) не увенчались успехом.

2. Не удается создать элемент интерфейса (WebEdit), который бы позволял выбрать значение из справочника (lookup).
Если уповаю на EDT данного контрола, то вообще ничего не происходит.
Если же перекрываю lookup и использую WebTableLookup - то Popup-форма открывается, но она всегда пустая.

3. Опять же, в продолжение темы про lookup - если указать DataSource и DataField, то лукап кнопка появляется автоматом, и лукап соответственно тоже работает. Но как в таком случае фильтровать лукап так, как я хочу? (Перекрыт метод лукап на нем, там идет опять же использование WebTableLookup)

Объясните, что я неправильно делаю?

Вот код lookupMethod():

Код:
client static void webLookupMy()
{
    webTableLookup          webTableLookup;
    Query                   query;
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    ;

    webTableLookup = webTableLookup::newParameters(tableNum(MyTable));
    webTableLookup.addLookupfield(fieldNum(MyTable, itemId));
    webTableLookup.addLookupfield(fieldNum(MyTable, Name));
    webTableLookup.selectField(fieldNum(MyTable, itemId));

    query = new Query();
    queryBuildDataSource = query.addDataSource(tableNum(MyTable));
    queryBuildRange = queryBuildDataSource.addRange(fieldNum(MyTable, ItemGroup));
    queryBuildRange.value(Params::find().ItemGroup);


    webTableLookup.parmQuery(query);
    webTableLookup.run();
}
Старый 22.06.2006, 13:32   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
И вдогонку, раз никто не отвечает, еще один вопрос:

Можно как-то действительно ограничить количество выбираемых строк в гриде??
В свойствах WebGrid стоит:
MultiSelect = No, ShowSelectColumn = True

Спасибо.
Старый 22.06.2006, 14:30   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Еще вопрос:

На форме - WebButton - у нее свойство SaveRecord = True
При нажатии начинает сохраняться запись, которая не должна - (она заполняется только на следующей закладке мастера). Соответственно - куча ошибок об обязательных полях.

Если же ставлю SaveRecord = False, то запись то не сохраняется, но и значения, которые я ввел в контролах на форме (не связанных с каким-то датасорсом), тоже не сохраняются.

Как это понимать?
Значения контролов пытаюсь получить через WebEditMyEdit.text();


P.S. Временно решил это, поставив на кнопку infolog.clear(); - но это не есть хорошо.

Последний раз редактировалось kashperuk; 22.06.2006 в 14:38.
Старый 22.06.2006, 14:52   #4  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Только без паники ... в веб-формах все хорошо, только кой-чего не всегда работает ...
не смотря на то, что свойство есть реакции на него может не быть ... это общее правило, оно касаетяс в т.ч. и методов, если есть метод, необязательно его перекрытие позволяет вставлять код ... все надо проверять, и куда-нть записывать, я вот уже ничего, не помню .
по поводу закладок: переход на др. закладку - это перегенерация формы у клиента, со всеми вытекающими, что введено надо куда-то деть. Приходится это учитывать при проектировании форм.

C уважением, itfs.
Старый 22.06.2006, 14:59   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Дык данные пытаюсь из контрола считать до перерисовки формы.
Считываются они по clicked кнопки.
Так вот если saveRecord = false, то там пусто, что до, что после super();
Старый 22.06.2006, 15:00   #6  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Далее, кол-во строк в гриде где-то задается чуть ли не на весь EP разом ... надо поискать.

C уважением, itfs.
Старый 22.06.2006, 15:08   #7  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Цитата:
Сообщение от kashperuk
Дык данные пытаюсь из контрола считать до перерисовки формы.
Считываются они по clicked кнопки.
Так вот если saveRecord = false, то там пусто, что до, что после super();
Ну это пример, того, что свойство все-таки действие имеет, но в более категоричной форме, что на др. формах ... вы себя избавите от кучи проблем, если несмотря на то, что видно на экране, будете воспринимать веб-формы плоскими, а любое нажатие с перерисовкой части формы как переход в "новую" форму ...

С уважением, itfs.
Старый 22.06.2006, 15:26   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Так а как же мне получить значение того, что ввел пользователь???

По моим наблюдениям пока, в EP вообще туго очень с unbound (не связанными с DS) элементами.

Но эту проблему я решил, хоть и криво, но пока подходит.

ЗЫ. И еще, везде все смотрю, где что вызывается, где что не вызывается. Проблема не в этом, на мой взгляд.

А вот как быть с первыми двумя??
Старый 22.06.2006, 15:38   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от kashperuk
1. это только у меня одного, чтобы запретить редактирование поля, нужно ставить свойство AllowEdit непосредственно на этом веб-контроле? Попытки запрета редактирование объекта-контейнера (webGroup) не увенчались успехом.

2. Не удается создать элемент интерфейса (WebEdit), который бы позволял выбрать значение из справочника (lookup).
Если уповаю на EDT данного контрола, то вообще ничего не происходит.
Если же перекрываю lookup и использую WebTableLookup - то Popup-форма открывается, но она всегда пустая.

3. Опять же, в продолжение темы про lookup - если указать DataSource и DataField, то лукап кнопка появляется автоматом, и лукап соответственно тоже работает. Но как в таком случае фильтровать лукап так, как я хочу? (Перекрыт метод лукап на нем, там идет опять же использование WebTableLookup)

Объясните, что я неправильно делаю?
Только что подсказали ошибку - не установил свойство LookupMethod в Custom.
После установки этого свойства лукап стал открываться нормально.

Это отвечает на вопросы 2 и 3.
Старый 22.06.2006, 16:05   #10  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Я дико извиняюсь, успел все перезабыть за пол-года .
Но помню точно, что с лукапами на некоторой стадии понимания обходился круто. Уразумев, что они работают только с дата-сорсов поместил все формы на временные талбицы и переписывал в базу вручную ....

С уважением, itfs.
Старый 22.06.2006, 16:08   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да, я бы так и сделал - и делаю
Просто в этом конкретном случае мне нужно было ограничить лукам (отфильтровать)
Старый 22.06.2006, 16:18   #12  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Стойте, стойте .... фильтровать ... там же был WebCatBrowseWeblet .... вот им и надо фильтровать ....

С уважением, itfs.
Старый 22.06.2006, 16:41   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Не, то категоризация - она отображает все данные все равно. (просто можно их отображать по категориям - фильтруя) - но есть возможность нажать "Все" и посмотреть их.
А мне нельзя именно отображать все данные, а только с определенным значением.

Да и притом, я еще не знаю, как открыть свою лукап форму, а не стандартную , чтоб туда можно было навесить это WebCatBrowseWeblet - хотя, тогда можно было бы фильтровать сразу в датасорсе
Старый 22.06.2006, 16:58   #14  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kashperuk
...
Это отвечает на вопросы 2 и 3.
...
Насколько я могу понять, в вопросе 1 речь идет о баге. У меня он проявлялся в том виде, что если на группе установить allowEdit(false), то при сохранении формы значения в контролах с типами enum и string (только многострочный) обнуляются, если они относятся к этой группе. Обойти удалось описанным вами способом (не трогать группу и перебрать все контролы).

А вопрос 2 в случае без привязки к источнику данных и без программного lookup вы побороли?
__________________
С уважением,
glibs®
Старый 22.06.2006, 17:02   #15  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Нет, если явно не перекрывать lookup, то по EDT он его не подтаскивает.

Хотя, может и не должен. Но в Windows-клиенте ж работает.
Старый 22.06.2006, 18:33   #16  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Цитата:
Сообщение от kashperuk
Не, то категоризация - она отображает все данные все равно. (просто можно их отображать по категориям - фильтруя) - но есть возможность нажать "Все" и посмотреть их.
А мне нельзя именно отображать все данные, а только с определенным значением.
Ну так "все" понятие филосовское на executeQuery() ему всегда можно придать конкретные очертания .... что касается гридов в списковых формах мне помнится удалось убедить заказчика, что категоризация это как раз то, что ему нужно в плане фильтрации ... а не выбор значения фильтра из lookup-а. Это хорошо разъясняется с точки зрения производительности и кол-ва данных передаваемых по сетям общего доступа.
Цитата:
Сообщение от kashperuk
Да и притом, я еще не знаю, как открыть свою лукап форму, а не стандартную , чтоб туда можно было навесить это WebCatBrowseWeblet - хотя, тогда можно было бы фильтровать сразу в датасорсе
Тут я перестаю понимать постановку задачи. Если вы сформулируете конкретный случай, я наверно вспомню конкретный вариант решения ...

С уважением, itfs.
Старый 22.06.2006, 18:40   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, хоть я уже и решил эту конкретную задачу как написал выше, давайте таки сформулируем задачу след. образом.

На лукап поля на веб-форме повесить обработчик, который будет в качестве лукап формы вызывать "свою" форму, которую я создам в АОТ.

Сейчас используется webTableLookup
Спасибо
Старый 22.06.2006, 19:09   #18  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Ну что ж, свою, так свою. А правильно я понимаю, что webTableLookup вас не устроил из-за того, что на его Query не удалось программно установить фильтр?
Если так, то тут что-то не то, поищите по таблицам, на них встречаются методы webLookup*, которые имеют параметры для фильтрации ... и вызывают именно webTableLookup. Эти методы при вызове работают корректно. Почему они именно на таблицах ... тому было найдено какое-то объяснение, но тут меня память опять подводит.

С уважением, itfs.
Старый 22.06.2006, 20:05   #19  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
2 itfs:
См. первый пост - там в CODE приведен работающий пример с фильтрацией.
(Он не работал, потому что свойстно lookupMethod на контроле стояло Default)

Меня же интересует именно подход при вызове формы из АОТ в качестве lookup, так как я в ЕР встречаюсь, можно сказать, впервые.
То есть, передача параметров, закрытие и возврат на вызывающую форму (а не в главное меню), и т.д.

Спасибо
Старый 22.06.2006, 20:32   #20  
itfs is offline
itfs
Участник
 
277 / 43 (2) +++
Регистрация: 18.07.2005
Адрес: Moscow
Веб-лета который бы так делал, я в свое время не встретил. Придется для этого, видимо, писать свой. Наверное кто-нибудь писал, но на мой взгляд игра свеч не стоит.

С уважением, itfs.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Inside Dynamics AX 4.0: The Web Framework Blog bot DAX Blogs 0 25.10.2007 03:04
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43
Web Form Pavel Pustovalov DAX: Программирование 2 24.12.2005 11:29
Проблемы с ручным созданием запроса Paul_ST DAX: Программирование 4 14.09.2004 14:15
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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