Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Динамически добавить секцию в таблицу.

v7: Динамически добавить секцию в таблицу.
Я
   ermak0ff
 
07.10.20 - 10:19
Всем привет.

Подскажите, а можно ли добавить секцию в таблицу динамически?
Т.е. после того как таблица была отображена.

Ловлю клик пользователя в процедуре "ОбработкаЯчейкиТаблицы(Значение, Флаг, Таблица, Адрес)", и хочу добавить секцию, посредством "Таблица.ВывестиСекцию("НазваниеСекции")", однако получаю ошибку что "Секция не найдена".

Задумка вообще такая - хочу динамечески, по клику пользователя, менять график.
Такое вообще возможно без перерисовки всей таблицы?
   ДенисЧ
 
1 - 07.10.20 - 10:20
Я боюсь тебя огорчить...
   ermak0ff
 
2 - 07.10.20 - 10:23
(1) продолжай, мне уже ничего не страшно))
   ДенисЧ
 
3 - 07.10.20 - 10:26
(2) Тогда перерисовывай таблицу ))
   ermak0ff
 
4 - 07.10.20 - 10:29
(3) ну чтож, значит придется костылить))
   Ёпрст
 
5 - 07.10.20 - 10:34
(0) штатно - нет, йоксель умеет, tabledoc - не помню
   Злопчинский
 
6 - 08.10.20 - 00:18
(0) как ты себе представляешь? если таблица была отображена - то добавить - это всегда В КОНЕЦ - добавить - да, можно.
а вот ВСТАВИТЬ то есть между... ну в принципе можно... но очень геморно.. типа пробегаешься по всем ячейкам мокселя, от строки перед которой вставить и до конца - переносишь их в промежуточную таблицу.
выводишь секцию в другую промежуточную таблицу - считываешь ее ячейки все и переносишь во "вставку". потом из первой промежуточной доставляешь вниз все что надо.... - это я тупо не думая. насколько это будет кузяво и быстро - ХЗ. юзай йоксель.

а вообще - нахрена вставлять/добавлять? сформируй полностью всю таблицу со всеми выводами как надо.
потом ее йокселем сгруппируй с "плюсиками" как эксель - надо детализировать - развернуть плюсик...
   Cthulhu
 
7 - 08.10.20 - 01:48
перерисовать и показать. покажет в том же месте.
   Cthulhu
 
8 - 08.10.20 - 01:48
(7)+: ну т.е. визуально - обновит.
   ermak0ff
 
9 - 08.10.20 - 12:01
(6) представлял так:
1. Выводим таблицу.
2. Пользователь кликает по некой группе.
3. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и добавляю секцию с графиком, с инфой по данной группе.
4. Пользователь кликает по некой группе.
5. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и обновляю секцию с графиком, т.е. перерисовываю только график.
и.т.д. с повторением шагов №4-5.
но на шаге №3 при вызове "Таблица.ВывестиСекцию("СекцияСГрафиком")" ловлю ошибку "Секция не найдена"

пришлось реализовать так:
1. Выводим таблицу.
2. Проверяем есть ли данные для построения графика:
   - если ДА, то выводим секцию с графиком и строим его;
   - если НЕТ, тогда не выводим секцию с графиком.
3. Пользователь кликает по некой группе.
4. В методе "ОбработкаЯчейкиТаблицы" ловлю это действие, вношу в таблицу значений информацию для построения графика.
5. Вызываю метод перерисовки таблицы, т.е. переходим к шагу №1.
и.т.д. с повторением шагов №1-5.
   Злопчинский
 
10 - 08.10.20 - 13:32
(9) "В методе "ОбработкаЯчейкиТаблицы" ловлю это действие и добавляю секцию с графиком, с инфой по данной группе."
открывай тупо в новой таблице и все...
   ermak0ff
 
11 - 08.10.20 - 13:45
(10) как вариант, но тогда будет хреновый UX, постоянное открытие нового окна таблицы, не есть гуд.
   HawkEye
 
12 - 08.10.20 - 14:21
(9) проще обновить отчет целиком )))
   tgu82
 
13 - 08.10.20 - 18:16
(11) Слушай (10), он в этом большой опыт имеет
   Злопчинский
 
14 - 08.10.20 - 19:14
(11) зачем? если график нужен юзверю - жмакнул - увидел в отдельном окошеке/печформе график. с заголовками, нужнйо хренью прочей всякой. надо - напечатл его...
   Злопчинский
 
15 - 08.10.20 - 19:15
выводить в простыную из 100 например номенклатур сразу 100 графиков - сымсла в этом нет.
а если единовременно пользователем осматиривается один график - то и выводить его КОГДА ОН НУЖЕН в отдельном окне.
   Builder
 
16 - 08.10.20 - 22:59
А посмотри еще таблицу в режиме ввода данных, там несколько своих методов есть, может они помогут сделать красиво.
   Ёпрст
 
17 - 08.10.20 - 23:09
(11) давно бы уже написал с помощью йокселя, хоть во фрейме, хоть в таблице на форме
   Ёпрст
 
18 - 08.10.20 - 23:10
там есть и вставка секции и управление видимостью, можно скрывать/показывать
   Bigbro
 
19 - 09.10.20 - 06:46
(9)
я бы ожидал другого поведения отчета.
либо отдельная область в отчете для графика текущей выбранной позиции - которая перерисовывается по обработкеячейкитаблицы
либо "проваливаемся" в обработке ячейки и выводим отдельное окно с подробной расшифровкой, графиком и прочая.
ломать макет каждый раз - не круто.
   ermak0ff
 
20 - 09.10.20 - 09:00
(19) "ломать макет каждый раз - не круто."
так макет не ломается, график всегда под таблицей с данными.
т.е. сценарий такой:
1. Открывается таблица с данными.
2. Пользователь ее скролит и "натыкивает" данных для графика.
3. В самом конце, под таблицей с данными, его ждет график.

все вроде бы логично и прямолинейно.
   Bigbro
 
21 - 09.10.20 - 09:41
не понимаю все равно.
вот ты вывел исходный график пусть он пустой.
потом натыкиваются цифры в таблице.
но график то у тебя уже выведен.
если надо чтобы обновлялся - так используй Обновление(1) для диаграммы и все?
   ermak0ff
 
22 - 09.10.20 - 09:57
(21) "вот ты вывел исходный график пусть он пустой."
пустой график я не вывожу, график выводиться только тогда, когда есть данные.

допустим я его всегда вывожу.
"если надо чтобы обновлялся - так используй Обновление(1) для диаграммы и все?"
что есть "Обновление(1)"?
это какой то метод?
если да, как и на чем его дергать?
   Ёпрст
 
23 - 09.10.20 - 10:51
(22) еще постов 100 и будешь йоксель изучать
   Duke1C
 
24 - 20.10.20 - 21:17
+(23) Ну или OLAP)
   trdm
 
25 - 20.10.20 - 21:27
(0) > Подскажите, а можно ли добавить секцию в таблицу динамически?
> Т.е. после того как таблица была отображена.

Если там просто текст и рамки можно просто нарисовать и подствить текст.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.