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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2007, 11:46   #1  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Navision оптяь на помощь kashperuk )
привет kashperuk, делаю в аксапте,есть отдельная форма задач,которые все параматры указывается, например : открыть форму, выбрать кого то ит.д.
X++:
client static void openForm(Str words)
{
  FormRun fr;
  fr = classFactory.formRunClass(new Args(words));
  fr.init();
  fr.run();
  fr.detach();
}
форма открывается,скажем заказ на покупку, WinAPI нажимает CTRL+N и открывает форма поставщиков, во скажем я не выбираю из выпадающего списка, а тупо набиваю туда код поставщика и далее так же дата и все такое, но я буквы не с помощью WinAPI, из спсика задач хочу брать и набить в нужное место
Старый 21.07.2007, 11:56   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, вообще-то, конкретно на этой форме (PurchCreateOrder) уже есть такой метод. Вам стоило бы сделать аналогично, или немного допилить этот метод. К примеру, вот так
X++:
void SetVendorAndExit(DlvDate _deliveryDate = BMRandom::randomDay(),
                      VendAccount _orderAccount = appl.BmDataBank().tableKey(tableNum(VendTable))) /* Benchmark - START */
{
    purchTable_DeliveryDate.setFocus();
    purchTable_DeliveryDate.pasteText(strFmt('%1',_deliveryDate));

    purchTable_OrderAccount.setFocus();
    purchTable_OrderAccount.pasteText(_orderAccount);

    vendorName.setFocus();

    element.setTimeOut(identifierstr(closeOK),100,false);
} /* Benchmark - END */
Собственно, здесь устанавливаются дата доставки и поставщик.

Вызывать из Вашей формы можно было бы так.

X++:
client static void openForm(Str words)
{
  FormRun fr;
  Object frObj;
  fr = classFactory.formRunClass(new Args(words));
  fr.init();
  fr.run();
  frObj = fr;

  frObj.SetVendorAndExit(SystemDateGet(), <AccountNum>);
}
Старый 21.07.2007, 11:57   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Daido Посмотреть сообщение
форма открывается,скажем заказ на покупку, WinAPI нажимает CTRL+N и открывает форма поставщиков, во скажем я не выбираю из выпадающего списка, а тупо набиваю туда код поставщика и далее так же дата и все такое, но я буквы не с помощью WinAPI, из спсика задач хочу брать и набить в нужное место
см. \Classes\BMScopePurchaseOrderDisplay
__________________
-ТСЯ или -ТЬСЯ ?
Старый 21.07.2007, 12:09   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Daido Посмотреть сообщение
форма открывается,скажем заказ на покупку, WinAPI нажимает CTRL+N и открывает форма поставщиков, во скажем я не выбираю из выпадающего списка, а тупо набиваю туда код поставщика и далее так же дата и все такое, но я буквы не с помощью WinAPI, из спсика задач хочу брать и набить в нужное место
[представил глаза программиста, пытающегося разобратся во всем этом].
А проще нельзя никак? Может, как-нить без WinApi, а?
Старый 21.07.2007, 13:09   #5  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Thumbs up конешно
конешно лучше без WinApi,но проект разработан до меня,надо как всегда до ума довести всем спасибо заусатия,в понедельник продолжим,поюзаем дальше
Старый 21.07.2007, 14:23   #6  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Daido Посмотреть сообщение
конешно лучше без WinApi,но проект разработан до меня,надо как всегда до ума довести всем спасибо заусатия,в понедельник продолжим,поюзаем дальше
Будьте осторожнее с использованием терминологии. Под WinApi можно много чего подогнать. В аксапте когда программист слышит WinApi, он думает что идёт использование класса оболочки для некоторых windows dll. Класс так и называется Winapi. Или может предположить, что идёт обращение через com к windows dll. Других версий употребления слова WinApi наверное не будет. У вас почему то мне кажется, не то не другое. Хотя могу быть и не прав.
Прокрай ней мере из тех обрывков информации о задачи можно понять, что WinApi здесь точно никто бы не стал использовать. Хотя бывают сюрпризы.
Да и когда пишите. Хотя бы один раз прочтите, что пишите. Текст очень плохо читается. Я не про ошибки.
За это сообщение автора поблагодарили: Daido (1).
Старый 23.07.2007, 07:33   #7  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Talking next юзаем ))))
Доброе утро господа!!! Вообщем вопрос остается открытым или я может не правильно сформировал вопрос (I not russian), попробую ещё раз, WinApi открывает форму нужную, нажимает TAB переходим в нужое место,и надо набить данные.
P.s. Тут как реализовано: сначало состовляется список задач в отдельной таблице, например как: 1.Открыть форму PushTable 2. Выбор поставщика 00000001 3. Создания заказа,выбор номенклатур и т.д. а далее WinApi набивает даные из этой таблицы. Открываю и перехожу с TAB-ом, но не знаю как вессти данные или буффером воспользоваться что-ль (copy\paste)
Старый 23.07.2007, 09:22   #8  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Daido Посмотреть сообщение
...WinApi открывает форму нужную, нажимает TAB переходим в нужое место,и надо набить данные.
А Вы пробовали воспользоваться советом kashperuk'a - методом pasteText? Полагаю, это то, что Вам нужно. В паре с этим методом используется setFocus, который "ставит курсор" на желаемое поле формы (т.е. не надо заморачиваться с подсчетом нажатий TAB).

P.S. Я сам пользовался подобным подходом в гриде формы SysQueryForm и обнаружил следующую особенность: способ устойчиво срабатывал так, как мне хотелось, только в том случае, когда фокус предварительно устанавливался на другое поле - не на то, для которого в данный момент прописывалось значение при помощи pasteText. Возможно, это было связано с тем, что я еще использовал метод setSelection для затирания старого значения в поле. В общем, у меня сложилась вот такая схема использования последовательности этих операторов:

X++:
.setFocus();

.setSelection(0, 1000); // где 1000 - некоторое заведомо большое значение - больше максимально возможной длины строки контрола
.pasteText(  );
Старый 23.07.2007, 09:44   #9  
Didar is offline
Didar
Участник
 
17 / 10 (1) +
Регистрация: 27.06.2007
Адрес: Astana
про setFocus я знаю
потому что какие задачи будут я заранее не заню, т.е. для юзеров делаем форму,они загружають свои задани через форму как раньше говорил, например
сначало открыть форму такую , потом надо ввести дату или ещё чего то,а конкретно какую форму буду они открывать и сколько там поле я не знаю, так что там сделал функция с помощью WinApi нажать Ctrl+S, Ctrl+N or Tab и т.д. их куча короче, но столкнулся проблемой WinApi тупо набивает везде пофигист , скороей всего pasteText подойдет
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Где перекрыт метод в классе miklenew DAX: База знаний и проекты 5 29.05.2008 11:07
visible(true) и курсор mvf DAX: Программирование 6 20.07.2005 10:09
Где что хранится? Kengo DAX: Программирование 10 11.11.2004 13:05
3.0: где активировать цены по скл. аналитикам ? Zabr DAX: Функционал 5 20.06.2003 11:12
Где взять материалы и еще один конкретный вопрос Andronov DAX: Программирование 6 19.02.2003 10:48
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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