Константин Чилингаров: Да, список для выбора получится так поменьше. Но зато сначала то нужно будет ещё составить этот "список поменьше" из общего. Причем ...
Константин Чилингаров: Здравствуйте,
Нужно в шаблоне отчёта поменять, чтобы вместо обозначения номенклатуры выводилось значение параметра этой номенклату ...
Константин Чилингаров: Не вижу смысла писать в таком случае свои "удалялки". Потеря времени. Проще и быстрее штатными функциями все поудалять в данном конк ...
Константин Чилингаров: Здравствуйте,
В современных версиях VOGBIT есть (где-то в прошлом году появилось впервые) "Автоматическое" заполнение (раззворачиван ...
Константин Чилингаров: Здравствуйте,
Можно, например, создать стандартными средствами «Производственный заказ» (там как раз «разматывается» всё изделие по ...
Константин Чилингаров: написал:
Еще бы поиск допилить в обеспеченности по заказам, чтоб искал не только номер, но и материал
Будет. В ближайшем обновлении, на ...
Константин Чилингаров: Здравствуйте,
Я посмотрел Ваш ролик. Спасибо!
Только с обновлением это, по-моему, никак не связано.
Давайте поясню один момент:
...
Константин Чилингаров: Движок форума не разрешает напрямую Excel файлы в сообщения вставлять.
Ну ладно. Понятно, в общем, о чем речь.
на будущее: если нужно Excel фа ...
Константин Чилингаров: Тут ещё знаете, в чем может быть дело...
Не в размере даже, а во внутренностях конкретного файла с картинкой.
Ошибка может озвучиваться си ...
Константин Чилингаров: Здравствуйте,
Очень странная картина... Не сталкивались никогда с таким.
Копию базы данных можете дать нам посмотреть?
Если есть техни ...
Константин Чилингаров: Здравствуйте,
В этом окне, насколько я помню, сохраняется только список "постов" выбранных. При закрытии/открытии окна.
Порядок сл ...
Владимир Белов: написал:
Добрый день! Такой вопрос. Могу я установить базу данных на съемный диск и пользоваться на разных компьютерах - переставляя то ...
Добрый день. В программе Vogbit потребовалось реализовать механизм, который при обновлении таблицы (в данном случае, штрих-коды) автоматически записывает некоторые данные в файл. Решил сделать через триггер в БД SQL. Триггер:
Код
USE [VOGBIT_splav]
GO
/****** Object: Trigger [General].[csvBarCodesUpdate] Script Date: 13.11.2017 9:00:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [General].[csvBarCodesUpdate]
ON [VOGBIT].[General].[BarCodes]
AFTER Insert, Update, Delete
AS
EXEC sp_xp_cmdshell_proxy_account 'SPLAV/eremin.mv','a23B49';
EXEC xp_cmdshell "C:/Progs/BarCodesQuery.bat"
После изменения Vogbit выдает сообщение "У пользователя нет разрешений на выполнение данного действия." Подробности ошибки:
Код
Сообщение:
У пользователя нет разрешений на выполнение данного действия.
Отправитель:
Csdn.Vogbit.Data.BarCodes
Исключение:
Csdn.Vogbit.Data.SqlServerException
Источник:
Csdn.Vogbit.Data
Версия 1.1.37841 сборка 171
Внутреннее исключение:: У пользователя нет разрешений на выполнение данного действия.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:15247>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[BarCodes.Insert]: >
<ErrLine:1>
Ошибка преобразования значения varchar "except" в тип данных int.
Список вызовов:
в Csdn.Vogbit.Data.SqlExceptionBuilder.ThrowError(Object sender, SqlException ex, String database)
в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
в Csdn.Vogbit.Data.DataObjectList.Apply(Boolean raiseEvent)
в Csdn.Vogbit.Data.BizObject.Save()
в Csdn.Vogbit.Forms.BaseEditForm.Apply()
в Csdn.Vogbit.Forms.EditDialog.EditFormApply()
в Csdn.Vogbit.Forms.EditDialog.Apply()
Inner Exception ---------------
Сообщение:
У пользователя нет разрешений на выполнение данного действия.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:15247>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[BarCodes.Insert]: >
<ErrLine:1>
Ошибка преобразования значения varchar "except" в тип данных int.
Исключение:
System.Data.SqlClient.SqlException
Источник:
.Net SqlClient Data Provider
Список вызовов:
в System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
в System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
в System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
в System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
в System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
в Csdn.Vogbit.Data.DataAdapter.Update(DataTable dataTable)
в Csdn.Vogbit.Data.DataAdapter.UpdateDataTable(DataTable dataTable)
в Csdn.Vogbit.Data.DataObjectList.ApplyInternal()
в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
Крайне не рекомендуется добавлять свои триггера, таблицы и т.п. непосредственно в базу. После этого мы не гарантируем никоим образом ни работоспособность штатных функций, ни возможность обновления. П.7.2. лицензионного соглашения. Т.е. фактически такую базу мы поддерживать не будем. Если что-то с ней случиться - вам разбираться только самостоятельно.
Если нужно добыть какую-то информацию для использования её снаружи, то лучше написать plugin для этого.
Можно написать плагин, который будет всё время запущен, раз в какое-то время (хоть каждую минуту) проверять, не пора ли что-нибудь выгрузить, и если пора, то выгружать. Например...
Для передачи в другую программу нужно выгружать в csv-файлы: 1. Таблица сотрудников со штрих-кодами 2. Таблица соответствий рабочих, выполняющих задания, и используемого в этом задании инструментом.
И там, и там объём данных маленький, а изменения редкие. Для второго пункта, вполне должно хватить выгрузки раз в день. Максимум пару раз в день. Но это если уж очень активно работать... Для первого и того реже. Там и раз в день не нужно. Так что вполне можно обойтись plugin'ом. Я бы для начала сделал просто по кнопке. Чтобы всё обкатать, наладить. А потом, когда уже реально заработает всё по прямому назначению, если реально надоест кнопку нажимать, сделал бы, чтобы она по времени нажималась сама.
1>CSC : error CS1705: Сборка "Csdn.Vogbit.Main" с удостоверением "Csdn.Vogbit.Main, Version=1.1.37841.171, Culture=neutral, PublicKeyToken=ae4e3879760d1984" использует "Csdn.Vogbit.Forms, Version=65535.65535.65535.65535, Culture=neutral, PublicKeyToken=ae4e3879760d1984" с более высокой версией, чем у сборки "Csdn.Vogbit.Forms" с удостоверением "Csdn.Vogbit.Forms, Version=1.1.37841.171, Culture=neutral, PublicKeyToken=ae4e3879760d1984", на которую делается ссылка.
Код взят отсюда Все библиотеки подключены, ошибок до компиляции не выдает. Как это исправить?
Если формы вогбита не нужны, то можно писать не плагин, а отдельное приложение. Тогда понадобится только Csdn.Vogbit.Data.dll - для доступа к данным через API. В этом случае должно работать и в более новых студиях.
Подскажите ещё, пожалуйста, каким образом можно сделать экспорт данных из таблицы в CSV-файл с помощью какой-нибудь библиотеки Vogbit? Или нужно подключать стороннюю библиотеку?
Можно подробнее? Попробовал со строкой выше, не сохранилось.
Вот функция
Код
void GetData()
{
var sqlQuery = new SqlQuery();
var selectQuery = sqlQuery.CreateQuery();
var barCode = (Csdn.Vogbit.QB.Schema.Views.BarCodes)selectQuery.From.AddView(Views.BarCodes, "barCode");
var name = (Csdn.Vogbit.QB.Schema.Views.Employees)selectQuery.From.AddView(Views.Employees, "name");
var j = new Join(barCode, name, JoinType.Inner, new Condition().EqualTo(barCode.ObjectID, name.ID));
selectQuery.Joins.Add(j);
selectQuery.Columns.Add(barCode.Code, "BarCode");
selectQuery.Columns.Add(name.Name, "Name");
sqlQuery.Add(selectQuery);
var data = ExtensibleApplication.Application.ExecuteQuery(sqlQuery);
data.Close();
data.Prepare();
DataSource = data;
(DataControl as IDataExport).ExportTo(ExportFormat.Csv, "vogbit__bar_name.csv");
}
Подскажите, каким запросом можно вывести задание, сотрудника который его выполняет, и необходимый для него инструмент? А то без документации разобраться в БД практически невозможно, уже который день ковыряюсь
Тут есть нюансы. В первую очередь: - работник, по которому это нужно, на посту один или их там несколько может быть? - по каким заданиям нужно смотреть? Которые включены работнику в план на смену? Или которые ему "выданы" в рамках смены? - из задания можно добыть операцию в техпроцессе, по операции этой можно добыть из техпроцесса "инструмент". Вопрос - какой? Весь, который на эту операцию указан?
(уровень учёта подразумевается "высокий" или "максимальный" используется)
В зависимости от ответов на эти вопросы, будут следующие уточняющие. В зависимости от этого - логика, как искать. А от этого запрос, соответственно, зависит.
P.S. Вообще, если такими вещами заниматься серьёзно, то неплохо бы обучение какое-то организовывать. Если хотите логику понимать и знать, как там что внутри устроено. Потому что это так в двух словах на форуме не объяснить всё.
- работник, по которому это нужно, на посту один или их там несколько может быть?
Работник на посту может быть только один
Цитата
- по каким заданиям нужно смотреть? Которые включены работнику в план на смену? Или которые ему "выданы" в рамках смены?
Если я правильно понял, что задания выдаются в рамках смены.
Цитата
- из задания можно добыть операцию в техпроцессе, по операции этой можно добыть из техпроцесса "инструмент". Вопрос - какой? Весь, который на эту операцию указан?
Весь инструмент для операции
Цитата
P.S. Вообще, если такими вещами заниматься серьёзно, то неплохо бы обучение какое-то организовывать. Если хотите логику понимать и знать, как там что внутри устроено.
Скорее всего, это последний плагин, который нужно разработать для Вогбита в рамках проекта, так что обучение не целесообразно.
1. найти задание(я) (task) с типом связи = LT_Unit_Task, со статусом = ST_MAN_3, и с таким работником в "плановых трудовых ресурсах" - рис.1.
2. найти задание с типом связи = LT_Place_task, для которого (1) является Object task’ом (связанным заданием) – рис.2
3. в (2) взять Planned step (запланированные этапы). Там указан компонент (и коллекция откуда этот компонент) – это и есть операция (и техпроцесс, откуда она) – рис.3
4. Взять из коллекции компоненты, подчинённые (3) с типом связи LT_Tools – это инструмент к этой операции в техпроцессе - рис.4.
И будет то, что вы хотели. Инструмент из операции, которая в задании, выданном работнику.