Обновление №8 для версии VOGBIT 1.1.37841 - Новые «Терминалы», новый модуль для «Совместной обработки» в производстве, переработанный режим «Обеспеченность»

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

Ширина окна оформления прихода после обновления - Интерфейс программы
Константин Чилингаров: Здравствуйте, Да. Есть недоработка. Починим в будущем.
Запрос на статистику производства - Экспорт импорт данных
Константин Чилингаров: По поводу "выдал / принял": Смысловая нагрузка: Изначально это "выдал / принял" задумывалось для того, чтобы зафиксировать, кто из мастеров выдал в работу задание рабочему и кто из мастеров принял это задание. Чтобы потом соб ...
Не найден параметр: UID = VGB_Color - Обновление
Константин Чилингаров: Да. Всё верно. После обновления нужно один раз зайти с любого рабочего места под администратором и нажать "Проверка настроек".
Терминал. Распределение заданий на разные участки. - Терминалы
Константин Чилингаров: Здравствуйте, Не проверял. Вполне вероятно. Терминалы изначально рассчитывались под более стандартные ситуации. Чтобы одно задание, но поделенное на несколько постов и при этом эти посты ещё и на разных участках - такое не предусматривалось точно. М ...
Прошу помощи в установке - Установка
Константин Чилингаров: Установка приложения на второй компьютер: /support/379/#__4076 Ссылка Тут, в общем, всё элементарно. Запускаем sutup, ставим одну галочку - "клиентское приложение". И, собственно, всё. Программа ставится и запускается. Основные сложности ...
Генератор - Состав и технология
Константин Чилингаров: If'ы то есть... В ассортименте  :)  Это в самом визуальном редакторе некоторые ограничения стоят сейчас. Нужно посмотреть и потестировать, не выйдет ли где-нибудь боком, если их убрать... Мы посмотрим. Главное, сам "Генератор" сейчас н ...
Отчёты - Отчёты
Константин Чилингаров: Если просто список изделий с некоей "ценой" (рассчитанной заранее модулем "себестоимость" и сохранённой в базе для соответствующих изделий), то это можно и из "Номенклатуры" сделать. Несложно. Но шаблона готового нет, на ...
Показывать просмотрщик в таблице - Прочее
Константин Чилингаров: Здравствуйте, Не в ближайшем обновлении. Его уже "завернули", осталось только на сайт выложить. Указанный эффект обнаружили. Он действительно есть. Причём, похоже, очень давно (если не всегда вообще был). Видимо, никто этим не пользовался ...
Печать графика производства - Производство
Андрей Шураков: Спасибо! Поигрался с диаграммой, остался удовлетворен. На данном этапе, внедрения программы в производство, можно сформировать и посмотреть нужную информацию. С шаблоном отчета будет куда проще и информативнее, но пока точно не скажу что хотелось бы ...
добавление и удаление деталей в заказ - Состав и технология
Константин Чилингаров: Хорошо. Давайте посмотрим. Напишите, пожалуйста, на почту. Договоримся.
Группа планирования - Состав и технология
Данила Кузнецов: Спасибо получилось.
Колонка комментарий - Интерфейс программы
Alex-220781: Ну я думаю пользователь сам определит, какие комментарии ему нужны. Я, например, комментарии и графика использую когда большой объем однотипных изделий (идет разделение на партии), и нужно отметить какие из них нужно делать - поэтому этот комментарий ...
Настройка отображаемого периода при распределении работ. - Интерфейс программы
Константин Чилингаров: Записали пожелания в список. Как дойдёт очередь, посмотрим, что можно в этом месте подкрутить.
Одновременное открытие нескольких окон графика. - Интерфейс программы
Константин Чилингаров: Здравствуйте, 3520 Alex-220781 написал: если нужно таким же образом открыть график по другой позиции - программа не дает открыть, не закрыв предыдущее Специально так делали. Т.к. много сложных действий возможно дальше с окном "график производ ...
Отчеты - Отчёты
Константин Чилингаров: Здравствуйте, Не уверен, что с наскоку получится поменять самостоятельно, если опыта работы с репортером нет.  Тут в двух словах не объяснить, где что поменять. Бланк нужно переделывать. Вот /support/377/ руководство . Если есть время и желание, то ...
Конфигурационные параметры - Состав и технология
Константин Чилингаров: Здравствуйте! Не рекомендую использовать "Конфигуратор" (настоятельно). Морально устаревший модуль. И главное, сама концепция устарела. Того, что он делает. Оставлен в современной версии программы только потому, что очень многие "Конф ...
Порядок заданий - Производство
Константин Чилингаров: Подождите... Какой "генератор"? Тут, вроде, тема про последовательность заданий... Напоминаю ещё раз. /forum/forum24/topic928/ См. вот тут , п.2. Если интересуют какие-то моменты про "Генератор", то пожалуйста, создайте отдельны ...
Проблема со справочником "Номенклатура" - Общие вопросы
Константин Чилингаров: Здравствуйте, 18371 Mariska17-17 написал: во вкладке Подразделения: производственные участки, оборудование, посты и т.д. выводятся общим списком Нужно выбрать "Категорию". См. /support/622/#_v7660 здесь , рис.8,9,10.
Шаблон отчёта при многосменной работе - Производство
Константин Чилингаров: Здравствуйте, Нет. Не будет так работать. Нужна современная версия. 1. Терминал - это не полностью отдельная, независимая программа, а по сути точно такой же клиент VOGBIT, как и обычное рабочее место. Только запускается на нём не тот exe файл ...
Чистка номенклатурного справочника - Прочее
Константин Чилингаров: Хм... Странно... Базу бы, конечно, посмотреть, по-хорошему. Попробовал разные примеры, вроде, нормально всё. Если есть в спецификации или чём-нибудь подобном позиция (когда такое сообщение пишется), то нормально, вроде, "где используется" ...

пример кода

- Общие вопросы - Старые разделы форума
Страницы: 1
пример кода, стартовый шаблон кода.
 
Добрый день.
Мне посоветовали изложить проблему на форуме.

Так как на данный момент в Vogbit пока не реализованы макросы, хотелось бы получить пример кода, чтобы можно было его использовать, как стартовый шаблон для похожих задач в дальнейшем.

Ситуация вот в чем.
У нас возникла неоднозначность с указанием количества материала в техпроцессе.
Например.
В техпроцессе мы указываем:
Операция. отрубить заготовку
Материал. Проволока диаметром 4 мм. - 1,2 метра
В саму деталь идет 1,2 метра проволоки, но при этом реальный расход материала выше, потому что часть материала идет в отход.  (например после сварки отрубаются лишние кусочки материала) + потери  (например материал был подржавевшим либо другая некондиция). Эти потери распределяются на изделие как + % к расходу материала Поэтому у нас накладывается в расчет себестоимости коэффициент на брак, а в техпроцессе указывается только полезная длина  заготовки, то есть в техпроцессе одна длина заготовки, а в расчет себестоимости идет другая длина.
  Понятно, что для этого в системе указывается параметр длина заготовки (или в комментариях можно указать  длину заготовки, а в количестве поставить значение с учетом расхода), но технологу прийдется считать вручную сколько же материала уйдет с учетом потерь + дополнительно указывать размер заготовки, которую надо отрубить -  двойная работа, от которой хотелось бы его избавить.

Вот и  хочется, чтобы  в техпроцессе был материал с реальной длинной заготовки, а  в себестоимость можно было посчитать материал с учетом потерь или чтобы в параметре материала можно было указать L=длина заготовки, а макросом расчитывалось количество материала в поле количество.

Может есть какой-то пример кода, чтобы на основе параметра длина заготовки, расчет количества расхода материала считался сам? Или что-то приблизительно похожее.
Изменено: Василий Акимов - 06.09.2010 16:16:02
 
Вот пример. Перемножаются 2 параметра компонента и результат записывается в количество компонента:
Код
using System;
using Csdn.Vogbit.Base;
using Csdn.Vogbit.Data;
using Csdn.Vogbit.Forms;

namespace Csdn.Vogbit.PluginExample
{
    [Caption("Csdn.Vogbit.PluginExample")]
    [ID("{E602563E-5EFB-4388-B0C2-CF1D34F7E0DD}")]
    public class ExamplePlugin: PlugInBase
    {
        private const string RunExampleGuidString = "{B21FC2B9-4A1F-4929-9BF6-35FC6BA91D55}";//Guid команды
        private const string X3CategoryGuidString = "{08790C90-5CC4-45a0-83B3-63FA6871C562}";//Guid категории

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

        void ExtFormsEventHandler(object sender, ExtensibleFormsEventArgs e)
        {
            //цепляемся на событие создания формы с компонентами
            if (e.EventType != ExtensibleFormsEventType.NewForm) return;
            if (e.PlugInForm.GetType().ToString().CompareTo(typeof(Main.ComponentsTreeForm).ToString()) != 0) return;

            var barManager = (IBarManager)e.PlugInForm;

            //создаём Категорию
            var categoryId = new Guid(X3CategoryGuidString);
            var barCategory = barManager.BarCategories[categoryId] ?? barManager.BarCategories.Add(categoryId, "x3Plugins");

            //создаём кнопку
            var runExampleGuid = new Guid(RunExampleGuidString);
            var exampleBarCommand = barManager.BarCommands.AddButtonCommand(runExampleGuid, barCategory, "Перемножить параметры", false);

            exampleBarCommand.ToolTip = "Перемножить параметры";
            exampleBarCommand.ActionExecute += ExampleBarCommandActionExecute;

            //вытаскиваем кнопку на панель
            barManager.MainToolBar.AddCommand(runExampleGuid, barManager.MainToolBar[0].ItemId, false);

        }

        void ExampleBarCommandActionExecute(object sender, ActionExecuteEventArgs e)
        {
            var activeForm = (IPlugInDataViewForm) ExtForms.ActiveForm; //активная форма
            var currentItem = activeForm.CurrentItem;                   //объект(компонент) на котором установлен курсор
            var componentId = currentItem["ID"].AsLongInt;              //ID компонента

            //берём параметры компонента
            var componentParameters = ExtApp.Application.General.ObjectParameters(componentId);

            //ищем необходимые параметры по полю ParameterUID
            var searchResult1 = componentParameters.QuickSearch(new[] {"ParameterUID"}, new object[] {"Parameter1"});
            var searchResult2 = componentParameters.QuickSearch(new[] {"ParameterUID"}, new object[] {"Parameter2"});
            
            
            if(searchResult1.Length > 0 && searchResult2.Length > 0)
            {
                //если парметры нашлись - перемножаем
                var quantity = ((ObjectParameter) searchResult1[0]).ParameterValue.AsDouble*
 X searchResult2[0]["ParameterValue"].AsDouble;

                //и записываем в поле "Количество" текущего компонента
                try
                {
                    currentItem["Quantity"].Value = quantity;
                    currentItem.Save();
                }
                finally
                {
                    currentItem.Cancel();
                }
            }
        }
    }

}
 
Огромное спасибо, Сергей.
Страницы: 1
Сейчас на форуме (гостей: 11)
Всего зарегистрированных пользователей: 2864
Приняло участие в обсуждении: 336
Всего тем: 804
Всего сообщений: 6066

×
Вход на сайт