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

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

Сброс группировки по подразделам. - Ошибки в работе
Alex-220781: Добрый день! В окне обеспеченность, если есть группировка по подразделам, то после замены позиции на аналог, группировка сбрасывается, и нужно заново показывать подразделы, группировать. Возможно такое и по другим группировкам- не проверял
Блокировка изменения номенклатуры - Интерфейс программы
Alex-220781: 13 Константин Чилингаров написал: Делать вместо «Ок» кнопку на пол экрана с названием из нескольких длинных слов. Это можно сократить, например просто "Изменить" 13 Константин Чилингаров написал: очень часто редактирование в номенклат ...
Получить данные о заказах на закупку, счетах, актов замены с помощью запроса SQL - Экспорт импорт данных
Константин Чилингаров: Здравствуйте, Очень неточный вопрос. Нужно поточнее как-то сформулировать. По порядку: Такой сущности отдельной, как "счёт" в VOGBIT нет. Есть сущность "заявка на закупку". По смыслу – список с некоторой атрибутивной инф ...
Терминал тп 5. Закрытие незаконченных заданий. - Терминалы
Константин Чилингаров: В текущей версии никаких подобный настроек нет.  Отката назад из этого окна нет, насколько я помню, потому что к моменту его появления часть информации о "закрытии задания" фактически уже записалась. Нужно уже до конца доводить. Если неправ ...
Выбор участка в окне редактирования - Ошибки в работе
Alex-220781: Спасибо. Исправил.  Хотел по памяти настроить. Не получилось.  Старею... 
Состав изделия и использования разных материалов в одной и той же детали - Состав и технология
Константин Чилингаров: Здравствуйте, Первое, что нужно отметить: Если у Вас есть диван определённой модели с обивкой из одной ткани и точно такой же по конструкции, но с обивкой из другой ткани, то со всех сторон будет лучше, если в базе данных это будет две разные н ...
Шаблон отчёта при многосменной работе - Производство
Константин Чилингаров: 16195 Михаил Анатольевич написал: Куда обратится с вопросом покупки терминала, его комплектации, они же разные наверно По комплектации написал вкратце /forum/messages/forum30/topic2428/message15085/2428-terminaly_-apparatnaya-chast#message15085 во ...
Терминалы, аппаратная часть - Терминалы
Константин Чилингаров: Последнее время, регулярно возникают вопросы по аппаратной части цеховых терминалов. Пока выложу сюда, как отдельную тему, кратко по основным моментам. Надеюсь, будет полезно. Итак, поехали: С технической точки зрения «цеховой терминал» - эт ...
Пример создания плагина - Плагины
Николай Спирин: Остается одно. Созданную номенклатуру вместе с id выгрузить в 1С, там ее сопоставить с номенклатурой 1С и выгружать вместе с id в Вогбит. Но техпроцесс то можно, наверное, создать в Вогбит программно и присвоить ему номер из 1С, а потом заполнить его ...
Процесс не может получить доступ к файлу - Отчёты
Константин Чилингаров: Спасибо за информацию!
Не получается подключить демо-версию - Установка
Константин Чилингаров: Да. По ссылке выше, см. рис. 12. В этом месте задаётся пароль администратора SQL. По поводу запуска программы и входа в неё после установки - описано /support/622/#_v7656 здесь .
Комплект сборочных единиц - Производство
Алексей Пономарев: Здравствуйте, только сегодня обратил внимание что вы ответили. Уже и не ждал. Спасибо, будем изучать вопрос дальше
Перенос задания на максимальном уровне на терминале - Терминалы
Константин Чилингаров: Здравствуйте, Была у нас похожая идея 8 лет назад... Дело в том, что "автоматически" нельзя. Не получится. Потому что слишком много вариантов появляется. Допустим, закрыли мы задание на посту. Известно, что есть следующее после него, надо ...
Внеплановые задания - Производство
Константин Чилингаров: Здравствуйте, Проверил. Нормально, вроде, всё. Вводится, редактируется. В окне сменного задания поста есть колонки "Комментарий" и "Комментарий к операции". Последняя - это комментарий из операции в техпроцессе. Если таковой суще ...
Форма ввода параметров - Отчёты
Владимир Трусов: Спасибо. Работает.
Поиск при создании накладной по заявке - Интерфейс программы
Константин Чилингаров: Здравствуйте, Записал. Спасибо.
Порядок строк приходной накладной - Интерфейс программы
Константин Чилингаров: Хорошо, понятно. Запишу отдельным пунктом в список предложений и пожеланий. Спасибо!
Пропали кнопки в меню. - Прочее
Константин Чилингаров: Здравствуйте, 18542 Николай Спирин написал: Как добавить прав пользователю? В справочнике "Сотрудники" в свойствах пользователя поставить галочку "Администратор". Если её нет - пункта "Настройки" в меню не будет у этог ...
Приёмка деталей на склад - Материалы, Комплектующие, Складской учёт
Константин Чилингаров: 18424 Lesotehnikakirov написал: У нас так получилось:1. Количество детали в производственном заказе 1051 шт2. На склад сдано 244 шт3. Со склада выдано в работу 244 шт, остаток 04. На склад сдано 1051 деталь5. Теперь на складе в данном производстве ...
Создание ЛЗК - Материалы, Комплектующие, Складской учёт
Lesotehnikakirov: Благодарю. Вопрос решился.

пример кода

- Общие вопросы - Старые разделы форума
Страницы: 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
Сейчас на форуме (гостей: 30)
Всего зарегистрированных пользователей: 2800
Приняло участие в обсуждении: 331
Всего тем: 804
Всего сообщений: 6066

×
Вход на сайт