Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) КОП-обертка "ComboBox" (число прочтений - 6127 )
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
КОП-обертка "ComboBox"
09. Марта 2011 :: 14:35
Печать  
Рабочий КОП-обертка для ЭУ формы «ComboBox» (как есть).
Замечена разная обработка событий ComboBox для форм «Обработка» и «Элемент справочника».

Для заполнения массива данных комбобокса («List») необходимо изменить процедуру «_ОбновитьДанныеКБокс()» под свои источники данных.
Обязательным является наличие процедуры «ОбработатьВыборПользователя()», там где расположен ЭУ ComboBox, для обработки выбора пользователя из массива («List»).

Обязательно наличие: 1cpp.dll и FormEx.dll (у меня: v3.2.20 и v2.0.5.101, соответственно)

Для использования на компьютерах, где отсутствует MS Office необходимо:
1) Windows XP:
   - скопировать в любое место и зарегистрировать fm20.dll
2) Windows 7:
   а) скопировать в любое место fm20.dll и fm20enu.dll;
   б) зарегистрировать только fm20.dll.
3) или - проинсталлировать «Microsoft ActiveX Control Pad» (2,7 Mb):
   depositfiles.com
   upload.com.ua

Вся дополнительная информация максимально подробно описана в комментариях реализации КОП.
« Последняя редакция: 10. Марта 2011 :: 18:17 - simply »  

ComboBox_test_001.rar ( 448 KB | Загрузки )
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #1 - 09. Марта 2011 :: 15:25
Печать  
Было бы здорово, если бы запускалось на любой базе..
А то много править, что бы просто посмотреть..
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #2 - 09. Марта 2011 :: 16:05
Печать  
CaBaT писал(а) 09. Марта 2011 :: 15:25:
Было бы здорово, если бы запускалось на любой базе..
А то много править, что бы просто посмотреть..

Согласен.
Сегодня не успею, постараюсь завтра.
  
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #3 - 09. Марта 2011 :: 16:13
Печать  
Вот это дело!  Улыбка
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #4 - 10. Марта 2011 :: 15:47
Печать  
Сделал тест - как для любой базы (см. в первом посту). Вроде получилось Улыбка
Лишь бы 1cpp.dll и FormEx.dll были подгружены.
Или тестовую базу выложить?

Задача была: по мере ввода пользователем, отображать отфильтрованный список возможных значений для выбора.
  
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #5 - 10. Марта 2011 :: 16:01
Печать  
Что такое "глКомпаниСКЛ"?
Без него не работает..
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #6 - 10. Марта 2011 :: 18:15
Печать  
Приношу свои извинения.
То, что отладил, в архив не положил  Ужас

Исправился.
  
Наверх
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #7 - 11. Марта 2011 :: 06:39
Печать  
Здорово, спасибо!
Давно хотел сделать такую штуку!
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #8 - 11. Марта 2011 :: 07:20
Печать  
Запустил у себя. Словил странные проблемы:
При открытии комбобокс виден и реагирует на мышь, но стоит кликнуть мимо или выбрать запись - бокса более нет.
Так и должно быть?
  

Video.rar ( 489 KB | Загрузки )
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #9 - 11. Марта 2011 :: 08:07
Печать  
Dmitry The Wing писал(а) 11. Марта 2011 :: 07:20:
Запустил у себя. Словил странные проблемы:
При открытии комбобокс виден и реагирует на мышь, но стоит кликнуть мимо или выбрать запись - бокса более нет.
Так и должно быть?

Чтобы комбобокс появился опять нужно начать любое изменение символов в поле.

ИМХО, это логически правильно. Зачем показывать список, когда пользователь свой выбор уже сделал или еще не начал ввод / правку?!

Необходимость в комбобоксе возникла из-за задачи облегчить пользователю выбор из списка с фильтрацией по мере ввода символов. Стандартные одноэсные поля такого не позволяют.
В магазинах замучили ошибками при добавлении новых сотрудников.
Уже вижу пользу от него и в других местах, где нужен выбор пользователя без ошибок ...

Кнопка выбора была отключена умышено.
Ее можно включить - установить параметр "ShowDropButtonWhen" = 1. Но тогда будут срабатывать уже другие события. И 1С очень специфично их обрабатывает по сравнению с VBScript. Я не стал замарачиваться, т.к. мне и этого - с головой.
К тому же в 1С есть свой элемент формы: "Поле со списком".

P.S.: за видео - спасибо!
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #10 - 11. Марта 2011 :: 08:08
Печать  
CaBaT писал(а) 11. Марта 2011 :: 06:39:
Здорово, спасибо!
Давно хотел сделать такую штуку!

Спасибо!
Приятно, когда есть польза Улыбка
  
Наверх
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #11 - 11. Марта 2011 :: 08:29
Печать  
simply писал(а) 11. Марта 2011 :: 08:07:
Dmitry The Wing писал(а) 11. Марта 2011 :: 07:20:
Запустил у себя. Словил странные проблемы:
При открытии комбобокс виден и реагирует на мышь, но стоит кликнуть мимо или выбрать запись - бокса более нет.
Так и должно быть?

Чтобы комбобокс появился опять нужно начать любое изменение символов в поле.

ИМХО, это логически правильно.

Может и правильно, но список больше не появлялся, хотя выбор стрелками вверх/вниз производился.
Может, оно с чем-то конфликтует?
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #12 - 11. Марта 2011 :: 08:44
Печать  
Нет, такого быть не должно.
Еще раз проверил на нескольких ПК - ошибку воссоздать не смог.

Получается, что как бы не отрабатывает метод КБокс.DropDown() ...

Какой офис установлен?
Есть возможность проверить на другом ПК?
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #13 - 11. Марта 2011 :: 09:02
Печать  
Вспомнил!
У меня подобное поведение наблюдалось на ПК без Офиса. Я тогда еще игрался с dll-ками, пока не попробовал fm20.dll из пакета «Microsoft ActiveX Control Pad».
Она есть в архиве.
  
Наверх
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: КОП-обертка "ComboBox"
Ответ #14 - 11. Марта 2011 :: 09:27
Печать  
Офис тут есть. 2003. На самом деле, я не вижу особого применения данному объекту ... пока не вижу ... просто попробовал и сообщил о результатах.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать