30.09.2009, 15:39 | #1 |
Участник
|
Позиционирование в гриде
Доброго времени суток, уважаемые гуру аксапты!
Не могли бы вы мне помочь в следующем: имеется форма с тремя датасорсами: 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. |
|