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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2007, 09:29   #1  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
? где курсор
привет всем, с помощью WinAPI открываю форм разные,и заполняю что надо, совет нужен,что б набить в нужное место,как узнать где стоит курсор...
вообщем есть WinAPI функция и есть переменная( слово которое должно вестись) а как мне узнать или куда набить
Старый 21.07.2007, 10:56   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вы это делаете из Аксапты? То есть у вас есть FormRun?
Или из постороннего приложения, где у вас есть только хэндл окна?

Какую информацию вы имеете о поле, в которое нужно вставить требуемое значение? Название, хэндл?
Старый 21.07.2007, 11:46   #4  
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   #5  
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   #6  
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   #7  
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   #8  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Thumbs up конешно
конешно лучше без WinApi,но проект разработан до меня,надо как всегда до ума довести всем спасибо заусатия,в понедельник продолжим,поюзаем дальше
Старый 21.07.2007, 14:23   #9  
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   #10  
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   #11  
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   #12  
Didar is offline
Didar
Участник
 
17 / 10 (1) +
Регистрация: 27.06.2007
Адрес: Astana
про setFocus я знаю
потому что какие задачи будут я заранее не заню, т.е. для юзеров делаем форму,они загружають свои задани через форму как раньше говорил, например
сначало открыть форму такую , потом надо ввести дату или ещё чего то,а конкретно какую форму буду они открывать и сколько там поле я не знаю, так что там сделал функция с помощью WinApi нажать Ctrl+S, Ctrl+N or Tab и т.д. их куча короче, но столкнулся проблемой WinApi тупо набивает везде пофигист , скороей всего pasteText подойдет
Старый 23.07.2007, 09:53   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А если пользователь скроет какое-то из полей (пользовательская настройка), то куда перейдет Ваш Tab?
Старый 23.07.2007, 10:21   #14  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
уф :-)
во скрееншот
Миниатюры
Нажмите на изображение для увеличения
Название: view.JPG
Просмотров: 373
Размер:	52.0 Кб
ID:	2826  
Старый 23.07.2007, 10:26   #15  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Daido Посмотреть сообщение
во скрееншот
держите меня сто человек..
Миниатюры
Нажмите на изображение для увеличения
Название: BenchmarkTool.GIF
Просмотров: 374
Размер:	38.9 Кб
ID:	2827  
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: kashperuk (1).
Старый 23.07.2007, 11:22   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
держите меня сто человек..
Вадим хотел сказать, что подобная функциональность уже давно есть.
Benchmark tool называется.

если же вас, Daido, интересует не столько логика, сколько именно обход контролов, то и такой инструмент есть. Запуск форм называется.

Читайте мануалы - они рулез.
__________________
полезное на axForum, github, vk, coub.
Старый 23.07.2007, 11:48   #17  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вадим хотел сказать, что подобная функциональность уже давно есть.
Benchmark tool называется
примерно это я и хотел сказать
__________________
-ТСЯ или -ТЬСЯ ?
Старый 23.07.2007, 12:44   #18  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
Cool
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вадим хотел сказать, что подобная функциональность уже давно есть.
Benchmark tool называется.
если же вас, Daido, интересует не столько логика, сколько именно обход контролов, то и такой инструмент есть. Запуск форм называется.
Читайте мануалы - они рулез.
mazzy, я не знаю что есть или что нет,задание такое давали,куда деться???
про Benchmark tool можно по больше узнать???
Старый 23.07.2007, 12:50   #19  
Daido is offline
Daido
Участник
Аватар для Daido
 
105 / 10 (1) +
Регистрация: 13.07.2007
:( а нафиг тогда меня загрузили
Цитата:
Сообщение от Vadik Посмотреть сообщение
держите меня сто человек..
ёпрст, это ж то что я делаю...а
как же так,если есть такой стандартный функционал...
Microsoft Dynamics AX 4.0. MsSQLServer 2000, в где можно найти этот функционал???или про него узнать...или это дополнительно закупается???
Старый 23.07.2007, 12:50   #20  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Daido Посмотреть сообщение
про Benchmark tool можно по больше узнать???
Давайте я лучше расскажу про поиск на форуме.
Это замечательная штука находится на каждой странице вверху.
Кроме того, там есть поиск не только по форуму, но и по другим axapta-ресурсам.

Программное создание новых записей (внизу есть архивы, кроме того, есть документ, описывающий тестирование форм)
Benchmark tool - Где взять, как пользоваться
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Где перекрыт метод в классе 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, время: 06:32.