Доброго времени суток, уважаемые гуру аксапты!
Не могли бы вы мне помочь в следующем:
имеется форма с тремя датасорсами: 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 курсор уходит на первую запись в гриде.
На форуме читал похожие темы, но то, что мне нужно не нашел..ведь мне нужно запоминать не позицию выделенной строки, а позицию следующей за ней, поскольку выделенная удаляется.
Не направите ли на путь истинный?
п.с. если было такое на форуме, очень извиняюсь..