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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.08.2006, 11:49   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
? Как правильно обновлять FormTableControl
А то заголовок не обновляется. Тест присоединен к этому сообщению.

При нажатии на кнопку данные меняются. А заголовки нет. Изменения в заголовках отображаюся только при скролле окна.

Вот мои неудачные попытки отобразить изменения в заголовках:

X++:
//    theTable.visible(false);
//    theTable.visible(true);
    #winapi
    Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,'');
    //WM_SETREDRAW
    Winapi::sendMessage(theTable.hWnd(), 0xB, 1,'');
    theTable.update();
    theTable.updateCell(0,0);
Вложения
Тип файла: rar Test_Table.rar (2.3 Кб, 108 просмотров)
Старый 25.08.2006, 12:43   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Поменяй
X++:
Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,'');
на
X++:
Winapi::sendMessageEx(theTable.hWnd(), #WM_HSCROLL, #SB_RIGHT, 0);
Winapi::sendMessageEx(theTable.hWnd(), #WM_HSCROLL, #SB_LEFT, 0);
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: belugin (6), GLUK (1).
Старый 25.08.2006, 12:48   #3  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от belugin
А то заголовок не обновляется. Тест присоединен к этому сообщению.

При нажатии на кнопку данные меняются. А заголовки нет. Изменения в заголовках отображаюся только при скролле окна.

Вот мои неудачные попытки отобразить изменения в заголовках:

X++:
//    theTable.visible(false);
//    theTable.visible(true);
    #winapi
    Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,'');
    //WM_SETREDRAW
    Winapi::sendMessage(theTable.hWnd(), 0xB, 1,'');
    theTable.update();
    theTable.updateCell(0,0);
У меня обновляет и такое
Winapi::sendMessage(theTable.hWnd(), 71, 0,'');
Что значит 71 не знаю, так как рядом нет Studio, а копаться в MSDN не охота может что -то из приведенного выше
За это сообщение автора поблагодарили: belugin (6).
Старый 25.08.2006, 12:52   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Помню, когда-то давно на 2.5 работал с Table`ами, для обновления использовал что-то типа:

Table.insertRows(1, 0);

или

Table.deleteRows(1, 0);
__________________
Андрей.
За это сообщение автора поблагодарили: Maxim Gorbunov (6), belugin (6).
Старый 25.08.2006, 12:52   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
а что такое 71 - (под руками нет windows.h)
Старый 25.08.2006, 13:01   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
WM_WINDOWPOSCHANGED (0x0047) - WinUser.h
Но у меня не обновляется
__________________
Axapta v.3.0 sp5 kr2
Старый 25.08.2006, 15:38   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Можно еще так
X++:
void HeaderLayout(FormTableControl tbl)
{
    int header;
    int r = 0;
    Binary  RECT        = new Binary(16);
    Binary  ptr         = new Binary(4);
    #define.WM_LBUTTONDOWN(0x0201)
    #define.WM_LBUTTONUP(0x0202)
    #define.HDM_FIRST(0x1200)
    #define.HDM_GETITEMRECT(#HDM_FIRST + 7)

    #winapi
    ;
    header = winapi::getWindow(tbl.hWnd(), #GW_CHILD);
    if (header)
    {
        ptr.binary(0, RECT);
        if (winapi::sendMessageEx(header, #HDM_GETITEMRECT, 1, ptr.dWord(0)) > 0)
        {
            r = RECT.dWord(8);
            winapi::sendMessageEx(header, #WM_LBUTTONDOWN, 1, r);
            winapi::sendMessageEx(header, #WM_LBUTTONUP, 0, r);
        }
    }
}
Заодно выровняется ширина столбцов
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 25.08.2006 в 15:46.
За это сообщение автора поблагодарили: belugin (5).
Теги
axapta, formtablecontrol, table control

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как правильно создать в коде X++ новый planned order (ReqPO, ReqTrans) rkorchagin DAX: Программирование 5 02.06.2016 18:00
aEremenko: Как правильно подобрать оборудование и понять, сколько оно будет стоить? Blog bot DAX Blogs 0 17.04.2007 12:00
Основы работы с FormTableControl PavelSR DAX: Программирование 12 21.09.2006 10:31
Как обновлять? MadLight DAX: Администрирование 4 22.11.2004 13:44
Гибрид FormTableControl и FormDataSource Андре DAX: Программирование 27 01.10.2003 09:58

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

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

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