RUS  ENG 

Дмитрий Озеров (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 9 10 11 12 13 14 15 16 17 18 19 ... 40 След.
Как сделать плагин. Руководство.
 
Какие координаты, каким образом полученные, "откуда" и "куда" необходимо пересчитать ?
Как сделать плагин. Руководство.
 
В коде метода ConnectZuluPlugin у Вас ошибка. Обычно "Subscript out of range" возникает когда индекс выходит за границы массива.
Ссылка на "Database Connection Library" потребуется, когда нужно будет работать с табличными данными и базами данных. Я ее указал, чтобы Вам потом не искать.
Как сделать плагин. Руководство.
 
Проверьте, что в References у проекта добавлены Zulu 7.0 Application, Zulu 7.0 Library и Zulu 7.0 Database Connection Library.
Как сделать плагин. Руководство.
 
<B>Ekolog</B>, данный форум посвящен программированию для Zulu. Обсуждаемые Вами вопросы к Zulu совершенно не относятся. Мы не обучаем программированию на Visual Basic, это выходит за рамки нашей компетенции. Для этого есть форумы по Visual Basic. Надеемся на Ваше понимание.
Zulu и PostgreSQL
 
Добрый день! В плане стоит, но пока не реализовали еще.
Как сделать плагин. Руководство.
 
Строкой кода Dim PluginForm As UserControl Вы объявляете переменную типа UserControl (физически это ссылка на UserControl) и она пуста.
Соответственно, чтобы ей (переменной) пользоваться нужно ее заполнить оператором Set (Set PluginForm = что-то). Хотя по тому, что Вам хотелось бы добиться, скорее всего это был ложный путь. Этой переменной Вам не нужно.
Как сделать плагин. Руководство.
 
<blockquote>Цитата:<hr size="1" noshade><i>Просто в моём случае PluginForm - это название формы. Ведь мы же не инициализируем название формы в "обычном" проекте VB! Неувязочка!
А как его надо инициализировать?</i><hr size="1" noshade></blockquote>Имя (Name) формы (Form) как и имя UserControl'а прекрасно задается в проекте. Никаких "неувязок".

<blockquote>Цитата:<hr size="1" noshade><i>И ещё подскажите, пожалуйста, как добавить чекбокс в коллекцию?
Добавить текстовое значение выходит, а по аналогии добавить чекбокс в коллекцию UserControl не выходит.
Set NextCheckbox = UserControl.Controls.Add("VB.checkbox", CheckboxName)
Опять же, в обычном проекте VB данная строчка работает.</i><hr size="1" noshade></blockquote>Мы, к сожалению, не знаем как программно добавлять чекбоксы в UserControl. Об этом я Вам уже писал несколькими постами ранее (9.12.2014). Наша компетенция в Visual Basic ограничена. Вам лучше поискать решения в Сети, либо в документации (MSDN), либо в сообществах, например codeguru.com, codeproject.com, expert-exchange.com (последний - платный).
Также еще раз обращаю Ваше внимание на то, что если код Visual Basic будет запускаться из Zulu, он от это не становится "необычным". Поэтому фраза "в обычный проекте это работает" лишена смысла. У Вас просто проекты разных типов. В одном случае используется объект Form (возможно, т.к. я лишь гадаю, что Вы вкладываете в понятие "обычный"), во втором - UserControl. И возможно динамическое создание Control'ов там и там отличается.
Как сделать плагин. Руководство.
 
<B>Ekolog</B>, перечисленные Вами ошибки относятся к коду Visual Basic и сообщает о них сам Visual Basic, к Zulu они никакого отношения не имеют.
Например Вы объявляете переменную Dim PluginForm As UserControl и дальше используете ее в цикле. Не инициализируя никак. Как так ?! Вот Вам Basic nи говорит "Object variable or With block variable not set".
Далее, "В обычном проекте это работает, а в коде плагина Зулу - нет" - это вообще какая-то ерунда. Один и тот же код должен одинаково компилироваться. Просто в "обычном" проекте, Вы, наверное, свойство Controls используете у объекта Form, а в плагине у объекта UserControl, что разумеется не одно и то же.
Ошибочно думать, что Вы пишете код "для Зулу" и поэтому он не компилируется или не выполняется. Не бывает кода "для Зулу". Просто Вы пишете неправильной код Visual Basic и он Вам об этом сообщает.
Как сделать плагин. Руководство.
 
<blockquote>Цитата:<hr size="1" noshade><i>почему-то не работают функции вида
Set newCheckbox = Controls.Add("VB.checkbox", ControlName, Form1)
ошибка "Type mismatch"
Возможно ли программно вставлять чекбоксы по количеству слоёв в карте?</i><hr size="1" noshade></blockquote>Мы не знаем как программно добавлять чекбоксы в форму Visual Basic. Здесь Вам лучше поискать примеры или статьи по Visual Basic по поводу программирования содержимого форм.
Как сделать плагин. Руководство.
 
<blockquote>Цитата:<hr size="1" noshade><i>Теперь другой вопрос: при попытке запустить ещё одну форму функцией Form_2.Show Зулу выдаёт сообщение "ошибка 406. Non-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control , or Property Page"
Возможно каким-либо образом открыть ещё одну форму из плагина? Или нужно обходиться только одной формой?</i><hr size="1" noshade></blockquote>Здесь Вам Visual Basic сообщает, что он не может создать немодальную форму в этом приложении (т.е. не написанном на Visual Basic). Соответственно форму нужно отображать модально (укажите параметр Modal при вызове Show).
Как сделать плагин. Руководство.
 
<blockquote>Цитата:<hr size="1" noshade><i>Разобрался. В выражении Set aDoc = Zulu.ActiveDocument пропущен объект Connector, т.е. должно быть вот так:
Set aDoc = Connector.Zulu.ActiveDocument
Видимо, Вы это мне и сказали, но я почему-то никак не могу связать вашу фразу с этим смыслом :(
</i><hr size="1" noshade></blockquote>Я имел в виду то, что в приведенном фрагменте кода объект Zulu никак не определен. Выглядело как переменная Zulu.
Как сделать плагин. Руководство.
 
Добрый день! Возможно объект Zulu у Вас нигде не описан и не получен от Connector.
Связь нескольких таблиц в запросе
 
el76iz, коллизия в том, что сейчас заполнение подчиненной таблицы никак не связано с базовой таблицей, а случае с двойным использованием Sys, ключ в новой записи подчиненной таблицы должен браться из базовой таблицы. При обновлении записи новый ключ не генерируется, и в этом случае кажется, что все работает.
Связь нескольких таблиц в запросе
 
el76iz, сейчас проблема вот в чем. Подчиненную таблицу можно заполнять как справочник, без связи с базовой таблицей. Однако, если значение поля связи нужно сохранить (как Sys для поля связи с картой), то возникает коллизия. План доработки в этом направлении у нас заключается в возможности заполнения подчиненной таблицы, имея заготовленное значение поля связи, полученной из записи в базовой таблице.
Связь нескольких таблиц в запросе
 
Добрый день! Сейчас, к сожалению, редактирование подчиненной таблицы при условии совпадения поля связи с ней в базовой таблице с полем связи с картой, не реализовано. В плане доработок это стоит.
Как сделать плагин. Руководство.
 
<B>Ekolog</B>, добрый день!
SetEventSink подключает объект-приемник событий от Zulu. В примере таким объектом является сама форма. При возникновении события вызывается метод OnZuluEvent объекта-приемника. Код события содержится в параметре EventID (см. набор констант <A HREF="http://politerm.com/zuludoc/zuluax/eZuluEvents_enum.htm" TARGET="_blank">politerm.com/zuludoc/zuluax/eZuluEvents_enum.htm</A>)
Как сделать плагин. Руководство.
 
В таком случае, отталкиваясь от выбора второго варианта, можно создать плагин, который позволит внедрить в Zulu какую-либо внешнюю форму. В нашем случае форма будет реализована в виде элемента Activex (ActiveX Control).
1. В Visual Basic Вам нужно создать новый проект. Тип проекта - ActiveX Control
2. Сделайте первоначальный дизайн формы (UserControl), скомпилируйте проект, зарегистрируйте (можно с помощью утилиты regsvr32.exe) и протестируйте, что форма благополучно внедряется в какие-либо контейнеры. Когда во всем убедились форма готова внедряться в Zulu.
3. Чтобы Zulu узнала, что есть такой модуль, и что этот модуль - плагин и что его можно в себя подключить нужны две вещи: первое - модуль должен разместить информацию о себе в Реестре и второе - модуль должен иметь определенные точки входа, чтобы Zulu могла с ним взаимодействовать.
4. Поэтому, нужно создать раздел в Реестре, как это сказано в <A HREF="http://politerm.com/zuludoc/plugin_about.htm#_plugin_register" TARGET="_blank">politerm.com/zuludoc/plugin_about.htm#_plugin_register</A>, задать, что с плагином Zulu должна связываться через COM, для этого указать ProgID созданного UserControl'а. В нашем случае Zulu сама разберется, что это не просто COM-объект, а ActiveX Control, и при загрузке плагина создаст плавающую панель с внедренным туда Вашим UserControl. Это нам и нужно.
5. В сам UserControl добавьте пару методов - ConnectZuluPlugin и DisconnectZuluPlugin (см. <A HREF="http://politerm.com/zuludoc/plugin_connect.htm" TARGET="_blank">politerm.com/zuludoc/plugin_connect.htm</A>). Плагин почти готов работать.
6. Чтобы пользователь мог вызвать появление Вашей формы нужна команда. Пользователь должен выбрать пункт меню или кнопку панели инструментов. Поэтому в разделе Реестра, посвященного Вашему плагину добавим подраздел Commands и добавим команду ShowForm. Задайте читабельное название команды (оно появится в пользовательском интерфейсе системы), описание как описано в <A HREF="http://politerm.com/zuludoc/plugin_commands.htm" TARGET="_blank">politerm.com/zuludoc/plugin_commands.htm</A>.
7. Так как команда нужна по сути только для вызова формы, можно не добавлять дополнительного метода в UserControl, а задать поведение формы с помощью раздела ControlBar (см. <A HREF="http://politerm.com/zuludoc/plugin_controlbar.htm" TARGET="_blank">politerm.com/zuludoc/plugin_controlbar.htm</A>) и задать параметр ShowHideCommand, указывая нашу команду, добавленную на предыдущем шаге.
8. Теперь можно протестировать в Zulu. Для этого в Zulu выберите команду Сервис - Выполнить и выберите  Вашу команду из п.6.

Описанные шаги я оформил в виде проекта Visual Basic 6.0 по адресу: <A HREF="http://www.politerm.com/download/zulu/samples/plugins/vb/SimpleFormPlugin.rar" TARGET="_blank">www.politerm.com/download/zulu/samples/plugins/vb/SimpleFormPlugin.rar</A>
Как сделать плагин. Руководство.
 
1. В Вашем случае имеет смысл остановиться на 2-м варианте. Уточните c какой версии Visual Studio Вы работаете ?
2. Можно в режиме выделения узлов выделить точку разреза на полилинии и вставить узел (см. <A HREF="http://politerm.com/zuludoc/edit_elem_insert_node.htm" TARGET="_blank">politerm.com/zuludoc/edit_elem_insert_node.htm</A>)
Как сделать плагин. Руководство.
 
<B>Ekolog</B>, в зависимости от решаемой задачи, плагин:
1. Должен выполнять какой-либо линейный код, получая данные от системы и выдавая результат пользователю. Тогда плагин лучше выполнить в виде библиотеки ActiveX, предоставляющей для этого COM-объект (OLE Automation Object). Это простой вариант.
2. Должен предоставить пользователю некоторую форму, встроенную в систему Zulu, с которой пользователь будет взаимодействовать. Форма является основной частью функционирования плагина. Тогда плагин можно оформить в виде библиотеки элементов ActiveX, и форма плагина должна быть выполнена в виде элемента ActiveX (OLE Control).
3. Осуществляет развитое взаимодействие с системой и пользователем, предоставляет группы команд меню и панелей инструментов, внедряет рабочие окна в систему (наподобие окон Сообщения, Рабочее место и т.п.). В данном случае плагин реализуется (в нашем случае, используя Visual Basic) в виде библиотеки ActiveX (как в первом случае), однако размещение плавающих/докируемых окон, форм и т.п. программируется вручную.
SQL-запросы
 
BVG, Вы указали в разделе FROM несколько источников ("Водопровод", "Территориальное деление..."). Вы должны явно указать из какого источника брать атрибут (т.е. v.typeid, v.[Текущий расход воды, л/с]).
SQL-запросы
 
BVG, именно! COUNT(выражение) считает количество значений этого выражения! Т.е. игнорируя пустые варианты.
Не обновляет число записей базы данных,
 
BYg, добрый день! Наша тех.поддержка к сожалению не круглосуточная. Вы отправили Ваше письмо сегодня в 4:37 по московскому времени и мы, к стыду своему, в этот момент спали. Но к делу: ошибка "недопустимо использование скобок с именем" возникает при работе с базой данных Microsoft Access из-за того, что ядро Access неправильно обрабатывает пути к базе данных, содержащих точки и спец. символы. Мы пока не нашли способ обойти эту проблему, поэтому рекомендуем размещать базу Access в папке, не содержащей в своем пути точку и т.п.
SQL-запросы
 
BVG, добрый день! Функция COUNT(поле) считает кол-во записей, где данное поле ненулевое. В разделе WHERE указаны дополнительные условия, накладываемые на выборку записей. В Вашем случае замените функцию на COUNT(*), чтобы подсчитывать количество всех записей, удовлетворяющих условию WHERE.
Не обновляет число записей базы данных,
 
BYg, Добрый день! Подробности проблемы, каким способом обновляются данных, скриншот, Вы можете прислать на [email protected] (Дмитрий Озеров), я разберусь и сообщу. Пока недостаточно информации, чтобы что-то прокомментировать.
SQL-запросы
 
BVG, у нас обнаружилась ошибка при обработке SQL запросов. Однако, пока мы исправляем, ее можно обойти.
Итак, если нужно условие по полю "Тип здания" (подключен справочник) и искать значение "Ж" (допустим код 2), то в SQL запросе сейчас можно обойти так:
WHERE BYREF [Тип здания] = 2.
Если в таблице поле, соответствующее типу здания - числовое, то 2 нужно указывать как есть, а если поле таблицы строковое - то в двойных кавычках.
Страницы: Пред. 1 ... 9 10 11 12 13 14 15 16 17 18 19 ... 40 След.