Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 6 ... 36 ОтправитьПечать
Очень популярная тема (более 25 ответов) TableDoc (число прочтений - 265026 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #45 - 12. Ноября 2007 :: 10:25
Печать  
в версии компоненты которая лежит по ссылке из #31 на самом деле есть пара событий менеджера:

ОбработкаЯчейкиТаблицы/SheetCellProcessing(Значение,ФСО,Таб,Адрес) - все параметры стандартны.

ПриАктивизацииЯчейки/OnActivateCell(Таб, Действие, Строка, Колонка) - Действие: 0-деактивация 1-активация; остальные понятны. Событие пока не стабильно и не рекомендуется к применению.

События вызываются как в модуле формы так и в модуле КОПа-наследника от ПоляТабличногоДокумента или МенеджераТабличногоДокумента. Опять же ссылаюсь на принципы вызова событий ТП. Все так же.
1. В модуле формы имя процедуры-обработчика события должно иметь префикс:
- если событие от мнеджера ПоляТабличногоДокумента - Идентификатор атрибута формы на котором создано это поле;
- если событие от произвольного МенеджераТабличногоДокумента - "МенеджерТаблДок".
2. В модуле формы объявление процедуры-обработчика события имеет первый формальный параметр в который передается менеджер.

Пример для события от менеджера поля:

Код
Выбрать все
Перем гТД;

Процедура ПриОткрытии()
    _Форма=СоздатьОбъект("Форма");
    _Форма.УстановитьФорму(Форма);
КонецПроцедуры

Процедура ФормаПриСоздании(_Форма)
    гТД=_Форма.СоздатьЭлементУправления("ПолеТабличногоДокумента", Форма.ТаблДок);
    гТД.Таблица.ТолькоПросмотр(1);
    гТД.Таблица.Вывести();
КонецПроцедуры

Процедура ТаблДокОбработкаЯчейкиТаблицы(Менеджер,Значение,ФСО,Таб,Адрес)
//Если ФСО обнулить, то никакой штатной обработки не будет.
//Если оставить =1, то будет обычная штатная обработка с вызовом штатной локальной/глобальной ОбработкаЯчейкиТаблицы
    Сообщить("ТаблДокОбработкаЯчейкиТаблицы");
    Сообщить(Менеджер);
    Сообщить(Значение);
    Сообщить(ФСО);
    Сообщить(Таб);
    Сообщить(Адрес);
КонецПроцедуры 


пример для события от произвольного менеджера:

Код
Выбрать все
Перем гМенеджер;

Процедура Сформировать()
    Таб=СоздатьОбъект("Таблица");
    Таб.ТолькоПросмотр(1);
    Таб.Вывести();
    Таб.Показать();

    гМенеджер=СоздатьОбъект("МенеджерТабличногоДокумента");
    гМенеджер.УстановитьТаблицу(Таб,Форма);
КонецПроцедуры

Процедура МенеджерТаблДокОбработкаЯчейкиТаблицы(Менеджер,Значение,ФСО,Таб,Адрес)
    Сообщить("МенеджерТаблДокОбработкаЯчейкиТаблицы");
    Сообщить(Менеджер);
    Сообщить(Значение);
    Сообщить(ФСО);
    Сообщить(Таб);
    Сообщить(Адрес);
КонецПроцедуры
 

  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #46 - 12. Ноября 2007 :: 10:43
Печать  
по поводу tabledoc и 1с++
ВК tabledoc никогда не была в составе 1с++ (и никто ее оттуда не выделял) и не будет в ее составе.
Во-первых это самостоятельный продукт. Во-вторых я сторонник модульности.

То что я эту поделку расцениваю как плагин к 1С++ - это только в части создания контрола, т.к. 1с++ замечательно умеет создавать любые контролы отвечающие интерфейсу CV7Control. Лубой может реализовать такой контрол который будет создаваться при помощи функционала 1с++. И ВК с таким контролом можно расценивать как плагин.
С другой стороны, т.к. поле ТД реализует еще и другой, пока неизвестный широкому кругу, интерфейс, то оно может быть создано и другой "над плагинной" ВК. Но речь пока не о ней.
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #47 - 12. Ноября 2007 :: 10:51
Печать  
trad писал(а) 12. Ноября 2007 :: 10:43:
Во-вторых я сторонник модульности.

+1 всеми руками за
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #48 - 12. Ноября 2007 :: 10:59
Печать  
Цитата:
ВК tabledoc никогда не была в составе 1с++ (и никто ее оттуда не выделял) и не будет в ее составе.

Ну, тебе видней. Это не страшно.

Пока ты не исправил предыдущий пост, я успел попробовать ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Строчка,Колонка)

Работает, но не совсем. При активации ячейки эта процедура срабатывает сначала для предыдущей активной ячейки, а потом еще и для той, которая стала текущей. И при первой отрисовке таблицы срабатывает несколько раз подряд. А событие богатое, хорошо, если будет доведено до рабочего состояния.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #49 - 12. Ноября 2007 :: 11:08
Печать  
И Значение в ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Строчка,Колонка) все время возвращает "Таблица"
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #50 - 12. Ноября 2007 :: 11:26
Печать  
vip писал(а) 12. Ноября 2007 :: 11:08:
И Значение в ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Строчка,Колонка) все время возвращает "Таблица"
я такие формальные параметры не давал Улыбка

из описания выше:
ПриАктивизацииЯчейки/OnActivateCell(Таб, Действие, Строка, Колонка)
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #51 - 12. Ноября 2007 :: 11:31
Печать  
vip писал(а) 12. Ноября 2007 :: 10:59:
Работает, но не совсем. При активации ячейки эта процедура срабатывает сначала для предыдущей активной ячейки, а потом еще и для той, которая стала текущей.
так и задумано. См. параметр "Действие"

vip писал(а) 12. Ноября 2007 :: 10:59:
И при первой отрисовке таблицы срабатывает несколько раз подряд.
при первом показе она на самом деле "движком" активизируется/деактивизируется по 2 раза. Не уверен что с этим есть необходимость бороться Озадачен
  

1&&2&&3
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #52 - 12. Ноября 2007 :: 11:38
Печать  
Если пересоздать новое ТП на месте предудыщего - все ок.
Если пересоздать активикс на том же атрибуте - все ок за редким исключением.
Если вместо ТД делаю например ТП (том же атрибуте), то вылет в космос.

Это лечится?

У меня много закладок, атрибут один. С другими объектами вроде не вылетает...
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #53 - 12. Ноября 2007 :: 11:39
Печать  
trad писал(а) 12. Ноября 2007 :: 11:26:
vip писал(а) 12. Ноября 2007 :: 11:08:
И Значение в ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Строчка,Колонка) все время возвращает "Таблица"
я такие формальные параметры не давал Улыбка

из описания выше:
ПриАктивизацииЯчейки/OnActivateCell(Таб, Действие, Строка, Колонка)

Не давал. Но я успел выхватить, пока ты не исправил, так
ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Таб.Адрес) Очень довольный
Строчка и Колонка я сам приписал, т.к. они возвращают действительно текущую строку и колонку.

Соответственно
Менеджер="МенеджерТабличногоДокумента"
Значение="Таблица"
ФСО=1
Строчка=текущая строка
Колонка=текущая колонка

Так как все таки правильно?
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новинка - TableDoc
Ответ #54 - 12. Ноября 2007 :: 11:46
Печать  
Цитата:
при первом показе она на самом деле "движком" активизируется/деактивизируется по 2 раза. Не уверен что с этим есть необходимость бороться

А у меня почему-то аж 9 раз.
Пробовал создавать и в ПослеСозданияФормы и в ПослеОткрытия.
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #55 - 12. Ноября 2007 :: 11:50
Печать  
vip писал(а) 12. Ноября 2007 :: 11:39:
Не давал. Но я успел выхватить, пока ты не исправил, так
ПриАктивизацииЯчейки(Менеджер,Значение,ФСО,Таб.Адрес) Очень довольный

хм.странно Озадачен
я вроде копи-пастил из (см.аттач)
хотя может и я что то напутал Нерешительный

А, правильно - как в описании:
Менеджер="МенеджерТабличногоДокумента"
Таб="Таблица"
Действие=0/1
Строчка=текущая строка
Колонка=текущая колонка
  

1_006.rar ( 2 KB | Загрузки )

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #56 - 12. Ноября 2007 :: 11:56
Печать  
vip писал(а) 12. Ноября 2007 :: 11:46:
Цитата:
при первом показе она на самом деле "движком" активизируется/деактивизируется по 2 раза. Не уверен что с этим есть необходимость бороться

А у меня почему-то аж 9 раз.
Пробовал создавать и в ПослеСозданияФормы и в ПослеОткрытия.

ну что же я могу поделать если кто то в системе столько много раз активизирует/деактивизирует контрол, а следовательно и шитвью, а следовательно и ячейку.
я же фиксирую сам факт. а вследствии чего он происходит мне, по идее, должно быть все равно.
  

1&&2&&3
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #57 - 12. Ноября 2007 :: 16:00
Печать  
Содержимое данного сообщения было перенесено СЮДА.
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Новинка - TableDoc
Ответ #58 - 15. Ноября 2007 :: 15:24
Печать  
Автор, а как насчет свертки?
Я тут подумал, ведь наверное можно сделать, ...теоретически.
Подложить контрол на еще одно окошко, а на нем уже фигачить свертку пряча и показывая строки..
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Новинка - TableDoc
Ответ #59 - 17. Ноября 2007 :: 15:59
Печать  
А вот мне кажется что было бы неплохо сделать возможность рулить видимостью строк и колонок, тогда вполне возможно будет и сворачивание в будущем сделать... по крайней мере будем уже на шаг ближе.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 6 ... 36
ОтправитьПечать