Обновление №7 для VOGBIT v.1.1.37841 - В производственном модуле внесен ряд изменений, направленных на упрощение работы с программой на «максимальном» уровне. В том числе: изменён порядок вывода на экран информации о количестве (запланированных/сданных деталей) – стало более наглядно и удобно

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

Движение материалов - Прочее
Константин Чилингаров: Здравствуйте, 18377 Saw-x написал: Я так понимаю что я не один в своих хотелках. Если брать точно такую постановку вопроса, то один. Хотелок много, но у всех разные. 18377 Saw-x написал: Потребность не только у меня, что бы программа все сама ...
Заявка покупателя - Прочее
Константин Чилингаров: Последнее сообщение /forum/messages/forum27/topic2401/message14962/2401#message14962 перенесено . /forum/messages/forum27/topic2401/message14962/2401-dvizhenie-materialov#message14962 Причина: несоответствие заявленной в заголовке теме (/forum/foru ...
невозможность редактирования - Состав и технология
Константин Чилингаров: Здравствуйте, Ну отредактировать то просто... Открываешь окно "Состав" (карту заказа) и редактируешь. Другое дело, что если задания уже сформированы, то в этих уже созданных заданиях то автоматом ничего не поменяется. Какое было количество ...
Формирование обозначений в генераторе - Состав и технология
Константин Чилингаров: Здравствуйте, Нужно к номенклатуре - шаблону добавить параметр "Шаблон обозначения" (идентификатор VGB_Notation_Mask). Это строковый параметр. В значение ему пишем строку-шаблон обозначения. В нужные места подставляем в квадратных скобк ...
Занесение на склад Вогбита - Плагины
Сергей: 18506 Bagrov40k написал: как вообще подключить модуль Csdn.Vogbit.Data корректно Подключить где\куда? Если речь про .net и студию, то Project -> Add Reference... Вообще, как обычную библиотеку. 
Возврат в окно - Интерфейс программы
Константин Чилингаров: Спасибо, Мы тоже уже выявили этот недостаток. Будем работать над устранением.
Vogbit & 1C - Экспорт импорт данных
Константин Чилингаров: Здравствуйте, Технически можно, в принципе, всё что угодно реализовать. Ну или почти всё. Путём написания соответствующих плагинов или служб, которые будут это делать. Считывать данные из указанного места, записывать туда, куда у них в коде написа ...
Отслеживание результатов выполнения работ на участках - Производство
Константин Чилингаров: Здравствуйте, 18511 Rudakov77 написал: Есть ли возможность формирования Оперативного плана производства для наглядного отслеживания выполнения Заданий на смену производственными участками? Да есть. В разных вариантах. Просто внешне в другом неско ...
Проблема со справочником "Номенклатура" - Общие вопросы
Елена Ковалева: Так же, я заметила, что в меню отсутствует кнопка "Выбрать категорию". По умолчанию используется категория "Основная", но это не обязательно. Для выбора категорий нужно "достать" кнопку. 1. На синем поле вызвать контекс ...
SolidWorks и Vogbit - Экспорт импорт данных
Константин Чилингаров: Здравствуйте, Штатной кнопки "импорт" нет встроенной. Поставляется дополнительно, как услуга. Плагин + настройка его, если нужно + консультации. От 15 т.р. и выше в зависимости от сложности. Потому что те же xml - они же все разные по соде ...
Обновление апрель 2019 - Обновление
Mariska17-17: Спасибо. Помогло!
Отсутствует операция в графике производства - Производство
Zms.komissarov: Спасибо!
Предупреждение о несовпадении единиц измерения - Интерфейс программы
Alex-220781: 13 Константин Чилингаров написал: Одной кнопкой. Меню "Настройка" -> "Изменить цену/ЕИ" (нужно стоять в этот момент на "учётной карточке", в которой неправильная ЕИ). Не знал. В инструкции более сложный способ опис ...
Спецификации - Состав и технология
Константин Чилингаров: Здравствуйте, Пишите это "R1", "R12" и т.п. в "Номер" или в "Комментарий". "Обозначение" и "Наименование" характеризует данный резистор в целом, независимо от места его применения. В то вре ...
Ошибки ВОГБИТ - Общие вопросы
Константин Чилингаров: Похоже на то, что как-то повредился файл, в который сохраняются локальные настройки окна (какие колонки показывать, ширина их и т.п.). Нужно его удалить. Настройка колонок сбросится, ошибки не будет. Колонки можно заново настроить, это не сложно. Ес ...
Чистка базы - Прочее
Константин Чилингаров: 15792 Валерий Бондаренко написал: 18.06.2019 выслали копию базы, ждем Ваших рекомендаций. Написал на почту.
Запоминание состояния окон - Интерфейс программы
Константин Чилингаров: Ок. По этим двум конкретным местам посмотрим.
Удаление поста в технологии - Интерфейс программы
Константин Чилингаров: Здравствуйте, Записал в список пожеланий.
Данные спецификации - Прочее
Константин Чилингаров: Судя по всему, от региональных настроек на конкретном компьютере зависит. Попробовали, у нас запятая везде по умолчанию получается в этом месте. И в окошке редактора в программе и при сохранении. На одном из компьютеров у меня почему-то Excel при сох ...
Сбой в режиме загрузка производства - Прочее
Константин Чилингаров: 3938 Алексей Пономарев написал: А где найти этот справочник? Рабочая - Задания. Тип связи в нём = "Состав смены". Это технически и есть "смена". Тот самый "серый квадратик" :) Обозначение складывается из даты, номера ...

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

Разработка приложений и функций - Плагины - Технические вопросы
Страницы: 1 2 След.
Пример создания плагина
 
вот пример простого плагина, который добавляет кнопку в 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 След.
Сейчас на форуме (гостей: 12)
Всего зарегистрированных пользователей: 2692
Приняло участие в обсуждении: 323
Всего тем: 804
Всего сообщений: 6066

×
Вход на сайт