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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.09.2009, 15:39   #1  
Alexanderrrr is offline
Alexanderrrr
Участник
Аватар для Alexanderrrr
 
54 / 19 (1) ++
Регистрация: 06.03.2009
Адрес: Саратов
Позиционирование в гриде
Доброго времени суток, уважаемые гуру аксапты!

Не могли бы вы мне помочь в следующем:
имеется форма с тремя датасорсами: RContractTable, ObjectTable, PointAccountTable.
На форме грид, свойство datasourse=RContractTable.

Необходимо было добавить возможность удаления строки/строк из грида, для последующего вывода в отчет только нужных строчек.
Удаление организовал по кнопке; ее метод кликед:
X++:
void clicked()
{
    QueryBuildDatasource    pointTable;
    query q;
    queryBuildRange qbr;
    RContractTable              RContract;
    ObjectTable              object;
    PointAccountTable        pointAccount;
    int c;
    ;

    for (RContract = RContractTable_ds.getFirst(true) ? RContractTable_ds.getFirst(true) : RContractTable_ds.cursor(); RContract; RContract = RContractTable_ds.getNext())
      {
      c++;
      }

    qbr=pointTable.findRange(FieldNum(ICLPointAccountTable,PointAccountId));
    if (qbr)
    {
    for (RContract = RContractTable_ds.getFirst(true) ? RContractTable_ds.getFirst(true) : RContractTable_ds.cursor(); RContract; RContract = RContractTable_ds.getNext())
      {
       object = RContract.joinChild();
       pointAccount = object.joinChild();
    qbr.value(qbr.value()+',!'+pointAccount.PointAccountId);
      }
    }
    else
    {
    if (c==1)
    {
     qbr=pointTable.addRange(FieldNum(ICLPointAccountTable,PointAccountId));
     qbr.value('!'+ICLPointAccountTable.PointAccountId);
      
    }
    else
    {
qbr=pointTable.addRange(FieldNum(ICLPointAccountTable,PointAccountId));
    for (RContract = RContractTable_ds.getFirst(true) ? RContractTable_ds.getFirst(true) : RContractTable_ds.cursor(); RContract; RContract = RContractTable_ds.getNext())
      {
                object = RContract.joinChild();
                pointAccount = object.joinChild();

    qbr.value(qbr.value()+',!'+pointAccount.PointAccountId);
      }
    }
    }
 RContractTable_ds.research();
 }

Работает, как и нужно. Но после research курсор уходит на первую запись в гриде.

На форуме читал похожие темы, но то, что мне нужно не нашел..ведь мне нужно запоминать не позицию выделенной строки, а позицию следующей за ней, поскольку выделенная удаляется.
Не направите ли на путь истинный?

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

Последний раз редактировалось Dron AKA andy; 30.09.2009 в 17:53.
Теги
grid, позиционирование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Открытие формы с деталями активной записи в гриде sweeper DAX: Программирование 4 19.09.2008 15:55
Обработка события нажатие клавиши на гриде berlioz DAX: Программирование 17 27.09.2006 09:48
как перечислить все колонки в гриде ? Omeo DAX: Программирование 5 16.06.2004 09:22
Позиционирование при переходе к основной таблице dn DAX: Программирование 2 29.01.2004 18:35
Lookup поля в Гриде NeveB DAX: Программирование 1 10.12.2003 12:18

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

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

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