Переключение на Главную Страницу Страницы: 1 ... 19 20 [21] 22 23 ... 36 ОтправитьПечать
Очень популярная тема (более 25 ответов) TableDoc (число прочтений - 259194 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #300 - 18. Июня 2008 :: 09:03
Печать  
vip писал(а) 18. Июня 2008 :: 08:43:
И? Оргвыводы последуют? Улыбка

да
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #301 - 19. Июня 2008 :: 15:51
Печать  
vip писал(а) 18. Июня 2008 :: 07:10:
trad
Не работает событие ПриНажатииКлавиши.
ПриОтжатииКлавиши и другие события работают нормально.
Пробовал на менеджере в составе ПолеТабличногоДокумента.

исправлено
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: TableDoc
Ответ #302 - 19. Июня 2008 :: 16:13
Печать  
Сенькс. Улыбка
  
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: TableDoc
Ответ #303 - 07. Июля 2008 :: 13:35
Печать  
Вопрос: А существует ли возможность автоматически назначать любому активному окну таблицы (например из глобального модуля) какой-либо менеджер табличного документа и обрабатывать его события из глобального модуля?
Вопрос обусловлен появлением нового функционала прокрутки и масштабирования таблиц, наличием большого количества слепых бухгалтеров, формированием таблиц как расшифровок с физическим закрытием формы отчета после формирования таблицы.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #304 - 07. Июля 2008 :: 13:43
Печать  
Щас придёт Arta и научит тебя делать это перехватчиком. Если не хочешь ждать - юзай поиск, он несколько раз уже постил подобный код (в том числе и для ТП)
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #305 - 07. Июля 2008 :: 13:49
Печать  
Kapet писал(а) 07. Июля 2008 :: 13:35:
Вопрос: А существует ли возможность автоматически назначать любому активному окну таблицы (например из глобального модуля) какой-либо менеджер табличного документа и обрабатывать его события из глобального модуля?
в tabledoc.dll этого нет.
  

1&&2&&3
Наверх
 
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: TableDoc
Ответ #306 - 07. Июля 2008 :: 15:15
Печать  
trad писал(а) 07. Июля 2008 :: 13:49:
Kapet писал(а) 07. Июля 2008 :: 13:35:
Вопрос: А существует ли возможность автоматически назначать любому активному окну таблицы (например из глобального модуля) какой-либо менеджер табличного документа и обрабатывать его события из глобального модуля?
в tabledoc.dll этого нет.
... возможно объединенными усилиями c 1СРР и Formex...?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #307 - 08. Июля 2008 :: 04:02
Печать  
Kapet писал(а) 07. Июля 2008 :: 15:15:
trad писал(а) 07. Июля 2008 :: 13:49:
Kapet писал(а) 07. Июля 2008 :: 13:35:
Вопрос: А существует ли возможность автоматически назначать любому активному окну таблицы (например из глобального модуля) какой-либо менеджер табличного документа и обрабатывать его события из глобального модуля?
в tabledoc.dll этого нет.
... возможно объединенными усилиями c 1СРР и Formex...?

Тебе и говорят про Перехватчик - это как раз объединение усилий с 1С++ Улыбка
Рекомендую изучить.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #308 - 08. Июля 2008 :: 07:02
Печать  
JohnyDeath писал(а) 07. Июля 2008 :: 13:43:
Щас придёт Arta и научит тебя делать это перехватчиком.

Очень довольный


Это делается просто.
Как делается увеличение во множестве программ - через контрол и прокрутку колеса мыши.
Делаем в перехватчике любой формы:
Код
Выбрать все
Функция ПолучитьЭлементУправленияИмеющийМетод(ИмяАтрибутаФормы, Метод)
  Если ПустоеЗначение(ИмяАтрибутаФормы) = 0 Тогда
    _Форма = СоздатьОбъект("Форма");
    _Форма.УстановитьФорму(Конт.Форма);
    Попытка
	Элемент = _Форма.ПолучитьЭлементУправления(ИмяАтрибутаФормы);
	  Если ПустоеЗначение(Элемент) = 0 Тогда
	    Если Информатор.МетодСуществует(Элемент, Метод) = 1 Тогда
		Возврат Элемент;
	    КонецЕсли;
	  КонецЕсли;
    Исключение
	Ошибка = ОписаниеОшибки();
	Если (Ошибка <> "Окно атрибута формы не найдено!") И (Ошибка <> "Атрибут формы не найден!") Тогда
	  Сообщить("Атрибут: " + ИмяАтрибутаФормы + " " + ОписаниеОшибки(), "!");
	КонецЕсли;
    КонецПопытки;
  КонецЕсли;
КонецФункции

Процедура ПриПрокруткеКолесаМыши(Сост, Лево, Верх, ФСО, Градусы) Экспорт
  Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт, "ПриПрокруткеКолесаМыши", Сост, Лево, Верх, ФСО, Градусы);
  Если ФСО <> 0 Тогда
    Элемент = ПолучитьЭлементУправленияИмеющийМетод(Конт.Форма.АктивныйЭлемент(), "ПриПрокруткеКолесаМыши");
	Если ПустоеЗначение(Элемент) = 0 Тогда
	  Элемент.ПриПрокруткеКолесаМыши(Сост, Лево, Верх, ФСО, Градусы);
	КонецЕсли;
    КонецЕсли;
КонецПроцедуры
 



В коде класса-наследника Tabledcoc делаем:
Код
Выбрать все
Процедура ПриПрокруткеКолесаМыши(Сост, Градусы, Лево, Верх, ФСО, Таблица, НомерВида) Экспорт
  Если Сост = 8 Тогда
    Масштаб = Сам().Менеджер.Масштаб();
    Если Градусы < 0 Тогда
	Если Масштаб > 10 Тогда
	  Сам().Менеджер.Масштаб(Масштаб - 10);
	КонецЕсли;
    Иначе
	Сам().Менеджер.Масштаб(Масштаб + 10);
    КонецЕсли;
    ФСО = 0;
  КонецЕсли;
КонецПроцедуры 



P.S. Подобный код универсален для любых контролов (ТП, активиксов и т.д.)
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: TableDoc
Ответ #309 - 15. Июля 2008 :: 06:01
Печать  
обновления в ints файлах по TableDoc
руки до als к сожалению не доходят  Плачущий
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #310 - 29. Июля 2008 :: 07:53
Печать  
А что, уже готовую "Таблицу" нельзя передать в ТаблДок?
Делаю:
Код
Выбрать все
Процедура Сформировать()
	Таб=СоздатьОбъект("Таблица");
	Для й=1 По 100 Цикл
		НомерСтроки=й;
		Таб.ВывестиСекцию("Строка");
	КонецЦикла;
	ТаблДок.Менеджер.УстановитьТаблицу(Таб, Форма);
	ТаблДок.Таблица.ТолькоПросмотр(1);
	ТаблДок.Таблица.Показать();
	//ТаблДок.Менеджер.Обновить();
КонецПроцедуры	// Сформировать 


Никаких эффектов  Печаль
Подозреваю, что можно, но как чё-т не пойму. Помогите.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #311 - 29. Июля 2008 :: 08:10
Печать  
ТаблДок.Менеджер.УстановитьТаблицу
Нет, этот фокус не пройдет.

У поля табличного документа есть свой агрегированный табличный документ. Назовем его Т. Его и только его оно [поле] и отображает.
Кроме того поле имеет своего агрегированного менеджера (М).
При создании ЭУ ПТД, как раз происходит неявный вызов: М.УстановитьТаблицу(Т).

Поэтому выполняя код ТаблДок.Менеджер.УстановитьТаблицу(Таб), ты не только потеряешь контроль над таблицей (и события) которую отображает поле, но и поле не будет отображать твою Таб.
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #312 - 29. Июля 2008 :: 08:12
Печать  
Код
Выбрать все
Процедура Сформировать()
	Таб=ТаблДок.Таблица;
	Для й=1 По 100 Цикл
		НомерСтроки=й;
		Таб.ВывестиСекцию("Строка");
	КонецЦикла;
	Таб.ТолькоПросмотр(1);
	Таб.Показать();
КонецПроцедуры
 

так задачу не решить?
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #313 - 29. Июля 2008 :: 08:14
Печать  
У меня есть класс, который формирует и возвращает таблицу. Поэтому так не пойдёт.
Значит действительно нельзя?

П.С. Да, конечно можно немного подрихтовать класс и дать ему на вход таблицу от ТаблДока, но, как всегда, хотелось малой кровью.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: TableDoc
Ответ #314 - 28. Мая 2009 :: 14:31
Печать  
немного нового функционала:

0.1.0.29 (28.05.2009)
  МенеджерТабличногоДокумента
    Добавлены свойства
     ПараметрыСтраницы - коллекция параметров страницы
     Ид - уникальный в рамках сессии идентификатор экземпляра табличного документа

0.1.0.28 (21.05.2009)
  Расширенная область таблицы
  Добавлен метод РазмерШрифтаРасш

0.1.0.27 (20.06.2008)
  ПолеТабличногоДокумента
  Добавлено свойство ПлоскийСтиль / FlatStyle

http://infostart.ru/projects/4198/
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 19 20 [21] 22 23 ... 36
ОтправитьПечать