0
DJ Anthon
13.08.13
✎
15:09
|
Всего мнений: 1
Нужна любая таблица (табличное поле) с пометками, у табличного поля есть метод. ну еще нужна переменная модуля Пометки типа строка.
Зачем оно надо: около таблицы принято размещать кнопочки, которыми можно сразу отметить все строки или разотметить. а в 7.7 когда-то было принято еще и инвертировать выделение. но эти кнопочки на скорую руку рисовать влом и дизайн часто они портят, особенно когда таблиц много, просто неохота их никуда пихать. тем не менее, заголовки таблиц неинтерактивны, и контекстное меню тоже делать неохота.
я решил использовать такую особенность таких таблиц-списков - как правило, одну и ту же пометку пользователи не нажимают несколько раз. короче, сделал так, чтобы на троекратное нажатие любой строчки все пометки инвертировались, на последующие троекратные нажатия все отметки устанавливались в зависимости от текущей. то есть можно особо не двигая мышкой (до кнопок с галочками, которые еще найти надо) быстренько отметить все пункты. Плюс - простота и универсальность.
Минус - надо еще об этом догадаться, что таблица так умеет. пока что для себя сделаю.
Процедура ТЗПриИзмененииФлажка(Элемент, Колонка)
НС = Элемент.ТекущиеДанные.НомерСтроки;
Пометки = Пометки + "!" + НС;
Если СтрЗаменить(Пометки, "!" + НС, "") = "" Тогда
Если СтрДлина(Пометки) % (3 * СтрДлина("!" + НС)) = 0 Тогда
НС = ?(СтрДлина(Пометки) / СтрДлина("!" + НС) = 3, -НС, Элемент.ТекущиеДанные.Пометка);
Для Каждого Строка Из ТЗ Цикл
Строка.Пометка = ?(НС < 0, ?(-НС = Строка.НомерСтроки, Строка.Пометка, НЕ Строка.Пометка), НС);
КонецЦикла;
Иначе
Возврат;
КонецЕсли;
Иначе
Пометки = "!" + НС;
КонецЕсли;
КонецПроцедуры
|
|
1
Попытка1С
13.08.13
✎
15:11
|
"Минус - надо еще об этом догадаться, что таблица так умеет. пока что для себя сделаю. "
Именно поэтому нафиг не надо, иконки оно как-то нагляднее.
Имхо.
Не, не пойдет |
|