mikrocontroller.net

Forum: Projekte & Code EleLa - Elektronik Lagerverwaltung V3.1


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

EleLa geht in die nächste Runde, ab nun steht die erste Varianten von 
V3.1 zur Verfügung.
Die Änderung ist dass man nun unter Gehäuse/Lager sich je Bauteil 
technische Infos mit anlegen kann. Die Daten werden als JSON Format in 
der Datenbank abgelegt.
Im Prinzip ist es nur eine Spalte mehr, jedoch birgt diese kleine 
Änderung der Datenstruktur ein paar Besonderheiten, denn der SQL Server 
muss das JSON Format ebenfalls unterstützen.

Die neue EXE läuft aktuell mit:
- SQLite, aktuelle DLL Version ist mit im ZIP
- MariaDB ab V10.2

Könnte gehen, jedoch nicht getestet:
- MySQL ab V5.7
- MsSQL ab Version 2016

Geht noch nicht:
- PostgreSQL

Vor dem Update wie immer ein Backup erstellen. Bei einem SQL Server 
Update am besten vorher die Datenbank als SQLite Version exportieren.

Die EXE V3.1.18C24 gibt es hier:
http://www.mmvisual.de/elela

- Win32
- Win64

Wenn der SQL Server das JSON Format nicht kennt so wird das Update 65 
fehl schlagen. Bei diesem Fehler kann problemlos EleLa V3.0 weiter 
verwendet werden, dieses Update wurde absichtlich recht kurz gehalten, 
da werden auch keine Daten manipuliert, damit jederzeit V3.0 wieder/noch 
funktioniert.
Ein Mischbetrieb mit V3.0/V3.1 EXE ist kein Problem.

Die Bedienung:
Die technischen Daten können eingegeben/geändert werden indem das 
Häkchen "Ändern" aktiviert wird. Die Linke Spalte ist der Parameter, 
wenn ein Parameter einmalig eingegeben wurde, so wird dieser in der 
Datenbank gemerkt und bei einem anderen Bauteil kann dieser gleiche in 
einer Drop-Down Box ausgewählt werden, es ist wichtig dass die 
Bezeichner immer gleich heißen, denn man möchte in einem späteren 
Schritt danach suchen.
Im rechten Feld trägt man den Wert ein.
Mit speichern vom Datensatz ist die Eingabe gespeichert.
Intern werden diese Daten als JSON Format gespeichert, die Datenbanken 
kennen dieses Format und können damit umgehen als wäre jede Zeile der 
technischen Daten eine separate Tabellenspalte.

Ist im Prinzip eine coole Sache, erfordert jedoch eine entsprechendes 
Datenbank-System, was dies auch unterstützt. Ich habe mich dazu 
entschlossen dies nun rein zu machen damit EleLa auch für die Zukunft 
besser gerüstet ist.

Die zweite Änderung:
Bei Lieferanten werden nur noch die Preisstaffeln des im "Gehäuse/Lager" 
ausgewählten Bauteils gezeigt. Bei vielen Teilen wurde es doch sehr 
unübersichtlich.

Die Zukunft:
- Erweiterung der "Suche - F5" um in den Parametern suchen zu können
- Konfigurationsdialog um die eingegebenen Parameter-Namen anpassen zu 
können, derzeit stehen die bereits in der "param" Tabelle.

Frohe Weihnachten
Markus.

Autor: Marc Horby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Markus,

ja ist denn scho Weihnachten ;-)

Danke dir für deine Entwicklung! Top!

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus M. schrieb:

> Im Prinzip ist es nur eine Spalte mehr, jedoch birgt diese kleine
> Änderung der Datenstruktur ein paar Besonderheiten, denn der SQL Server
> muss das JSON Format ebenfalls unterstützen.

Wenn das tatsächlich ein Problem sein sollte, taugt entweder der 
SQL-Server oder die JSON-Struktur nix (wofür auch immer man hier JSON 
brauchen sollte...).

Sorry, aber das ist das logische Excerpt deines Statements...

Oder bezog sich das nur auf "Abwärtskompatibilität"? Dann: logisch, eine 
nicht vorhandene Spalte kann man natürlich nicht verwenden. Dann sollte 
aber, eben wegen der Abwärts-Kompatibilität ein entsprechender 
Upgrade-Mechanismus eingebaut sein. Sprich: der Code hat zu 
kontrollieren, ob die Datenstruktur des Backend seinen Erwartungen 
entspricht, und falls nicht, entsprechend zu ergänzen, ggf. natürlich 
auch erst nach Rückfrage und mit Admin-Rechten.

Das schafften und schaffen Zehntausende von DB-Anwendungen problemlos 
über mehrere Jahrzehnte ihrer Entwicklung hinweg. Die benutzen 
allerdings weit überwiegend auch nicht JSON. Wozu auch? Das braucht man 
nur, wenn man das DB-Backend übermäßig abstrahieren will. Wozu will man 
das? Typisch reicht eine Abstraktion auf etwa der Ebene von ODBC 
vollkommen aus (und ist obendrein vielfach effizienter als dieses 
JSON-Gesülze, was letztlich meist auch wieder nur genau darauf 
zugreift).

Die Frage ist also eigentlich: Wozu, zum Teufel, ist JSON eigentlich 
nützlich?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NOSQL Datenbanken arbeiten mit Datensätzen in der Regel mit JSON 
Struktur. Es sind einfache Text-Blöcke mit irgend welchen Parametern. So 
eine Datenbank eignet sich hervorragend um z.B. einen Webshop auf zu 
bauen, wo man tausende von Produkten mit unterschiedlichste Parameter 
hat.
Beispiel:
https://de.farnell.com/omron-electronic-components/g3vm-41gr5/relay-mosfet-sop-spst-no-40v-0/dp/2065747?ICID=I-HP-PP-OMRON-G3VM-WF1632772/omron-electronic-components/g3vm-41gr5/relay-mosfet-sop-spst-no-40v-0/dp/2065747?ICID=I-HP-PP-OMRON-G3VM-WF1632772
bei "Produktspezifikationen"

In so eine Datenbank kann man problemlos alle Technischen Parameter rein 
bekommen und sogar danach suchen und das auch noch blitzschnell, da die 
Datenbank das JSON Format optimiert verwalten kann.

Seit 2008 wurde das JSON Format in der SQL Spezifikation mit verankert 
und seither haben die meisten Datenbanken diese neue (ähm ,jetzt 10 
Jahre alte) Spezifikation übernommen. Der Vorteil liegt daher darin dass 
man herkömmliche Tabellen mit zusätzlichen Spalten im JSON Format 
kombinieren kann, damit kann man eine unbegrenzte Anzahl von 
Teilespezifischen Parametern in der Datenbank hinterlegen und mit 
Standard SQL Befehlen auch danach suchen. Es kombiniert somit eine 
herkömliche Tabellenstruktur mit der Mächtigkeit einer NOSQL Datenbank 
(z.B. Mongo-DB).
Beispiel eines SQL Befehls um in einen JSON Datensatz mit einem 
bestimmten Parameter zu finden:
SELECT JSON_EXTRACT(TecData, '$.Strom') AS TC, bauteillager.* FROM bauteillager
WHERE JSON_EXTRACT(TecData, '$.Strom') LIKE '%100%'
Hier wird in der Spalte TecData, nach dem JSON Parameter "Strom" 
gesucht, der Wert muss 100 enthalten.
Alle Datensätze die diesen Parameter erst gar nicht haben treffen schon 
mal nicht zu.

Wie man sieht kann mit einfach Mitteln was ein SQL Server von Haus aus 
bietet komplexe Abfragen sehr einfach lösen.
Auch Kombinationen von mehreren JSON Parametern sind somit kein Problem 
mehr.

Der nächste Vorteil ist, dass Webanwendungen dieses JSON Format 
ebenfalls sehr gut unterstützen, z.B. wenn man andere Programme an EleLa 
anbinden möchte - weil es einfach ein Standard ist.

Nur leider hat Microsoft den SQL Standard von 2008, erst 2016 
implementiert und MySQL in V5.7 ist der nicht richtig drin, erst ab V8. 
MariaDB macht das bereits seit V10.2 und hat sogar noch zusätzliche JSON 
Befehle mit dabei. SQLite unterstützt JSON ab V3.9 (aktuell ist SQLite 
in V3.25), also auch schon lange.

Es kam immer mal wieder der Wunsch bauteilspezifische Parameter mit 
hinzufügen zu können, daher diese Erweiterung. Vor ein paar Monaten 
lernte ich erst die Vorzüge von NOSQL Datenbanken kennen, es gibt dazu 
einige gute Youtube Videos. Und ich lernte kennen wie man die NOSQL 
Vorzüge sehr einfach in einer SQL Datenbank nutzen kann.

Und ja, EleLa ist abwärtskompatibel zu allen anderen V3 Versionen ;-)
Updates macht EleLa selbstständig - sofern der Datenbanklogin, den EleLa 
nutzen darf entsprechende Rechte besitzt. Hat EleLa nicht die Rechte 
oder kennt die Datenbank die zusätzliche JSON Befehle nicht, so schlägt 
das Update fehl - und man kann problemlos die Vorgängerversion (EleLa 
V3.0) weiter nutzen.


c-hater schrieb:
> Wozu, zum Teufel, ist JSON eigentlich nützlich?
JSON in EleLa ist teuflisch gut ;-)

Autor: Kai 1. (derkai1985)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huhu,

also vorab will ich sagen, dass dieses Tool der absolute Hammer ist!😁👍 
Bin absolut zufrieden!

Ich hab aber noch ne Frage😁 und zwar ich hab jetzt vorgestern ein MySQL 
Server auf nem Raspberry Pi realisiert und es läuft alles top. Kann mit 
meinem PC drauf zugreifen, läuft👍 nur eine Sache hab ich nicht 
hinbekommen. Wenn ich auf dem Pi ein Bauteil anlege, bekomme ich die 
Änderung nicht auf meinem Windows PC sofort angezeigt. Entweder hab ich 
bei der Einrichtung irgendwas verbockt oder ich kapiere es nicht. Das 
neue Teil bekomme ich nur angezeigt wenn ich das Programm neustarte.🤔 
Geht das mit dem live anzeigen überhaupt?

Mit freundlichen Grüßen und frohe Weihnachten

Kai

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rechtsklick auf der Tabelle -> Aktualisieren.
Das geht bei jeder Tabelle.

Automatisch macht das EleLa nicht, außer wenn eine Menge von einem 
Bauteil geändert wird, da fragt EleLa zuvor immer die Datenbank nochmal 
ab.

Autor: Kai 1. (derkai1985)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh cool😁👍 danke.

Bin auf jeden Fall gespannt ob das später so alles funktioniert wie ich 
mir das denke😊. Warte nun auf die Komponenten und das Display.

Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
********************************************************
**   Wichtig! **
********************************************************


Noch ein Hinweis wie man die technischen Daten eingeben sollte, damit 
die Suche die gewünschte Ergebnisse liefern kann.

Sofern es sich um einen Zahlen-Parameter handelt:
Die Bezeichnung des Parameters sollte die Maßeinheit mit beinhalten, ich 
habe diese z.B. in [] geschrieben. ("Strom [A]")
Die Werte sollte als reine Zahlenwerte eingegeben werden. Ob man den 
Dezimaltrenner als . oder , eingibt ist egal, 1000-Trennzeichen dürfen 
nicht verwendet werden.
Nach der Zahl darf kein Text mehr sein.

EleLa prüft die Eingabe nicht, denn man kann hier problemlos Texte 
eingeben.

In den Bildern habe ich die Eingabe gezeigt, wie man die Daten eingibt, 
im zweiten Bild ist die dazu gehörige SQL Abfrage, so wie diese später 
in der Suche verwendet wird. Die Eingabe wird in der Datenbank während 
der Abfrage von einem String in eine Zahl konvertiert, anschließend der 
Wert verglichen.
Bei der Konvertierung String in Zahl wird automatisch noch eine 
Komma-Eingabe in ein Punkt gewandelt, damit die Konvertierung in eine 
DOUBLE Zahl auch klappt.

Das wird dann später so in der EleLa Dokumentation stehen.

: Bearbeitet durch User
Autor: Peter (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,
dieses Tool funktioniert sehr gut, würde dafür auch gerne etwas 
bezahlen.
Wir fertigen kleine Stückzahlen, aber in der Regel viele verschiedene 
Bauteile die nicht alle auf die Bestückungsmaschine passen.
Dafür fräsen wir uns Schablonen in die dann Gurtabschnitte befestigt 
werden. Dazu ist wichtig bei SMD Bauteilen die Verpackung zu kennen.
Es wäre schön wenn man zur Bauteilinfo auch die Gurtbreite, 
Bauteilabstand und Gesamtgurtdicke eingeben könnte.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
Dankeschön!
Wegen Bezahlen, mir eine Mail schreiben oder per Paypal an die E-Mail 
Adresse wie es in der EXE bei Extras->Info steht.

Diese Daten der SMD Verpackung kann man zusätzlich als Grafik zum 
"Gehäuse-F5" hinzufügen und da kann man im Handbuch ein PDF zum Gehäuse 
/ der Verpackung hinzufügen. Dieses Gehäuse ist dann dem 
Bauteil->Gehäuse/Lager zugeordnet und somit ist die Grafik auch unter 
Projektpositionen ersichtlich.

Alternativ könnten weitere Daten ab EleLa V3.1 in Bauteil > 
Gehäuse/Lager als "Technische Daten" eingetragen werden, die werden dann 
(aktuell noch nicht) bei Projektposition ebenfalls mit eingeblendet.

Autor: Ben G. (benson85)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

wirklich ein tolles Tool.

Ich habe mit der lokalen sqlite-3 Datenbank angefangen und wollte nun 
auf MariaDB 10.3 umsteigen.

Beim Import der sqlite-3 Datenbank bekomme ich folgende Fehlermeldung:
SQL Error: Data too long for column 'Wert' at row1 
(mnDBExportClick|TfrmImportExport.btnImportClick|Tbl:projektpos ID:8)/( 
$0000000010005E762)

Danke und Grüße,
Ben

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst einmal die aktuelle SQLite Datenbankdatei zippen, zur Sicherung.

In der Tabelle "projektpos" in dem Datensatz mit der ID=8 ist in der 
Spalte "Wert" ein zu langer Text drin. Dies kann mit EleLa 
folgendermaßen korrigiert werden:

Die Datenbank nochmal mit EleLa als SQLite öffnen und:

Unter Extras->Datenbank kann der SQL Befehl:
SELECT * FROM projektpos WHERE ID=8
eingegeben werden. Dann die Taste "Execute" drücken.

Dann sollte eine einzige Zeile erscheinen, die Spalte "Wert" darf nicht 
mehr als 50 Zeichen enthalten (wobei UTF-8 Zeichen bis zu 4 Byte je 
Zeichen einnehmen können, z.B. Umlaute).
Man kann in dieser Ansicht den Text in der Spalte "Wert" somit verkürzen 
und dann den Datensatz speichern.

Anschließend kann man die korrigierte SQLite Datenbank in MariaDB 
importiert werden. Einfach den Import erneut ausführen, EleLa 
überschreibt dann alle Daten wieder.

Das Problem kommt daher, dass in SQLite so ziemlich alles ohne spezielle 
Prüfung in die Datenbank rein geht, andere Datenbanken sind da strenger.

: Bearbeitet durch User
Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Suche anhand der "Technischen Daten" mit "Suchen-F5". Ich hatte mir 
ein paar Tage lang überlegt wie die Eingabe am Sinnvollsten und 
Effizientesten ist, das ist dabei heraus gekommen 😁👍

- Mit der "Zahnrad Taste" können beliebig viele technische Daten 
Abfragen hinzugefügt werden. Jedes mal wenn man da drauf drückt kommt 
eine neue leere Zeile.

Je Zeile:
- Taste "-" löscht die Zeile wieder
- DropDown Auswahlfeld wählt den Parameter aus, den man zuvor in 
Gehäuse/Lager als technische Daten eingegeben hat
- Zahl / Text interpretiert die Suche als Zahl oder Text. Wobei eine 
Zahl immer als Double Zahl gerechnet wird
- ">=" Eingabe optional Von Wert
- "=" Eingabe optional Exakter Wert, wobei bei Texteingabe ein "*" als 
Wildcard verwendet werden kann.
- "<=" Eingabe optional Bis Wert
- Aktiv bedeutet dass diese 3 Werte-Begrenzer aktiv sind, damit kann man 
sie inaktiv schalten um zu sehen was die Datenbank so zeigt ohne dass 
man den Parameter löschen muss.

Tabelle:
- Je ausgewählten Parameter wird eine Spalte mit dem Parametername 
eingeblendet. Mit diesen Spalten kann man auch sortieren.

Getestet aktuell mit:
SQLite / MariaDB 10.3

EXE V3.1.18C28 ist als Win32/Win64 im Download Ordner verfügbar.
http://www.mmvisual.de/elela

...
Die technischen Daten werden in EleLa demnächst noch weiter ausgebaut
- Projekt Position mit eingeblendet
- Filtern bei Suche bei "Typ-F8"

Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nun sind die "technischen Daten" in allen EleLa Teilen eingebunden:

- Bauteil-F2 > Gehäuse/Lager: Eingabe der technischen Daten je Bauteil

- Suche-F5 (TecData3.png): Filtern anhand den technischen Daten & 
Ansicht aller technische Daten je Bauteil

- Typ-F8 (TecData4.png): zusätzlich zum Typ nun auch Filtern anhand 
technischen Daten & Ansicht aller technische Daten je Bauteil. Die 
Gehäuse-Liste wird entsprechend mit angepasst.

- ProjektPos / GerätePos (TecData5.png): Ansicht der Technischen Daten 
wenn man diese im "Extras" Menü aktiviert.

- Bauteil Auswahldialog: Anzeige der technischen Daten wenn ein Bauteil 
ausgewählt wird. (z.B. bei Bestellung oder ProjektPos)

Die EleLa V3.1.18C29 kann hier geladen werden:
http://www.mmvisual.de/elela

- Win32/Win64
- Datenbank: SQLite/MariaDB V10.3

Wer nicht genau weiß welche Datenbank man nutzt, EleLa zeigt die 
Versions-Info unter Extras-F10 > Log nach jedem Start an:
19:31:45 29.12.18 Start program V3.1.18C29-64
19:31:45  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
19:31:45  Compile: 28.Dez.2018 22:14:31 SVN: 255
: : :
19:31:47 Connect database...
19:31:47 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 10.3.7-MariaDB
19:31:47 Database Version: V3.1.18B29
19:31:48 Database connected.

In diesem Beispiel ist Maria-DB mit V10.3.7 aktiv und die SQLite DLL 
V3.26.0 mit vorhanden. (Die aktuelle SQLite DLL ist mit im ZIP vom 
Download.)

Autor: Ben G. (benson85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus M. schrieb:

> Dann sollte eine einzige Zeile erscheinen, die Spalte "Wert" darf nicht
> mehr als 50 Zeichen enthalten (wobei UTF-8 Zeichen bis zu 4 Byte je
> Zeichen einnehmen können, z.B. Umlaute).
> Man kann in dieser Ansicht den Text in der Spalte "Wert" somit verkürzen
> und dann den Datensatz speichern.

Super, danke. Das hat funktioniert.

Autor: Ben G. (benson85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage zu dem Tab Geräte. Ich habe aus dem vorherigen Thread 
zur v3.0  entnommen, dass diese Funktion noch nicht volständig 
implentiert ist. Aber gibt es momentan überhaupt einen Unterschied, ob 
ich ein Projekt oder ein Gerät anlege? Ein Projekt lässt sich nämlich 
noch keinem Gerät zuweisen oder übersehe ich etwas?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, momentan gibt es noch keine Unterschiede zwischen Projekt und 
Gerät.

Aktuell vorgesehen ist, dass man ein Projekt mit einem Bauteil 
verknüpfen kann. Wenn dieses Projekt gefertigt wird, so wird automatisch 
die Menge unter Bauteil > Gehäuse/Lager erhöht.

Nun kann dieses Bauteil (=gefertigtes Projekt) wieder in einem anderen 
Projekt oder Gerät weiter verwendet werden, so wie andere Bauteile auch.

Das Problem, bzw. was EleLa aktuell noch nicht kann ist:
Wenn dieses selbst gefertigte Bauteil (aus Projekt) zu wenig 
Lagerbestand hat und man möchte es bestellen, dann geht es in die 
Bestell-Liste und es wird nicht gezeigt dass dieses Bauteil eigentlich 
nicht bestellt werden kann, da Eigenproduktion (aus einem anderen 
Projekt).

Diese Erkennung "Bauteil wird gefertigt aus anderem Projekt" fehlt 
leider noch. Aktuell kann man sich nur damit behelfen, dass das Bauteil 
einen entsprechenden Bezeichnung erhält, z.B. "Netzteilplatine 
[Eigenprod]".

Ich selbst nutze den Abschnitt "Geräte" aktuell nicht, daher ist es 
leider noch nicht so weit wie ich schon vor längerer Zeit geplant hatte.

Autor: Ben G. (benson85)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm ok. Das ist ziemlich genau die Beschreibung zu dem was ich suche. 
Aber wie kann ich ein Projekt als Bauteil kennzeichnen und dieses 
Bauteil in einem weiteren Projekt weiterverwenden? Muss ich dazu das 
Ausgangsprojekt zuerst Versionieren?

Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nein, die Version ist etwas anderes.

Versionieren:
Wenn man z.B. ein Projekt zur Produktion gibt, dann erstellt man eine 
Version vom Projekt. Damit werden die Positionen gesperrt für 
Änderungen.

Nun sind noch Bugs in der Bestückung und man muss einzelne Bauteile 
abändern. Dann muss man das Projekt frei geben für Änderungen und man 
kann die Bauteile nochmal korrigieren. Damit sind die Änderungen in 
EleLa dokumentiert. Bevor es in die nächste Produktionsrunde geht kann 
man den Stand wieder versionieren.

Bei einer neuen Version sollte man am Besten ein neues Bauteil unter 
"Gehäuse/Lager" anlegen, damit es auch hier klar ist dass es nicht das 
"alte" Board ist. Bei Projekt muss dazu ebenfalls das andere Bauteil 
verknüpft werden.

Am besten einmal mit einer Test-Datenbank damit üben. Man kann dazu das 
EleLa Verzeichnis kopieren und in der Konfiguration von EleLa 
(Extras>Log>Optionen>Datenbank) eine andere Datenbankverbindung anlegen 
und sich die Datenbank danach kopieren.
Damit man bei den Datenbanken nicht durcheinander kommt und immer sofort 
weiß womit man verbunden ist kann man in der Titelleiste der EXE dies 
anzeigen lassen, es wird in den Optionen konfiguriert, siehe Bild.

Autor: René S. (thebit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

leider funktioniert die neue Version bei mir nicht. Schein ein Problem 
mit der Datenbank bzw. auch mit der Software zu sein.

Nutze ich meine MySQL (V5.7.18) Online Datenbank konvertiert er zwar die 
Datenbank kann sie danach aber nicht öffnen, gleiches passiert wenn ich 
die Datenbank von V3.1 neu anlegen lasse:
20:49:28 ---------
20:49:28 30.12.18 Start program V3.1.18C29-64
20:49:28  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
20:49:28  Compile: 28.Dez.2018 22:14:31 SVN: 255
20:49:28 Use INI file: C:\EleLa\EleLa.ini
20:49:28 Parameter [DB] Protocol=mysql-5
20:49:28 Parameter [DB] HostName=xxx.xxx.xxx.xxx
20:49:28 Parameter [DB] Port=3306
20:49:28 Parameter [DB] Database=elela
20:49:28 Parameter [DB] User=xxxxxx
20:49:28 Parameter [DB] Password=*****
20:49:28 Parameter [Programm] VorlageDir=C:\EleLa\Vorlage\
20:49:28 Parameter [Programm] TempDir=C:\EleLa\Temp\
20:49:28 Parameter [Programm] QueryCancel=1
20:49:28 Parameter [Programm] VersionCheck=1
20:49:28 Parameter [Bauteil] DefHandbuchDir=C:\EleLa\Handbuch
20:49:28 Parameter [Projekt] DefHandbuchDir=C:\EleLa\Projekt
20:49:28 Parameter [Projekt] GeraetDefHandbuchDir=C:\EleLa\Gerät
20:49:28 Parameter [Projekt] DokuDefHandbuchDir=C:\EleLa\Doku
20:49:31 Connect database...
20:49:31 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 5.7.18
20:49:31 Database Version: V3.0.17A12
20:49:31 Do Update 65 from Database.
20:49:31 CreateNewField (kiste,ID_ID,INTEGER)
20:49:34 CreateNewField (bauteillager,TecData,JSON)
20:49:35 Update 65 finish.
20:49:36 New Database Version: V3.1.18B29
20:49:37 Error: Cannot open database! Unknown MySQL data type! (TypTreeOpen)

Die alte Version kann danach auch nicht mehr zugreifen
20:50:48 ---------
20:50:48 30.12.18 Start program V3.0.18B15-64
20:50:48  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.4-stable
20:50:48  Compile: 28.Okt.2018 10:16:53 SVN: 224
20:50:48 Use INI file: C:\EleLa\EleLa.ini
20:50:48 Parameter [DB] Protocol=mysql-5
20:50:48 Parameter [DB] HostName=xxx.xxx.xxx.xxx
20:50:48 Parameter [DB] Port=3306
20:50:48 Parameter [DB] Database=elela
20:50:48 Parameter [DB] User=xxxxxx
20:50:48 Parameter [DB] Password=*****
20:50:48 Parameter [Programm] VorlageDir=C:\EleLa\Vorlage\
20:50:48 Parameter [Programm] TempDir=C:\EleLa\Temp\
20:50:48 Parameter [Programm] QueryCancel=1
20:50:48 Parameter [Programm] VersionCheck=1
20:50:48 Parameter [Bauteil] DefHandbuchDir=C:\EleLa\Handbuch
20:50:48 Parameter [Projekt] DefHandbuchDir=C:\EleLa\Projekt
20:50:48 Parameter [Projekt] GeraetDefHandbuchDir=C:\EleLa\Gerät
20:50:48 Parameter [Projekt] DokuDefHandbuchDir=C:\EleLa\Doku
20:50:50 Connect database...
20:50:50 DB.Version: SQLite-DLL: 3.25.2 / MySQL: 5.7.18
20:50:50 Database Version: V3.1.18B29
20:50:52 Error: Cannot open database! Unknown MySQL data type! (qBauteil)

lasse ich die 3.1 mit lokaler Datenbank laufen funktioniert zwar die 
Verbindung zur Datenbank jedoch kann ich meine vorher exportierten Daten 
nicht einlesen. Der Button ist nicht aktiv.

Grüße TheBit

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Fehler:
"Unknown MySQL data type!"
kenne ich. Der kommt bei der MySQL Datenbank - noch. Ich habe zu den 
Komponenten Entwicklern der Datenbank Komponente bereits ein Bugreport 
geschrieben.
Hingegen bei der aktuellen MariaDB (was eigentlich identisch sein 
sollte) funktioniert die Datenbankverbindung.

Am Besten noch etwas Abwarten mit V3.1, das wird noch korrigiert.

Die neue EXE hat den Update der Datenbank gemacht weil MySQL den Feldtyp 
"JSON" bereits kennt:
"CreateNewField (bauteillager,TecData,JSON)"
Jedoch leider akzeptiert die Datenbank Komponente diesen Typ noch nicht 
bei der Datenabfrage.

Es gibt nun 2 Möglichkeiten:
- Entweder, wenn ein Backup vorhanden ist, die Datenbank löschen und von 
EleLa neu anlegen lassen und das Backup einspielen
- oder die Datenbank manuell zurück ändern auf "Vor Update", da kann ich 
auch gerne Helfen. (Das eine Feld "TecData" löschen und die 
Datenbank-Version um 1 Tag zurück setzen.)

: Bearbeitet durch User
Autor: René S. (thebit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus Markus,

ich bin wieder zurück auf 3.0.18B15, Datenbank hatte ich vorher 
gesichert.
Letzteres mache ich allerdings im phpMyAdmin direkt.
Was mich allerdings immer noch wundert das ich auch bei der lokalen 
Variante mit sqlite Datenbank das Backup aus der Vorherigen Version nich 
einspielen kann da der Button ausgegraut bleibt.

René

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die EXE meint wegen der internen Exception dass sie nicht korrekt 
starten konnte, dann sperrt sie sich weg, nicht dass man mit einer halb 
gestarteten EXE sich noch die Daten kaputt macht. Es ist eine 
Sicherheitsmaßnahme die ich schon seit V1.x eingebaut hatte.
Und sie wirkt gut, wie man sieht ;-)

Autor: René S. (thebit)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Markus,

hmmm lokal hatte ich doch die Datenbank mit der 3.1 in einem anderen 
Verzeichnis komplett neu als sqlite erstellt und wollte dann die Daten 
aus der V3.0 importieren.

Ich habe jetzt die backup DB aus der 3.0 ins Verzeichnis der 3.1 kopiert 
und dann umbenannt. V3.1 öffnet die Datei macht das update auf V65und 
ich könnte auch damit arbeiten. Allerdings bleibt der Export/Import 
Button ausgegraut. ich hatte das auch mit ner V3.0.18B22 probiert. Auch 
dort bleibt nach einem Start ohne .ini File (wird beim Start erzeugt) 
und ner automatisch neu erzeugten sqlite DB der Export/Import Button 
ausgegraut.
01:06:27 31.12.18 Start program V3.0.18B22-64
01:06:27  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.4-stable
01:06:27  Compile: 28.Okt.2018 10:16:53 SVN: 231
01:06:27 Use INI file: C:\ele\EleLa.ini
01:06:27 Parameter [DB] Protocol=sqlite-3
01:06:27 Parameter [DB] Database=EleLa.sq3
01:06:27 Parameter [Programm] VorlageDir=C:\ele\Vorlage\
01:06:27 Parameter [Programm] TempDir=C:\ele\
01:06:27 Parameter [Bauteil] DefHandbuchDir=C:\ele\Handbuch
01:06:27 Parameter [Projekt] DefHandbuchDir=C:\ele\Projekt
01:06:27 Parameter [Projekt] GeraetDefHandbuchDir=C:\ele\Gerät
01:06:27 Parameter [Projekt] DokuDefHandbuchDir=C:\ele\Doku
01:06:29 Connect database...
01:06:29 DB.Version: SQLite-DLL: 3.25.2
01:06:29 Database Version: V3.0.17A12
01:06:29 Database connected.

: Bearbeitet durch User
Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da habe ich Dich wohl etwas missverstanden.
Bei SQLite gibt es kein Import-/Export, denn da ist die Datenbank-Datei 
bereits als Datei direkt verfügbar die man nur noch weg kopieren 
braucht.
Das Import/Export braucht es nur für SQL Server, damit man die Daten von 
da in ein für EleLa transparentes Format auslesen kann, dieser Export 
erzeugt eine SQLite Datenbank, die wiederum wieder direkt mit EleLa 
genutzt werden kann.

Quelle: SQLite Datenbank Datei
Import in: irgend ein SQL Server, den EleLa unterstützt

Export aus: irgend einem SQL Server, den EleLa unterstützt
Ziel: SQLite Datenbank Datei

Somit ist das ganze in sich konsistent.

Damit ist es möglich relativ schnell zwischen unterschiedlichen 
Datenbanken zu wechseln oder die Daten auf einem anderen Server um zu 
ziehen, ohne dass es spezielle Tools benötigt.
Und da die Sicherung ebenfalls eine original SQLite EleLa Datenbank ist, 
kann diese wieder jederzeit mit EleLa geöffnet werden, auch Updates kann 
EleLa im Backup durchführen, so dass ein alten Backup mit einer neueren 
EleLa Version genutzt werden kann.

EleLa kann auch autark per Task Sheduler z.B. 1x Täglich mit dem Backup 
Parameter "-b" gestartet werden. Dann macht EleLa ein Backup der SQL 
Server Datenbank und beendet sich anschließend wieder.

Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die EleLa V3.1.18C30 kann hier geladen werden:
http://www.mmvisual.de/elela

- Win32/Win64
- Hilfedatei "EleLa.chm"
- Für Datenbank: SQLite/MariaDB V10.3

Bitte die EXE noch nicht mit MySQL, PostgreSQL und MsSQL verwenden.

Nun kann im Konfigurationsdialog die Parameter der technischen Daten 
angepasst werden, bzw. gelöscht wenn man falsche eingegeben hat.

Außerdem ist die EleLa Hilfe mit den neuen Features aktualisiert.

Autor: Eduard ". (edtheb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
was ich bisher so gelesen habe, scheint die Software ein Schmuckstück zu 
sein :).

Bisher verwalte ich die Bauteile (und vieles mehr) mit einer 
Excel-Tabelle.
Ich hatte gehofft, dass ich die Bauteile (Excel-Tabelle) importieren 
kann. Geht das? Bei der Suche in den Anleitungen nach "Importieren" habe 
ich immer nur etwas über Datenbank-Import finden können.
Wenn ja, wie geht das und wo kann ich die "Datenstruktur" erkennen, die 
solch eine Importdatei aufweisen muss, um die Excel-Tabelle 
dementsprechend anzupassen. Wie z.b.
Spalte A -> Interne Artikelnummer
Spalte B -> Art (Widerstand, Elko, ...)
usw.

Falls dies nicht geht, gibt es ein Work-Around? Ich kann mir vorstellen, 
dass ich nicht der erste/einzige bin, der von Tabellen zur Datenbank 
wechselt.

Vielen Dank für die Info schon mal im voraus.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Import der fremde Daten ist immer eine Sonderbehandlung, daher gibt 
es das nicht in EleLa.
Das geht auch deshalb nicht so einfach weil die Teile-Daten nicht wie in 
einer Excel-Tabelle in einer einzigen Tabelle stehen, sondern unterteilt 
sind in "Bauteil" und "Variante".

Das hat den Sinn:
Bauteil Bezeichnung: "C 100 nF"

Das ist ein weitgehend allgemeiner Begriff für eine Kondensator mit dem 
Wert von 100 nF. Nun werden in EleLa sämtliche Variationen davon in der 
Detail-Tabelle "Gehäuse/Lager" eingetragen, sozusagen die zweite 
Tabelle.

- Axial, 50V
- SMD 1206
- SMD 0805
- MKP 250V~
- ... usw.

Das vewrschafft einem den sofortigen Überblick was man so allen mit 
diesem Wert besitzt. Hat jedoch den Nachteil dass man eine 
1-Dimensionale Tabelle nicht wirklich ohne hämdisches Zutun in diese 
2-Dimensionale Struktur bekommt.

Die Datenstruktur von EleLa ist hier dokumentiert:
http://www.mmvisual.de/Hilfe/EleLa/TutorialDB/TutDB.htm
Der Import würde so aussehen:
Man müsste sich anhand der Excel Tabelle einen SQL Script mit den Daten 
generieren und dann diese für die Datenbank ausführen.
- Tabelle tree_typ ist bei "Typ-F8" die Art der Teile
- Tabelle "bauteil" sind die Bauteile
- Tabelle "bauteillager" die varianten
- Der Verweis zu den Gehäusen muss über die Tabelle "gehause" geschehen.
- Die Lagerorte über "kiste" und dem Feld "bauteillager.LagerNr"
- Verweis zu den Handbuch PDF Dateien? Gibt es schon eine Ordnerstuktur?
- Bilder zum Bauteil vorhanden?

Das ist in Summe sehr aufwändig und für jeden Import sehr speziell um zu 
setzen, daher lohnt sich das erst ab ca. 500-1000 Teilen.

Autor: Erwin K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
EleLa gefällt mir wirklich sehr. Ich nutze es schon eine Weile rein 
privat.
Was mich aber etwas stört, sind die missionarischen Durchhalteparolen, 
die als Pflichtlektüre unten eingeblendet werden. Gibts da was zum 
übertünchen?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Früher stand da was wegen spenden. Jetzt steht da halt mal was neues. 
Ich finde es gut.
Nein, aktuell kann man das nicht abschalten.

Autor: Jaroslaw K. (root666)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen Markus,
mir geht eine Funktion im Bereich "Bauteile in Kiste/Fach verwalten" ab:
Es wäre super, wenn man den Inhalt von 2 Fächern miteinander vertauschen
könnte (und zwar unabhängig davon in welcher Kiste sie sind).
Ich mache so etwas ab und zu um die unterschiedlich großen Fächer
verschiedener Kisten optimal zu nutzen und bisher muss ich beide
beteiligten Gehäusen separat verschieben.
Was hältst Du davon?

Liebe Grüße

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das ist eine sinvolle Funktion. Ich werde das in EleLa V4 
berücksichtigen, da wird die Lagerhaltung umgebaut und deshalb mache ich 
das in V3.1 nicht mehr rein.

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die neue Version. Vorallem möchte ich mich für 
"technischen Daten" bedanken. Das habe ich mir schon lange gewünscht :)

Ich habe Schwirigeiten die aus Altium generierte BOM zu importieren.
Designator,Barcode

"C8","002098"
"C9","002098"
"C10","002089"

Die Form kann ich aus Altium nicht beeinflussen, nur zusätzliche Spalten 
kann ich hinzufügen. EleLa kann beim Import mit Designator und mit " 
leider nicht umgehen.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klappt der Import, wenn man in einem Text-Editor alle " in nichts 
ersetzt?

Oder wenn man das , in ; ersetzt?

Man könnte diese Daten evt mit Excel importieren und als CSV in einem 
anderen Format speichern.

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man " in nichts ersetzt, dann funktioniert es. Das , in ; zu 
ersetzen macht keinen Unterschied.

Man kann die CSV-Datei vorher bearbeiten. Es wäre natürlich schöner, 
wenn es direkt funktionieren würde. Es gibt ja nur 2 Unterschiede zu dem 
unterstützten Format: "Designator" und ".

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schaue mir das an. Sollte eigentlich auch gehen, da ".." als CSV 
Standard gilt.

Autor: Markus M. (mmvisual)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@ellboy:
ich habe eine Test CSV erstellt und Bauteile mit dem Barcode angelegt, 
da klappt der Import problemlos, Testdatei im Anhang.

Bei Deiner Datei ist wohl irgtend etwas anders, kannst Du mir die mailen 
oder hier posten?

Die Bezeichnung "Designator" kennt ELeLa nicht, es werden diese 
Bezeichner automatisch erkannt:
http://mmvisual.de/Hilfe/EleLa/ProjektCADCsv.htm

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ImportTest.csv geht bei mir auch. In meiner CSV hatte ich oben:
Symbol,Barcode

in ImportTest.csv ist es
"Symbol","Barcode"

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann man eigentlich mehr als nur 1 Parameter bei den "Technischen 
Daten" eingeben(V3.1.18C30-64)?

Kann man die Informationen daraus auch im Info-Feld nutzen?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ellboy schrieb:
> Wie kann man eigentlich mehr als nur 1 Parameter bei den "Technischen
> Daten" eingeben(V3.1.18C30-64)?

Beim Wert Pfeiltaste nach unten auf der Tastatur

> Kann man die Informationen daraus auch im Info-Feld nutzen?

Nein, noch nicht. Ich schreibe es auf damit man es machen könnte.

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Darauf wäre ich nie gekommen.

Autor: ellboy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube es gibt einen Bug. Wenn man nachträglich "Current" in 
"Current[A]" umbenennt, dann merkt sich das Program den alten Namen und 
in der DropDown-Liste ist es weiterhin verfügbar, der neue Namen aber 
nicht.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Eintrag wird gespeichert wenn man den Datensatz mit der "Speichern" 
Taste speichert, wenn man nur zu einem andern Bauteil wechselt kann es 
sein dass es nicht übernommen wird, muss ich noch nach schauen.

Man kann unter:
Extras > Log > Optionen > Globale Params > Technische Daten
die Liste manuell anpassen. EleLa erweitert diese Liste selbst anhand 
neuer Parameter, nur hier hat man die Möglichkeit die nicht mehr 
benötigte aus der Liste zu entfernen. Eine Änderung dieser Liste wirkt 
sich nicht auf bestehende Gehäuse/Lager Datensätze aus, man könnte sogar 
diese Liste leeren und EleLa baut sie dann mit der Zeit wieder neu auf, 
anhand der Datensätze die existieren.

Autor: Jost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
es gibt ja den Shortcut STRG-T um zur letzten Ansicht zu springen, das 
geht aber nur rückwärts.

Mir fehlt etwas, mit dem man zwischen den letzten Ansichten hin/her 
springen kann - so ähnlich wie das bei ALT-TAB unter Windows 
funktioniert.

a.) nur ALT-Tab: letzte Ansicht hin/her
b.) ALT bleibt gedrückt: wechsel der letzten 3 Ansichten im Kreis herum.
Vielleicht sogar ein kleines Ansichtsfenster einblenden, damit man 
schnell was nachsehen kann (ohne wirklich wechseln zu müssen)

Gruß Jost

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Innerhalb eines Programms ist das in der Regel Strg+Tab. Ich schreibe 
mir das mal auf.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ellboy schrieb:
> ImportTest.csv geht bei mir auch. In meiner CSV hatte ich oben:
>
>
> Symbol,Barcode
> 
>
> in ImportTest.csv ist es
>
> "Symbol","Barcode"
> 

EleLa sucht/erkennt automatisch anhand der ersten Zeile CSV Zeile die 
Formatierung der CSV Daten. Wenn da nur ein , (Komma) als Trenner drin 
steht, dann werden alle folgende Zeile anhand dem versucht zu 
decodieren.
Wenn nun die folgenden Zeile so aussehen:
"C18","123456"
dann ist das zwar auch CSV, jedoch anders codiert.
Ich weiß jetzt nicht ob es Sinn macht für jede Zeile separat die 
Codierung zu ermitteln. Besser ist es wenn der Kopf gleich aussieht wie 
die Daten.
    // Trennzeichen Erkennen
    iTyp := 0;
    if Pos('";"', s) > 1 then
      iTyp := 1
    else if Pos('","', s) > 1 then
      iTyp := 2
    else if Pos('"'#9'"', s) > 1 then
      iTyp := 3
    else if Pos(#9, s) > 1 then
      iTyp := 4
    else if Pos(';', s) > 1 then
      iTyp := 5
    else if Pos(',', s) > 1 then
      iTyp := 6; 

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wann hast Du denn die Postgres-Unterstützung für die V3.1 drin?

Im Moment können wir ja auch die aktuellste V3.0 nicht verwenden, wegen 
den leeren Feldern...

Brauchst Du noch weitere Infos bzgl. dem Fehler von mir? Vielen Dank!

Flo

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Datenbank Komponente selbst ist noch Buggy, deshalb klappt es noch 
nicht. Ich warte darauf bis es dazu ein Update vom Zeos Team gibt, 
danach gibt es die aktuelle EXE für PostgreSQL.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Info!

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Flo
Teste bitte ob EleLa nun mit PostgreSQL richtig geht, bei mir scheint es 
zumindest so aus zu sehen. V3.1.19131-64 kannst Du von hier laden:
http://www.mmvisual.de/elela
Als Win64 Version. Wenn Du die 32 Bit EXE brauchst schreib mir.

Der PostgreSQL Server selbst hat auch noch ein Bug, in EleLa habe ich 
den umgangen.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Flo
In V3.1.19201 geht nun die Suche-F5 richtig (PostgreSQL).

@All
EleLa kann nun mit dem MySQL Server auch wieder kommunizieren, sogar mit 
MySQL V8

Aktuell habe ich nur die Win64 Version erstellt. Tests mit MsSQL sind 
noch offen. Die andere Versionen kommen demnächst.

: Bearbeitet durch User
Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle EXE Versionen EleLa V3.1.19201 sind nun verfügbar:

http://www.mmvisual.de/elela -> EleLa_V3.1

- Win 32/64
- Linux 32/64
- RaspberryPi

Diese EXE geht mit allen Datenbanken außer MsSQL.
Bitte wie immer vor dem Update ein Backup der Datenbank erstellen.

Falls ein Bug auffällt, bitte mir schreiben.

Autor: Gottfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wird also v3.0 die letzte Version sein, welche ich installiere.
Da ich MSSQL 2014 verwende und 2016 sich nicht auf meinen Rechnern 
installieren lässt.
Warum wird jetzt json verwendet, anstelle des (so halbwegs) 
unterstützten XML? Zudem wird auch XML nicht von jeder Datenbank Nativ 
unterstützt.

Webserver und andere Tools unterstützen eher das XML Format, bei json 
ist es wiederum etwas schwieriger.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die JSON SQL Befehle existieren bereits seit 2008 in der SQL 
Spezifikation. Nur leider brauchen einige SQL Server Hersteller ca. 10 
Jahre um diese Spezifikation mit zu unterstützen.
Bei MSSQL kann man das Feld als VARCHAR(MAX) deklarieren, damit sind die 
technische Daten zumindest unter Gehäuse/Lager eingebbar. Jedoch kann 
man nicht nach den technischen Daten unter "Suchen-F5" oder bei "Typ-F8" 
danach suchen/filtern, da MSSQL2014 diese SQL Befehle noch nicht kennt.
Die Microsoft Programmierer selbst waren auch nicht klug genug das um zu 
setzen, deshalb musste MS die "Azure" Datenbank Firma einkaufen. Und 
warum der MSSQL Server nun nicht mehr mit Win7 geht verstehe ich auch 
nicht wirklich, ist wohl eher eine kaufmännische Entscheidung gewesen.

Als Alternative unterstützt EleLa noch weitere SQL Server und jeder kann 
diese wechseln wie er mag. Ich nutze eine Synology DS mit MariaDB. 
Synology ist mit den Updates recht fix und unterstützt schon lange 
MariaDB V10.3 (seit MariaDB V10.2 gehen die JSQN SQL Befehle).

Leider funktioniert die Datenbankkomponente, die EleLa verwendet mit 
MsSQL auch noch nicht richtig, daher können alle MsSQL Nutzer ohnehin 
leider noch nicht auf V3.1 updaten. Ich bin jedoch dran und hoffe auf 
eine baldige Lösung.

Autor: Gottfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, mein SQLite Manager kennt das json Format nicht, und auch kein 
XML.
Oracle (bis 10g) kennt weder json noch XML, und die rühmen sich mit 
deren SQL-Standard.

Hier ein Link über die json Implementierung:
https://modern-sql.com/de/blog/2017-06/was-ist-neu-in-sql-2016
Somit ist eigentlich nur die Syntax-Überprüfung in den Datenbanken 
vorhanden.
Und sehr viele json Funktionen gibt es laut diesen Tabellen auch nicht.
Somit wäre es sinnvoller eine TEXT spalte anzulegen und die 
Syntax-Prüfung von der Applikation (EleLa) durchführen zu lassen.

Anscheinend gibt es noch Unterformate zu json, wie das bson, cbor, 
Smile, ubjson, ...

Zudem ist json auch schon wieder veraltet, da nun auf Protocol Buffers 
umgestellt wird, da die um das 100-fache schneller ist als das XML, 
zudem 1/10tel weniger an Daten zur Übermittlung benötigt.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Gottfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja Microsoft ist da etwas langsamer. War auch bei C++ so, da dauerte es 
bis zum VS2010, bis die Headerdatei <cstdint> hinzugekommen ist.
Bis zum Jahr 2008 War dieses <cstdint> bzw. <stdint.h> nur Draft, und 
bei Draft kann sich noch vieles Ändern.
Dies wird auch der Grund sein, warum sie so etwas erst mit dem Standard 
implementieren, damit sie nicht ständig am Code herumwursteln müssen.

Wenns im MSSQL als VARCHAR(MAX) oder TEXT eingepflegt wird, wird das 
wohl auch funktionieren.

Somit ist EleLa V3.1 wieder im Rennen.

Ich verwende hauptsächlich PostgreSQL 9.5, da dies das letzte ist, 
welches mit PG-Admin III funktioniert und auch noch auf Windows 
XP-Rechner läuft. PG-Admin IV ist mir zu umständlich und zu langsam.

Ich habe auch einen P-touch Drucker, und mit der Software kann man sehr 
schön Barcodes ausdrucken, leider funktioniert eine Datenbankverbindung 
damit nur mit MSSQL, Excel, Access oder csv-Dateien.
Entweder ich mach mir ein SELECT, um die Daten als csv zu speichern, 
oder ich exportiere die Datenbank und importiere sie in einen MSSQL, um 
die Barcodes mit P-touch auszudrucken.
Hab gerade gesehen, das mit EleLa mit den SQL befehlen, die Daten in 
eine csv-Datei gespeichert werden können, da brauche ich nicht den Umweg 
mit MSSQL machen. Beim "P-touch Editor" kann auch das Trennzeichen 
umgestellt werden.

Super Programme, jetzt bin ich Happy :)

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gottfried schrieb:
> Hab gerade gesehen, das mit EleLa mit den SQL befehlen, die Daten in
> eine csv-Datei gespeichert werden können, da brauche ich nicht den Umweg
> mit MSSQL machen.

Ja, in EleLa habe ich umfangreiche Export-Funktionen implementiert, so 
kann von jeder Tabelle aus mit Rechtsklick der dazugehörige SQL Befehl 
in die Zwischenablage kopiert werden, den dann unter 
"Extras-F10>Datenbank" weiter verwenden.
Nichts ist schlimmer als nicht an seine eigene Daten so ran zu kommen 
wie man sie gerne hätte ;-)

Das "einfache" drucken mit dem P-Touch geht mit dem Feld "Info", das so 
ziemlich in jeder Tabelle vorhanden ist:
http://www.mmvisual.de/Hilfe/EleLa/Allgem.htm#DruckenEtikett

Autor: Martin L. (enz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich wollte heute 'mal Elela ausprobieren (Windows 10; Version: 
V3.0.18B15-64).
Allerdings gibt es Probleme bein Zugriff auf die Datenbank.
Die Datenbak (Maria-DB 10.3.7) liegt auf meinem NAS.

Die libmysql in der Version 6.1.11 64 bit habe ich ins Elela Verzeichnis
kopiert.

Folgende Konfiguration habe ich eingegeben:
Protocol=mariadb-10
HostName=192.168.178.10
Database=elela
User=elela

Wenn ich im Datenbank-Konfigurationsdialog auf "Teste Verbindung"
klicke, wird das Quadrat grün, soweit passt also Alles.

Nach speichern und Neustart von Elela erscheint im Log aber folgende
Fehlermeldung:
11:26:58 Error: Cannot open database! Can't receive Plaindriver!
(DB-Connect)

Hat jemand eine Idee was da schief gehen kann?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Fehlermeldung kommt von der Datenbank Komponente, es erkennt den 
Treiber nicht "Protocol=mariadb-10", er erwartet "MariaDB-10", jedoch 
EleLa konvertiert alles in Kleinbuchstaben.

Am Besten von hier:
http://www.mmvisual.de/elela -> EleLa_V3.1

die Win64 EXE V3.1 laden und die EXE im EleLa Verzeichnis einfach 
ersetzen. In dieser Version habe ich den Bug korrigiert, nun ist es egal 
in welchem Schreibstiel man das schreibt.

Alternativ:
"Protocol=mysql-5"
in der INI Datei einstellen, dann funktioniert es auch mit EleLa V3.0.

Autor: Martin L. (enz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Eingegeben hatte ich den String Maria-db nicht, sondern einfach nur im 
Drop-Down Menü ausgewählt.

Ich habe die Version 3.1 drüber kopiert.
Allerdings erscheint nun folgender Fehler:
"Database is newer as this Elela proram. Canot open the database!"
Siehe angehängten Screenshot.
Der Cursor verwendelt sich in ein den durchgestrichenen Kreis und es 
läßt sich kein Menü mehr auswählen. Ich kann Elela nur noch beenden, 
aber sonst nichts mehr machen.

Autor: Torsten K. (Firma: TOKA) (avantasia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, Moin,

ich habe eben versucht meine ELELA Datenbank auf den aktuellen Stand zu 
bringen und bekomme dabei folgende Fehlermeldung:

15:08:37 Connect database...
15:08:39 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 10.0.34-MariaDB
15:08:39 Database Version: V3.0.17A12
15:08:39 Do Update 65 from Database.
15:08:39 CreateNewField (kiste,ID_ID,INTEGER)
15:08:39 CreateNewField (bauteillager,TecData,JSON)
15:08:42 Error: Database-Update Nr. 65 error! Make the update manually.
15:08:42   SQL: ALTER TABLE `bauteillager` ADD `TecData` JSON NULL AFTER 
`Barcode`
15:08:44 Error on Test/Update Database. (SQL Error: You have an error in 
your SQL syntax; check the manual that corresponds to your MariaDB 
server version for the right syntax to use near 'JSON NULL AFTER 
`Barcode`' at line 1)
15:08:44 Parameter param.ISO9001Konform=1
15:08:46 Error: Cannot open database! SQL Error: Unknown column 
'TecData' in 'field list' (TypTreeOpen)

Meine DB läuft auf einem Synology NAS RS212 mit MariaDB 10 Version: 
10.0.34-0013.

Ich verstehe das die Meldung ein einfügen einer neuen Spalte 'TecData' 
in der Tabe 'Bauteillager' nicht ausführen kann. Wie ich diese ggf. 
einfügen kann, muß ich aber passen, den von SQL habe ich wirklich null 
Ahnung. Ich habe zwar HeidiSQL am Start um kleinere Fehler zu 
beseitigen, aber wie bekomme ich da ggf. die fehlende Spalte nach der 
'Barcode' Spalte eingefügt?


UPDATE: es scheint wohl daran zu liegen, das MariaDB erst ab Version 
10.2 JSON unterstützt... leider gibt es da kein Update bei Synology... 
oder ich habe es nicht gefunden :-(

: Bearbeitet durch User
Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Martin L.

Der Fehler kam schon zuvor, EleLa kann die Tabelle "param" nicht öffnen, 
da drin steht die Versionsinformation. Daher sperrt sich EleLa weg, 
damit nicht aus versehen mit einer zu alten EXE eine neuere Datenbank 
zerschossen wird.

Da die Datenbank neu erstellt wurde empfehle ich folgendes Vorgehen:

Die Datenbank "EleLa" noch einmal löschen und von neuem beginnen.
Die Rechte für den User "elela" kann man lassen.

- Mit phpMyAdmin die EleLa Datenbank löschen oder mit dem Tool HeidiSQL.
- EleLa erneut öffnen und im Konfig Dialog "Erzeuge neue Datenbank" 
ausführen.

Danach EleLa erneut starten und alles sollte klappen. Dann kann man die 
Datei "EleLa.sq3" in die MariaDB EleLa Datenbank importieren und man hat 
die SQLite Daten importiert.

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Torsten K.

Ich habe eine "DS2413+" und die installierte Version ist die aktuelle 
"DSM 6.2.1-23824 Update 6".
Über das Paket Zentrum habe ich ohne irgend welche Hacks/Eingriffe ganz 
normal "MariaDB-5" und "MariaDB-10" installiert, wobei ich den 
MariaDB-10 mit dem Port 3307 konfiguriert habe, der MariaDB-5 Server 
läuft auf dem Port 3306 und somit können beide SQL Server auf der DS 
laufen.
EleLa zeigt bei mir den Log-Eintrag:
16:27:05 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 10.3.7-MariaDB

Den Update auf 10.3 hatte die DS automatisch empfohlen, man muss dies 
nur bestätigen. Vielleicht sind bei Deiner DS die Updates deaktiviert? 
Oder Deine DS hat keine Internetverbindung?

Autor: Torsten K. (Firma: TOKA) (avantasia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider nein... ich habe eben mal bei Synology geschaut... meine RS212 
bekommt das MariaDB 10 Update scheinbar nicht. Die nachfolgende Version 
RS214 hat ein anderes Installationspaket und wird auf die Version 10.3.7 
gehoben, während meine Version bei 10.0.34 steht... allen anderen 
Maschinen, die in dem Alter meiner Maschine sind, sind wohl ebenfalls 
ausgeschlossen. Ich weiß leider nicht welche Linux Variante bei den 
Synology Maschinen installiert ist, dann könnte ich ggf. die MariaDB aus 
der Community nehmen und selber updaten.

Mist...

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal beim Synology Forum oder schreib dem Support, die haben 
eventuell einen Tipp.

Autor: Torsten K. (Firma: TOKA) (avantasia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja mal schauen... ist jetzt auch nicht ganz so schlimm, da meine Elela 
DB ja in der Vorversion läuft... und ich damit soweit zufrieden bin, 
insofern muß ich mal schauen ob ein Update/Upgrade da überhaupt Sinn 
macht. Ich nutze die nur für meine private Bauteilsammlung und nicht 
produktiv.

Aber trotzdem Danke... denn ich mag Elela und kann nur Danke für Deine 
Arbeit sagen...

: Bearbeitet durch User
Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-)

Autor: Martin L. (enz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus M. schrieb:
> - EleLa erneut öffnen und im Konfig Dialog "Erzeuge neue Datenbank"
> ausführen.

Im Konfigurationsdialog fehlt bei mir leider der Button "Erzeuge neue 
Datenbank".

Ich suche im Tab "Log" unter Optionen | Datenbank.
Oder steckt der evt. woanders?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wähle "mysql-5" aus dem Dropdown Feld, dann wird er eingeblendet. Ja in 
dem einen Tab ist er.
MySQL ist der gleiche Treiber im Hintergrund wie MariaDB, deshalb geht 
es.

: Bearbeitet durch User
Autor: Martin L. (enz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus M. schrieb:
> Wähle "mysql-5" aus dem Dropdown Feld, dann wird er eingeblendet.

Danke, hat nun Alles funktioniert!

Autor: Alois N. (alois)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

Danke für das Tolle Programm. Ich arbeite mich gerade in EleLa_V3.1 ein.
Jetzt Frage ich mich was der Eintrag Library bedeuten soll und für was 
und wie ich diesen verwende. Das Feld bleibt immer leer.

Viele Grüße
Alois

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alois,

In dieses Feld kann man eine Bezeichnung der Bibliothek eingeben, alle 
Bezeichnungen die man eingegeben hat werden automatisch in der Drop-Down 
Liste zur Auswahl gezeigt, damit man immer die gleichen Texte verwendet.

Man könnte dieses Feld auch anders verwenden, z.B. als "Thema".

Autor: Alois N. (alois)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus M. schrieb:
> In dieses Feld kann man eine Bezeichnung der Bibliothek eingeben, alle
> Bezeichnungen die man eingegeben hat werden automatisch in der Drop-Down
> Liste zur Auswahl gezeigt, damit man immer die gleichen Texte verwendet.
>
> Man könnte dieses Feld auch anders verwenden, z.B. als "Thema".
Und wie lege ich eine Bezeichnung an?

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach was rein schreiben.

Autor: Gottfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etwas verwirrend sind die Bezeichnungen schon:
Warenlager:
Artikel -> sollte "Artikelgruppe" heißen
Lager/Verpackung -> sollte "Artikel/Lager" heißen

Elektroniklager:
Bauteil -> kann so bleiben
Gehäuse/Lager -> Sollte "Artikel/Lager" heißen

Gehäuse würde ich in "Bauform" umbenennen, so wie es Farnell und andere 
angeben.

Für mich ist ein Gehäuse ein Gehäuse, wo ein fertiges Produkt 
untergebracht wird (Kunststoffgehäuse, Stahlblechgehäuse, Alugehäuse, 
PC-Gehäuse, ...).

Für mich ist ein Artikel eine eindeutige Bezeichnung und diese wird auch 
bei allen anderen ERP Programmen so verwendet

Ansonst ist das Programm gut, nur die Bezeichnungen verwirren mich jedes 
mal. Jetzt muss ich die gesamten Artikel neu anlegen, da ich keine 
"Artikel" gefunden habe und alle Artikel unter Bauteile angelegt habe :/

Autor: Markus M. (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In EleLa kann man alle Texte übersetzen, entsprechend auch umbenennen. 
Einfache Labels mit Strg+Alt+Doppelklick. Unter Extras>Info kann man die 
Texte in eine Datei exportieren, im Translate Dialog können diese in die 
Spalte Current wieder import werden, da kann man dann alle anderen Texte 
umbenennen.
Nach dem Neustart von EleLa wird die Spalte Current gelesen und das 
ganze EleLa wird anders bezeichnet bei allen Arbeitsplätzen gezeigt, die 
Übersetzung wird in der Datenbank mit gespeichert.
Ab EleLa V4 kann ich Elemente umbenennen, da wird es auch eine Trennung 
zwischen Bauteil Variante und Lager Platz geben.
Falls jemand mag, ich hab eine Kyrillische Übersetzung ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.