Прекращение поддержки работы VOGBIT на оборудовании x86 - В 2025 г. мы планируем прекратить поддержку работы VOGBIT в 32-битных (x86) операционных системах

Последние темы на форумах VOGBIT

Складской учет - Материалы, Комплектующие, Складской учёт
Kyben12345: Константин добрый день! Возможно ли с "обеспеченности по заказам" сформировать заявку на склад для выдачи, путем перетаскивания по ...
Разные пользователи - Прочее
Ivankotov: Анидеск скачать https://mloads.com/internet/1614-anydesk.html https://mloads.com/internet/1614-anydesk.html  — это приложение для удаленного доступа и управления устройствами. ...
Предварительные заявки - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: через "создать расход" все работало У меня, вроде, и сейчас работает. Что ЛЗК создавать, что предварительную заявку, не заметил ник ...
Новая документация "График производства" - Прочее
Константин Чилингаров: Движок форума не разрешает напрямую Excel файлы в сообщения вставлять. Ну ладно. Понятно, в общем, о чем речь. на будущее: если нужно Excel фа ...
Ошибка отчёта "Недостаточно памяти" - Отчёты
Константин Чилингаров: Тут ещё знаете, в чем может быть дело... Не в размере даже, а во внутренностях конкретного файла с картинкой. Ошибка может озвучиваться си ...
Дублирование приходных ордеров - Прочее
Константин Чилингаров: Здравствуйте, Очень странная картина... Не сталкивались никогда с таким. Копию базы данных можете дать нам посмотреть? Если есть техни ...
Распределение работ. Дискретность настройки - Прочее
Константин Чилингаров: Здравствуйте, В этом окне, насколько я помню, сохраняется только список "постов" выбранных. При закрытии/открытии окна. Порядок сл ...
«Шаблон техпроцесса» - Состав и технология
Sidneyanton: Спасибо, за подробное разъяснение!
VOGBIT Онлайн - Общие вопросы
Владимир Белов: написал: Добрый день! Такой вопрос. Могу я установить базу данных на съемный диск и пользоваться на разных компьютерах - переставляя то ...
Создание нового производственного задания - Производство
Константин Чилингаров: Здравствуйте, написал: еперь при создании заказа в окне "Производственные заказы" этот самый заказ "дублируется" в окне " ...
Вопрос на тему "Технология подробно" - Состав и технология
Zms.komissarov: Нужно открыть, какой-нибудь (из какого удобно печатать) вариант "подробного" графика производства, там выбрать соответствующую опе ...
Не отображается выпадающий список, а также неактивна кнопка "Импорт" - Ошибки в работе
Сергей: написал: Не отображается выпадающий список при нажатии на стрелочку Напишите на mailto:info@vogbit.ru info@vogbit.ru Попробуем починить
Вывод DXF или моделей в отдельную папку - Терминалы
Константин Чилингаров: Здравствуйте, Обычно, непосредственно с терминала выгружают управляющие программы какие-нибудь, к заданию, которое берется в работу. Н ...
График производства. Выполнение (по выделенным) - Производство
Zms.komissarov: Спасибки.
Комментарий к операции - Состав и технология
Zms.komissarov: Спасибо.
Пример создания плагина - Плагины
Bochik_88: С этим вопросом разобрался, спасибо)
Состав изделия - Состав и технология
Константин Чилингаров: К сожалению, проблема хронического отсутствия времени пока не позволила сделать. Лежит заготовка под второй ролик с лета. Пока отложена ...
График производства. Не отображает ТТП. - Производство
Константин Чилингаров: написал: Честно говоря, "средний" уровень как-то никогда не рассматривали для работы. Всё меняется... 10 лет назад там действитель ...
Множитель - Состав и технология
Константин Чилингаров: написал: Можно, пожалуйста, выложить скрины, как это реализовано Пожалуйста: Рис.1 - Параметры в справочнике. Которые я использовал, ка ...
Ошибка программы после обновления - Общие вопросы
Константин Чилингаров: Здравствуйте! Да, встречали такую ситуацию. Но, к сожалению, пока никак не можем научиться её стабильно повторять. Не можем пока найти к ...

Пример создания плагина

Разработка приложений и функций - Плагины - Технические вопросы
Страницы: 1 2 3 След.
Пример создания плагина
 
вот пример простого плагина, который добавляет кнопку в Toolbar окна номенклатуры.
При нажатии на кнопку создаётся и показывается форма "Коллекции компонентов".
Пример написан на C#
Код
using System;
using Csdn.Vogbit.Base;
using Csdn.Vogbit.Data;
using Csdn.Vogbit.Forms;
using Csdn.Vogbit.Main;
using System.Windows.Forms;

namespace VogbitPluginExample
{
    [Caption("PluginExample")]
    [ID("{EB7B1DCC-0DDE-4eaf-B500-2D669DE4557C}")]
    public class Example: PlugInBase
    {
        private const string CommandGuidString = "{67ED1590-AB70-46f7-94F9-58A462D333DB}";
        private const string CategoryGuidString = "{B18D68B3-33B2-45eb-BBCA-424B30E65B48}";

        protected override void Connect()
        {
            base.Connect();
            ExtForms.EventHandler += ExtFormsEventHandler;
        }

        void ExtFormsEventHandler(object sender, ExtensibleFormsEventArgs e)
        {
            if (e.EventType == ExtensibleFormsEventType.NewForm)
            {
                if (e.PlugInForm.GetType() == typeof(NomenclatureGridForm))
                {
                    var commandId = new Guid(CommandGuidString);
                    var categoryId = new Guid(CategoryGuidString);

                    var barManager = (IBarManager) e.PlugInForm;
                    var barCategory = barManager.BarCategories.Add(categoryId, "Пример");

                    var exampleButton = barManager.BarCommands.AddButtonCommand(commandId, barCategory, "Команда", false);
                    //exampleButton.IconGlyph = 
                    exampleButton.Caption = "Пример кнопки";
                    exampleButton.ActionExecute += ExampleButtonActionExecute;
                }
            }
        }

        void ExampleButtonActionExecute(object sender, ActionExecuteEventArgs e)
        {
            if (((IPlugInDataForm)ExtForms.ActiveForm).CurrentItem != null)
            {
                //long nmkId = ((NomenclatureItem) ((IPlugInDataForm) ExtForms.ActiveForm).CurrentItem).ID;
                long nmkId = ((IPlugInDataForm) ExtForms.ActiveForm).CurrentItem["ID"].AsLongInt;

                var formParams = new PlugInFormParams();
                formParams["OwnerID"].Value = nmkId;

                var collectionsForm = ExtForms.GetNewForm(typeof (OwnedComponentCollectionsForm).ToString());
                collectionsForm.TabText = "Пример формы";
                collectionsForm.OpenForm(formParams);
                collectionsForm.ShowFloatingForm(DockStyle.None);
            }

        }
    }
}
 
вот скомпилированная библиотека и скриншот.
 
Этот пример попробовал.
Хочется побольше примеров, таких как
- создания пользовательского окна встроенного в VIGBIT (например номенклатура + несколько параметров)
- пример пользовательского модального окна
 
Для того, что бы встроить окно в Vogbit надо наследовать свою форму от одной из вогбитовских.
Например, для "номенклатура + несколько параметров" можно занаследоваться от DataViewForm.
Потом пишем запрос и вываливаем данные в форму.
Вот простой пример формы и запроса:
Код
using Csdn.Vogbit.Base;
using Csdn.Vogbit.Forms;
using Csdn.Vogbit.QB;

namespace VogbitExample
{
    public partial class NmkAndParamsForm : DataViewForm
    {
        public NmkAndParamsForm(IExtensibleApplication app)
            : base(app)
        {

        }

        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);

            GetData();

            DataControl.Columns.Add(DataSource.PropertyDefs["Notation"], "Обозначение");
            DataControl.Columns.Add(DataSource.PropertyDefs["Name"], "Наименование"]);
            DataControl.Columns.Add(DataSource.PropertyDefs["p1Value"], "L");
            DataControl.Columns.Add(DataSource.PropertyDefs["p2Value"], "Nmax");
        }


        void GetData()
        {
            var sqlQuery = new SqlQuery();
            var selectQuery = sqlQuery.CreateQuery();
            var nmk = (Csdn.Vogbit.QB.Schema.Views.Nomenclature)selectQuery.From.AddView(Views.Nomenclature, "nmk");
            var p1 = (Csdn.Vogbit.QB.Schema.Views.ObjectParameters) selectQuery.From.AddView(Views.ObjectParameters, "p1");
            var p2 = (Csdn.Vogbit.QB.Schema.Views.ObjectParameters)selectQuery.From.AddView(Views.ObjectParameters, "p2");

            var j1 = new Join(nmk, p1, JoinType.Inner, new Condition().EqualTo(nmk.ID, p1.OwnerID).EqualTo(p1.ParameterNotation, "L")).
                InnerJoin(p2, new Condition().EqualTo(nmk.ID, p2.OwnerID).EqualTo(p2.ParameterNotation, "Nmax"));

            selectQuery.Joins.Add(j1);
            selectQuery.Columns.AddAllColumns(nmk);
            selectQuery.Columns.Add(p1.ParameterValue, "p1value");
            selectQuery.Columns.Add(p2.ParameterValue, "p2Value");

            sqlQuery.Add(selectQuery);

            var data = ExtensibleApplication.Application.ExecuteQuery(sqlQuery);

            data.Close();
            data.Prepare();
            DataSource = data;
        }
    }
}

показать эту форму:
Код
var f = ExtForms.GetNewForm(typeof(NmkAndParamsForm).ToString());
 f.ShowFloatingForm(DockStyle.None);
если хотите показать модальное окно:
Код
f.ShowDialog();
Если хотите встраиваемое окно, но со своими контролами - наследуйтесь от XtraForm.
Для создания диалогового окна можно наследоваться от EditDialog
Если хотите совсем своё окно - стандартным способом.
 
для демо-базы результат должен выглядить так:
2.png (21.64 КБ)
 
А можете показать реализацию аналогичных плагинов на VB.NET.
Спасибо.
 
А разве недостаточно примера для одного языка ? Тем более для языков .Net, где всё очень похоже ?
 
Convert C# to VB.NET
 
Возможно ли рассчитывать и добавлять норму расхода материала на деталь (кг),в констр.спец. по размерам детали(лист а х b;прокат L ), параметрам самого материала (уд,вес),применив коэффициенты расхода по типу детали (1,1;1,05 и др).Какой алгоритм,мож. пример,с чего начать... :D
 
Цитата
yser83 пишет:
Возможно ли рассчитывать и добавлять норму расхода материала на деталь (кг),в констр.спец. по размерам детали(лист а х b;прокат L ), параметрам самого материала (уд,вес),применив коэффициенты расхода по типу детали (1,1;1,05 и др)
Да, возможно.
Пишется плагин, который будет это делать и вперёд!
Обычное программирование. Ничего сложного. Пишется алгоритм на бумажке (в файле произвольного формата) что на что умножать и по каким правилам. И пишется потом плагин, который это делает и результат в нужное место записывает. Например, берёт параметры детали, параметры материала, определённым образом их обрабатывает по какому-то алгоритму и результат записывает в норму расхода. С точки зрения программирования, при наличии толкового ТЗ - задачка элементарная.
Писали мы такие калькуляторы для расчёта норм расхода в своей предыдущей программе (в TCS).

Цитата
yser83 пишет:
пример,с чего начать...
В смысле?
Вы хотите сами плагин свой написать?
Тогда начать со следующего:
1. Написать для VOGBIT свой плагин типа "Hello World"
2. Написать свой плагин, который берёт у выбранной номенклатуры параметр "A" и параметр "B", умножает их друг на друга и значение записывает в параметр "C".
 
Да ! интересно разобраться
писал на С# в VS под Win, а как тут разобраться, откуда "брать" параметр куда вставлять...
 
По поводу "откуда" и "куда".

Деталь - номенклатурная позиция

Характеристики детали (длина, ширина и т.п.) - параметры этой номенклатурной позиции.

Материал (в базе данных) - номенклатурная позиция

Характеристики материала (удельный вес и т.п.) - параметры номенклатуры материала

Техпроцесс - коллекция компонентов, связанная с номенклатурой детали. Тип связи LT_ManProcess.

Материал детали - компонент в коллекции (в техпроцессе). Тип связи LT_Material.

Характеристики заготовки (размеры и т.п.) - параметры этого компонента.

Это всё было по части "откуда".
"Куда":

Норма расхода материала - количество  единица измерения компонента "материал" в коллекции (в техпроцессе).
 
"брать" так:
1. получаете параметры нужного объекта(номенклатуры, компонента, коллекции...)
2. среди всех параметров находите нужный. Искать можно по любому полю. В примере поиск по UID'у. На больших объёмах лучше искать по ParameterID.
3. возвращаете значение найденного параметра(в примере параметр типа double)
Код
var objParams = ExtensibleApplication.Application.General.ObjectParameters(objId);
var searchResult = objParams.QuickSearch(new[] { "ParameterUID" }, new object[] {"ObjectParameterUid"});
if (sr.Length > 0)
{
   return ((ObjectParameter) searchResult[0]).ParameterValue.AsDouble;
}

Добавляем параметр так:
1. получаете параметры нужного объекта(номенклатуры, компонента, коллекции...)
2. создаёте новый параметр
3. изменяете необходимые значения
4. сохраняете
Код
var objParams = ExtensibleApplication.Application.General.ObjectParameters
var objParam = objectParameters.AddNew();
if(objParam != null)
try
{
   objParam.ParameterID.Value = parameterId;
        objParam.ParameterValue.Value = parameterValue;
        objParam.Save();
}
finally
{
   objParam.Cancel();
}
 
Спасибо, попробую разобраться...
Изменено: yser83 - 22.01.2014 15:41:49
 
возможна отладка плагина в Visual Studio ?
vogbit против "Это приложение не может быть запущено под отладчиком. Деактивируйте все активные отладчики и запустите приложение снова"
 
Цитата
yser83 пишет:
возможна отладка плагина в Visual Studio ?
нет
 
как плагины делать? тока коммерчески...
 
Да, если брать коммерческую версию, то там стоит защита. И не даёт запускать под отладчиком. Вариант последней версии программы, который может работать под отладчиком, доступен только разработчикам.

Но есть предложение:
Если хотите, можем найти какую-нибудь прошлогоднюю версию программы в виде голой платформы (без плагинов) и без защиты от запуска под отладчиком. И бесплатно вам лично её дать.
Базу можем любую к ней на выбор дать, хоть "демо", хоть "стартовую". Нам всё равно.
Для вашей задачи подойдёт полностью. С точки зрения считывания/записывания параметров разницы между старой и новой версией нет никакой. Можно на старой версии тренироваться, отлаживать и т.п.
Если потом захотите то, что получится, использовать в последней версии, то просто пересобрать надо будет под новую. Отладчик для этого не нужен, как я понимаю.
 
Это очень интересное предложение...работать будут два приложения на одном компьютере?
 
Найдём какую-нибудь такую версию, которая будет ;)

Надо будет только не ставить её через setup обычный, скорее всего, а просто переписать файлы в нужное место. И запускать оттуда ярлыком, а не через меню "Пуск".
Ну это мы напишем вам кратенькую инструкцию, что куда положить.
 
Спасибо.
 
В общем, если надумаете, пишите на почту.
В течение недели после этого, что-нибудь вам подберём и вышлем с инструкцией.
 
Здравствуйте, Константин. Пробую подключить  скомпиллированный (код- пример кнопки с форума) ,  dll-ка получается 6 кб, в Вогбите не видет в настройке панели (пример-пример кнопки), думаю настройки VS 2013 надо, как то  особенно поставить, подскажите в чем может быть проблемма.
 
Код меняли?
Для разработки используем студию 2012, но вряд ли дело в настройках студии.
Фреймворк 4.5 попробуйте в настройках поставить.
Скиньте файл получившийся
 
Менял guid, текст "моя кнопка", собирать пробовал на разных версиях фрейма...
 
У меня ваша кнопка появилась.
По умолчанию она скрыта.
Можно через код достать так:
Код
barManager.MainToolBar.AddCommand(CommandGuidString, Guid.Empty, false);

или руками: показать панель инструментов-> добавить или удалить кнопки -> Настройка -> Команды -> Мой пример -> Мой пример кнопки и тащите на панель. В след. раз она там будет (и в ленте тоже)
 
У меня в командах(категории:  ) нет"Мой пример", а при использовании оригинального файла пример кнопки VogbitPluginExample, пример -> пример кнопки работает...
Изменено: yser83 - 14.02.2014 16:29:06
 
Вероятно, в директории вогбита оба файла лежат. С одинаковым ID плагина. "Форумный" подцепился раньше. Удалите "форумный", оставьте свой.
 
Удален,в списке файлов программы был,а в директории программы "форумный" остался, удалил, все заработало !!! Спасибо!!!
 
Потихоньку разбираюсь...Создана кнопка в панели окна номенклатура, находит параметры выбранной детали. Подскажите,пожалуйста, где найти параметр материала, данной детали,и возникла проблемка с "Quantity"(кол.материала),как (из номенклатуры) вернуть в компоненты детали, вроде все корректно изложил...
Изменено: yser83 - 19.02.2014 04:10:52
Страницы: 1 2 3 След.
Сейчас на форуме
Всего зарегистрированных пользователей: 4133
Приняло участие в обсуждении: 428
Всего тем: 804
Всего сообщений: 6067

×
Вход на сайт