Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Не пятничная задача

713  1 2 все
AlexNek патриот05.06.19 23:31
AlexNek
05.06.19 23:31 

Сегодня случайно появилась задача которая производству не требуется, но делать приходится всё вручную. Что в долгосрочной перспективе не хочется.

Хочется софт. Идеи конечно есть по реализации, но так как область не моя, хочется услышать другие мнения.

Итак, на складе есть некие пакеты со скан кодом, номером и соответственно названием, можно еще дополнительные атрибуты добавить. Каждый день многие сотрудники фирмы выбирают один или несколько пакетов и записывают взятые номера в общий список под своим именем. Пакеты расходуются.

Затем со списком проделываются некие операции и заказываются новые пакеты.

Что хочется:

Иметь "персональный сканер", пришел на склад, отсканировал пакет - данные записались в базу. В дополнение хочется еще и комментировать "свои" пакеты по названию после какого-то времени. Ну может и статистику какую получить.

Кто то должен иметь полный доступ к базе по всем сотрудникам, проводить требуемые операции и получать отчеты.

Вроде совершенно стандартная задача. Наверняка кто то и клепает подобное на "конвейере" спок


Не хочется иметь спец. устройство /дополнительный комп на складе, пока ориентируюсь на то, что все имеют андроид смартфоны. Кто персональный, кто от фирмы.

Все сотрудники имеют виндовс ПС. Всё может крутится в интранет сети.

#1 
Maikop коренной житель05.06.19 23:34
Maikop
NEW 05.06.19 23:34 
в ответ AlexNek 05.06.19 23:31

Гугли на тема Lagerlogistik.


Есть решения, которые поддерживают ios и андроид, но на предприятиях до сих пор пользуются зебрами.

Не сочтите меня параноиком, но мне кажется, что кто-то постоянно читает то, что я здесь пишу.
#2 
AlexNek патриот06.06.19 00:02
AlexNek
NEW 06.06.19 00:02 
в ответ Maikop 05.06.19 23:34

одно бесплатное нашел, но что то там сильно дофига функций и исходников нет

https://www.vario-software.de/blog/vario-for-free-kostenfr...

хорошо бы опен соуре для xamarin и винды/веб

Хотя меня пока интересовала просто подходящая архитектура.

#3 
Maikop коренной житель06.06.19 00:07
Maikop
NEW 06.06.19 00:07 
в ответ AlexNek 06.06.19 00:02

Я в одом таком проекте пролётом был)) причём очень много лет назад, поэтому ничего посоветовать не могу.

Если очень надо, попытаюсь связаться с бывшими коллегами, но гарантировать ничего не могу.

Не сочтите меня параноиком, но мне кажется, что кто-то постоянно читает то, что я здесь пишу.
#4 
Murr патриот06.06.19 10:06
Murr
NEW 06.06.19 10:06 
в ответ AlexNek 05.06.19 23:31

Не хочется иметь спец. устройство /дополнительный комп на складе, пока ориентируюсь на то, что все имеют андроид смартфоны.

------

Хммм... для ПРЕДПРИЯТИЯ совершенно не критично наличие дополнительного сканера и станции с софтом.

Тем более, что все расположено стационарно. Носимые сканеры тоже в наличии.

Так что Я бы не заморачивался на смарты, если не найдется устраивающее опенсоурсе решение.

Вторая часть - не забудь туда же поставить небольший принтер лэйблочек - кладовщик будет сильно недоволен в начале, но благодарен потом...


И, да!, на предприятиях чаще будут именно зебры - их достаточно для большинства задач.


Наверняка кто то и клепает подобное на "конвейере"

------

Угу... правда до сих пор так и не свели интерфейсы сканеров к одному типу.

Мелкомягкие вроде что-то делали в этом плане, но у меня руки не дошли поковырять - есть самописка для нескольких типов сканеров- мне хватаеt...

#5 
AlexNek патриот06.06.19 20:55
AlexNek
NEW 06.06.19 20:55 
в ответ Maikop 06.06.19 00:07
попытаюсь связаться с бывшими коллегами

Спасибо огромное glassglassglass, но подвигов не требуется. Просто не хочется изобретать велосипед. Да и особые подробности не требуются.

А что то типа этого:


Я лично для себя, для других целей, сделал Десктоп приложение для одного готового ПХП решения. Но там я пользую прямой доступ к MySQL базе через SSH. Но пароли для доступа к базе не хочется раздавать всем. Да и MySQL на андроид еще найти надо. Как лучше поступить в этом случае, например?

Сделать для ПС ASP.NET приложение и виндовый сервис с API?

#6 
AlexNek патриот06.06.19 21:13
AlexNek
NEW 06.06.19 21:13 
в ответ Murr 06.06.19 10:06
для ПРЕДПРИЯТИЯ совершенно не критично наличие дополнительного сканера и станции с софтом.

ты не с той стороны смотришь. Я специально описал задачу как можно абстрактнее и поближе к общим потребностям.

Задача не для предприятия, а для сотрудников, как личная инициатива. Склад - это всего лишь большой напольный морозильник из фильмов ужасов про трупы в американских подвалах.

А пакеты - еда на обед. Да и с одним сканером нужно будет сканировать вначале код сотрудника, что не есть удобно.


на предприятиях чаще будут именно зебры

нескромный вопрос - а хто такие "зебры"? смущ


есть самописка для нескольких типов сканеров

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

#7 
Maikop коренной житель06.06.19 21:31
Maikop
NEW 06.06.19 21:31 
в ответ AlexNek 06.06.19 21:13
нескромный вопрос - а хто такие "зебры"?

https://www.zebra.com/de/de/products/scanners.html

Не сочтите меня параноиком, но мне кажется, что кто-то постоянно читает то, что я здесь пишу.
#8 
Maikop коренной житель06.06.19 21:35
Maikop
NEW 06.06.19 21:35 
в ответ AlexNek 06.06.19 20:55
Спасибо огромное glassglassglass, но подвигов не требуется.


Подвигов не будет.)) Я напишу двум, которые в ксинге, если ответят, то ответ тут опубликую.

Не сочтите меня параноиком, но мне кажется, что кто-то постоянно читает то, что я здесь пишу.
#9 
AlexNek патриот06.06.19 22:01
AlexNek
NEW 06.06.19 22:01 
в ответ Maikop 06.06.19 21:31

Ах зо, никогда не пользовал, только видел. У меня были только встраиваемые в автоматизированные системы.

#10 
AlexNek патриот06.06.19 22:02
AlexNek
NEW 06.06.19 22:02 
в ответ Maikop 06.06.19 21:35

спасибки за заботу.

#11 
AlexNek патриот06.06.19 22:08
AlexNek
NEW 06.06.19 22:08 
в ответ Murr 06.06.19 10:06
если не найдется устраивающее опенсоурсе решение

Похоже только енто есть.

https://github.com/micjahn/ZXing.Net

#12 
Murr патриот07.06.19 10:53
Murr
NEW 07.06.19 10:53 
в ответ AlexNek 06.06.19 21:13

в американских подвалах

------

Где? Ну если только в кино... но даже там они с трудом понимают что такое подвал...


А пакеты - еда на обед.

-----

Если такое - т.е. неизвестное количество неизвестных сканеров и сильно распределенное место хранения - надо искать что-то уже готовое для веба.

Можно порыться на предмет аппов с QR-сканнингом. Я не занимался - какие есть не знаю.

На вскидку:

https://play.google.com/store/apps/details?id=com.techresort.qrscanner&hl=ru

Там есть еще...

http://fire-monkey.ru/topic/2786-чтение-qr-кода-нужен-компонент-или-тулза/

Пара ссылок дополнительно на странице.


#13 
AlexNek патриот07.06.19 23:10
AlexNek
NEW 07.06.19 23:10 
в ответ Murr 07.06.19 10:53
Ну если только в кино

не только

http://www.diasporanews.com/2016/06/02/zhenshhina-nashla-t...

А как они называют то помещение где обычно стоят морозильные камеры?


сильно распределенное место хранения

что значит сильно распределенное?


Ты вот как раз с базами и вебом маешся. Имеет ли смысл делать ASP.NET приложение с MsSQL express для ПС? И как лучше делать запросы к базе из другого приложения?

#14 
AlexNek патриот07.06.19 23:16
AlexNek
NEW 07.06.19 23:16 
в ответ Murr 07.06.19 10:53

Похоже все пути ведут в ZXing

#15 
daduda знакомое лицо07.06.19 23:58
NEW 07.06.19 23:58 
в ответ AlexNek 05.06.19 23:31

Инсайдеровский слив от бывшего "программиста сканеров": то, что вы сейчас пытаетесь сделать в Германии никому не нужно.


Многие ЕРП конторы покрывали эти направления т.к. ни сканеры, ни ПО к нему никто не хочет покупать.


Более того на рынке можно нарваться на нае..лово: тебе продадут голое железо, а работающие драйвера и ПО - нет. И фирма смеется с рынка. Смотри историю фирмы CipherLab в ОСД.


Очень много клиентов пострадало. Чтобы избежать судебных исков, фирма закрылась.


зы. В России ситуация совершенно иная.

#16 
AlexNek патриот08.06.19 11:22
AlexNek
NEW 08.06.19 11:22 
в ответ daduda 07.06.19 23:58
то, что вы сейчас пытаетесь сделать в Германии никому не нужно.

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

Нужно ли это еще кому то мне абсолютно безразлично.


Вы бы лучше написали ваши идеи по реализации данной системы, как человек хоть немного знающий данное направление.

Вот например по сканеру, может быть два решения: один сканер на всех и у каждого индивидуальный сканер. Для первого решения возникает вопрос удобной и "безопасной" идентификации пользователя (хотя вот только что нашел вроде вариант...)

#17 
Murr патриот10.06.19 10:05
Murr
NEW 10.06.19 10:05 
в ответ AlexNek 07.06.19 23:10

А как они называют то помещение где обычно стоят морозильные камеры?

-----

А причем тут ПОДВАЛ? На картинке - не подвал, а ГАРАЖ.

Гараж - это они понимают - место хранения всякой хрени... ну типа морозильной камеры с трупом... или тряпки на куче собачьего дерьма, которое никак нельзя убрать...

А подвалов у них просто нет - дома стоят на бетонной плите... в лучшем случае...


что значит сильно распределенное?

-----

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

Т.е. - места, куда лениво тащить сканнер от входа или места где лениво идти до места где брать сканнер...



Имеет ли смысл делать ASP.NET приложение с MsSQL express для ПС?

-----

Иногда - имеет.

Например, когда команда имеет много опыта написания на АСП.НЕТ и нефига не знает об вин-формах.

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



И как лучше делать запросы к базе из другого приложения?

-----

Ну первым требованием будет - голая база не должна торчать наружу.

Отсюда - будет прокладка. Либо что-то самоизобретенное, либо что-то более-менее стандартизованное...

Получается - веб-сервис...


#18 
AlexNek патриот10.06.19 12:29
AlexNek
NEW 10.06.19 12:29 
в ответ Murr 10.06.19 10:05
А подвалов у них просто нет

не знаю как там на самом деле, но я не нашел подтверждения данной информации

https://www.usafotki.com/index.php/2012/03/kak-ispolzuyut-...

https://www.doctorvlad.com/russkieamerikancy/index.php/201...

https://zen.yandex.ru/media/newyorkboston/10-otlichii-amer...


у тебя не точечное хранение - при нем нет проблемы иметь на точке пусть и портативный, но сканнер

одни морозильник не точечное хранение? Главная проблема с одним сканером - нужно сканировать дважды: код работника и код продукта. А после еще и информацию со сканера сливать.


Например, когда команда имеет много опыта написания на АСП.НЕТ и нефига не знает об вин-формах.

вообще то в данном случае скорее наоборот. Да и команды особой нет. Но если ты знаешь вариант, когда десктопное приложение не нужно устанавливать локально - тоже подойдет.


Получается - веб-сервис

С этим вообще не сталкивался. На что вначале обращать внимание?


А с MSSQL Express проблемы есть для малых баз?


ПС: У нас сегодня выходной народа не будет...

#19 
Murr патриот10.06.19 13:39
Murr
NEW 10.06.19 13:39 
в ответ AlexNek 10.06.19 12:29

но я не нашел подтверждения данной информации

-----

Ну не нашел так не нашел...

А Я вот в Лаке Форесте, КА подвалов не нашел... может где-то в центральной части Лос Ангелеса и найдется подвал, но это "единичный случай"...


одни морозильник не точечное хранение?

-----

У отца на работе морозильник был несколько больше показанного на картинке...

Туда, в морозильник, заежали машины на погрузку продукции...



А после еще и информацию со сканера сливать.

------

Это авторматом.



нужно сканировать дважды: код работника и код продукта

-----

Ну и?



вариант, когда десктопное приложение не нужно устанавливать локально

------

А так бывает?

У меня только автоапдейты. Остальное - веб.



С этим вообще не сталкивался. На что вначале обращать внимание?

-----

Сложно сказать.

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

Просто не вполне очевидное - класс пересылается, а потом - перестает...

Сразу и не понятно почему, но надо обновить генерацию клиента.

Базово - описываешь функциональность сервиса и Студия строит клиента.

Понимать надо - транспорт - хттп-басед со всеми бенефитами и проблемами.

Начинай курить доки и обязательно - пробуй все что описано - там много...

Не надо сложное - класс-другой переслать, подредактировать и т.п.

Если хочешь с пользой - могу дать задачку...


А с MSSQL Express проблемы есть для малых баз?

------

Даже со средними нету. Исключая то, что там нет энт-фич... Хотя - может и добавли...

Там, насколько Я помню, только ограничение на размер базы - много больших блобов не пойдет...

Но по базам лучше Пелода помучай - он должен побольше знать... а Я - так - пользователь...

#20 
AlexNek патриот10.06.19 14:28
AlexNek
NEW 10.06.19 14:28 
в ответ Murr 10.06.19 13:39
А после еще и информацию со сканера сливать.------Это авторматом.

Как это? Ладно может подключен как сетевое беспроводное устройство, но кто будет заливать данные в мою базу?


нужно сканировать дважды: код работника и код продукта
-----Ну и?

Ну и ломит, зачем два раза когда можно один


вариант, когда десктопное приложение не нужно устанавливать локально
------А так бывает?У меня только автоапдейты. Остальное - веб.

Ну так поэтому и было ASP.NET


Если хочешь с пользой - могу дать задачку..

Пока не надо, на этой неделе командировка. А еще хочу учет рабочего времени на WPF переписать, а то syncfusion задолбал уже своими ошибками.

Этот проект пока на "далекое" будущее. Должен еще "повариться".

#21 
Murr патриот10.06.19 15:27
Murr
NEW 10.06.19 15:27 
в ответ AlexNek 10.06.19 14:28

кто будет заливать данные в мою базу?

------

А чего там "заливать". ЕФ6 и поехали - все пишется и читается... даже бины генерятся на автомате... чуток связку подрихтуешь и готово...


зачем два раза когда можно один

-----

Чтоб меня это парило...

Меня годиков 5 назад попросили сделать импорт чужих документов.

Если бы Я там заморачивался с "зачем дава когда можно один" - писал бы до сих пор.

А так - оно уже 5 лет как работает, раширяется, пусть с матюками, но и опять работает...

Тут миграция намечается - поменяется формат импортируемого документа - надо будет еще переделывать...

А лишний раз просканить свое ИД - да фигня полная - навел, нажал и... все...

#22 
AlexNek патриот10.06.19 15:45
AlexNek
NEW 10.06.19 15:45 
в ответ Murr 10.06.19 15:27
ЕФ6 и поехали - все пишется и читается

Ой как я матюкался пока это Г. ставил для SQLite.

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

Как просто динамически загрузить имя файла базы данных так и не нашел.

Как написать что то подобное, тоже надо искать

public void TestPrint2()
        {
            var ret = from classProperty in mDb.LabelingClassProperties
                      join labelingClass in mDb.LabelingClasses on classProperty.LabelingClassGuid equals labelingClass.LabelingClassGuid
                      select new { classProperty.LabelingClassGuid, classProperty.Value, labelingClass.Name };
            foreach (var result in ret)
            {
                Console.WriteLine("{0},{1} - {2}", result.LabelingClassGuid, result.Name, result.Value);
            }
        }

Насколько DevArt удобнее.


А лишний раз просканить свое ИД - да фигня полная

Ага, только еще карточку с собой таскать и печать её до того.

Потом из кармана вытащить, отсканить, положить обратно в карман и пр. Не, не хочу - просто неудобно. Для дяди еще можно сделать как проще, а для себя уж как удобнее будет.

#23 
Murr патриот10.06.19 17:11
Murr
NEW 10.06.19 17:11 
в ответ AlexNek 10.06.19 15:45

Не, не хочу

-----

Ну с этим спорить невозможно - не хочу - значит - не хочу.


Ой как я матюкался пока это Г. ставил для SQLite.

-----

Представляю, и представляю ОЧЕНЬ хорошо - совсем недавно тоже самое делал для ПпостгрееСкл.

А еще чуток ранее пытался скастить до Оракле 10...



Как просто динамически загрузить имя файла базы данных так и не нашел.

------

Не знаю как для СкЛите, но для МС СКЛ довольно просто:

public class TTranslationDB : DbContext
{

public static string ConnectionString = String.Empty;

public TTranslationDB()

: base(ConnectionString) //, DbCompiledModel.
{
}

public DbSet<TTranslation> Translations { get; set; }

}

Строку подключеня строишь любым подходящим способом и присваиваешь до вызова конструктора.

Да, плохо, но извлекать динамичаски довольно долго по времени.

У меня - читается из отдельной секции конфига, при этом автоматику Я не освоил - читаю как обычный ХМЛ...

#24 
AlexNek патриот10.06.19 19:13
AlexNek
NEW 10.06.19 19:13 
в ответ Murr 10.06.19 17:11
public class TTranslationDB : DbContext{public TTranslationDB()
: base(ConnectionString)

Тут есть маленький ньюанс, то что можно править находится в сгенерированном файле. И после следующей генерации всё будет как и до того.

Данный способ я посчитал неприемлемым. Пришлось извращаться c App.Config. Но время подключения для меня некритично.


А что там с LINQ вместе с FK, как оно тама делается?

#25 
Murr патриот10.06.19 21:32
Murr
NEW 10.06.19 21:32 
в ответ AlexNek 10.06.19 19:13

И после следующей генерации всё будет как и до того.

------

Не понял - зачем надо генерировать? Один раз написал - достаточно...


А что там с LINQ вместе с FK, как оно тама делается?

------

??? - поясни вопрос.

#26 
AlexNek патриот10.06.19 22:06
AlexNek
NEW 10.06.19 22:06 
в ответ Murr 10.06.19 21:32
Не понял - зачем надо генерировать? Один раз написал - достаточно...

поле в таблицу добавилось, что делать?


??? - поясни вопрос.

Как такую же функцию с EF написать? Времени пока не было разбираться. Обычный лоокап хотя бы с LINQ тока.

https://foren.germany.ru/showmessage.pl?Number=35299769&Bo...

#27 
Murr патриот11.06.19 01:43
Murr
NEW 11.06.19 01:43 
в ответ AlexNek 10.06.19 22:06

поле в таблицу добавилось, что делать?

------

Перегенеришь бины. Рукописная часть - остается.

Там либо партиал класс, либо стандартное наследование.


Обычный лоокап хотя бы с LINQ тока.

------

JOIN ?

Но можно и просто пары селектить.

#28 
Программист коренной житель11.06.19 13:07
NEW 11.06.19 13:07 
в ответ AlexNek 05.06.19 23:31

Оххх, ностальгия :) Моя первая работа была с такими сканерами. Да и свою дипломную работу я делал под Casio DT-X10 :)

#29 
AlexNek патриот16.06.19 00:37
AlexNek
NEW 16.06.19 00:37 
в ответ Murr 11.06.19 01:43
Перегенеришь бины. Рукописная часть - остается.

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


JOIN ?

ну да так и делал с Devart-ом

var ret = from classProperty in mDb.LabelingClassProperties

join labelingClass in mDb.LabelingClasses on classProperty.LabelingClassGuid equals labelingClass.LabelingClassGuid

select new { classProperty.LabelingClassGuid, classProperty.Value, labelingClass.Name };


а с EF так не получается отчего-то


#30 
Murr патриот17.06.19 10:59
Murr
NEW 17.06.19 10:59 
в ответ AlexNek 16.06.19 00:37

Так исходники же генерятся по новой.

-----

Ну так не все же.

Если ты парвишь генерируемый файл - его, понятное дело, затрут при генерации нового.

Но ты же не глупый - напишешь другой файл с нужной тебе часть класса.

Если нужно - положишь вне папки генерируемых файлов.


Нужно еще раз глянуть что точно генерится

-----

У меня вот тоже есть желание поковырятся на этом уровне в DSL.

Только вот пары недель свободного времени никак не найду...



Помню только что есть конструктор без параметров с вызовом базового с именем строки соединения в конфиге.

------

Возмпжно, что придется и шаблоны править...


а с EF так не получается отчего-то

------

Так ЕФ это не делает.

ЕФ - генерит СКЛ под собой. Соответственно - может сгенерить выборку из двух джойнутых таблиц.

Сам этим пока не пользовался - не было нужно.


#31 
AlexNek патриот17.06.19 22:33
AlexNek
NEW 17.06.19 22:33 
в ответ Murr 17.06.19 10:59
ЕФ - генерит СКЛ под собой.

значить не зря не люблю ЕФ. Хотя была задача при которой все LINQ менялись на SQL, но там важны были наиболее оптимальные по скорости запросы. А SQL был на две печатных страницы.

Ну хорошо хоть не нужно больше пробовать.

#32 
Murr патриот18.06.19 10:50
Murr
NEW 18.06.19 10:50 
в ответ AlexNek 17.06.19 22:33
была задача при которой все LINQ менялись на SQL, но там важны были наиболее оптимальные по скорости запросы

-----

Почти всегда можно из ЛИНКа получить нужный запрос в СКЛ. Я, правда, настолько глубоко не влазил - там где не было понятного пути получения нужного кода дописал метод его генерации и успокоился.


Ну хорошо хоть не нужно больше пробовать.

-----

Пробовать - толку мало - там изменения от версии к версии... часто - существенные.

#33 
1 2 все