|
15.07.2004, 14:14 | #1 |
Участник
|
как вывести номер строки в гриде?
необходимо в форме salesTable в гриде для salesline вывести номера строк по порядку 1,2,3 ...
(поле linrnum было модифицировано при создании строк и зранит длугие значения) |
|
01.10.2012, 16:33 | #2 |
Участник
|
Когда на форме один датасорс и один грид просто так уже не отделаешься. Более универсально будет выглядеть вариант, использующий query().
Метод на форме : X++: void calcLineNum(Query _query,TableId _tableid) { Common Common; queryRun qR; int LineNum; ; mapLineNum = new Map(Types::Int64,Types::Integer); qR = new QueryRun(_query); qR.reset(); while (qR.next()) { Common = qR.get(_tableid); LineNum++; mapLineNum.insert(Common.RecId,LineNum); } } X++: public void executeQuery() { element.calcLineNum(this.query(),this.table()); super(); } X++: display Int getLineNum(MyTable _MyTable) { ; if (mapLineNum.exists(_MyTable.RecId)) return mapLineNum.lookup(_MyTable.RecId); else return 0; } Удобно тем, что в Query уже есть и нужная сортировка и нужные range-и. Номера строк не сбиваются и идут в том же порядке, как и отображаются в гриде. Сегодня пришлось вернуться к этой теме. Попросили очень привиредливые пользователи. Говорили, что жуть как нужно.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 01.10.2012 в 16:36. |
|