Вход | Регистрация


1С:Предприятие ::

Метки:

Введение в vtools.

Я
   Матрейя
20.07.04 - 23:36
Не всегда хватает возможностей (и т.п) стандартных форм списков 1с (v7). Поэтому многие программисты используют ТЗ. Однако в использовании ТЗ есть один существенный недостаток - форма статична и ее обновление связано с определенными ожиданиями обработки алгоритма. Есть замечательная компонента vtools, которая позволяет создавать на форме таблицу, с методами практически аналогичными стандартной ТЗ, но при этом производить фоновое обновление списка. Есть 2 варианта фонового обновления: виртуальный режим и обновление в потоке (что, на мой взгляд, более предпочтительно, поскольку предоставляет больше возможностей). Кроме заявленного функционала таблицы (grid), есть возможность хранить в каждой ячейке одновременно 2 значения, сортировка по любому столбцу, предопределенные события, раскрасска отдельной ячейки и многое другое. Бесплатный дистрибутив можно скачать с сайта разработчика www.vtools.ru, а помощь тем, кому данная внешняя компонента понравится - могу оказать здесь.
 
 
   BorisG
 
1 - 20.07.04 - 23:43
(0) В правом углу страницы "1С:Предприятие Вопрос"

А в чем вопрос?
   Матрейя
2 - 20.07.04 - 23:47
1. Прям так сразу? Немного позже задам.
   Demiurg
 
3 - 21.07.04 - 00:19
Спам! Один спам, вот млин, ууу
   skunk
 
4 - 21.07.04 - 05:29
злые Вы тут все (((
   427
 
5 - 21.07.04 - 06:26
выведение светы с форума.....
   Матрейя
6 - 21.07.04 - 21:48
Акция продолжается:)
   Den
7 - 21.07.04 - 21:51
Матрейя, спасибо огромное за ссылку! Наши победят!
   Shadal
 
8 - 22.07.04 - 07:53
Вопросик Процедура ПриДвойномНажатииЛевойКнопки() срабатывает не только когда кликаешь (в Tree) по конкретному элементу, но и когда открываешь или закрываешь дерево нажимая соответственно на + и - (Если период между нажатием открытия и закрытия небольшой).Так вот Матрейя!!! Есть ли способ этого избежать? И можно ли отлавливать двойное нажатие только по названию элемента а не по иконке с +
   Shadal
 
9 - 22.07.04 - 09:11
И ещё в догонку... Хотелось бы чтоб дерево не разворачивалось при двойном нажатии левой мыши на названии, а только при наджатии на иконку с +....
   Матрейя
10 - 22.07.04 - 10:34
8. ПриДвойномНажатииЛевойКнопки - ПриОткрытииЗакрытииДерева - идентичные процедуры для объекта Tree. Какую из них использовать - решай сам.
9. Вместо дерева рекомендую использовать объект Grid. Внешне мало чем отличается, но предоставляется намного больше возможностей: цвет, в ячейке можно хранить значение (а не его представление) и т.п.
 
  Рекламное место пустует
   Shadal
 
11 - 22.07.04 - 10:56
А  можно ли редактировать где интервал между нажатиями кнопки мыши чтоб воспринималось как клик (Например 1 сек это клик 2 сек уже нет). Или в VTools это нельзя?
   Матрейя
12 - 22.07.04 - 11:04
11. Это настраивается в Windows :)) , хотя можно эмулировать и в vtools :
Перем _задержка;
Перем _ТочкаПослКлика;

Процедура ПриНажатииЛевойКнопки()
ТекТочка=_GetPerformanceCounter();
Если (ТекТочка-_ТочкаПослКлика)<_Задержка*1000 Тогда
МояТаблица.СтатусВозврата(0);
КонецЕсли;
// здесь текст процедуры

КонецПроцедуры

_Задержка=2;//2 секунды

_ТочкаПослКлика=_GetPerformanceCounter();
   Матрейя
13 - 22.07.04 - 11:09
+12. После конецЕсли нужно вставить -_ТочкаПослКлика=_GetPerformanceCounter();
   Shadal
 
14 - 22.07.04 - 11:42
Кстате при простом нажатии на значок +  метод ПриОткрытииЗакрытииДерева() выполняется а метод ПриДвойномНажатииЛевойКнопки() нет. Так что не совсем они и идентичны :-)
   Shadal
 
15 - 02.08.04 - 11:06
Матрейя!!! А у меня ещё вопрос есть как контролировать момент проставления флага в дереве?
   Матрейя
16 - 02.08.04 - 12:01
15. При клике мышкой - считывать флаг. Далее МояТаблица.СтатусВозврата() или разрешить снять(установить) флаг.
   Shadal
 
17 - 02.08.04 - 12:26
http://www.vtools.ru/forum/viewtopic.php?t=252
Матрейя!
Лень перебивать вопросы, посмотри пожалуйста что я писал по ссылке.
   Матрейя
18 - 02.08.04 - 12:29
17. Сейчас занят, попозже отвечу.
   Shadal
 
19 - 02.08.04 - 12:31
Заранее спасибо...
   Матрейя
 
20 - 06.08.04 - 01:14
Процедура ПриНажатииЛевойКнопки()
Эл=МоеДерево.ТекущийЭлемент();
Фл=МоеДерево.ПолучитьФлаг(Эл);    
Фл=?(Фл=1,0,1);
МоеДерево.УстановитьФлаг(Эл,Фл);  
МоеДерево.СтатусВозврата(0);
КонецПроцедуры
Процедура ПриОтпусканииЛевойКнопки() - > в данном случае не нужна.
   Guk
 
21 - 06.08.04 - 01:18
(20) Правильно переменную назвал: МоеДерево. Но ты не обижайся. И я тоже дерево, и Волшебник дерево...
Наука доказала, все мы потомки деревьев.
А некий Осипов, даже запрограммировал эту теорию....
   Матрейя
 
22 - 06.08.04 - 01:37
Если нужно исключить проставление флагов при открытии-закрытии дерева, нужно так:
Перем Рез;

Процедура ПриНажатииЛевойКнопки()  
Если Рез<>1 Тогда    
Эл=МоеДерево.ТекущийЭлемент();
Фл=МоеДерево.ПолучитьФлаг(Эл);    
Фл=?(Фл=1,0,1);
МоеДерево.УстановитьФлаг(Эл,Фл); 
Иначе
   Рез="";
КонецЕсли;  
МоеДерево.СтатусВозврата(0);
КонецПроцедуры

Процедура ПриОткрытииЗакрытииДерева()
Рез=1;  
МоеДерево.СтатусВозврата(0);
КонецПроцедуры
   Матрейя
 
23 - 06.08.04 - 01:39
"Как менять местами ветки одного дерева и элементы дерева?" - не совсем понял вопрос. Объясни конкретнее, что нужно. Что-то вроде переноса в другую группу?
   Shadal
 
24 - 06.08.04 - 06:01
С этим я разобрался. Интересен другой вопрос, как в дереве найти элемент по тексту кроме перебора?
   Матрейя
 
25 - 09.08.04 - 00:49
24. Используй "теневую" копию дерева - список значений. Элементы дерева - значения СЗ (ТЗ). Затем так:
Поз=Сз.НайтиЗначение(НужныйЭлементДерева);
Если Поз<>0 Тогда
МоеДерево.Разворот(Сз.ПолучитьЗначение(Поз),1);
КонецЕсли;
   Матрейя
 
26 - 09.08.04 - 00:51
+25. А вообще, числовое значение элемента лучше записывать в представление СЗ, а сам элемент  - как значение, поскольку в Tree хранить ссылку на элемент агрегатного объекта невозможно.
   Shadal
 
27 - 09.08.04 - 05:50
Идея понятная спасибо!
   Матрейя
 
28 - 09.08.04 - 21:56
Кстати, есть неплохая идея использовать Grid в подготовке отчетов:
1.Grid можно сделать многоуровневым - то есть многоуровневый отчет, группировки которого можно свертывать и развертывать по щелчку мыши.
2.Grid печатается так как видится на экране. То есть загоняем в него данные, а затем пользователь сам выбирает интерактивно - в каких разрезах ему выводить все это на печать.
3. Если использовать совместно с Tree - тогда интерактивная манипуляция группировками еще более упрощается.
4. Подготавливать (заполнять данными) можно в потоке - то есть формирование данных для отчета будет происходить фоново.
5. Подготовленный Grid перед печатью можно штатно сортировать по любым колонкам. Интерактивно изменять ширину колонок, ширину строк, производить манипуляции с группой выделенных ячеек и т.п.



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