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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.05.2006, 18:13   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Может это не ваша ситуация

На форме используется один буфер для поиска по AutoSearch. Этот буфер сбрасывается при нажатии на управляющие кнопки или при смене фокуса контрола, по которому идет поиск.
Если же выбирать закладки при помощи мыши, то этот буфер не сбрасывается и при попытке начать поиск в новом датасоурсе на самом деле ищется не вновь набираемый текст, а добавляется к уже записанному в буфере.
Обойти этот эффект можно нажатием на управляющие кнопки (стрелки) или переключением с помощью CTRL+TAB. Можно так же программным способом при помощи WinApi. Вот пример для этой формы
X++:
void tabChanged(int _from, int _to)
{
    #define.EM_SETSEL(0x00B1)
    #define.VK_RIGHT(39)
    #winapi
    ;
    super(_from, _to);

    switch (_to)
    {
        case 1:
            element.selectMode(element.control(Control::tmpLedgerTable_AccountNum));
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
        case 2:
            element.selectMode(element.control(Control::LedgerTableAccountType_AccountNum));
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
    }

}
__________________
Axapta v.3.0 sp5 kr2
Старый 24.05.2006, 11:22   #2  
YoYo is offline
YoYo
Участник
Аватар для YoYo
 
3 / 10 (1) +
Регистрация: 19.05.2006
Эх, спасибо ребята :)
Сейчас буду обрабатывать полученную информацию и смотреть как лучше. А академический интерес - это верно, он зачастую присутствует да и разве можно научиться чему-нибудь не попробовав?
Всем спасибо большое за ответы!!!!
__________________
Всему свой час и Время каждому из дней!
Родиться - время, время - жить и умирать.
Швырять камнями, но затем и собирать...
Молчать есть время, говорить с Душой своей...
Старый 13.07.2010, 15:43   #3  
Nati is offline
Nati
Участник
 
3 / 10 (1) +
Регистрация: 28.10.2005
:( ds_AutoSearch(false), tabChanged
На форме используется один буфер для поиска по AutoSearch. Этот буфер сбрасывается при нажатии на управляющие кнопки или при смене фокуса контрола, по которому идет поиск.
Если же выбирать закладки при помощи мыши, то этот буфер не сбрасывается и при попытке начать поиск в новом датасоурсе на самом деле ищется не вновь набираемый текст, а добавляется к уже записанному в буфере.
Обойти этот эффект можно нажатием на управляющие кнопки (стрелки) или переключением с помощью CTRL+TAB. Можно так же программным способом при помощи WinApi. Вот пример для этой формы
X++:
void tabChanged(int _from, int _to)
{
    #define.EM_SETSEL(0x00B1)
    #define.VK_RIGHT(39)
    #winapi
    ;
    super(_from, _to);

    switch (_to)
    {
        case 1:
            element.selectMode(element.control(Control::tmpLedgerTable_AccountNum));
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
        case 2:
            element.selectMode(element.control(Control::LedgerTableAccountType_AccountNum));
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
    }

}
[/QUOTE]

ЗДРАВСТВУЙТЕ ВСЕМ
ЭТО НЕ РАБОТАЕТ - "буфер для поиска по AutoSearch" не сбрасывается
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подскажите красивое решение задачи (поиск данных на форме) DTD DAX: Программирование 4 22.01.2009 08:54
Как не выводить заголовки в форме, если нет строк? DreamCreator DAX: Программирование 9 29.05.2008 15:10
Поиск в Grid по полю DataMethod Tiruvileijadal' DAX: Программирование 20 14.05.2007 13:37
Журналы и строки на одной форме. chi DAX: Программирование 16 08.06.2005 11:21
Функция "Удалить строки" Oks DAX: Функционал 1 03.07.2002 18:09
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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