Есть на форме 2 грида.
В первой заголовки LedgerJournalTable, во второй строки LedgerJournalTrans.
В каждом гриде присутствует checkbox(edit method)
Для LedgerJournalTrans
X++:
edit boolean Copy(boolean _set, LedgerJournalTrans _LJT, boolean _mark)
{
if (_set)
{
if(!_mark)
{
if(paMarked.exists(_LJT.RecId))
{
paMarked.remove(_LJT.RecId);
}
}
else
{
paMarked.insert(_LJT.RecId, _LJT.DocumentNum);
}
}
return paMarked.exists(_LJT.RecId);
}
Для LedgerJournalTable
X++:
edit boolean CopyLines(boolean _set, LedgerJournalTable _LJT, boolean _mark)
{
Query q;
QueryRun queryRun;
QueryBuildDataSource qbLJT;
QueryBuildDataSource qbLJTT;
LedgerJournalTrans ljt;
boolean ret;
q = new Query();
qbLJT = q.addDataSource(tablenum(LedgerJournalTable));
qbLJT.relations(true);
qbLJTT = qbLJT.addDataSource(tablenum(LedgerJournalTrans));
qbLJTT.relations(true);
qbLJT.addRange(fieldnum(LedgerJournalTable, RecId)).value(SysQuery::value(_LJT.RecId));
queryRun = new QueryRun(q);
while(queryRun.next())
{
ljt = queryRun.get(tableNum(LedgerJournalTrans));
ret = LedgerJournalTrans_ds.Copy(_set, ljt, _mark);
}
LedgerJournalTrans_ds.refresh();
return ret;
}
Во втором методе мне нужно проставить галки в гриде для LedgerJournalTrans. Для отображения я попробовал использовать LedgerJournalTrans_ds.refresh();, что существенно замедлило работу (хотя и не критично). Проблема в том что при таком подходе отображается галка только на первой строке, если строк больше чем одна, то что бы увидеть галки, надо либо вручную обновить грид (F5) либо переключиться на другую запись. Насколько я понимаю данный подход не совсем правильный. Подскажите как поступить в данном случае?