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


von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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.

von Marc Horby (Gast)


Lesenswert?

Hi Markus,

ja ist denn scho Weihnachten ;-)

Danke dir für deine Entwicklung! Top!

von c-hater (Gast)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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:
1
SELECT JSON_EXTRACT(TecData, '$.Strom') AS TC, bauteillager.* FROM bauteillager
2
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 ;-)

von Kai 1. (derkai1985)


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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Kai 1. (derkai1985)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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
von Peter (Gast)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Ben G. (benson85)


Angehängte Dateien:

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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:
1
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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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"

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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.)

von Ben G. (benson85)


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.

von Ben G. (benson85)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Ben G. (benson85)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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.

von René S. (thebit)


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:
1
20:49:28 ---------
2
20:49:28 30.12.18 Start program V3.1.18C29-64
3
20:49:28  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
4
20:49:28  Compile: 28.Dez.2018 22:14:31 SVN: 255
5
20:49:28 Use INI file: C:\EleLa\EleLa.ini
6
20:49:28 Parameter [DB] Protocol=mysql-5
7
20:49:28 Parameter [DB] HostName=xxx.xxx.xxx.xxx
8
20:49:28 Parameter [DB] Port=3306
9
20:49:28 Parameter [DB] Database=elela
10
20:49:28 Parameter [DB] User=xxxxxx
11
20:49:28 Parameter [DB] Password=*****
12
20:49:28 Parameter [Programm] VorlageDir=C:\EleLa\Vorlage\
13
20:49:28 Parameter [Programm] TempDir=C:\EleLa\Temp\
14
20:49:28 Parameter [Programm] QueryCancel=1
15
20:49:28 Parameter [Programm] VersionCheck=1
16
20:49:28 Parameter [Bauteil] DefHandbuchDir=C:\EleLa\Handbuch
17
20:49:28 Parameter [Projekt] DefHandbuchDir=C:\EleLa\Projekt
18
20:49:28 Parameter [Projekt] GeraetDefHandbuchDir=C:\EleLa\Gerät
19
20:49:28 Parameter [Projekt] DokuDefHandbuchDir=C:\EleLa\Doku
20
20:49:31 Connect database...
21
20:49:31 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 5.7.18
22
20:49:31 Database Version: V3.0.17A12
23
20:49:31 Do Update 65 from Database.
24
20:49:31 CreateNewField (kiste,ID_ID,INTEGER)
25
20:49:34 CreateNewField (bauteillager,TecData,JSON)
26
20:49:35 Update 65 finish.
27
20:49:36 New Database Version: V3.1.18B29
28
20:49:37 Error: Cannot open database! Unknown MySQL data type! (TypTreeOpen)

Die alte Version kann danach auch nicht mehr zugreifen
1
20:50:48 ---------
2
20:50:48 30.12.18 Start program V3.0.18B15-64
3
20:50:48  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.4-stable
4
20:50:48  Compile: 28.Okt.2018 10:16:53 SVN: 224
5
20:50:48 Use INI file: C:\EleLa\EleLa.ini
6
20:50:48 Parameter [DB] Protocol=mysql-5
7
20:50:48 Parameter [DB] HostName=xxx.xxx.xxx.xxx
8
20:50:48 Parameter [DB] Port=3306
9
20:50:48 Parameter [DB] Database=elela
10
20:50:48 Parameter [DB] User=xxxxxx
11
20:50:48 Parameter [DB] Password=*****
12
20:50:48 Parameter [Programm] VorlageDir=C:\EleLa\Vorlage\
13
20:50:48 Parameter [Programm] TempDir=C:\EleLa\Temp\
14
20:50:48 Parameter [Programm] QueryCancel=1
15
20:50:48 Parameter [Programm] VersionCheck=1
16
20:50:48 Parameter [Bauteil] DefHandbuchDir=C:\EleLa\Handbuch
17
20:50:48 Parameter [Projekt] DefHandbuchDir=C:\EleLa\Projekt
18
20:50:48 Parameter [Projekt] GeraetDefHandbuchDir=C:\EleLa\Gerät
19
20:50:48 Parameter [Projekt] DokuDefHandbuchDir=C:\EleLa\Doku
20
20:50:50 Connect database...
21
20:50:50 DB.Version: SQLite-DLL: 3.25.2 / MySQL: 5.7.18
22
20:50:50 Database Version: V3.1.18B29
23
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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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
von René S. (thebit)


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é

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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 ;-)

von René S. (thebit)


Angehängte Dateien:

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.
1
01:06:27 31.12.18 Start program V3.0.18B22-64
2
01:06:27  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.4-stable
3
01:06:27  Compile: 28.Okt.2018 10:16:53 SVN: 231
4
01:06:27 Use INI file: C:\ele\EleLa.ini
5
01:06:27 Parameter [DB] Protocol=sqlite-3
6
01:06:27 Parameter [DB] Database=EleLa.sq3
7
01:06:27 Parameter [Programm] VorlageDir=C:\ele\Vorlage\
8
01:06:27 Parameter [Programm] TempDir=C:\ele\
9
01:06:27 Parameter [Bauteil] DefHandbuchDir=C:\ele\Handbuch
10
01:06:27 Parameter [Projekt] DefHandbuchDir=C:\ele\Projekt
11
01:06:27 Parameter [Projekt] GeraetDefHandbuchDir=C:\ele\Gerät
12
01:06:27 Parameter [Projekt] DokuDefHandbuchDir=C:\ele\Doku
13
01:06:29 Connect database...
14
01:06:29 DB.Version: SQLite-DLL: 3.25.2
15
01:06:29 Database Version: V3.0.17A12
16
01:06:29 Database connected.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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.

von Eduard ". (edtheb)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Erwin K. (Gast)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Jaroslaw K. (root666)


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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von ellboy (Gast)


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.
1
Designator,Barcode
2
3
"C8","002098"
4
"C9","002098"
5
"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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von ellboy (Gast)


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 ".

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

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

von ellboy (Gast)


Lesenswert?

ImportTest.csv geht bei mir auch. In meiner CSV hatte ich oben:
1
Symbol,Barcode

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

von ellboy (Gast)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von ellboy (Gast)


Lesenswert?

Danke! Darauf wäre ich nie gekommen.

von ellboy (Gast)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Jost (Gast)


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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

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.
1
    // Trennzeichen Erkennen
2
    iTyp := 0;
3
    if Pos('";"', s) > 1 then
4
      iTyp := 1
5
    else if Pos('","', s) > 1 then
6
      iTyp := 2
7
    else if Pos('"'#9'"', s) > 1 then
8
      iTyp := 3
9
    else if Pos(#9, s) > 1 then
10
      iTyp := 4
11
    else if Pos(';', s) > 1 then
12
      iTyp := 5
13
    else if Pos(',', s) > 1 then
14
      iTyp := 6;

von Flo (Gast)


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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Flo (Gast)


Lesenswert?

Danke für die Info!

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Gottfried (Gast)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Gottfried (Gast)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?


von Gottfried (Gast)


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 :)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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

von Martin L. (enz)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Martin L. (enz)


Angehängte Dateien:

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.

von Torsten K. (Firma: TOKA) (avantasia)


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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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?

von Torsten K. (Firma: TOKA) (avantasia)


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...

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

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

von Torsten K. (Firma: TOKA) (avantasia)


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
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

:-)

von Martin L. (enz)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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
von Martin L. (enz)


Lesenswert?

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

Danke, hat nun Alles funktioniert!

von Alois N. (alois)


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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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".

von Alois N. (alois)


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?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Einfach was rein schreiben.

von Gottfried (Gast)


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 :/

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


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 ;-)

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Hi,

bei mir erscheint in der V3.1.19516-64 folgendes Problem:
Beim anlegen eines neuen Bauteils erscheint unten nur die Registerkarte 
"Bauteil", bis man speichert. Soweit alles ok. Dann definiere ich unter 
Gehäuse alles, aber die Registerkarte "Lieferanten" fehlt dann. Erst 
wenn ich auf den Tab "Bestellungen" klicke, erscheint der Tab 
"Lieferanten" davor.

Bug oder Feature?

Armin

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ist ein Bug, ich schreibe es auf. Dankeschön für die Meldung.

von Ben G. (benson85)


Lesenswert?

Hi,

ich habe die v3.1.19516-64 auf Windows laufen. Die Datenbank liegt auf 
einem zentralen Server (Ubuntu 18.04) mit MariaDB 10.3.

Nun habe ich auf einem Raspberry die v3.1.19201 (v3.1.19516 gibt es noch 
nicht für den Raspberry ?). Hier bekomme ich keine Datenbankverbidnung 
mit mysql-5 hin, obwohl ich im Raspberry terminal mit mysql ... auf den 
Server verbinden kann.

Hast du eine Idee?

Danke und viele Grüße,
Ben

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich nutze ebenfalls die gleiche Konfiguration, meine RPi Version geht, 
das steht im Log:
1
09:37:12 18.07.19 Start program V3.1.19201 (ARM)
2
09:37:12  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
3
09:37:12  Compile: 03.Feb.2019 20:47:57, GTK 2 widget set SVN: 285M
4
09:37:13 Use INI file: /home/pi/EleLa/EleLa.ini
5
09:37:13 Parameter [DB] Protocol=mysql-5
6
09:37:13 Parameter [DB] HostName=192.168.81.10
7
09:37:13 Parameter [DB] Port=3307
8
09:37:13 Parameter [DB] Database=elela
9
09:37:13 Parameter [DB] User=<geheim>
10
09:37:13 Parameter [DB] Password=?
11
09:37:13 Parameter [Programm] VorlageDir=/home/pi/EleLa/Vorlage/
12
09:37:13 Parameter [Programm] TempDir=/home/pi/EleLa/Temp/
13
09:37:13 Parameter [Programm] QueryCancel=1
14
09:37:13 Parameter [Programm] ISO9001Konform=1
15
09:37:13 Parameter [Bauteil] DefHandbuchDir=/M010/Handbuch/Elektronik
16
09:37:13 Parameter [Projekt] DefHandbuchDir=/home/pi/EleLa/Projekt
17
09:37:13 Parameter [Projekt] GeraetDefHandbuchDir=/home/pi/EleLa/Gerät
18
09:37:13 Parameter [Projekt] DokuDefHandbuchDir=/home/pi/EleLa/Doku
19
09:37:13 Parameter [Linux] ComboItemHeight=9
20
09:37:13 Parameter [Linux] FontHeight=11
21
09:37:24 Connect database...
22
09:37:25 DB.Version: SQLite-DLL: 3.16.2 / MySQL: 10.3.11-MariaDB
23
09:37:25 Database Version: V3.1.18B29
24
09:37:28 Parameter param.DateFormat=dd-mm-yy
25
09:37:31 Database connected.
Das DefHandbuchDir Verzeichnis habe ich vom Server fest in ein Pfad 
gemounted, dann kann EleLa auf dem RPi darauf ebenafalls direkt drauf 
zugreufen.

Was kommt denn für ein Fehler?

: Bearbeitet durch User
von Ben G. (benson85)


Lesenswert?

Folgender Fehler kommt:
23:50:27 Error: Cannot open database! None of the dynamic libraries can 
be found or is not loadable: libmysqlclient.so.20, libmysqlclient.so.19, 
libmysqlclient.so.18, libmysqlclient.so.16, libmysqlclient.so.15, 
libmariadb.so, libmysqlclient.so !
Use TZConnection.LibraryLocation if the location is invalid. 
(DB-Connect)

Das HandbuchDir habe ich über Nextcloud gesynct, dann steht auch noch 
eine kleine Versionskontrolle zur Verfügung.

Edit, Problem gelöst:
Ich musste noch einen Link auf dem Raspberry Pi erstellen:
ln -s /usr/lib/arm-linux-gnueabihf/libmariadb.so.3 
/usr/lib/arm-linux-gnueabihf/libmariadb.so

Ich habe das neueste Raspberry Image mit Debian Buster, evtl. liegt es 
daran...

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Kopiere deine Datei "libmariadb.so.3" in das gleiche Verzeichnis von 
EleLa, danach sage dem EleLa wie die Datei heist indem man der INI Datei 
im Abschnitt [DB] den Parameter hinzufügt:

LibraryLocation=libmariadb.so.3

Damit wird die Datenbank Komponente diese ".so" Datei nutzen.

Detail zu der INI Datei sind in der Hilfe von EleLa unter:
Installation > INI Parameter
beschrieben.

Falls es immer noch nicht geht muss man eine andere libmariadb.so oder 
libmysql.so verwenden. Der Vorteil, dass man die .so Datei in das EleLa 
Verzeichnis kopiert ist, dass EleLa unabhängig von Updates immer die 
gleiche nutzt und das Betriebssystem einem keine neuere (eventuell nicht 
mehr unterstützte) installiert.

von Thomas K. (muetze1)


Lesenswert?

Hallo Markus,

ich habe ja nun auf 3.1 geupdated und habe erneut das Problem, dass nach 
Einfügen eines Bildes aus der Zwischenablage bei einem Bauteil (mit 
Verkleinerung durch EleLa) irgendwann zum Verlust der DB Verbindung 
kommt (MariaDB 10.3).
1
20:18:33 25.08.19 Start program V3.1.19516-64
2
20:18:33  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
3
20:18:33  Compile: 16.Mai.2019 20:23:46 SVN: 294
4
20:18:33 Use INI file: C:\EleLa\EleLa.ini
5
20:18:33 Parameter [DB] Protocol=mysql-5
6
20:18:33 Parameter [DB] HostName=192.168.0.30
7
20:18:33 Parameter [DB] Port=3307
8
20:18:33 Parameter [DB] Database=elela
9
20:18:33 Parameter [DB] User=elela
10
20:18:33 Parameter [DB] Password=*****
11
20:18:33 Parameter [Programm] VorlageDir=C:\EleLa\Vorlage\
12
20:18:33 Parameter [Programm] TempDir=C:\EleLa\Temp\
13
20:18:33 Parameter [Programm] QueryCancel=1
14
20:18:33 Parameter [Programm] VersionCheck=1
15
20:18:33 Parameter [Bauteil] DefHandbuchDir=\\nas01\Electronic\Docs
16
20:18:33 Parameter [Projekt] DefHandbuchDir=C:\EleLa\Projekt
17
20:18:33 Parameter [Projekt] GeraetDefHandbuchDir=C:\EleLa\Gerät
18
20:18:33 Parameter [Projekt] DokuDefHandbuchDir=C:\EleLa\Doku
19
20:18:36 Connect database...
20
20:18:36 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 10.3.11-MariaDB
21
20:18:36 Database Version: V3.1.18B29
22
20:18:38 Database connected.
23
20:20:38 Test for new version
24
23:19:17 En: tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|TBildList.mnBildEinfZWClick.BildCaseBauteil|TBildList.EinfBild.BildCaseBauteil|tmrBackgroundTimer1|.1|
25
23:19:17 En: tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|
26
23:19:17 En: tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|
27
23:19:17 E: SQL Error: MySQL server has gone away (tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1|tmrBackgroundTimer1)/(  $000000010005E762)

Ich habe zuvor schon viele Bauelemente-Bilder so eingefügt, aber 
irgendwann kommt es dann zum DB Verbindungsabbruch.

Grüße,
Thomas

von Florian (Gast)


Lesenswert?

ELELA ist bei mir inzwischen für alles in Verwendung was Lagerhaltung 
betrifft. Tolles Programm. Neben den Elektronikbauteilen kamen 
irgendwann auch Büroartikel dazu (meist werden Großpackungen gekauft von 
Radiergummi, Tackerklammern, Tesa usw.) und die Verbrauchsmaterialien in 
der Werkstatt (3D Filament, Schleifpapier, Leim etc.) Momentan ist alles 
in einer Datenbank. Es wäre schön wenn ich mehrere Datenbanken anlegen 
könnte (Elektro, Büro und Werkstatt separat) und zwischen denen (ohne 
manuelle Eingabe in den Datenbankeinstellungen) switchen kann. Entweder 
beim Programmstart eine Abfrage welche Datenbank geladen werden soll 
oder im Programm eine Auswahl der Datenbanken. Eventuell könnte man 
diese Funktion in die nächsten Versionen mit aufnehmen :)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Wegen dem Problem von  Thomas K. (muetze1):
Er hat die Server Timeout Zeit erhöht, nun beendet der Server nicht mehr 
die Sitzung. (Parameter: "interactive_timeout")

@Florian:
Ich finde das ist doch zu speziell. Besser man kopiert die EleLa EXE und 
legt eine zweite INI Datei an mit den Zugangsdaten zur zweiten 
Datenbank. Dann legt man 2 Icons auf den Desktop und kann da auswählen 
welches EleLa man startet. Wenn man in der INI Datei den Parameter:
[Programm]
Caption=ELeLa Büro (%DB%)
Bzw.
Caption=ELeLa Elektronik (%DB%)

rein schriebt kann man beide EleLa's auch parallel betreiben. Anhand 
dieser "Caption" bildet EleLa einen Mutex und verhindert einen doppelten 
Start.

Jedoch: Eine Trennung finde ich nicht so gut, da einige Büroartikel auch 
bei z.B. Reichelt zu bekommen sind. Und bei Filament kann man schon fast 
streiten ob es zu Elektronik oder Büro gehört. Schlussendlich macht eine 
Trennung zudem mehr administrativen Aufwand, bzw. was folgt danach? Soll 
das eine EleLa doch noch zugriff auf die andere Daten zugreifen um was 
ab zu gleichen?
Auch der Einkauf wird dann verrückt wenn er zwischen 2 Bestell-Listen 
immer umschalten muss.

von Berthold R. (bertel09)


Lesenswert?

Ist es möglich nicht benutzte oder falsch eingegebene Einheiten aus den 
Technischen Daten zu löschen? Habe viel probiert, bin aber zu keinem 
Ergebnis gekommen

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

In der Auswahlbox den ersten Eintrag wählen, dann speichern. Beim 
nächsten Aktivieren vom Datensatz ist der dann verschwunden. Siehe 
Screenshot.

von Berthold R. (bertel09)


Lesenswert?

Danke erst mal für die schnelle Hilfe. Habe mich wohl falsch ausgedrückt 
ich meinte die Einheit aus der Dropdown-Liste, z.B. habe ich Ic 
eingegeben dann später Ic [A], Ic brauche ich nicht mehr steht aber 
immer noch in der Liste.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Ein Bild sagt mehr als 1000 Worte ...

von Berthold R. (bertel09)


Lesenswert?

Der Tip war gut. Nochmal besten Dank für die schnelle Hilfe

von Berthold R. (bertel09)


Lesenswert?

Eine Frage hätte ich noch: Ist es möglich Buchstaben oder Ziffern tirfer 
zu stellen? z.B. wie UCE0 wobei CE0 tiefergestellt wird.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Man kann alle Zeichen aus dem UTF8 Zeichensatz verwenden, wenn solche 
Zeichen da enthalten sind und der verwendete Font diese Zeichen auch 
zeigt, so ist es möglich. Ansonsten Formatierungen im Text werden nicht 
unterstützt.

Memo-Texte:
Ich würde sehr gerne eine HTML-Formatierung in den Memo-Texten 
verwenden, leider gibt es keinen vernünftigen WYSIWYG HTML Editor, den 
ich in Lazarus/Pascal einbauen kann. Und eine HTML Eingabe/Formatierung 
in Text selbst zu schrieben ist ja schon sehr grenzlastig und für 
niemanden zumutbar. HTML deshalb, da dieser Text so dann auch auf einer 
Webseite korrekt formatiert ausgegeben wird (z.B. die Drucken Funktion 
von EleLa erzeugt immer eine HTML-Seite).

von ellboy (Gast)


Lesenswert?

Markus M. schrieb:
> Memo-Texte

Wäre vieleicht Markdown eine Option?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Eine Möglichkeit der Eingabe von Formatierungen ist nicht so das 
Problem, es fehlt eine Komponente die das anzeigen kann und in der man 
das gleichzeitig editieren kann, ähnlich wie bei z.B. Word, wo man ein 
Text markiert und den entsprechend formatiert.
In Lazarus gibt es die "THtmlView" Komponente, die kann HTML Code 
anzeigen, jedoch kann man darin nicht direkt editieren. Man müsste dazu 
extra einen Text-Editor für die Eingabe haben und dann die Ansicht 
jedesmal kontrollieren.
Ich hatte das schon mal in einer anderen Software so gelößt, bedient 
haben das ausschlielich programmierer, dennoch waren diese zum Teil mit 
HTML mehr oder weniger überfordert (Team von 10 Leute).

von ellboy (Gast)


Lesenswert?

Hallo,

ist es möglich im Info-Feld die Information aus dem Typ-Feld zu nutzen?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Im Info-Feld von Gehäuse/Lager kann dazu dieser Code geschrieben werden:
$BAUTEIL.TREE_TYP$
Damit wird die Spalte "Typ" im Info-Ausdruck aus Bauteile-F2 verwendet.

von Ferdinand Keil (Gast)


Lesenswert?

Einen ganz großen Dank an Markus für diese tolle Software! Ich bin 
gerade dabei den Bauteilbestand für unsere kleine Elektronikfertigung 
hier in der Uni einzupflegen und dabei über folgendes Problem 
gestolpert: ich habe jede Komponente als eigenes Bauteil angelegt (z.B. 
Widerstand 0805 10k) und dann die entsprechenden Rollen unter "Gehäuse / 
Lager" hinterlegt. Bei manchen Bauteilen sind das dann auch 
unterschiedliche ArtikelNr von verschiedenen Herstellern. Nun will ich 
aus meinem CAD-Programm (Altium) den BOM einlesen und automatisch die 
Einträge zu den Bauteilen zuordnen. Das funktioniert aber nicht 
automatisch mittels Angabe der Bauteil-Bezeichnung in der CSV-Datei.

Ist das das falsche Vorgehen oder gibt es einen Trick um das zu lösen?

Ferdinand

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Das geht mit dem Feld "ArtikelNr". In Altium muss hier eine eindeutige 
Nummer vergeben sein und in EleLa die gleiche, dann kann EleLa beim 
Import eine Zuordnung automatisiert machen.

Abgesehen davon würde ich die Bauteile nich so anlegen:
"Widerstand 10K 0805"

Eher so:
"Widerstand 10K"
und alle Gehäuse Variationen unter "Gehäuse/Lager" einsortieren. Damit 
wird die Liste der Bauteile deutlich kleiner und übersichtlicher und 
gleichzeitig hat man mehr Überblick welche Varianten des 10K 
Widerstandes verfügbar sind, damit man bei z.B. einem neuen Projekt 
besser/schneller einen bereits verfügbaren auswählen kann.

von Ferdinand Keil (Gast)


Lesenswert?

Vielen Dank für die schnelle Antwort.

Die Bauteile sind so angelegt, damit der Bestand von mehreren Rollen 
identischer Bauteile zusammengezählt werden kann. So kann ich sehen, ob 
die vorhandenen (evtl. angebrochenen) Rollen für die Fertigung eines 
Loses ausreichen.

Für die Prüfung welche Bauteile vorhanden sind ist das bei uns 
ausreichend, da wir nur ausgewählte Gehäuseformen auf Lager halten.

Ich werde die Bauteile jetzt einfach händisch zuweisen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe auch mal eine Frage zu euch EleLa Usern, für die Entwicklung 
von EleLa V4.

Neu wird sein dass man einem Bauteil mehrere Lagerorte zuweisen kann.

Nun gibt es immer wieder das Problem dass z.B. Kondensatoren oder 
Widerstände, die eigentlich gleiche technische Daten haben und man 
bestellt die gerade da wo sie am günstigsten sind. Nun hat man 
verschidenen Typen am Lager liegen, die eigentlich alle die gleichen 
sind, dennoch gibt es in EleLa einen neuen Eintrag, da dieses Bauteil 
eine andere Herstellerbezeichnung hat.

Somit ist es nötigt, dass man diese gleiche Bauteile irgendwie zusammen 
fassen kann. Nach dem Motto "Bauteil ist identisch mit dem / den anderen 
Bauteilen".

Nun kommen wiederum die unterschiedliche Lagerorte ins Spiel. Sollen die 
Lagerorte bei der "Bauteil-F2" Ansicht von den verwanten Bauteilen mit 
gezeigt werden?

Beim Projekt hat man dann ebenfalls ein Bauteil genutzt, welches 
identische andere Typen mit verknüpft hat, so möchte man dann sicher 
alle Lagerorte, auch der Verwandten sehen. Damit kann man schneller ein 
Projekt bestücken ohne extra erst den verfügbaren Ersatztyp aus der 
Bauteil-Ansicht zu suchen.

Diese Änderung ist hauptsächlich für die "Profis" oder Firmen gedacht, 
da hat man täglich damit zu kämpfen dass irgend ein Widerstand gerade 
ausverkauft ist und man irgend einen anderen Erstaz braucht. Das lässt 
sich aktuell in EleLa nicht wirklich intiutiv abbilden.

Schussendlich ist es eine recht komplexe Änderung, daher schreibt mir 
einfach mal was ihr so denkt, bzw. was ich noch berücksichtigen sollte.

von Ralf H. (hilti)


Lesenswert?

Hallo Markus,

erst einmal herzlichen Dank an Dich für die (Weiter-)Entwicklung von 
Elela!

Zu Deiner Frage:

Die Idee mit der Aufnahme und Verlinkung identischer Bauteile bzw. 
Ersatztypen ist prima. Da Eröffnen sich dann ganz neue Möglichkeiten :)

Eine Anzeige in der F2-Ansicht halte ich für vernünftig, sollte aber 
über einen einfachen Schalter zu- bzw. abschaltbar sein.

Gruss

Ralf

P.S. Gibt es mal wieder aktualisierte Linux-Versionen (x86 und ARM)?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Hallo Ralf, lange nichts mehr von Dir gehört ;-)

In der EXE ist seither kaum was geändert daher gibt es allgemein seit 
längerem keine Updates. Die V3.1 EXE funktioniert sehr gut :-)
Nur weil es schon lange nicht wirklich was neues gab heißt es nicht dass 
das EleLa Projekt "eingeschlafen" ist. Vielmehr befindet es sich in 
einer gesunden "Ruhephase" wo noch die letzten Bugs gefixt wurden um 
leichter ein großes Update durchführen zu können ohne dass man noch 
"Altlasten" mitschleppt. Denn jeder Bugfix heißt in der Phase der 
Weiterentwicklung dass man 2 Sourcen pflegen muss, macht schlussendlich 
30% Mehr Arbeit.

Anbei ein Screenshot wie das mit der Verknüpfung von "Ersatz/Verwanten 
Bauteilen" funktionieren wird. EleLa wird bei Bestückung dann auch bei 
den verwanten Teilen nach der Stückzahl schauen ob da noch genügend da 
sind, daher sollten nur Bauteile mit gleichem Gehäuse verknüpft werden. 
Wer das nicht beachtet, kann unter Umständen da stehen mit zu wenigen 
Bauteilen bei der Bestückung. Einschränken will ich die Möglichkeit der 
Verknüpfung nicht, da jeder die Datenbank auf seine Weise nutzen darf 
wie er mag. ;-)

Es ist noch sehr viel Arbeit bis ich eine erste Version veröffentlichen 
kann. Da der neue getrennte Bereich "Kiste/Lager" in allen anderen 
Bereichen von EleLa mit berücksichtigt werden muss.

von Ralf H. (hilti)


Lesenswert?

Hallo Markus,

das sieht schon sehr gut aus. Ich freue mich schon auf die erste 
Betaversion :)

Mit "aktualisierten Linux-Versionen" meinte ich eigentlich die Version 
3.1.19516. Die gibt es nur als EXE :p

von Peter (Gast)


Lesenswert?

Hi.

Ich nutze das Program seit längerem privat auf einem PC und bin restlos 
zufrieden.


Ich würde nun gerne das Lager an der Arbeit damit verwalten lassen.

Und hätte nun mal ein paar Fragen:

Kann man die Datenbank auch auf einen Server (Linux) legen und dann von 
X Arbeitsplätzen gleichzeitig darauf zugreifen?

Gibt es eine Möglichkeit den Verkauf an ein Finanzsystem weiter 
zuleiten?
Oder macht man das einfach mit einem "internen Verkauf" und hat dann 
halt in der Rechnungssoftware die plöztlich zum verkaufen da.

Das selbe gilt beim Bestellen, da gibt es ja auch Finanzsystem die 
wissen wollen wo die Rechung vom Lieferanten herkommt.


Unter Finanzsystem verstehe ich so was wie LEX... (aktuell)oder zB 
gnucash (geplant wenn alles damit geht).

Viele Grüsse, Peter

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Wenn mehrere Nutzer die Daten nutzen sollen dann muss auf dem Server ein 
SQL Server installiert werden. z.B. MySQL ab V5.7.8 oder MariaDB ab 
V10.3.
Alle Clients greifen dann darauf zu, der Server managt auch z.B. ein 
Netzwerk Verbindungsabbruch korrekt.
Diese Programme können entweder auf einem Linux oder einem Windows 
Server laufen.

Der Verkauf sollte prinzipiell über die Finanz Software laufen. Bei 
EleLa wird dann nur die Lagerbuchung gemacht.

Bei Bestellung kann man sich Vorlagen erstellen, dann kann EleLa die 
Bestellung in diese Vorlage drucken. Die Finanz SW bucht dann nur noch 
den kompletten Betrag der Rechnung und man kann diese Vorlage auch als 
Bestell-Schein für einen Lieferanten nutzen oder als Bestellschein für 
die Einkauf Abteilung, bzw. der Einkauf bestellt direkt über EleLa.

Als Verbindung zu Firmenübergreifenden Verwaltungssystemen wie z.B. SAP 
kann EleLa unter Gehäuse/Lager das Feld "ArtikelNr2" verwendet werden. 
Jedoch der Exporter/Importer, bzw. der Datenabgleich muss über ein 
speziellen Programm erfolgen, das man erst noch schreiben muss, bzw. 
jede Firma für seine Anforderungen. In EleLa sind für einen Abgleich und 
Management 4 Felder vorgesehen:
ArtikelNr - Artikelnummer der Lieferanten
ArtikelNr2 - Artikelnummer im eigenen (z.B. SAP) System
Barcode - Eindeutiger Code für z.B Drucken mittels Info-Feld
Info - Code den man mit einem P-Tpouch Drucker auf z.B. die Teile Rolle 
oder der Tüte drucken kann

von Peter (Gast)


Lesenswert?

Danke für die Info.

Dann lasse ich mal eine DB auf dem Server anlegen und versuche mein 
Glück.

Ich hatte es mir schon gedacht das ich die Programme getrennt handhaben 
darf.
Wäre ja zu schön gewesen.

Ich werde aber mal schauen was man raus holen kann um eine einfache 
Übernahme von Daten hinzubekommen. Aber das hat jetzt nicht oberste 
Priorität.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Die Daten kann man jederzeit in den SQL Server Importieren und 
Exportieren, das geht mit EleLa unter Extras-F10 > Datenbank > 
Import-/Export Datenbank.
Damit kann man die Daten von einem SQL Server sichern, und in einen 
biebigen anderen SQL Server wieder einspielen, es muss nicht die gleiche 
Variante von SQL Server sein. Die Sicherungsdatei wiederum ist 
automatisch eine SQLite Datenbankdatei, die man direkt im EleLa wieder 
benutzen kann.
Mit einem Export ist somit jederzeit möglich die Daten in einen neuen 
SQL Server wieder ein zu spielen, um z.B. ein Server Update machen zu 
können.
EleLa bietet direkt die Möglichkeit die Datenbank zu administrieren, es 
braucht nur ein Tool der Datenbank um diese zu installieren und die 
Zugangspasswörter ein zu richten.

von Jaroslaw K. (root666)


Lesenswert?

Hi Markus,

vor ein Paar Tagen hat noch alles funktioniert.
Gestern konnte ich nicht mehr ins EleLa einsteigen.
Da sich an meiner EleLa Installation ichts geändert hat, habe ich eher 
den Raspi im Verdacht gehabt. Dieser hostet meine EleLa Datenbank.
Die Datenbank Software ist 10.3.17-MariaDB-0+deb10u1.

Da scheint sich tatsächlich etwas geändert zu haben, da ich mich auch 
mit HeidiSQL nicht mehr verbinden konnte (vermutlich hat eines der 
Updates etwas verändert).
Interessanterweise konnte ich mich mit keinem einzigen User mehr über 
die IP-Adresse verbinden obwohl einige sehr wohl das Recht dazu hatten.
Nach einigen Versuchen habe es dann doch noch geschafft mittels HeidiSQL 
auf die EleLa DB von meinem Windows Rechner zugriff zu bekommen. Dafür 
musste ich den DB-User am Raspi löschen, ihn neu anlegen und ihm das 
Passwort noch einmal generieren.
Der neue User hat neben dem Wert im Password Feld der Tabelle mysql.user 
auch einen Eintrag in den Felder Authentication_string und Plugin. 
Vorher waren beide Felder leer.

Leider hat das aber nichts daran geändert, dass ich mit EleLa weiterhin 
nicht auf die DB zugreifen kann. Ich habe auch schon versucht von 
V3.0.18319-64 auf  V3.1.19516-64 zu aktualisieren. Die Fehlermeldung ist 
bei beiden EleLa Versionen:
1
Error: Cannot open database! SQL Error: SSL connection error: protocol version mismatch (DB-Connect)
Mit v3.1.19516-64 ist es dabei unerheblich ob ich als Protocol "mysql-5" 
oder "MariaDB-10" eintrage.

Meine libmysql.dll (4765 KB) hat die MD5-Summe 
'327f4d56c31a3b16415093aded5a848e'.
Die libmysql.dll (4361 KB) mit der MD5-Summe 
'155786c87ac10f0db2484f56cbaa0a34', mit der HeidiSQL funktioniert, will 
EleLa nicht.

Hast Du evtl. eine Idee was ich noch ausprobieren könnte?
Danke!
LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein RaspberryPi wird in der Regel mit einer SD Card als Datenträger 
betrieben. Die meisten SD Cards gehen mit der Zeit sehr schnell kaputt 
weil diese nicht für dauerndes wieder beschreiben ausgelegt sind. Es 
gibt jedoch einige wenige spezielle SD-Cards die dafür ausgelegt sind, 
diese sind jedoch relativ teuer. Jedoch wenn man einen RPi 24/7 
betreiben möchte sollte man dieses Geld investieren (und genau im 
Datenblatt der SD-Karte nachlesen ob die es wirklich kann).

Dazu empfehle ich noch einen USB Stick als Backup Datenträger zu haben, 
und die EleLa Version für den RPi auf dem RPi mit installieren und einen 
Task z.B. alle 24h ausführen lassen der EleLa mit dem 
Kommandozeilenparameter "-b" ausführt. Damit startet EleLa und erzeugt 
ein Backup, mit einem weiteren Parameter kann man den Dateiname für den 
Backup angeben.
Mehr dazu in der Hilfe von EleLa unter "Installation", Abschnitt 
"Kommandozeilenparameter".

In Deinem aktuellen Fall rate ich dringend dazu die Daten mittels 
HeidiSQL zu exportieren und den RPi komplett mit einer neuen SD-Karte 
neu zu installieren. Es sollte auch überprüft werden ob der Speicher der 
SD Karte nicht schon zufällig voll gelaufen ist, dann sollte man gleich 
eine größere rein machen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Alle EXE Versionen EleLa V3.1.19B09 sind nun verfügbar:

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

- Win 32/64
- Linux 32/64
- RaspberryPi
- Hilfe.chm

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.

Keine Bugs wurden behoben, sowie ein Bug beim neu Anlegen von Bauteilen 
Gehäuse/Lager in Zusammenhang mit PostgreSQL.
Zudem wurden alle EXE Dateien mit der neuesten Version vom Compiler 
übersetzt, auch die Linux/RPi Versionen.

Leider funktioniert MsSQL mit dieser Version immer noch nicht korrekt 
:-/
Daher müssen MsSQL User erst einmal noch bei EleLa V3.0 bleiben.

von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:
> Ein RaspberryPi wird in der Regel mit einer SD Card als Datenträger
> betrieben. Die meisten SD Cards gehen mit der Zeit sehr schnell kaputt

Sorry Markus, ich habe jetzt nicht zu viel über meinen Raspi 
geschrieben, weil ich hier damit nicht langweilen wollte. Die 
Problematik der SD-Karten ist mir bekannt.
Mein Raspi 4 läuft deshalb mit SSD und ist auch mit einer USV 
ausgestattet, die bei Spannungs-Ausfällen einspringt. Ich mache auch 
regelmäßig Backups des Filesystems und der Datenbanken.

> In Deinem aktuellen Fall rate ich dringend dazu die Daten mittels
> HeidiSQL zu exportieren und den RPi komplett mit einer neuen SD-Karte
> neu zu installieren. Es sollte auch überprüft werden ob der Speicher der
> SD Karte nicht schon zufällig voll gelaufen ist, dann sollte man gleich
> eine größere rein machen.

Nein. Ist er nicht. Ich habe noch ca. 100GB frei im Filesystem und ca. 
100GB zusätzlich in der VolumeGroup in Reserve.
Danke für den Tipp, aber es funktioniert alles außer EleLa. Ich habe 
dort auch Software laufen, die wesentlich exzessiver den Raspi nutzt als 
EleLa. Z.b. NextCloud, welches ebenfalls MariaDB nutzt und weiterhin 
einwandfrei funktioniert...
Warum glaubst Du, dass die Datenbank beschädigt sein könnte, wenn ich 
eine Verbindung mit HeidiSQL zu dieser Datenbank aufbauen kann und alle 
Abfragen, die ich getestet habe einwandfrei gehen?
Falls Du noch eine Idee hättest, wäre ich dankbar, aber aus Meiner Sicht 
spricht in diesem Fall alles gegen eine Neuinstallation.

LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich denke auch, da müsste der RPi sehr gut funktionieren.

Die Meldung "SSL connection error" macht mich etwas stutzig. Bitte 
google mal danach warum so eine Meldung kommt und wie man diese weg 
bekommt.
Eventuell akzeptiert der MariaDB Server nur noch eine SSL Verbindung und 
geht deshalb nicht mehr.

Das "OpenSSL" kann von hier geladen werden:
https://indy.fulgan.com/SSL/

Ab der EleLa Version 3.1.19B09 kann EleLa OpenSSL für eine Webabfrage 
bei Mouser verwenden um HTTPS abfragen zu generieren. Sobald man EleLa 
startet wird unter Extras-F10 > Log gezeigt mit "OpenSSL found." ob 
EleLa diese DLL gefunden hat und verwenden kann.
Mehr dazu in der aktuellen Hilfe unter:
Bauteile Verwalten > Bauteile - Lieferanten > Webabfrage vom Lieferant
Abschnitt "Web Abfrage von HTTPS Seiten (OpenSSL)"
Wenn diese DLL nicht vorhanden ist wird die Webabfrage zu Mouser über 
ein HTTP Request gemacht. Jedoch die HTTPS Abfrage funktioniert etwas 
besser.

PS: Ich weiß nicht ob ich diese DLL's im Setup mit verteilen darf, ist 
gerade etwas schwierig bei OpenSSL, da die Lizenz so halb geändert wurde 
und nicht alle Entwickler da zugestimmt haben.

: Bearbeitet durch User
von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:

> Die Meldung "SSL connection error" macht mich etwas stutzig. Bitte
> google mal danach warum so eine Meldung kommt und wie man diese weg
> bekommt.
Ich habe bisher nichts brauchbares gefunden.

> Eventuell akzeptiert der MariaDB Server nur noch eine SSL Verbindung und
> geht deshalb nicht mehr.

Mit dem WireShark she ich sehr viel TLS1.2 Kommunikation. Aber das muss 
nicht unbedingt etwas neues sein. SSL habe ich von Anfang an aktiv 
gehabt und IMHO war die Kommunikation immer schon verschlüsselt.

Das ganze ist merkwürdig. Wie ich schon geschrieben habe, hat sich die 
MariaDB Version nicht geändert. Ich hätte als nächstes meinen PC im 
Verdacht gehabt, weil ja auch Windows 10 ungefragt alles mögliche immer 
wieder installiert. Doch von einem anderen Windows PC, von dem ich 
ebenfalls immer zugreifen konnte, geht es auch nicht mehr... dieser hat 
aber einen anderen Software-Stand.

Da ich derzeit nicht viel Zeit habe um dem nachzugehen, aber gerne 
Zugriff auf meine Daten hätte, habe ich mySQL auf meinem Windows PC 
installiert und das Backup der EleLa Datenbank hier wiederhergestellt.
Nun kann EleLa zugreifen, aber trotzdem komme ich nicht hin:
1
20:05:04 12.11.19 Start program V3.1.19516-64
2
20:05:04  IDE: Lazarus LCL 1.8.4.0, Free Pascal FPC 3.0.4, Zeos 7.2.5-rc
3
20:05:04  Compile: 16.Mai.2019 20:23:46 SVN: 294
4
...
5
20:05:25 Connect database...
6
20:05:26 DB.Version: SQLite-DLL: 3.26.0 / MySQL: 8.0.18
7
20:05:26 Database Version: V3.0.17A12
8
20:05:26 Do Update 65 from Database.
9
20:05:26 CreateNewField (kiste,ID_ID,INTEGER)
10
20:05:27 CreateNewField (bauteillager,TecData,JSON)
11
20:05:29 Update 65 finish.
12
20:05:29 New Database Version: V3.1.18B29
13
20:05:29 Error: Cannot open database! Unknown MySQL data type! (TypTreeOpen)

Das Update der Datenbank hat scheinbar funktioniert...
Was habe ich übersehen?

Danke und LG.
JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Ich habe bei mir lokal ebenfalls die MySQL 8.0 installiert und die Daten 
da eingelesen. Soweit gibt es keine Fehler beim Start der EXE.

Bitte lade einmal für die lokale Test Instanz die Exe:
http://www.mmvisual.de/elela -> EleLa_V3.1
EleLa_V3.1.19B12_Win64.zip
herunter und verwende diese.

Neu gibt es hier im Konfigurationsdialog "Prüfe Datenintegrität". (Siehe 
Screenshot)
Führe das einmal bitte aus und kopiere die Log Einträge.

Mit dieser Funktion prüft EleLa ob alle Querverweise der jeweiligen ID's 
noch stimmen und löscht ggf das Feld wenn es z.B. das Projekt in der 
Zwischenzeit nicht mehr gibt. Oder es werden nicht erlaubte doppelte 
Einträge gefunden, dann wird EleLa diese automatisch gleich umbenennen.
Diese Integritätsprüfung wird EleLa bei einem zukünftigen Update auf 
EleLa V4 ohnehin ausführen, kann jedoch schon einmal mit dieser Version 
getestet werden.

von Klaus (Gast)


Lesenswert?

Hallo.

Ich habe gerade mir die aktuelle Version installiert und wollte 
eigentich nur zum Spaß mal die Datenbank sichern.
Aber der Button zeigt keine Reaktion!

Muss ich dafür in der INI noch das eintragen oder warum ist das 
deaktiviert in einer neuen Installation?

von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:

> Bitte lade einmal für die lokale Test Instanz die Exe:
> http://www.mmvisual.de/elela -> EleLa_V3.1
> EleLa_V3.1.19B12_Win64.zip
> herunter und verwende diese.

Vielen Dank!
Damit konnte die DB anscheinend fertig aktualisiert werden und EleLa 
läuft jetzt wieder mit der lokal installierten mySQL Instanz:
1
18:05:29 Database Version: V3.1.18B29
2
18:05:29 Do Update 65 from Database.
3
18:05:29 RenameField (tree_typ,ID_ID,ID_ID,INTEGER)
4
18:05:30 CreateNewField (kiste,ID_ID,INTEGER)
5
18:05:30 CreateNewField (bauteillager,TecData,JSON)
6
18:05:30 Update 65 finish.
7
18:05:30 New Database Version: V3.1.18B30

Der Konsistenz-Check bricht eigentlich in der Sekunde ab, in der ich es 
starte mit folgender Fehlermeldung:
1
18:09:41 E: SQL Error: Column 'Adr_ID' cannot be null (btnKonfigClick|TfrmKonfig.mnCheckClick|CheckIntegrity)/(  $000000010005E55A)

Da bin ich mir aber nicht sicher, ob Dein Check nicht zu streng ist. :-)
Ich habe bei sehr vielen Bauteilen keine Adresse hinterlegt und die 
bisher verwendeten Versionen haben das auch brav zugelassen.

LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@Klaus:
Bei SQLite ist die Taste immer deaktiviert, da kann man einfach die 
Datenbankdatei manuell kopieren.
Falls eine andere Datenbank als SQLite verwendet wird, dann mir am 
Besten den ganzen Inhalt von Extras-F10 > Log schicken, dann schaue ich 
danach.

@JK:
Nein der Check ist nicht zu streng, er ist genau richtig so ;-)
Man hat in der EleLa Datenbank recht viele Freiheiten, zu viele, das 
erzeugt mit der Zeit Lücken. Und diese Lücken möchte ich nun ab EleLa V4 
alle komplett schließen und automatisiert beheben.
In Deinem Fall kommt der Fehler wohl daher dass irgend wann einmal eine 
Adresse gelöscht wurde, die zuvor unter Bauteil->Lieferant mal als 
Lieferant angelegt war.
Ich habe die EXE geändert in V3.1.19B13, so dass alle Einträge aus 
Bauteil->Lieferant gelöscht werden, die keine Adresse mehr haben. Der 
Eintrag ist ohnehin Sinnfrei da man dies nicht mehr bestellen kann. Bzw. 
der letzte EK-Preis wurde nach Bestellen bei der Lagerbuchung unter 
Bauteil-> Gehäuse/Lager bereits eingetragen.
Bitte mit dieser nochmals im Konfigurationsdialog die "Prüfe 
Datenintegrität" ausführen, damit sollte diese nun durchlaufen und alle 
Fehler automatisch beheben.

von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:
> Bitte mit dieser nochmals im Konfigurationsdialog die "Prüfe
> Datenintegrität" ausführen, damit sollte diese nun durchlaufen und alle
> Fehler automatisch beheben.

Also die v3.1.19B13 hat etwas länger gebraucht, endete aber ebenfalls 
mit einer Fehlermeldung:
1
20:40:15 CheckIntegrity: projektversion.ID <> projektdoku.projektversion_ID
2
20:40:15 E: SQL Error: SQL logic error (btnKonfigClick|TfrmKonfig.mnCheckClick|CheckIntegrity)/(  $000000010005E55A)

LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe die V3.1.19B13 nochmals korrigiert und hoch geladen.
Ich glaube da fehlt noch eine Tabelle in der Datenbank, die aktuell mit 
EleLa noch nicht benutzt wird, jedoch vorhanden sein sollte.
Nun überprüft die "Datenintegrität" das vorhanden sein aller Tabellen 
und legt fehlende neu an bevor die anderen Prüfungen laufen.
Die Tabelle "projekteinzel" ist eine Vorbereitung dafür um nach der 
Produktion die jeweiligen produzierte als Einzelgeräte verwalten zu 
können.
Bei mir war die Tabelle vorhanden, daher lief der Script bei mir 
ordnungsgemäß durch.

Das müsste dann so aussehen:
1
22:36:48 13.11.19 Start program V3.1.19B13-64
2
22:36:48  IDE: Lazarus LCL 2.0.6.0, Free Pascal FPC 3.0.4, Zeos 7.2.6-stable
3
22:36:48  Compile: 12.Nov.2019 23:00:32 SVN: 325M
4
22:36:49 Connect database...
5
22:36:49 DB.Version: SQLite-DLL: 3.30.1 / MySQL: 8.0.13
6
22:36:49 Database Version: V3.1.18B30
7
22:36:50 Database connected.
8
22:37:00 =====================
9
22:37:00 Start check integrity
10
22:37:00 CheckIntegrity: adr.ID <> bauteiladr.adr_ID
11
22:37:00 CheckIntegrity: adr.ID <> bauteillager.adr_ID
12
22:37:00 CheckIntegrity: adr.ID <> bestellen.Lief1_adr_ID
13
22:37:00 CheckIntegrity: adr.ID <> bestellen.Lief2_adr_ID
14
22:37:00 CheckIntegrity: adr.ID <> projekt.adr_ID
15
22:37:00 CheckIntegrity: adr.ID <> projekteinzel.adr_ID
16
22:37:00 CheckIntegrity: adr.ID <> historie.adr_ID
17
22:37:00 CheckIntegrity: adr.ID <> kosten.adr_ID
18
22:37:00 CheckIntegrity: bauteil.ID <> bauteiladr.bauteil_ID
19
22:37:00 CheckIntegrity: bauteil.ID <> bauteillager.bauteil_ID
20
22:37:00 CheckIntegrity: bauteil.ID <> bauteilbewegung.bauteil_ID
21
22:37:00 CheckIntegrity: bauteil.ID <> bestellen.bauteil_ID
22
22:37:00 CheckIntegrity: bauteil.ID <> projekt.bauteil_ID
23
22:37:00 CheckIntegrity: bauteil.ID <> projektpos.bauteil_ID
24
22:37:00 CheckIntegrity: bauteil.ID <> projektversion.bauteil_ID
25
22:37:00 CheckIntegrity: bauteil.ID <> projektdoku.bauteil_ID
26
22:37:01 CheckIntegrity: bauteil.ID <> projekteinzel.bauteil_ID
27
22:37:01 CheckIntegrity: bauteil.ID <> kostenpos.bauteil_ID
28
22:37:01 CheckIntegrity: bauteil.ID <> storeteile.bauteil_ID
29
22:37:01 CheckIntegrity: bauteiladr.ID <> bestellen.Lief1_bauteiladr_ID
30
22:37:01 CheckIntegrity: bauteiladr.ID <> bestellen.Lief2_bauteiladr_ID
31
22:37:01 CheckIntegrity: bauteillager.ID <> bauteiladr.bauteillager_ID
32
22:37:01 CheckIntegrity: bauteillager.ID <> bauteilbewegung.bauteillager_ID
33
22:37:01 CheckIntegrity: bauteillager.ID <> bestellen.bauteillager_ID
34
22:37:01 CheckIntegrity: bauteillager.ID <> projekt.bauteillager_ID
35
22:37:01 CheckIntegrity: bauteillager.ID <> projektpos.bauteillager_ID
36
22:37:01 CheckIntegrity: bauteillager.ID <> projektversion.bauteillager_ID
37
22:37:01 CheckIntegrity: bauteillager.ID <> projektdoku.bauteillager_ID
38
22:37:01 CheckIntegrity: bauteillager.ID <> projekteinzel.bauteillager_ID
39
22:37:01 CheckIntegrity: bauteillager.ID <> kostenpos.bauteillager_ID
40
22:37:01 CheckIntegrity: bauteillager.ID <> storeteile.bauteillager_ID
41
22:37:01 CheckIntegrity: bestellen.ID <> bauteilbewegung.bestellen_ID
42
22:37:01 CheckIntegrity: gehause.ID <> bauteillager.gehause_ID
43
22:37:01 CheckIntegrity: foto.ID <> adr.foto_ID
44
22:37:01 CheckIntegrity: foto.ID <> bauteil.foto_ID
45
22:37:01 CheckIntegrity: foto.ID <> bauteiladr.foto_ID
46
22:37:01 CheckIntegrity: foto.ID <> bauteillager.foto_ID
47
22:37:01 CheckIntegrity: foto.ID <> bestellen.foto_ID
48
22:37:01 CheckIntegrity: foto.ID <> gehause.foto_ID
49
22:37:01 CheckIntegrity: foto.ID <> kiste.foto_ID
50
22:37:01 CheckIntegrity: foto.ID <> tree_typ.foto_ID
51
22:37:01 CheckIntegrity: foto.ID <> doku.foto_ID
52
22:37:01 CheckIntegrity: foto.ID <> projekt.foto_ID
53
22:37:01 CheckIntegrity: foto.ID <> projektpos.foto_ID
54
22:37:01 CheckIntegrity: foto.ID <> projektversion.foto_ID
55
22:37:01 CheckIntegrity: foto.ID <> projektdoku.foto_ID
56
22:37:01 CheckIntegrity: foto.ID <> projekteinzel.foto_ID
57
22:37:01 CheckIntegrity: foto.ID <> historie.foto_ID
58
22:37:01 CheckIntegrity: foto.ID <> wissen.foto_ID
59
22:37:01 CheckIntegrity: foto.ID <> kosten.foto_ID
60
22:37:01 CheckIntegrity: foto.ID <> kostenpos.foto_ID
61
22:37:02 CheckIntegrity: foto.ID <> mp3.foto_ID
62
22:37:02 CheckIntegrity: kiste.ID <> bauteillager.kiste_ID
63
22:37:02 CheckIntegrity: tree_typ.ID <> bauteil.tree_typ_ID
64
22:37:02 CheckIntegrity: doku.ID <> projektdoku.doku_ID
65
22:37:02 CheckIntegrity: projekt.ID <> bauteilbewegung.projekt_ID
66
22:37:02 CheckIntegrity: projekt.ID <> bestellen.projekt_ID
67
22:37:02 CheckIntegrity: projekt.ID <> projektpos.projekt_ID
68
22:37:02 CheckIntegrity: projekt.ID <> projektversion.projekt_ID
69
22:37:02 CheckIntegrity: projekt.ID <> projektdoku.projekt_ID
70
22:37:02 CheckIntegrity: projekt.ID <> projekteinzel.projekt_ID
71
22:37:02 CheckIntegrity: projekt.ID <> historie.projekt_ID
72
22:37:02 CheckIntegrity: projekt.ID <> kosten.projekt_ID
73
22:37:02 CheckIntegrity: projekt.ID <> kostenpos.projekt_ID
74
22:37:02 CheckIntegrity: projektpos.ID <> bauteilbewegung.projektpos_ID
75
22:37:02 CheckIntegrity: projektpos.ID <> historie.projektpos_ID
76
22:37:02 CheckIntegrity: projektpos.ID <> kostenpos.projektpos_ID
77
22:37:03 CheckIntegrity: projektversion.ID <> projekt.projektversion_ID
78
22:37:03 CheckIntegrity: projektversion.ID <> projektpos.projektversion_ID
79
22:37:03 CheckIntegrity: projektversion.ID <> projektdoku.projektversion_ID
80
22:37:03 CheckIntegrity: kosten.ID <> projekteinzel.kosten_ID
81
22:37:03 CheckIntegrity: kosten.ID <> historie.kosten_ID
82
22:37:03 CheckIntegrity: kosten.ID <> kostenpos.kosten_ID
83
22:37:03 CheckIntegrity: kostenpos.ID <> projekteinzel.kostenpos_ID
84
22:37:03 ========================
85
22:37:03 Start check double entry
86
22:37:03  Check integrity -> IO

: Bearbeitet durch User
von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:
> Ich habe die V3.1.19B13 nochmals korrigiert und hoch geladen.
Ja, jetzt ist es auch bei mir fehlerfrei durchgelaufen.
Vielen Dank für die Unterstützung!
LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Alle EXE Versionen EleLa V3.1.19B14 sind nun verfügbar:

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

- Win 32/64
- Linux 32/64
- RaspberryPi
- Hilfe.chm

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.

Nun ist vor der Integritätsprüfung noch eine Ja/Nein Abfrage, da diese 
Prüfung die Datenbank korrigiert und in der Hilfe ist ebenfalls 
beschrieben was genau da alles gemacht wird.
Screenshot siehe hier:
Beitrag "Re: EleLa - Elektronik Lagerverwaltung V3.1"

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Hallo Markus,

bei mir zeigt er bei Extras - Info - Versionsabfrage die Version 
"3.0.18B15" an und nicht die aktuelle.
Und der www-Link geht auf http://www.mmvisual.de/version.php und nicht 
auf http://www.mmvisual.de/elela.

Armin

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo Armin,

Ja, das ist richtig so. Mit der EleLa Versionsabfrage kann man die EXE 
V3.1.xxxxx noch nicht laden, da diese EXE leider noch nicht mit MsSQL 
funktioniert. Und da will ich diese erst dann anbieten wenn auch dieser 
SQL Server problemlos geht.
Wenn ich in der Versionsabfrage dies einbringe, dann bekommen alle User 
die die automatische Versionsabfrage aktiviert haben jedes mal eine 
Meldung wenn sich da was ändert, daher will ich da auch nicht jede 
Kleinigkeit darüber veröffentlichen.
Mich persönlich nerven zum Teil diese Programme die alle paar Wochen ein 
Update brauchen und das will ich den Usern nicht auch noch mit EleLa 
antun ;-)

Wer dennoch immer auf dem aktuellen Stand von EleLa bleiben möchte kann 
sich hier im Forum den "Thread beobachten" aktivieren. Damit bekommt er 
jede Änderung mit, kann sogar noch auf die Änderung einwirken indem er 
eigene Ideen schreibt und dann entscheiden ob er diese neue Features 
ebenfalls gebrauchen kann. Oder auch viele Tipps zur Bedienung und 
Fehleranalyse lesen.

Markus

von Jaroslaw K. (root666)


Lesenswert?

Hallo Markus,

heute hatte ich etwas Zeit um mich mit dem Raspi zu befassen.
Nutzt EleLa immer SSL? Ist das evtl. ein Standard-Wert?.

Ich weiß nicht welche Möglichkeiten Dir bei Free Pascal zur Verfügung 
stehen, aber wäre es möglich SSL-Optionen in der INI-Datei anzubieten? 
Das würde neue Einträge erfordern, könnte aber bei Verbindungstests 
hilfreich sein. Da ich keine Free Pascal Entwicklungsumgebung da habe, 
habe ich es mit C# getestet, aber ich vermute, es müsste bei Dir so 
ähnlich funktionieren.
1
var csb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
2
csb.Server = "Server_Name";
3
csb.Database = "elela";
4
csb.Port = 3306;
5
csb.Password = "*******************";
6
csb.UserID = "elela";
7
csb.SslMode = MySql.Data.MySqlClient.MySqlSslMode.Required;

Ohne SSL (MySqlSslMode.None in der letzten Zeile) konnte ich aus C# auf 
die EleLa Datenbank am Raspi sofort zugreifen.
Mit der Einstellung von MySqlSslMode.Required wird die 
SSL-Verschlüsselung erzwungen. Das hat mit C# allerdings erst 
funktioniert nachdem ich sämtliche Schlüssel und Zertifikate am Raspi 
neu generiert habe.

Eine Option zum ein-/aus- schalten der SSL Verschlüsselung (das was im 
oberen Code-Beispiel in der letzten Zeile passiert; Required vs. None) 
könnte beim Testen hilfreich sein.

Nachdem ich alles durchprobiert habe und die beschriebenen Änderungen am 
Raspi durchgeführt habe, konnte auch EleLa wieder auf die Datenbank 
zugreifen:
1
21:28:23 DB.Version: SQLite-DLL: 3.30.1 / MySQL: 10.3.17-MariaDB-0+deb10u1
2
21:28:23 Database Version: V3.0.17A12
3
21:28:23 Do Update 65 from Database.
4
21:28:23 RenameField (tree_typ,ID_ID,ID_ID,INTEGER)
5
21:28:23 CreateNewField (kiste,ID_ID,INTEGER)
6
21:28:23 CreateNewField (bauteillager,TecData,JSON)
7
21:28:24 Update 65 finish.
8
21:28:24 New Database Version: V3.1.18B30

Auch die anschließende Datenbank-Überprüfung ist ohne Probleme gelaufen.
Ohne Optionen um die *.pem Dateien anzugeben kann IMHO keine 
Verifizierung statt finden um sicher zu stellen, dass die Verbindung mit 
dem richtigen Server initiiert wird.
Um auch das sicher zu stellen, wären noch nie Optionen SslCa, SslCert 
und SslKey erforderlich.
Bei mir (in C#) müsste dafür die letzte Zeile im oberen Code-Beispiel 
durch folgende Zeilen ersetzt werden:
1
csb.SslMode = MySql.Data.MySqlClient.MySqlSslMode.VerifyFull;
2
csb.SslCa = Path.Combine(appFolder, "ssl", "ca-cert.pem");
3
csb.SslCert = Path.Combine(appFolder, "ssl", "client-cert.pem");
4
csb.SslKey = Path.Combine(appFolder, "ssl", "client-key.pem");
Statt VerifyFull kann auch VerifyCA angegeben werden:
VerifyFull - Always use SSL and perform full certificate validation.
VerifyCA - Always use SSL. Validate server SSL certificate, but 
different host name mismatch.
Damit habe ich mich allerdings noch nicht näher befasst. Ich habe nur 
getestet ob ich auch mit diesen Optionen hinkomme und es ist ohne 
Probleme gegangen.

Das ist jetzt aber keine Anforderung, sondern nur ein Vorschlag. :-)

LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@JK
Die in EleLa verwendete Datenbank Komponente "Zeos" ist eine Komponente 
die zu vielen Datenbanken eine Verbindung herstellen kann.
Spezielle datenbankspezifische Einstellungen können über eine 
"Properties" Liste der Komponente übergeben werden.
In der Doku steht z.B. das:
1
SSL connections are supported using this connection properties (using mysql_sll_set library call) :
2
    Properties.Strings = (
3
      'MYSQL_SSL=TRUE'
4
      'MYSQL_SSL_CA=D:/mysql/certs/ca-cert.pem'
5
      'MYSQL_SSL_CERT=D:/mysql/certs/client-cert.pem'
6
      'MYSQL_SSL_KEY=D:/mysql/certs/client-key.pem')

Ich brauche somit nur in der INI Datei eine neue Sektion, z.B. 
[DB_Properties] anlegen in der man dann:
MYSQL_SSL=TRUE
: : :
einträgt. EleLa überträgt dann eutomatisch alle Einstellungen aus dieser 
Sektion in die DB Komponente und gut ist.

Ist kein Problem das in EleLa mit auf zu nehmen und verbessert die 
Datenbank Verbindungsmöglichkeit sehr.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@JK

Nun kann EleLa ab V3.1.19B17 Properties der Datenbankverbindung zur 
Datenbankkomponente weiter leiten. Es ist somit möglich Parameterwerte 
direkt zur Datenbank Client DLL zu übergeben.
Dazu wird in der EleLa INI Datei eine optionale Section:
[DB_Properties]
angelegt, darin können alle
1
<Variable>=<Wert>
angelegt werden.

Als Beispiel für die Aktivierung der Client DLL SSL Verschlüsselung 
müsste man die EleLa.ini Datei mit diesen Zeilen erweitern:
1
[DB_Properties]
2
MYSQL_SSL=TRUE
3
MYSQL_SSL_CA=ca-cert.pem
4
MYSQL_SSL_CERT=client-cert.pem
5
MYSQL_SSL_KEY=client-key.pem
6
MYSQL_SSL_CAPATH=
7
MYSQL_SSL_CYPHER=

Die Datenbank Komponente Zeos ruft mit diesen Parametern die 
LibMySQL.dll Funktion "mysql_ssl_set()" auf. Die Beschreibung was 
welcher Parameter im Detail zu bedeuten hat muss man in der Doku von 
MySQL nachlesen:
https://dev.mysql.com/doc/refman/8.0/en/mysql-ssl-set.html

Hier ein Tutorial wie man eine SSL Verschlüsselung Server- und 
Clientseitig für MySQL erzeugt:
https://www.howtoforge.com/tutorial/how-to-enable-ssl-and-remote-connections-for-mysql-on-centos-7/
(ausprobiert habe ich es selbst nicht)

In der aktuellen EleLa.chm Hilfe ist unter "Installation" > "Tutorial - 
Einrichten MySQL Datenbank", Abschnitt "Optional: MySQL Verbindung mit 
einer SSL Verschlüsselung verwenden" das ganze nochmals 
beschrieben/dokumentiert.

Bitte teste diese Einstellung und gebe Bescheid ob EleLa nun mit der SSL 
Verbindung klar kommt.

von Jaroslaw K. (root666)


Lesenswert?

@Markus:

> Bitte teste diese Einstellung und gebe Bescheid ob EleLa nun mit der SSL
> Verbindung klar kommt.

Ich habe EleLa aktualisiert, die Ini-Datei ergänzt und die Verbindung 
funktioniert noch:
1
18.11.19 Start program V3.1.19B17-64
2
...
3
Parameter [DB_Properties] MYSQL_SSL=TRUE
4
Parameter [DB_Properties] MYSQL_SSL_CA=.\ssl\ca-cert.pem
5
Parameter [DB_Properties] MYSQL_SSL_CERT=.\ssl\client-cert.pem
6
Parameter [DB_Properties] MYSQL_SSL_KEY=.\ssl\client-key.pem
7
Parameter [DB_Properties] MYSQL_SSL_CAPATH=
8
Parameter [DB_Properties] MYSQL_SSL_CYPHER=
9
...
10
OpenSSL found.
11
Connect database...
12
DB.Version: SQLite-DLL: 3.30.1 / MySQL: 10.3.17-MariaDB-0+deb10u1
13
Database Version: V3.1.18B30
14
Database connected.

Vielen Dank!
LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Vielen Dank für den schnellen Test.

von Armin K. (-donald-) Benutzerseite


Lesenswert?

Hallo Markus,

der "Lieferanten"-Bug vom 11.6. ist noch nicht behoben.
Soll keine Kritik sein, sondern eine Erinnerung ;-)

Armin

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der "Lieferanten"-Bug ist nun in allen EXE Versionen EleLa V3.1.19B18 
beseitigt:

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

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

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habe einen Telegram-Chat für EleLa eröffnet. Ich bin mir jetzt nicht 
sicher ob es gut ist oder nicht, ich habe es einfach mal gemacht.
Die Gruppe ist öffentlich und jeder kann dieser beitreten:

https://t.me/mmvisual_elela

Einziger Haken: man braucht dazu die App Telegram, gibt es als Android, 
IPhone, Windows, Linux und Mac Programm, sowie über Web-Browser.

Ein paar Screenshots was sich in EleLa V4 ändern wird habe ich da mal 
angehängt. Natürlich können da auch fragen zur aktuellen oder älteren 
Versionen gestellt werden.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Für Leute die eine Synology Discstation besitzen und einen automatisches 
Backup der MariaDB Datenbank(en) erstellen wollen:

In der aktuellen Hilfe von EleLa:
http://www.mmvisual.de/elela -> EleLa_V3.1

habe ich ein Tutorial hinzu gefügt in dem beschrieben ist wie man bei 
einer Synology DS ein automatisches Backup der Datenbanken (dump) 
erzeugen kann. In der Hilfe ist ein Script (.sh Datei) zum Download und 
es ist beschrieben wie man den "Aufgabeplaner" einrichtet damit das 
Backup funktioniert.

Hilfe: Installation > Tutorial - Synology DS Backup

==

Und weil es so "einfach" war, habe ich in der Hilfe auch noch gleich ein 
Script hinzu gefügt, der einen Dump der SVN Repro's erstellen kann, 
falls jmd die DS als SVN Server nutzt.

==

In der Hilfeseite "Inhalt" ist ein Link
"Schnellüberblick: Neuerungen in EleLa V4"
Darin kann schon mal jeder nachlesen welche Neuerungen es in EleLa V4 
geben wird und welche Aktionen der Bediener beim Update von V3.1 auf V4 
beachten sollte.

==

Neu habe ich einen Telegram EleLa-Kanal erstellt, damit kann jeder über 
die News auf dem, laufenden bleiben:

https://t.me/elela_news

Ist wie bei meinem letzten Post, wie gut so ein Kanal ist, bzw. ob es 
funktioniert, wird man erst mit der Zeit sehen.

: Bearbeitet durch User
von HWAlter (Gast)


Lesenswert?

Hallo Markus,

Positionen die im Projekt als "n.v." (nicht verwendet) markiert sind 
werden richtiger weise bei "Prüfe Menge für Produktion" nicht angezeigt.
Leider werden diese dann aber fälschlicherweise bei "Buche Menge nach 
Produktion" im Lager abgezogen.

Gruß
Walter

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich schaue mir den Bug an.

von Macher (Gast)


Lesenswert?

Hallo!
Ich habe begonnen, meinen Lagerbestand in ELELA zu verwalten. Anlegen 
einzelner Bauteile ist soweit kein Problem. Was ich allerdings nicht 
verstanden habe ist, wie man ein Projekt (z.B. eine bestückte Platine) 
als Bauteil anlegt, um es später wiederum in einem anderen Projekt/Gerät 
zu verwenden. Laut Anleitung soll das ja funktionieren, leider ist es 
nicht erklärt. Hat das schonmal jemand gemacht?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Eine bestücke Platine ist wie jedes andere Bauteil an zu legen. Unter 
Bauteile gibt es diese Unterscheidung nicht.

Unter "Projekt-F3" wird dann dieses Bauteil und Gehäuse/Lager 
zugeordnet.

Wenn man nun das Projekt produziert so wird die produzierte Menge dem 
Lagerbestand des verknüpften Bauteils hinzugefügt.

Beschrieben ist das in der Hilfe unter Projekte > Projekte Verwalten.
beim Abschnitt "Funktion "Buche Menge nach Produktion" und "Buche 
Teil-Menge nach Produktion":"

Siehe Screenshot. Hier wird die Verknüpfung zum Bauteil eingestellt, 
deren Menge wird nach Fertigstellung des Projektes erhöht.

von Macher (Gast)


Lesenswert?

Ok danke. Habe ich schlicht übersehen. Für den Fall, dass ich die 
falsche Menge buche, gibt es die Möglichkeit, die Menge wieder 
zurückzubuchen, resp. diesen Schritt rückgängig zu machen?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Im Projekt nicht, jedoch unter Bauteile-F2 > Gehäuse/Lager kann die 
Menge jederzeit angepasst werden.
Nach der Mengenkorrektur kann man unter Bauteile-F2 > Lagerbewegung in 
der Spalte "Grund" rein schreiben warum man die Menge "manipuliert" hat, 
z.B. Inventur.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Neue EleLa Version V3.1.20307 steht nun mit MsSQL Unterstützung bereit. 
In der aktualisierten Hilfe ist ein "Tutorial MsSQL Einrichtung" in dem 
beschrieben ist welche neue DLL's dazu verwendet werden müssen und wie 
der MsSQL parametriert sein muss.

Mehr Details im Kanal "EleLa News": https://t.me/elela_news

Fragen können gerne hier oder im Chat https://t.me/mmvisual_elela 
gestellt werden. Bugs ebenfalls ;-)

von Walther (Gast)


Lesenswert?

Hallo,

ich arbeite schon seit längerem mit ELELA. Einfach ein klasse Programm.

Mein Problem hat nicht direkt etwas mit ELEA zu tun sondern mit der 
Datenbank und wie man Werte (viele Werte) schnell und einfach ändern 
kann.

Unter anderem hat mein Server auf dem MySQL läuft und auch alle 
Datenblätter eine neue IP Adresse bekomme.

In Elela sind die Links bei den Bauteilen zu den Datenblätter natürlich 
jetzt nicht mehr gültig. Bei einigen habe ich sogar noch den WINS Namen 
eingetragen.

Neue Server IP: 192.168.1.100
Alte Server IP: 192.168.2.100
WINS Name: Homeserver

Ich möchte also jetzt alles auf einen einheitlichen Stand bringen. Statt 
dem WINS Namen soll nur noch die IP verwendet werden. Alles händisch zu 
ändern bei tausenden Bauteilen ist dann doch wieder eine Lebensaufgabe. 
Aber ich denke das geht auch automatisch. Ein bisschen habe ich 
gegoogelt weiß aber nicht wo ich in der Datenbank ansetzen soll. Mit dem 
Befehl Update sollte es ungefähr so gehen

UPDATE tabelle SET feldname = wert WHERE (bedingung);

Nur in welcher Tabelle steht die Info?

von Drago S. (mratix)


Lesenswert?

Walther schrieb:
> ich arbeite schon seit längerem mit ELELA.
Ich arbeite mit PartDB und kenne EleLa noch nicht. Der Thread ist seit 
längerem unter Beobachtung. Bisher hat mich die 2-Komponenten Lösung 
Server-Client und die veraltete Optik abgeschreckt es anzufassen und 
produktiv etwas anzufangen.

Ob und wie weit das Problem in EleLa lösbar ist, kann ich nicht sagen.
Aber viele Wege führen nach Rom. Der Schilderung nach würde ich 
folgendermaßen vorgehen oder in Erwägung ziehen:

Walther schrieb:
> UPDATE tabelle SET feldname = wert WHERE (bedingung);
- Mit dem MySQL Browser zunächst die entsprechenden Tabellen analysieren 
und Datensätze nach den Werten (servername, IP etc.) absuchen. Danach 
könntest du das update direkt in der Datenbank fahren.
- Oder noch einfacher, die alte Datenbank plaintext als .sql 
exportieren. In einem Editor öffnen, mit Suchen und Ersetzen die Werte 
umschreiben lassen, die Datenbank auf dem neuen Server importieren.

Möglich wäre auch eine reine Lösung auf Netzwerkbasis, ohne die 
Datenbank oder Daten anzufassen.
- Dem neuen Server eine zweite IP Adresse (die alte) dazukonfigurieren. 
Wenn der Server intern die Aufgabe der Anlagenverwaltung und 
Auslieferung als payload durchführt, ist das Problem hiermit erledigt. 
Ich frage mich eh, was dagegen spricht dass der Server die Attachments 
nicht als localhost/webroot verarbeitet, statt dessen absolute (lokale!) 
Pfade einträgt.
- Sollte der Client die Attachments als url anfordern, benötigt er etwas 
Hilfe beim Umschreiben. In Frage käme der DNS Server oder der Client 
selbst.
- Dazu den alten Servernamen mit der neuen IP, dem DNS Server als 
statischen Eintrag anlegen. Die alte IP auf den neuen Servernamen 
ebenfalls statisch anlegen. Dazu noch eine Route des alten 
Netzwerksegments auf den neuen Server legen.
- Oder kompletten Traffic per NAT an neue IP weiterleiten.
- Oder als Insellösung die Umschreibung direkt beim Client vornehmen, in 
seiner hosts-Datei, den alten hostnamem mit der neuen IP anlegen. Den 
neuen hostnamen mit einem Alias des alten Servernamen ergänzen.

Das war, was mir spontan so einfällt. Auf nach Rom :)

Nachtrag: noch eine Idee, einen Apache/Nginx mit der url-Umschreibung 
und redirect beauftragen.

: Bearbeitet durch User
von Jaroslaw K. (root666)


Lesenswert?

Mister A. schrieb:

> Bisher hat mich die 2-Komponenten Lösung
> Server-Client und die veraltete Optik abgeschreckt es anzufassen und
> produktiv etwas anzufangen.

Ich finde das Programm spitze und nicht jede Applikation muss im Windows 
10 Look daher kommen, welches ich übrigens nur als Katastrophe 
bezeichnen kann.
Die Client-Server Konfiguration ist bei EleLa kein Zwang.

> - Mit dem MySQL Browser zunächst die entsprechenden Tabellen analysieren

Wozu?
Im EleLa Helpfile ist auch das Datenmodell dokumentiert und die 
SQL-Befehle lassen sich auch alle direkt in EleLa durchführen.
Vorher sollte natürlich eine Datenbank-Sicherung durchgeführt werden. 
Das geht auch direkt in EleLa und zwar unabhängig davon ob eine 
Datenbank am Server oder lokal verwendet wird.

LG. JK

von Drago S. (mratix)


Lesenswert?

Jaroslaw K. schrieb:
> Ich finde das Programm spitze und nicht jede Applikation muss im Windows
> 10 Look daher kommen, welches ich übrigens nur als Katastrophe
> bezeichnen kann.
Ich komme aus der Linux Welt und habe mich vor gut 10 Jahren von allen 
aufgedrungenen "intelligenten Automatismus" Fesseln gelöst. Mittlerweile 
stechen mir schon ein paar aneinandergereihte bunte Icons oder diese 
bescheuerten Kacheln die Augen aus.
Ich finde eine schlichte und einfache Menüführung mit Text tut es 
vollkommen. Lesen kann ja mittlerweile jeder?
Nunja, Geschmackssache, kein Universalrezept.

EleLa finde ich schon interresant. Sehr interresant. Schon auf den 
ersten Blick zeigt es dass sich jemand Gedanken zu nützlichen, 
brauchbaren und benötigten Funktionen gemacht hat. Also etwas 
maßgeschneidertes, kein Stangenmaterial, entwickelt wurde. Lob an 
den/die Entwickler.

Nehmen wir an, ich würde einen Versuch starten...
Womit fängt man an? Mit der stable v3.0, der v3.1 oder einer aktuellen 
nightly?
Einen zentralen Datenbank- und Webserver habe ich, segmentiertes 
Netzwerk usw. Jedoch würde ich für EleLa einen Raspberry als Häuptling 
einsetzen. Als headless Server, nicht als client.
Die clients (Arbeitsmaschinen) sind alle Linux Desktops mit Debian, 
Ubuntu und ähnlichem. Nur die sollten das Backend benutzen können. In 
meiner Anwesenheit natürlich :)
Windows hat Hausverbot, das Ausführen von irgendwelchen .exe ist nicht 
möglich, gegeben oder gewünscht.
Wie sieht es mit Daten aus? Komplett clean ohne alles, ohne footprints, 
ein paar Dioden, Transistoren? Oder gibt es eine Demodatenbank, oder 
einen User der seine z.V. stellen könnte und würde?

Jaroslaw K. schrieb:
> Im EleLa Helpfile ist auch das Datenmodell dokumentiert
Das hört sich gut an. Schließlich möchte man nach einem Testlauf mit 
produktiven Daten arbeiten. Soweit möglich die eigens mühsam 
zusammengetragenen weiterverwenden. Aber das ist ein anderes Thema.

Jaroslaw K. schrieb:
> Vorher sollte natürlich eine Datenbank-Sicherung durchgeführt werden.
Diesen Satz lese ich in jedem zweiten Beitrag. Damit steigt die Skepsis, 
ob das Gerüst auch stabil ist bzw. wie einflussreich die Anbauten sind, 
die nachträglich folgen und dazuentwickelt werden.

Ich hoffe ihr könnte mir die eine oder andere Frage beantworten.
Vielen Dank

von Jaroslaw K. (root666)


Lesenswert?

Mister A. schrieb:

> Nehmen wir an, ich würde einen Versuch starten...
> Womit fängt man an? Mit der stable v3.0, der v3.1 oder einer aktuellen
> nightly?

Ich würde auf jeden Fall die letzte stabile Version empfehlen. Das gilt 
aber nicht nur für EleLa. Ein Einsteiger, der ein Programm erstmal 
kennenlernen will, wird sich IMHO eher nicht auch noch mit Bugs einer 
Beta-Version befassen wollen.

> Einen zentralen Datenbank- und Webserver habe ich, segmentiertes
> Netzwerk usw. Jedoch würde ich für EleLa einen Raspberry als Häuptling
> einsetzen. Als headless Server, nicht als client.
Bei mir läuft die Datenbank am Raspi. Dieser ist allerdings mit einer 
SSD ausgestattet, da SD-Karten eher schlechten Ruf als Datenträger 
haben. Vor allem, wenn ständig darauf geschrieben wird.

> Wie sieht es mit Daten aus? Komplett clean ohne alles, ohne footprints,
> ein paar Dioden, Transistoren? Oder gibt es eine Demodatenbank, oder
> einen User der seine z.V. stellen könnte und würde?

Ich habe vor Jahren mit der v2.0 und der mitgelieferten Datenbank 
begonnen. Sie hat ein für mich ausreichendes Grundgerüst geboten.
Was aktuell sinnvoll wäre, kann ich leider nicht sagen.

>> Vorher sollte natürlich eine Datenbank-Sicherung durchgeführt werden.
> Diesen Satz lese ich in jedem zweiten Beitrag. Damit steigt die Skepsis,
> ob das Gerüst auch stabil ist bzw. wie einflussreich die Anbauten sind,
> die nachträglich folgen und dazuentwickelt werden.
Damit habe ich nicht gemeint, dass hier EleLa instabil oder unausgereift 
wäre. Ein Backup sollte man immer vor derartigen Änderungen machen!
Immerhin wird da auf die Datenbank, am Programm vorbei, zugegriffen. 
Wenn Du irgendwo einen Fehler machst, kann es u.U. die Datenbank 
inhaltlich Ruinieren. Die Korrektur ist dann wesentlich schwieriger, als 
die Daten aus dem Backup wieder herzustellen.

LG. JK

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Walther schrieb:
> Ich möchte also jetzt alles auf einen einheitlichen Stand bringen. Statt
> dem WINS Namen soll nur noch die IP verwendet werden. Alles händisch zu
> ändern bei tausenden Bauteilen ist dann doch wieder eine Lebensaufgabe.
> Aber ich denke das geht auch automatisch.

Das mit den Handbüchern umstellen geht in EleLa normalerweise ganz 
einfach, allerdings muss man den Parameter für den Handbuch Wurzelpfad 
korrekt gesetzt haben.

Die Pfade der Handbücher in EleLa werden innerhalb von EleLa mit einem 
speziellen Präfix in der Datenbank gespeichert. Diesen Präfix stellt man 
entweder während der Installation von EleLa ein (Dialog im Setup) oder 
unter:
Extras-F10 > Log > Optionen > Verzeichnisse

In dieser Ansicht steht in der Ersten Zeile:
"Bauteile" [Einbagefeld] "($H)"

Wichtig ist dabei dass man diesen Parameter schon zu Anfang mit dem 
Wurzel-Verzeichnis aller Datenblätter einstellt, damit kann man die 
Datenblätter an einen komplett anderen Ort verschieben und muss nur noch 
diesen einen Parameter anpassen.

Beispiel:
Eingestellter Parameter: "H:\Elektronik"

Datenblatt eines Teiles: "H:\Elektronik\www.Hersteller.com\Teil.pdf"

Nun sieht EleLa automatisch dass dieses Datenblatt mit dem Parameter 
"H:\Elektronik\" übereinstimmt und schreibt dann das in die Datenbank:
"($H)\www.Hersteller.com\Teil.pdf"

Wenn man nun den Parameter ändert z.B. auf: "D:\LokaleDatenblätter"
dann wird EleLa automatisch das "($H)" ersetzen und dann sieht der Link 
so aus:
"D:\LokaleDatenblätter\www.Hersteller.com\Teil.pdf"

So viel zur Einleitung wie das Handbuch-System in EleLa funktioniert und 
ein Sysadmin sehr leicht seine Datenstruktur ändern kann.

Wegen deinem Problem:
Als erstes, bevor man an den Daten manuell mit SQL Befehlen eine 
Sicherung machen, denn nichts ist schlimmer als Daten falsch zu 
manipulieren und dann noch größere Probleme zu haben:
Extras-F10 > Datenbank > Import-/Export Menü > Importiere/Exportiere 
Datenbank > Export

Analysieren wie die Daten in der EleLa Datenbank tatsächlich aussehen:
Extras-F10 > Datenbank
kann der SQL Befehl eingegeben werden:
1
SELECT Handbuch, Handbuch AS Hnd FROM bauteil WHERE NOT Handbuch IS NULL

Das Ergebnis müsste dann so aussehen wie im angehängten Screenshot zu 
sehen ist, die Spalte "Handbuch" konvertiert EleLa automatisch, die 
Spalte "Hnd" nicht, da sieht man die Original Daten wie sie in der 
Datenbank stehen.
Schicke mir so ein Screenshot, dann kann ich weiter helfen mit welchem 
SQL Befehl man die Daten alle so ändert, dass zu Beginn auch überall 
"($H)" steht und man den Parameter nutzen kann.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> Das war, was mir spontan so einfällt. Auf nach Rom :)

Mit den Bordeigenen Mitteln von EleLa kann man so ziemlich alles machen 
was einem Lieb ist, es braucht nur externe Tools um z.B. die Datenbank 
zu installieren (das Setup der Datenbank MariaDB/MySQL/PostgreSQL/MsSQL) 
und dann ein Tool wo man einen Datenbanknutzer für EleLa einrichtet und 
diesem Nutzer die Rechte gibt, die EleLa benötigt. Die Datenbank 
anlegen, samt Tabellen kann dann EleLa.
Um einfach mal mit EleLa zu "üben" verwendet man am besten die Variante 
"SQLite", damit braucht man das ganze mit dem SQL Server nicht machen 
und EleLa startet einfach nach dem Setup. Nur bei Linux muss man der 
Linux-EXE das Recht "Ausführen" geben, damit die EXE Startet (mein 
Windows kann das nicht ins ZIP speichern).
Ich empfehle für jeden der nur einen PC nutzt und mit SQL Server bisher 
noch nichts am Hut hatte der Einfachheit halber SQLite zu nutzen.

Sollte man später mal mehr machen, bzw. einen SQL Server nutzen wollen 
so kann EleLa diese immer in den SQL Server importieren. Ein Backup 
macht EleLa immer in eine SQLite Datenbankdatei.

Es spricht nichts dagegen EleLa V3.1 zu nutzen, darin sind einige Bugs 
aus V3.0 gefixt.

Design:
Auch wenn EleLa relativ "Platt" aussieht, mir ist es wichtiger dass die 
EXE möglichst schnell und flüssig arbeitet und man die Infos sieht die 
man braucht. EleLa verwendet die "Standard" Komponenten, die immer im 
Compiler mit verfügbar sind und keine hübsche tolle Fremdkomponenten, 
damit habe ich eine sehr wichtige Abhängigkeit weniger, was wiederum ein 
Fortbestehen über viele Jahre garantiert. (Ja, ich hatte schon 
entsprechende Erfahrungen die letzten 25 Jahre)

Zum Start:
Mit "F1" öffnet die Hilfe und es ist alles darin beschrieben, auch Tipps 
wie man Dinge eingeben sollte, bzw. wie es sich der Programmierer 
dachte. Der Abschnitt "Allgemeine Infos" sollte jeder als Grundlage 
gelesen haben, da steht das wichtigste drin. (Linux-User sollten 
KChmViewer installieren, damit kann EleLa auch unter Linux eine 
kontextbezogene Hilfe öffnen)

: Bearbeitet durch User
von Drago S. (mratix)


Lesenswert?

Danke euch für die Antworten.
Das (Online)Handbuch habe ich gefunden und es mir draußen im Garten 
gemütlich gemacht.

Wahrscheinlich wird das Setup heute noch durchgefahren. Sobald ein 
Raspberry freigeschaufelt ist.

Kleine Zwischenfrage aus 
http://www.mmvisual.de/Hilfe/EleLa/InstallLinux.htm
>Für Ubuntu 64Bit sind hier Lösungen beschrieben: 
http://wiki.ubuntuusers.de/getlibs
Der Artikel/Link ist nicht vorhanden. Getlibs ist kein Paket, welche 
libs werden für EleLa benötigt?

>Wenn Sie EleLa als Warenverwaltung nutzen wollen, dann die Datei "EleLa.sq3" 
umbenennen und "EleLa_Waren.sq3" zu "EleLa.sq3" umbenennen. Somit ist die 
Start-Datenbank für Warenlager/Artikel aktiviert.
Verständnisproblem. Warenlager <> Bauteilelager? Demodatendank?

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bei Linux ist in der Regel alles schon orhanden, EleLa braucht nichts 
extra, bzw. es wird dann in der Konsole geschrieben was man noch für 
libs installieren muss.
Als nützliches Tool sollte "KChmViewer" installiert werden, das kennt 
EleLa und nutzt es automatisch als Hilfe Viewer, das Tool ist nur 
optional nötig.
Den nicht mehr funktionierenden externen Link habe ich nun gelöscht.

Die Hilfe von EleLa kann als CHM Datei geladen werden und man kann diese 
offline mit einem Pad und einer CHM Reader App nutzen. Ich nutze gerne 
die App "SuperCHM".
http://mmvisual.de/elela/ > EleLa_V3.1 > EleLa.chm

Man kann EleLa auch als Artikel-Datenbank nutzen, also nicht Elektronik 
Bezogen, dafür habe ich eine separate Start-Datenbank erstellt, damit 
man nicht die "Gehäuse" der Bauteile sieht, dass sind dann 
"Verpackungen". Dazu gibt es dann noch eine andere 
Sprach-Übersetzungsdatei, die "Gehäuse" in "Verpackung" und "Bauteil" in 
"Artikel" umbenennt.
Mit einer komplett leeren Datenbank würde der Einstieg viel schwerer 
sein, so hat man schon Beispiele.

: Bearbeitet durch User
von Drago S. (mratix)


Lesenswert?

Mir ist etwas dazwischengekommen, konnte erst sehr spät anfangen.

Entweder bin ich zu doof oder meine, dass jede Menge Dateien fehlen um 
mit der v3.1 clean zu starten. Wenn ich es richtig interpretiert habe 
ist die v3.0 das Release. Die v3.1 beinhaltet nur die Diffs für das 
Update.

Jedenfalls bin dann auf die v3.0 gegangen und es hochgepatched. Nebenbei 
das ganze festgehalten, etwas in Form gebracht (gleich für alle 3 
Platformen), kommentiert und einen Installer zusammengekritzelt. Das war 
natürlich nicht geplant, hat sich einfach so ergeben :)

Vielleicht möchtet ihr drüberschauen und Korrekturlesen...
1
### EleLa Installation
2
### Raspberry Pi ARM, Linux 32-bit, 64-bit
3
###
4
### by Mr.AtiX, 200423, v0.1
5
6
# prereq Pakete installieren
7
sudo apt-get update && sudo apt-get install curl dialog wget pstree unzip tzdata
8
sudo apt-get install smbclient mysql-client
9
10
# passenden CHM-Viewer installieren
11
if [ echo "$XDG_DATA_DIRS" | grep -Eo 'xfce|kde|gnome|mate' = "kde" ]
12
  then
13
    sudo apt-get install kchmviewer okular # kde
14
  else
15
    echo $DESKTOP_SESSION
16
    sudo apt-get install xchm # gnome,xfce,mate
17
fi
18
19
# Zeitzone setzen und aktivieren
20
sudo timedatectl set-timezone Europe/Berlin
21
sudo ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
22
sudo sh -c 'echo "Europe/Berlin" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata'
23
24
# todo: sonstige Lokalisation und Sprachen
25
# locale setzen
26
# sudo locale-gen
27
28
# Installationsverzeichnis anlegen
29
ELELADIR="$HOME/EleLa"
30
mkdir -p $ELELADIR/Handbuch # warum heisst das Attachments Verzeichnis Handbuch?
31
32
# Download EleLa
33
cd `xdg-user-dir DOWNLOAD`
34
wget -t1 -nd -cNS... # url-Liste der Downloads
35
36
# Entpacken
37
unzip -o EleLa_V3.0.18B15_RaspberryPi_Install.zip -d $HOME/
38
unzip -o EleLa_V3.0.18B15_Linux32.zip -d $ELELADIR/
39
unzip -o EleLa_V3.0.18B15_Linux64.zip -d $ELELADIR/
40
unzip -o EleLa_V3.1.20309_RaspberryPi.zip -d $ELELADIR/
41
unzip -o EleLa_V3.1.20309_Linux32.zip -d $ELELADIR/
42
unzip -o EleLa_V3.1.20309_Linux64.zip -d $ELELADIR/
43
chmod +x $ELELADIR/EleLa.rpi
44
chmod +x $ELELADIR/EleLa.32
45
chmod +x $ELELADIR/EleLa.64
46
cp -u EleLa.chm $ELELADIR/
47
cp -u $ELELADIR/EleLa.sq3 $ELELADIR/EleLa.sq3.bak
48
cp -u $ELELADIR/EleLa_Elektronik.sq3 $ELELADIR/EleLa.sq3
49
50
# den richtigen Desktop, Arbeitsflaeche, Schreibtisch benutzen
51
mv $HOME/Desktop/EleLa.desktop `xdg-user-dir DESKTOP`/
52
53
# Starter umschreiben fuer x86,x64
54
# >Icon=/home/pi/EleLa/EleLa.png
55
sed -i 's/\/home\/pi\/Elela/${ELELADIR}/g' `xdg-user-dir DESKTOP`/EleLa.desktop
56
# >Exec=/home/pi/EleLa/EleLa.rpi
57
cp -u `xdg-user-dir DESKTOP`/EleLa.desktop `xdg-user-dir DESKTOP`/EleLa-rpi.desktop
58
sed -i 's/.rpi/.32/' `xdg-user-dir DESKTOP`/EleLa.desktop
59
cp -u `xdg-user-dir DESKTOP`/EleLa.desktop `xdg-user-dir DESKTOP`/EleLa-x86.desktop
60
# >Exec=.../EleLa.32
61
sed -i 's/.32/.64/' `xdg-user-dir DESKTOP`/EleLa.desktop
62
cp -u `xdg-user-dir DESKTOP`/EleLa.desktop `xdg-user-dir DESKTOP`/EleLa-x64.desktop
63
chmod ug+rwx o- `xdg-user-dir DESKTOP`/EleLa*.desktop
64
mv `xdg-user-dir DESKTOP`/EleLa.desktop ${ELELADIR}/
65
66
# ins Menue ablegen
67
sudo cp `xdg-user-dir DESKTOP`/EleLa-rpi.desktop /usr/share/raspi-ui-overrides/applications/
68
sudo cp `xdg-user-dir DESKTOP`/EleLa-x86.desktop /usr/share/applications/
69
sudo cp `xdg-user-dir DESKTOP`/EleLa-x64.desktop /usr/share/applications/
70
71
# Mountpoint-Beispiele eintragen
72
echo "#//$SERVER/$SHARE  ${ELELADIR}/Handbuch  cifs  user=$USER,password=$PASS,vers=1.0,iocharset=utf8,rw,file_mode=0777,dir_mode=0777,nounix,x-systemd.requires=network-online.target 0 0" | sudo tee --append /etc/fstab
73
echo "#//cronas/data  /mnt/cronas/data  cifs  rw,user,credentials=${HOME}/.smb,vers=3.0  0 0" | sudo tee --append /etc/fstab
74
echo "#cronas:/export/data  /mnt/cronas/data  nfs rw  0 0" | sudo tee --append /etc/fstab
75
echo "#/mnt/cronas/data/elela  ${ELELADIR}  none bind,rw  0 0" | sudo tee --append /etc/fstab
76
sudo nano +99 -Bw /etc/fstab
77
sudo mkdir -p /mnt/cronas/data/elela
78
79
# vorsorglich Rechte durchziehen
80
sudo chown -R $USER:$USER $HOME
81
82
# END (geht aber noch weiter...)

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Vielen Dank für den Script! Ich würde den so mit in die Hilfe aufnehmen, 
als "Anhaltspunkt". Ist das OK?

Wegen:
# warum heisst das Attachments Verzeichnis Handbuch?

"Handbuch" sind Handbücher, Datenblätter, App-Notes, von allen Bauteilen 
und Dinge die man so hat. Handbücher sind eigentlich keine "Anhängsel" 
eher was grundlegend wichtiges.

"Handbuch" sind bei mir alle Handbücher zu allen möglichen Themen, nicht 
nur Elektronik. Dieses Handücher sind bei mir als "H:" Laufwerk 
verbunden. Man könnte dies auch "Datenblätter" (oder die englischen 
Bezeichnungen verwenden), ich bleibe da lieber bei den deutschen 
Bezeichnungen, da ich damit weniger Probleme mit englischen 
Schlüsselwörter bei der Programmierung habe.

Ein definiertes "Handbuch" Verzeichnis ist in EleLa sehr wichtig, siehe 
hier:
Beitrag "Re: EleLa - Elektronik Lagerverwaltung V3.1"

Bei EleLa kann man in das Eingabefeld natürlich auch eine Web-Adresse 
eintragen, dann wird dahin navigiert. Oder auch ein Verzeichnis, dann 
öffnet EleLa einen Datei-Browser. Die Web-Adresse als Datenblatt Quelle 
empfehle ich nicht zu verwenden, denn man weiß nie wann der Hersteller 
seine Web-Verzeichnisstruktur umbaut oder einfach Dinge löscht.

Bei mir habe ich die Datenblätter der Elektronik so organisiert:
H:\Elektronik - als Wurzel
Darunter Ordner mit z.B.
www.analog.com
www.cypress.com
www.fairchildsemi.com
: :
mit entsprechenden Unterverzeichnissen, z.B. Mosfets usw.
Alles gut sortiert, die www Adresse als Name. Im Prinzip ist es das 
private Wiki. Während dem Leben sammelt sich so einiges.

von Drago S. (mratix)


Lesenswert?

Markus M. schrieb:
> Ich würde den so mit in die Hilfe aufnehmen,
> als "Anhaltspunkt". Ist das OK?
Sicher doch. Es basiert primär auf deiner 
http://www.mmvisual.de/elela/EleLaRPiInstall.pdf und soll dir gehören.

zur Entstehung: Ich habe es als Zeilenweise Installation auf einem 
Xenial MATE x64 durchgeführt und nachträglich gescripted. Die 
Shebangzeile wurde mit Absicht nicht im Header eingetragen, damit es 
(vorerst) nicht blind und unkontrolliert gestartet wird. Einfach zur 
Vermeidung der bekannten "geht nicht" Rückmeldungen :)

Da gehört noch mindestens eine Abfrage oder Startparameterübergabe für 
die gewünschte Platform (ARM,x86,x64 Zeile 37-42) hinein. Weiter wollte 
ich keine hardkodierten Downloadlinks ohne Rücksprache aufnehmen (Zeile 
34). Ergo die Installationsfiles müssen im Downloadverzeichnis 
vorliegen.

Kurz zusammengefasst, die Installation funktioniet, EleLa ist damit 
startbar und lauffähig.

Was auf jeden Fall noch kommt, ist ein gescripteter Teil für MySQL. Wie 
eingangs schon erwähnt, würde ich das ganze gerne ausschließlich als 
Multiclient-Instanzen mit einer zentraler Datenbank (Daten) und 
Datenspeicher (Handbuch) einsetzen wollen. Daher auch nicht jeden client 
(Instanz) händisch installieren oder konfigurieren möchten.

Markus M. schrieb:
> "Handbuch" sind Handbücher, Datenblätter, App-Notes, von allen Bauteilen
> und Dinge die man so hat.
Ja, das habe ich mir soweit schon gedacht. Ich fand die Bezeichnung 
etwas verwirrend da das Handbuch (EleLa.chm) im Programmroot ($ELELADIR) 
liegt.

Die Datenstruktur und Pfade werde ich mir noch genauer ansehen.
Aber zunächst, es ist ein neues Programm, das möchte ich mir mit den 
Augen und Fingern anschauen :)

: Bearbeitet durch User
von Drago S. (mratix)


Lesenswert?

Eine Bitte hätte ich noch, könnte mir jemand ein paar Demodaten 
schicken?
Ich dachte da (was mich primär interressiert) ein kleines selbstgebautes 
oder nachgebautes Projekt mit wenigen Bauteilen. Womit ich das 
praktische Handling (Einkauf, Datenfelder, Bestückung, Projekteinsatz) 
nachvollziehen könnte.

Ich hoffe ihr versteht was ich meine... Etwas wie einen simplen Blinker 
mit NE555, Transistor, LED, 2 Widerstände.

von Drago S. (mratix)


Lesenswert?

Markus M. schrieb:
> Bei mir habe ich die Datenblätter der Elektronik so organisiert:
> H:\Elektronik - als Wurzel
> Darunter Ordner mit z.B.
> www.analog.com
> www.cypress.com
> www.fairchildsemi.com
Folgt es einen Automatismus (Sortierung und ggf. Umschreibung) oder ist 
das frei Nase wählbar?
Falls ja, muss hier escaped werden (enthaltene Leerzeichen, 
Sonderzeichen, Steuerzeichen)?

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> Eine Bitte hätte ich noch, könnte mir jemand ein paar Demodaten
> schicken?

Im Anhang ein kleines Projekt mit Platine. Im ZIP ist eine CAD CSV Datei 
die man in der ProjektPos importieren ("Import CAD CSV") kann sowie die 
Bilder SLP, PL und PL3D die man nacheinander beim Projekt einfügen kann.

Mit Doppelklick auf dem Bild PL zeigt sich das Bild größer und man kann 
es dann auch skalieren. Das rote Fadenkreuz zieht man auf links unten, 
da ist der 0-Punkt und das blaue auf rechts oben, das ist dann die 
Koordinate 61mm / 31,4mm. (Siehe Hilfe Allgemeine Infos > Bildvorschau)

Die meisten Bauteile sind in der Start-Datenbank nicht vorhanden, daher 
kann man wohl nur die Widerstände mit einem Bauteil aus "Bauteile-F2" 
verknüpfen.
Wie das geht steht in der Hilfe zur Projekt Position.

Obwohl die Bauteile nicht unter "Bauteil-F2" vorhanden sind, dürfen die 
Positionen vorhanden sein, es ist also kein Zwang die Teile an zu legen, 
somit kann man auch Projekte Planen wie z.B. völlig abstrakte Dinge wie:
"Ich will mir ein neues Auto kaufen"
Da kommen dann je Position die unterschiedlichen Modelle rein, Bilder 
und diverse Felder kann man dann missbrauchen um diverse technische 
Daten vergleichen zu können. Da wird man natürlich nicht jede Automarke 
als Bauteil anlegen, da schlussendlich man sich nur für eines 
entscheiden wird, das man da auch wiederum nicht anlegen wird, da man 
wohl die nächsten Jahre dieses nutzen wird und das nächste mal es wieder 
andere Modelle gibt.
Was ich damit sagen wollte, ein Projekt muss nicht unbedingt etwas mit 
Elektronik zu tun haben, damit kann man viel mehr für sich 
organisieren/planen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> oder ist das frei Nase wählbar?

Ja. Frei Nase.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein Bug hat sich beim Import von Projekt Positionen eingeschlichen, nun 
wird die Import-CSV Textdatei immer zu erst anhand der Dateicodierung 
untersucht und ggf. in UTF8 konvertiert bevor die Datei importiert wird.

Alle EXE Versionen EleLa V3.1.20423 können nun ab hier geladen werden:

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

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

Hier gibt es Setup Pakete, auch für Neuinstallationen unter Linux/RPi:

http://www.mmvisual.de/elela -> EleLa_V3.1.20423_RC2

Bitte testet dies, wenn was auffällt bitte melden. Gerne auch im Chat 
unter:
https://t.me/mmvisual_elela

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Anbei noch die Datei zu meinem Posting von 22:55...
Beitrag "Re: EleLa - Elektronik Lagerverwaltung V3.1"

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Die Hilfe-Datei wurde mit einem neuen Tutorial  "Projekt erstellen" 
erweitert:
http://www.mmvisual.de/elela -> EleLa_V3.1

Das Handling, wie Bestücken, Lagerbuchung usw. steht bei der Hilfe bei 
ProjektPos.

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Bevor ich zum eigentlichen Post komme, in der Anlage die letzte 
Scriptversion.
### Script fuer eine automatische Installation, Konfiguration*, 
Sicherung*, Wiederherstellung, Verteilung* von EleLA.
### Lauffaehig unter Raspberry Pi ARM, Linux 32-bit, 64-bit
### by Mr.AtiX, 200426, v0.3

Ich habe noch einiges dazugekritzelt und es enorm ausgebaut.

Durch einen leichtsinnigen Fehler in der Bedienung des Editors, oder 
einfach nur zur falschen Uhrzeit, ging ein fertig gescripteter Teil 
verloren: Die Sicherung.
Die paar Zeilen muss ich nochmal schreiben. Der Abschnitt 
Wiederherstellung hingegen hat es überlebt :) Normalerweise sollte es 
umgekeht sein.

Das Deployment (Verteilung) funktioniert auch schon.

Syntaxfehler kann ich nicht ausschließen, wer welche findet, bitte 
zurückgeben statt behalten :)

Viel Spaß

von Drago S. (mratix)


Lesenswert?

Markus M. schrieb:
> Im Anhang ein kleines Projekt mit Platine. Im ZIP ist eine CAD CSV Datei
> die man in der ProjektPos importieren ("Import CAD CSV") kann sowie die
> Bilder SLP, PL und PL3D die man nacheinander beim Projekt einfügen kann.
Nochmals Danke auf diesem Weg.

Ich habe es mir angeschaut. Den Projektimport (Bauteileliste) konnte ich 
relativ einfach hinbekommen. Den Rest (Bilder) erst Stunden später und 
auch nur per Zufall :)

Gestern habe ich den ganzen Tag damit gespielt (Bauteile, Lieferanten, 
Hersteller, Footprints, Einkäufe, Lager angelegt), um einen Einblick und 
Gefühl zu bekommen.
Eins möchte ich gleich mal ganz groß und dick loswerden: Das Programm 
ist der Hammer! Die Möglichkeiten sind enorm. Die Funktionen gut 
durchdacht, programmiertechnisch hervorragend und fehlerfrei umgesetzt. 
Von den Einsatzmöglichkeit her hat es sowohl meine Erwartungen als auch 
die Anforderungen deutlich übertroffen. Es ist nicht nur eine gute oder 
bessere Lagerverwaltung, es ist ein Projektmanagement-Instrument. Dazu 
noch ein gut dokumentiertes und gepflegtes Handbuch, Support im 
Forum/Webseite usw. ganz dickes Lob

Leider hat jede Medaille auch eine Kehrseite.
Ich versuche es mal harmlos wie möglich darzustellen.
- Es ist kein Ersatz für zeitgemäße moderne Software. Viele logische 
Schritte oder Haptik ist nicht vorhanden bzw. eine andere. Die 
Einarbeitung ist sehr anstrengend (erinnert mich an EAGLE vs KiCAD). 
Mächtig aber anspruchsvoll.
- Teilweise keine Tastaturunterstützung, wo sie angebracht wäre (z.B. 
beim diesen vertikalen Scrollisten (Bauteileliste) um wenigstens den 
Anfangsbuchstaben zu tippen. Generell komplette Tastaturunterstützung 
wäre sehr vorteilhaft.
- Merkwürdige kleine Pufferprobleme und Schluckauf in Textfeldern. Beim 
Markieren mit der Maus wird gerne der Zeilenanfang ignoriert, oder 
Fokusierung des Mauszeigers (springt oft und gerne an das Zeilenende). 
Den gleichen Fehler sah ich damals bei PartKeepr.
- Handbuch: für Datasheets und Anlagen keinen Upload. Wie arbeitet man 
damit, etwa manuel ins Handbuchverzeichnis kopieren und im Programm 
mühsam durchwühlen um es zu verlinken? Zu Erfindungen wie drop-in sag 
ich mal gar nichts. Sieht jedenfalls nach fehlenden Grundeigenschaften 
einer jeder Dokumentenverwaltung aus.
- Vorbelegte statische Ansicht der jeweiligen "ersten Seite". Im unteren 
Daten/Tabellenbereich fehlen mir relevante Datenfelder (Spaltenauswahl 
dazu ist eingeschränkt). Oder beim Anlegen eines Bauteils sind nicht 
alle relevanten Felder an einer Stelle (ergo hinter mehreren 
Tabs/Karten).
- Sync von gesplitteten/geteilten Fenstern. Das irritiert mich, die 
obere und untere Bildschirmhälfte hat nicht die gleichen Daten in den 
Feldern, des gleichen Bauteils. Anwenderfehler?
- Rastermaß bei Footprints haben nur 2 Nachkommastellen und werden 
automatisch auf/abgerundet. Ich glaube das betrifft auch die 
Preisfelder.
- Datenabfrage Octopart. Das haut nicht hin. Der Browser dröhnt den 
Benutzer mit Stundenlangen Captcha-Mosaikspielen. API-Key?

Das sind so die primären Sachen, die mir aufgefallen sind oder gestört 
haben. Es soll keine Negativ-Kritik-Liste werden. Die Software ist 
gigantisch, eine Einarbeitung lohnt sich auf jeden Fall. Ich bleibe auf 
jeden Fall dran und springe nicht sofort ab.

Die größten Bauchschmerzen die ich im Moment sehe, wie ich den 
Datenbestand aus PartDB hineinimportiert bekomme. Es sind gut 5000 
Bauteile mit Datasheets und dazugehörigen Unterlagen, genaue 
Lagerinformationen mit über 300 "Kisten", Bestell- und 
Einkaufspositionen, Bauteilepreise (jedes von mind. 2 Lieferanten) und 
dann noch die eigenen PCB Projeke.
Da fang ich nach 2 Jahren Mühe sicherlich nicht mit einer leeren 
Datenbank an, die neu aufzubauen.

: Bearbeitet durch User
von Walther (Gast)


Lesenswert?

Markus M. schrieb:
> Wegen deinem Problem:
> Als erstes, bevor man an den Daten manuell mit SQL Befehlen eine
> Sicherung machen, denn nichts ist schlimmer als Daten falsch zu
> manipulieren und dann noch größere Probleme zu haben:
> Extras-F10 > Datenbank > Import-/Export Menü > Importiere/Exportiere
> Datenbank > Export
>
> Analysieren wie die Daten in der EleLa Datenbank tatsächlich aussehen:
> Extras-F10 > Datenbank
> kann der SQL Befehl eingegeben werden:SELECT Handbuch, Handbuch AS Hnd
> FROM bauteil WHERE NOT Handbuch IS NULL
> Das Ergebnis müsste dann so aussehen wie im angehängten Screenshot zu
> sehen ist, die Spalte "Handbuch" konvertiert EleLa automatisch, die
> Spalte "Hnd" nicht, da sieht man die Original Daten wie sie in der
> Datenbank stehen.
> Schicke mir so ein Screenshot, dann kann ich weiter helfen mit welchem
> SQL Befehl man die Daten alle so ändert, dass zu Beginn auch überall
> "($H)" steht und man den Parameter nutzen kann.

Also Datenbanksicherung ist klar. Mach ich regelmäßig. Btw. wenn wir 
schon bei Sicherung sind: Manuell mach ich ungefähr einmal im Monat und 
natürlich vor Updates und solchen Eingriffen wie jetzt ein Backup. So 5 
Backups behalte ich und die älteren werden dann gelöscht. Würde das auch 
automatisch gehen? So das jeden Monat etc. ein Backup in das Backup 
Verzeichnis erstellt wird und dabei nur die letzten 5 Backups behalten 
werden. Alles ältere wird gelöscht. Ist aber nur ein nicetohave 
Vorschlag.

Zum Problem:
Also es steht überall ein "($H)" davor. Die wenigen wo das nicht so war 
habe ich händisch geändert. Aber so wie ich das sehe werden nur die 
Datenblätter angezeigt, welche im "Bauteil-Handbuch" eingetragen sind. 
Die "Gehäuse-Handbücher" nicht.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Walther schrieb:
> Würde das auch automatisch gehen?

Ja, EleLa unterstützt den Kommandozeilenparameter "-b" für Backup.
Siehe hier:
http://www.mmvisual.de/Hilfe/EleLa/Install.htm
Abschnitt "Kommandozeilenparameter"

Um dies automatisiert zu nutzen kann man EleLa auf dem Server der SQL 
Datenbank installieren und per Task z.B. einmalig Nachts laufen lassen.

Oder man legt auf dem Desktop ein EleLa Backup-Icon mit diesem Parameter 
an, wenn man mag kann man schnell ein Backup manuell erstellen.

Walther schrieb:
> Die "Gehäuse-Handbücher" nicht.

Die Gehäuse sind in einer anderen Tabelle, der SQL Befehl wäre dieser:
1
SELECT Handbuch, Handbuch AS Hnd FROM gehause WHERE NOT Handbuch IS NULL

Nahezu jede Tabelle hat eine "Handbuch" Spalte. EleLa hat ca. 20 
Tabellen:
http://www.mmvisual.de/Hilfe/EleLa/TutorialDB/TutDB.htm

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> Ich habe noch einiges dazugekritzelt und es enorm ausgebaut.

Vielen Dank! Ich habe die neue Datei schon übernommen.

Das zweite Posting antworte ich morgen.

von Walther (Gast)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Die Gehäuse sind in einer anderen Tabelle, der SQL Befehl wäre
> dieser:SELECT Handbuch, Handbuch AS Hnd FROM gehause WHERE NOT Handbuch
> IS NULL
> Nahezu jede Tabelle hat eine "Handbuch" Spalte. EleLa hat ca. 20
> Tabellen:
> http://www.mmvisual.de/Hilfe/EleLa/TutorialDB/TutDB.htm

Danke hierfür.

Leider wird bei der Abfrage bei mir nichts angezeigt. Siehe Screenshot

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Man kann auch diesen Befehl eingeben:
1
SELECT Handbuch AS Hnd, * FROM gehause
Dann sieht man alle Datensätze.

Bzw. die Tabelle von Gehäuse/Lager:
1
SELECT Handbuch, Handbuch AS Hnd FROM bauteillager WHERE NOT Handbuch IS NULL

: Bearbeitet durch User
von Walther (Gast)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Bzw. die Tabelle von Gehäuse/Lager:SELECT Handbuch, Handbuch AS Hnd FROM
> bauteillager WHERE NOT Handbuch IS NULL

Das ist es genau.

Jetzt habe ich schon deutlich mehr "fehlerhafte" Einträge. Siehe 
Screenshot

\\homeserver\Dokumente\... soll eben durch \\192.168.1.100\Dokumente\... 
bzw. durch die Variable ($H) ersetzt werden.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Dies ist der SQL Befehl um das zu ändern:
1
UPDATE bauteillager SET Handbuch = REPLACE(Handbuch, '\\\\homeserver\\Dokumente\\', '(\$H)\\')
2
WHERE NOT Handbuch IS NULL AND Handbuch LIKE '\\\\homeserver\\Dokumente\\%'
1
UPDATE bauteillager SET Handbuch = REPLACE(Handbuch, '\\\\192.168.1.100\\Dokumente\\', '(\$H)\\')
2
WHERE NOT Handbuch IS NULL AND Handbuch LIKE '\\\\192.168.1.100\\Dokumente\\%'

Anschließend kann das Ergebnis mit dem SELECT SQL Befehl wieder 
überprüft werden:
1
SELECT Handbuch, Handbuch AS Hnd FROM bauteillager WHERE NOT Handbuch IS NULL

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> *ganz dickes Lob*
Dankeschön!

> Leider hat jede Medaille auch eine Kehrseite.
> Ich versuche es mal harmlos wie möglich darzustellen.
EleLa ist zu großen Teilen so geworden wie es ist dank den vielen 
Vorschlägen von Usern. Ich habe immer ein offenes Ohr für 
Verbesserungen, bzw. schaue wie ich einen Wunsch in die bestehende 
Struktur hinein bekomme.

> - Es ist kein Ersatz für zeitgemäße moderne Software. Viele logische
> Schritte oder Haptik ist nicht vorhanden bzw. eine andere. Die
> Einarbeitung ist sehr anstrengend (erinnert mich an EAGLE vs KiCAD).
> Mächtig aber anspruchsvoll.
Ja, es ist anders als viele andere Programme. Dennoch nach etwas 
Einarbeitung wird man feststellen dass man so ziemlich alles innerhalb 
weniger Klicks / Suchen findet.

> - Teilweise keine Tastaturunterstützung, wo sie angebracht wäre (z.B.
> beim diesen vertikalen Scrollisten (Bauteileliste) um wenigstens den
> Anfangsbuchstaben zu tippen. Generell komplette Tastaturunterstützung
> wäre sehr vorteilhaft.
Um etwas schnell zu finden gibt es das Eingabefeld der "Schnellsuche", 
damit kann man zum Datensatz springen, oder bei Eingabe mit "*" wird 
gefiltert.

> - Merkwürdige kleine Pufferprobleme und Schluckauf in Textfeldern. Beim
> Markieren mit der Maus wird gerne der Zeilenanfang ignoriert, oder
> Fokusierung des Mauszeigers (springt oft und gerne an das Zeilenende).
> Den gleichen Fehler sah ich damals bei PartKeepr.
Muss ich mir mal anschauen, das ist mir bisher noch nicht aufgefallen. 
Ich denke dass ich da nicht viel machen kann, das ist wohl abhängig vom 
Compiler

> - Handbuch: für Datasheets und Anlagen keinen Upload. Wie arbeitet man
> damit, etwa manuel ins Handbuchverzeichnis kopieren und im Programm
> mühsam durchwühlen um es zu verlinken? Zu Erfindungen wie drop-in sag
> ich mal gar nichts. Sieht jedenfalls nach fehlenden Grundeigenschaften
> einer jeder Dokumentenverwaltung aus.
Jein ... Es ist kein Part-DB, also muss man da auch kein Handbuch in 
einen Webserver hochladen. Vielmehr lädt man ein Handbuch von irgendwo 
her runter und speichert das in seinem eigenen Handbuch an geeigneter 
stelle ab. In EleLa ist es dann nur noch ein Link auf diese stelle, den 
man setzen muss. Da gibt es keinen Upload zum Datenblatt mehr.
Drag&Drop von einer Datei in das Handbuch-Feld steht noch auf meiner 
ToDo-Liste, kommt mit der nächsten großen EleLa Version.

> - Vorbelegte statische Ansicht der jeweiligen "ersten Seite". Im unteren
> Daten/Tabellenbereich fehlen mir relevante Datenfelder (Spaltenauswahl
> dazu ist eingeschränkt). Oder beim Anlegen eines Bauteils sind nicht
> alle relevanten Felder an einer Stelle (ergo hinter mehreren
> Tabs/Karten).
Das ist Absicht. Man kann bei Rechts-Klick in den Tabellentitel alle 
Spalten Ein-/Ausblenden wie man mag. EleLa merkt sich die Konfiguration 
nach dem Beenden.
Auch bei Bauteil ist die Unterteilung zwischen Bauteil und Gehäuse/Lager 
eine Hilfe, vor allem wenn man extrem viele Bauteile hat. Beispiel:
Bauteil Eintrag:
 Bezeichnung: NE555
Gehäuse/Lager Eintag:
 1) Bezeichnung: NE555P
 2) Bezeichnung: NE555CP
 3) Bezeichnung: SA555
Also der Typ "NE555" gibt es in diversen Variationen, Gehäuseformen, 
Temperaturbereiche usw. Damit wählt am in der ersten Ebene den 
unspezifizierten Typ aus, in der zweiten die Variante.

> - Sync von gesplitteten/geteilten Fenstern. Das irritiert mich, die
> obere und untere Bildschirmhälfte hat nicht die gleichen Daten in den
> Feldern, des gleichen Bauteils. Anwenderfehler?
Es sind ja auch andere Tabellenwerte, also es kann in EleLa deutlich 
mehr eingegeben werden als bei Part-DB.

> - Rastermaß bei Footprints haben nur 2 Nachkommastellen und werden
> automatisch auf/abgerundet. Ich glaube das betrifft auch die
> Preisfelder.
Es sind FLOAT Felder, nur die Darstellung ist begrenzt damit es 
sinnvoller aussieht. Preisfelder sind 4-Stellig mit der Formatierung 
"0.00##" angelegt, es wird die dritte/vierte Stelle nur bei Bedarf 
gezeigt.

> - Datenabfrage Octopart. Das haut nicht hin. Der Browser dröhnt den
> Benutzer mit Stundenlangen Captcha-Mosaikspielen. API-Key?
Octopart habe ich noch nicht so richtig verstanden was ich da für einen 
HTTP Link aufrufen muss um die echten Infos zu sehen. Wenn ich etwas 
mehr Zeit haben und das nächste EleLa Release einigermaßen läuft kümmere 
ich mich um dieses B-Problem.

> Das sind so die primären Sachen, die mir aufgefallen sind oder gestört
> haben.
Auch dürfen gerne die kleinen Sekundären Sachen geschrieben werden, 
Details verbessere ich auch gerne, bzw. meist sind es nur wenige 
Codezeilen mit viel Wirkung.

> Die größten Bauchschmerzen die ich im Moment sehe, wie ich den
> Datenbestand aus PartDB hineinimportiert bekomme. Es sind gut 5000
> Bauteile mit Datasheets und dazugehörigen Unterlagen, genaue
> Lagerinformationen mit über 300 "Kisten", Bestell- und
> Einkaufspositionen, Bauteilepreise (jedes von mind. 2 Lieferanten) und
> dann noch die eigenen PCB Projeke.
> Da fang ich nach 2 Jahren Mühe sicherlich nicht mit einer leeren
> Datenbank an, die neu aufzubauen.

Aktuell kann EleLa V3.1 noch nicht mehrere Lagerplätze je Teil 
verwalten, das kann EleLa erst ab V4. Der Rest sollte man mit relativ 
einfachen Kopierbefehlen (INSERT INTO <EleLaTabellen> ... SELECT xxx 
FROM <PartDB_Tabellen>) in die EleLa Tabellen bekommen.
Dazu kann man sich die EleLa Tabellen in der gleichen Datenbank wie 
PartDB anlegen, denn die Tabellennamen sind ja unterschiedlich.
Man muss die Datenstruktur verstehen, wie PartDB aufgebaut ist und 
EleLa. Bei EleLa ist die Datenbankstruktur in der Hilfe beschrieben.
Hilfe > Diverse Infos > Aufbau Datenbankstruktur V3.0

von Walther (Gast)


Lesenswert?

Markus M. schrieb:
> Dies ist der SQL Befehl um das zu ändern:
> UPDATE bauteillager SET Handbuch = REPLACE(Handbuch,
> '\\\\homeserver\\Dokumente\\', '(\$H)\\')
> WHERE NOT Handbuch IS NULL AND Handbuch LIKE
> '\\\\homeserver\\Dokumente\\%'UPDATE bauteillager SET Handbuch =
> REPLACE(Handbuch, '\\\\192.168.1.100\\Dokumente\\', '(\$H)\\')
> WHERE NOT Handbuch IS NULL AND Handbuch LIKE
> '\\\\192.168.1.100\\Dokumente\\%'
> Anschließend kann das Ergebnis mit dem SELECT SQL Befehl wieder
> überprüft werden:SELECT Handbuch, Handbuch AS Hnd FROM bauteillager
> WHERE NOT Handbuch IS NULL

Danke hierfür. Hat zwar erst nicht geklappt (auch weil der integrierte 
"Datenbankkommunikator" in ELELA keine Statusmeldungen des MySQL Servers 
zurückgibt) und war erst mal Ratlos warum er nichts verändert.

Habe dann direkt in der MySQL Workbench die Befehle ausgeführt. Als 
erstes musste ich noch "Safe Updates" deaktivieren (Error Code 1175), 
weil mit diesen ich sonst nichts an den Daten verändern hätte können. 
Zweitens hat er nie übereinstimmende Datensätze gefunden ("Rows Matched 
= 0"). Erst mit der doppelten Anzahl an Backslashes bei der "WHERE" 
Bedingung klappt das:
1
SET SQL_SAFE_UPDATES=0;
2
UPDATE bauteillager SET Handbuch = REPLACE(Handbuch, '\\\\homeserver\\Dokumente\\', '(\$H)\\')
3
WHERE NOT Handbuch IS NULL AND Handbuch LIKE '\\\\\\\\homeserver\\\\Dokumente\\\\%'
4
SET SQL_SAFE_UPDATES=1;
5
SELECT Handbuch, Handbuch AS Hnd FROM bauteillager WHERE NOT Handbuch IS NULL;
Jetzt ist alles so wie es sein soll. Danke nochmals für die Hife!

von Jaroslaw K. (root666)


Angehängte Dateien:

Lesenswert?

Hallo Markus,

bei hohen Auflösungen (bei modernen Monitoren nicht unüblich) ist die 
Schrift schon etwas klein. Windows lässt daher eine Schrift-Vergrößerung 
zu (Einstellbar in den Einstellungen der Anzeige).
Bei EleLa kommt es dabei leider zu Überlappung der GUI-Elemente (im 
Screenshot siehst Du das Problem bei 120%). Je nach Vergrößerungsfaktor, 
kann diese Überlappung mehr oder weniger stark ausfallen.
Ich kann damit noch leben, aber schön ist es nicht. Vielleicht hast Du 
eventuell irgendwann mal Zeit um Dich damit zu befassen?

LG. JK

von Jaroslaw K. (root666)


Angehängte Dateien:

Lesenswert?

Wenn alle Elemente vergrößert werden, schaut es besser aus, bisher ist 
mir nur ein verschobenes Label aufgefallen (Screenshot).
LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Ab EleLa V3.1.20504 kann man einen Skalierungsfaktor für das Formular 
einstellen, bitte teste mal ob es klappt. In der Hilfe bei 
"Konfiguration Parameter" ist das ganze beschrieben.

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

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Bug gefunden: In die beiden letzten Updates build 20423/20504 hat sich 
einen Syntaxfehler eingeschlichen.
Es betrifft das Datenbankupdate für MySQL. Das von Sqlite funktioniert 
problemlos.

Wie es aussieht, kann weder eine neue Tabellenstruktur (Datenbank) 
angelegt werden, noch eine vorhandene Datenbank mit v3.0 build 18B15 
upgegraded werden.
Hier die betroffene Stelle, ein logfile ist in der Anlage.
1
01:56:27 Create Table "bauteillager"
2
01:56:27 En:  (btnKonfigClick|TfrmKonfig.btnErzeugeDBClick)/(  $00000000008DE78C)
3
01:56:27 E: 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,
4
Geloescht INTEGER,
5
AendDatum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ' at line 36

Nach dem der Import in der v3.0 bischen broken ist, bekomme ich meine 
(mittlerweile aktualisierte auf build 20504) sq3 nicht ins MySQL 
transferiert. Downgrades sind ja nicht möglich.
@Markus könntest du das Schemaupdate oder einen Fix posten? Danke.
---

Während dem Einarbeiten in EleLa habe ich nebenbei etwas die 
(Übersetzungs-)Texte editiert. Es ist noch nicht durchgehend fertig, da 
alles on-the-fly und step-by-step passiert. Ein Kostprobe ist angehängt.
---

Idee für ein neues Feature:
Bauteile, ein neues Feld: Pinout
Kontext: Freitext, Länge 2-5 Buchstaben/Zeichen
Inhalt: exemplarisch BCE,CBE,GSD,DGS,IGO,IGOG,IOAO,IEGBO,AxC,AAC,+x-
Dabei stehen die Buchstaben für Pin- oder Signalbezeichnungen, 
fortlaufend bis zur Anzahl der Pins des Bauteils. Die Anfangsbuchstaben 
stehen schlicht für 
Basis,Emitter,Collector,Gate,Source,Drain,Vin,Vout,Adjust,Enable,Bypass, 
Ref,GND,Anode,Cathode  u.ä.
Verwendung: Transistoren, MOSFETs, Dioden, Spannungsregler, 
Steckerbelegungen u.a. Minderpinanzahl-Bauteile.

So ein Feature würde ungemein - die Suche nach pinkompatiblen Bauteilen, 
- Alternativen bei der Bestückung - oder während der Entwicklung das 
gezielte anpeilen des Lagerbestandes, erleichtern.
Es hat den Flair einer simplen Parameterisierung zugleich auch eines 
Filters.

Ich verwende es seit einiger Zeit und bekommen damit sehr schnell, 
effektiv und gezielt Bauteile trotz Freitextsuche gefiltert.
---

Gruß, Mr.AtiX

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Wegen 1)
Nein, es ist kein Bug, es ist ein Feature ;-)

Ab EleLa 3.1 wird ein Feld mit dem Typ JSON benötigt, wenn der 
Datenbank-Server das nicht kann ist er veraltet und muss erneuert 
werden. Hier in der Hilfe habe ich beschrieben welcher Mindest Stand 
verwendet werden sollte:
http://www.mmvisual.de/Hilfe/EleLa/Install.htm
Wenn man schon die Arbeit vom Update macht sollte man jedoch gleich die 
neueste stabile Version des SQL-Servers installieren.

Es ist deshalb ein Feature, da in dem Update von 3.0 > 3.1 nur das eine 
JSON Feld angelegt wird und man sich die Datenbank nicht grundlegend 
zerschießt. Ich habe extra auf ein komplexes Update verzichtet.
Das nächste Komplexe Update wird erst auf EleLa V4 kommen und diese 
Version setzt eine Datenbank von EleLa V3.1 voraus.

Auch die "SQLite-DLL: 3.11.0" scheint mir ziemlich alt zu sein, kann man 
die DLL auch unter Linux updaten?
Bzw. wenn man eine aktuellere SQLite SO in das EleLa Verzeichnis direkt 
rein kopiert erkannt das EleLa und verwendet diese, unabhängig davon was 
sonst noch im System rum liegt.

2) Vielen Dank!

3) Ja, das ist eine gute Idee. Ich empfehle Dir aktuell bei 
Gehäuse/Lager das Feld "Library" dazu zu verwenden. Den Text kann man 
umbenennen in "Pinout" und das Eingabefeld ist als Drop-Down Liste 
ausgeführt, das alle jemals eingegebene Pinout-Kombinationen in der 
Liste zeigt.
Ich müsste dieses "Library" nur noch bei der "Suche-F5" mit suchen.
Somit kann man das "Library" aus dem Bauteil nehmen oder aus 
Gehäuse/Lager, je nach dem was einem lieber ist. Ich empfehle das von 
Gehäuse/Lager, z.B. wegen dem Bauteil "BAS40", das gibt es je nach 
Zusatz in diversen Pinouts (BAS40-03, BAS40-04, BAS40-05).

Alternative:
Ab EleLa V3.1 bei den "Technischen Daten" ein Eintrag "Pinout" 
hinzufügen und da als Parameter den Text eingeben. Danach kann man heute 
schon gezielt bei der "Suche-F5" danach filtern.

: Bearbeitet durch User
von Jaroslaw K. (root666)


Lesenswert?

Hallo Markus,
die neue Option zur Formular-Skalierung funktioniert nur bedingt.
Ich musste die Einstellung 2x vornehmen:
- Beim ersten Mal hat EleLa zwar bestätigt, dass ich die Einstellungen 
verändert habe und das Programm daher neu gestartet werden muss, nach 
dem Neustart war die Einstellung allerdings wieder bei 100%.
- Beim 2. Mal hat es funktioniert.
Eine Bestätigung nach dem Klick auf "Speichern" wäre nicht schlecht. So 
ist man sich beim Klick nicht ganz sicher ob der Button überhaupt eine 
Funktion hat...

Und noch eine Kleinigkeit:
Obwohl laut Log alles ok gelaufen ist, wird mir eine leere Datenbank 
präsentiert...
Anscheinend zerschiesst EleLa die Konfigurationsdatei bei dieser 
Umstellung.
Es wurde bei mir z.B. das Protokoll auf SQLite umgestellt.
Nach der Speicherung der Konfiguration konnte ich sehen, dass die 
Konfigurationsblöcke anders angeordnet sind und der erste hat überhaupt 
keinen label (String in eckigen Klammern) mehr.
Die Datei beginnt so:
1
Protocol=mysql-5
2
HostName=server-name
3
Port=33060
4
Database=huhu
5
User=huhu
6
LibraryLocation=
7
8
[DB_Properties]
9
MYSQL_SSL=TRUE
10
MYSQL_SSL_CA=.\ssl\ca-cert.pem

Nach dem Start ist die Skalierung noch immer 100%. Wird diese geändert, 
repariert EleLa die Datei anscheinend stellt aber zumindest bei mir auf 
SQLite um...
Ich versuche das noch besser einzugrenzen.

LG. JK

: Bearbeitet durch User
von Jaroslaw K. (root666)



Lesenswert?

Hier die weiteren Erkenntnisse:

Wenn das Programm (3.1.20505) nach dem Update erstmalig gestartet wird, 
dann macht EleLa anscheined folgendes:
- UTF-8 Umstellung
- Aktualisierung der Versionsnummer
- Eintragung der neuen Variable "ScaleFormular=100" in Abschnitt 
[Programm]

Weitere Programm-Starts ohne Veränderung der Optionen bewirken kein 
Update der Konfigurationsdatei.

Nach der Umstellung der Skalierung auf 120% und Klick auf "Speichern" 
schreibt EleLa die Konfiguration neu:
- "ScaleFormular=100" wird durch "ScaleFormular=120" ersetzt.
- Einige Variablen, die vorher keinen Wert hatten, haben jetzt 
anscheinend ein nicht druckbares Zeichen als Wert? (->Screenshot 1).
- Die Erste Zeile ist jetzt "gramm]" statt "[Programm]".

Beim nächsten Start:
- der gesamte Block der mit "gramm]" beginnt wird gelöscht.
- am Ende der Konfigurationsdatei wird ein neuer Block "[Programm]" aber 
mit Defaultwerten (->Screenshot 2) angehängt.
- ScaleFormular ist wieder 100.
- Der Block [DB] ist jetzt bei mir der erste Block.

Wenn ich jetzt das Programm starte, ScaleFormular anpasse und die 
Konfiguration schreibe:
- Die erste Zeile, wo vorher "[DB]" stand ist jetzt leer und der erste 
Block (Datenbank-Konfiguration) hängt somit in der Luft.

Beim nächsten Start entfernt EleLa die Datenbank-Konfiguration und hängt 
am Ende der Datei einen neuen [DB]-Block mit der Default-Konfiguration 
für SQLite an.

Ich muss leider sagen, das schaut mir nach einem Bug aus...

LG. JK

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich schaue danach. Ja das ist ein Bug.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@Jaroslaw
Der Bug ist nun beseitigt.

--

Kanal EleLa-News mit mehr Details: https://t.me/elela_news
EleLa-Chat für Fragen & Lösungen:  https://t.me/mmvisual_elela

von Jaroslaw K. (root666)


Lesenswert?

Hallo Markus,

die neue Version scheint jetzt zu funktionieren.
Sie fügt jetzt zusätzlich eine Kommentarzeile am Anfang der Datei ein.
Sind die beiden Dateien mit polnischen Strings jetzt mit Absicht im 
EleLa Archiv enthalten?

Und folgendes ist anscheinend noch zwischen den Bug-Beschreibungen 
untergegangen:
Eine Bestätigung nach dem Klick auf "Speichern" wäre nicht schlecht. So
ist man sich beim Klick nicht ganz sicher ob der Button überhaupt eine
Funktion hat...
Wenn Du keine neue MessageBox starten willst um den Status anzuzeigen, 
eine Statuszeile im Fenster mit der entsprechenden Message in dieser 
Statuszeile würde den Zweck auch erfüllen.
Was meinst Du dazu?

Vielen Dank!
LG. JK

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ja, die polnische Dateien sind nun absichtlich mit da, damit wenn man 
den Konfig-Dialog auf PL umschaltet, das es auch funktioniert. Wenn man 
ohnehin nicht auf PL umschalten möchte, kann man die Dateien weg lassen.

Ist etwas schwierig, in dem Dialog werden zum Teil globale Einstellungen 
direkt in der Datenbank vorgenommen, die schon ohne "Speichern" 
geschrieben werden, so wie die Datensätze in EleLa auch. Das "Speichern" 
wirkt nur auf die INI Datei. Merke ich mir mal für Später vor...

: Bearbeitet durch User
von Jaroslaw K. (root666)


Lesenswert?

Markus M. schrieb:
> Ja, die polnische Dateien sind nun absichtlich mit da, damit wenn man

Ja, ich habe die Information im Telegramm leider erst später gesehen.

> geschrieben werden, so wie die Datensätze in EleLa auch. Das "Speichern"
> wirkt nur auf die INI Datei. Merke ich mir mal für Später vor...

Ja, aber der Button „Speichern“ hat eine Funktion. Und diese läuft 
entweder mit oder ohne Fehler ab und das könntest Du ja nach der 
Durchführung ausgeben.
Mein erster Eindruck nach dem Klick auf den Button war: es hat nicht 
funktioniert. Erst nach dem Klick auf „Schließen“ weiß man, dass doch 
etwas passiert ist, weil da die Information über den notwendigen 
Programm-Neustart ausgegeben wird.
Ich bin überzeugt, dass es nicht nur mir so geht.
LG. JK

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

heute bin ich 2 große Szenarien durchgefahren. Eine davon ist als 
kommentiertes Log angehängt.

Ergebnis: bin müde, sauer, und müde :)

Gute Nacht.

von Drago S. (mratix)


Lesenswert?

Jaroslaw K. schrieb:
> Ja, aber der Button „Speichern“ hat eine Funktion. Und diese läuft
> entweder mit oder ohne Fehler ab und das könntest Du ja nach der
> Durchführung ausgeben.
Speichern bedeutet zunächst, gar nichts. Es wird nichts durchgeführt, 
eingelesen oder angewandt. Man könnte ja noch weiteres ändern und 
speichern. Es wird schlicht in die ini abgelegt. Nicht vergleichbar mit 
einem aktiven Element, z.B. Datensatz in der Datenbank.

> Mein erster Eindruck nach dem Klick auf den Button war: es hat nicht
> funktioniert. Erst nach dem Klick auf „Schließen“ weiß man, dass doch
> etwas passiert ist, weil da die Information über den notwendigen
> Programm-Neustart ausgegeben wird.
Jaaa, die Haptik. Mal ist sie so, dann wieder anders.

Aber das kommt von den vielen modernen Geräten, die uns verwöhnen.
Damals gab es relativ einfaches und simples Spielzeug, die Jeder 
verstand.
z.B. eine Motorsäge :)
Heute werden die Dinger mit Li-Ion Akkus betrieben, haben bunte LEDs, 
schlechte OPVs mit Mini-Lautsprechern. Und vibrieren tun sie auch nicht 
:D

> Ich bin überzeugt, dass es nicht nur mir so geht.
Also ich hab da ganz andere, größere und komplexere, Probleme :)

Kopf hoch, da müssen wir durch.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> Ergebnis: bin müde, sauer, und müde :)

Bei SQLite geht es, das ist gut so.

Bei MariaDB nicht, da muss wohl durch das viele hin und her etwas 
durcheinander gekommen sein.
Daher bei MariaDB die eine EleLa Datenbank nochmals löschen und von 
EleLa V3.1 neu erstellen lassen, das geht im Konfig Dialog under 
"Datenbanken". EleLa muss zu erst auf SQLite eingestellt sein, dann kann 
man den Konfig Dialog öffnen, dann da die Parameter der MariaDB 
Datenbank einstellen und mit "Erzeuge neue Datenbank" wird die 
Datenbank, incl aller Tabellen angelegt.
Das einzige was man außerhalb von EleLa machen muss ist die 
Zugriffsrechte für den EleLa-User geben, so dass EleLa dazu die Rechte 
hat.
Details dazu sind hier beschrieben:
http://mmvisual.de/Hilfe/EleLa/TutorialMySQL/TutMySQL.htm
Auch wie man die bestehende SQLite Daten dann importiert bekommt.

Das Tutorial wurde erstellt um mit dem Tool HeidiSQL die 
Grundeinrichtung zu machen, man kann statt dessen auch einfach das 
"LAMPP" installieren, da ist dann ein Apache Server dabei und phpMyAdmin 
mit dem man dann den MariaDB SQL Server administrieren kann.
(Für Windows gibt es das auch, heißt "XAMPP")

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

Wegen dem "Speichern" beim Konfigurationsdialog.
Ich habe meine Aussage wohl nicht detailliert genug ausgeführt, eher zu 
allgemein, daher hier der Nachtrag.
In der Regel werden alle Eingaben nur mit "Speichern" übernommen. Bei 
Extra Dialogen werden Parameter-Datensätze direkt bearbeitet, da gibt es 
dann auch eine "Neu" und "Speichern" Taste separat. So wie im Screenshot 
gezeigt.
Leider hatte sich die letzen Wochen ein Bug wegen der INI Datei 
Konvertierung eingeschlichen ... nun ist er weg und das Speichern geht 
wieder richtig.
In EleLa gibt es parameter, die wirken nur auf die lokale Instanz sowie 
Parameter die global für alle Arbeitsplätze gültig sind.
Welche Parameter jeweils wo gespeichert werden ist hier beschrieben:
http://mmvisual.de/Hilfe/EleLa/InstallParam.htm
http://mmvisual.de/Hilfe/EleLa/InstallIni.htm
Beispiel: Skalierung Formular wirkt nur auf den einen Arbeitsplatz, 
nicht für alle. Hingegen welche Bezeichner man als "Technische Daten" 
nutzen möchte, soll für alle Arbeitsplätze gleich sein, daher werden 
diese als Datenbank Parameter abgelegt.
Auch gibt es Parameter die sowohl in der Datenbank als auch in der INI 
Datei abgelegt sind, um z.B. bei ISO9001 Aktivierung einen 
Admin-Arbeitsplatz deklarieren zu können.

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Bei MariaDB nicht, da muss wohl durch das viele hin und her etwas
> durcheinander gekommen sein.
CREATE ... IF NOT EXISTS Statements würden da helfen.

> Daher bei MariaDB die eine EleLa Datenbank nochmals löschen und von
> EleLa V3.1 neu erstellen lassen
Ja, das rafft.

Ich bin weitergekommen, anbei das heutige Tagebuch :)

Sorry aber sqlite passt mir irgendwie gar nicht ins Konzept. Bei 
Mehrplatz ist es damit schon vorbei. Entweder Datenbank oder... 
Excelsheet.

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Eine kleine Zwischenfrage an die Gemeinde, damit es nicht so öde wird...

Es ist eine duale LED, Größe 0805 (2.0x1.25), footprint einer PLCC-4.
Wie bezeichnet man fachmännisch dieses Gehäuse?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

> CREATE ... IF NOT EXISTS
Dies hat EleLa natürlich drin. Jedoch wenn eine Spalte in einer 
bestehenden Tabelle fehlt hilft das nicht.

> bei einigen Pfaden kein abschließendes Slash auf.
Das macht nichts. EleLa lässt alle Pfade durch eine Funktion der 
Pfadkorrektur durchlaufen. Somit werden relative Pfade auf absolute 
umgebogen und erkannte Environment-Variablen werden dann durch die Werte 
der Environment Umgebung ausgetauscht. Dabei erkennt EleLa automatisch 
die Syntax für Windows und Linux, egal auf welchem OS EleLa läuft.
In "Extras-F10">"Log" werden bei den Parametern immer die vollen Pfade 
gezeigt, obwohl man in der INI nur relative Pfade drin stehen hat. Damit 
hat man eine echte Kontrolle darüber ob es passt was man da eingestellt 
hat.

> 21:18:05 E: GUID fehlte: param.1
Das sollte eher als "W: GUID fehlte: param.1" deklariert werden, denn 
EleLa sagt damit dass es einen Datensatz gefunden hat wo noch keine GUID 
eingetragen war, bzw. beim Anlagen der Tabelle sollte EleLa gleich die 
GUID mit schreiben. Es ist deshalb eine "Warnung" da EleLa dies 
automatisch korrigiert.

> 21:25:01 E: SQL Error: Data too long for column 'DE' at row 1
In der Tabelle "Translate" können nur Texte mit 255 Zeichen Länge je 
Feld aufgenommen werden. Ab EleLa V4.0 wird das dann anders sein, ich 
habe es da schon auf den Datentyp "Text" geändert.

> 21:48:13 E: SQL Error: You have an error in your SQL syntax; ...
Das schaue ich mir noch näher an, sollte nicht kommen.

> Als nächstes habe ich mir die Datenbank angeschaut. Die sah gut aus.
Ja, der Rest passt dann auch. "Translate" ist für die Nutzung nicht 
zwingend nötig.

> Ein erneuter Import der Tabelle translate scheiterte
Die eigene "Lang_DE.txt" Datei kann man auch per INI Datei einbinden, 
ohne Datenbank Import, damit gibt es die Beschränkung der 255 Zeichen 
nicht.

> Wie bezeichnet man fachmännisch dieses Gehäuse?
Am besten wie es im Datenblatt steht. Wenn da nur PLCC-4 steht und man 
da lieber LED Bilder hinterlegen möchte, dann könnte man ein z.B. 
PLCC-4-LED  anlegen und die anderen Bilder einfügen.
Falls der Hersteller eine "JEDEC" Bezeichnung angibt kann man das in das 
Feld "Normbez" eintragen. Den Herstellerspezifischen Code in 
"Herstellerbez". Und zu guter Letzt die Bezeichnung wie es im CAD heißt 
im Feld "Library".

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Markus M. schrieb:
>> 21:48:13 E: SQL Error: You have an error in your SQL syntax; ...
> Das schaue ich mir noch näher an, sollte nicht kommen.

Dieser Fehler trat auf weil deine Datenbank noch recht leer ist, nun ist 
der Bug mit EleLa V3.1.20508 behoben.

Vielen Dank für das Mitteilen der Fehler. Mit leerer Datenbank arbeite 
ich in der Regel nicht ;-)

: Bearbeitet durch User
von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Ein kleines Update zum Linux-Multifunktionsinstaller.

- Es wurden kleinere Typos und Syntaxfehler beseitigt.
- Die einzelnen Abschnitte nach einem logischen Ablauf neu geordnet.
- Der neue Updater wurde an EleLa herangeführt, welches nun die primäre 
Variante ist. Er bedient sich aus dem bestehenden 
Elela-Downloadverzeichnis (./Temp/).
- Die anderen Varianten sind selbstverständlich noch funktional.
- Es ist nun ein interaktiver statt stillschweigender Installer.
- Er besitzt einige Routinen um kleine Leichtsinns-Fehler oder 
Situationen abzufangen. Deshalb wächst er.

Den neuen Updater-Abschnitt habe ich eben fertiggeschrieben und noch 
nicht live getestet. Er ist zunächst für Linux x86/x64 ausgelegt.
Für Raspi müssen noch einige Zeilen dazu. Hat primär nur was mit der 
Dateinamenskonvention zu tun. Ein Raspi steht mir gerade zum testen 
nicht z.V.

- Solltet ihr lieber einen stillschweigenden und vollautomatischen 
Installer/Updater wie den v0.1 bevorzugen, gebt mir Bescheid. Er wird 
extrem klein.
- Auch auseinandergerissene kleine Einzelscripte sind möglich.
- Demnächst ist eine Übergabe mit Parametern/Argumenten geplant.
- Abgebrochene oder Fehlerbedingte Wiederaufnahme soll ebenfalls kommen.

---

Markus, siehst du eine Möglichkeit in EleLa (ohne viel Aufwand) unter 
einer Funktionstaste/Button den exec eines benutzerdefiniertes Script 
ausführen zu lassen?
So dass ein User z.B. sein Backupscript oder was auch immer starten 
könnte.

Eine gute Stelle wäre vielleicht das Fenster Versionsprüfung/Download.
Die Hinterlegung des Pfades zum Script z.B. in der ini. Sollte mal was 
knallen, dass man es wieder deaktivieren kann.

Wünsche euch viel Spaß und gutes Gelingen

von Drago S. (mratix)


Angehängte Dateien:

Lesenswert?

Der Updater ist fertig...

Die Zerlegung des Dateinames fällt schon unter die Kategorie 
Bash-Vergewaltigung, bitte nicht weitersagen :)

So, jetzt konzertriere ich mich wieder auf das Programm. Also ganz 
normaler Anwender.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> Markus, siehst du eine Möglichkeit in EleLa (ohne viel Aufwand) unter
> einer Funktionstaste/Button den exec eines benutzerdefiniertes Script
> ausführen zu lassen?
> So dass ein User z.B. sein Backupscript oder was auch immer starten
> könnte.

Das braucht man eigentlich nicht, das geht anders herum.
Im OS gibt es immer irgend einen "Task-Planer" dem kann man 
parametrieren welches Programm oder Script man zu welchem Zeitpunkt 
ausgeführt haben mag.
Das gibt es für Windows und Linux in jedem Fall.
Entweder man sichert die Datenbank per Script und SQL Befehle, Beispiel 
hier, bei einer Synology Discstation:
http://www.mmvisual.de/Hilfe/EleLa/TutorialMySQL/SynoBackup.htm

Oder man überlässt das Sichern der Datenbank EleLa automatisch indem man 
EleLa per Task-Planer mit dem Parameter "--backup" startet, sie hier im 
Abschnitt "Kommandozeilenparameter":
http://www.mmvisual.de/Hilfe/EleLa/Install.htm

Damit geschieht der Backup im Server automatisiert.

Sollte man ein Einplatz-System haben, so kann man ein Backup bei jedem 
Systemstart im "AutoRun" einbauen.

Vielen Dank für das Update der Scripts!

: Bearbeitet durch User
von Drago S. (mratix)


Lesenswert?

Markus M. schrieb:
> Das braucht man eigentlich nicht, das geht anders herum.
Geschieht mit Recht, wenn ich so doof frage :)

Klar, die Datenbank ist separiert. Und die Dateien liegen auch nur als 
Pilze im Wald, ähm auf der Platte :)

Ich dachte, als User, da tu ich so ein Script rein, das macht dann 
Update oder ganz was anderes. Meinetwegen einen Popup beim Chef "EleLa 
wurde geöffnet, schließe deinen Browser, damit Leute arbeiten können.

PS: ja, auch das ist nicht nötig, dafür kann man sich eine .bat 
schreiben.

: Bearbeitet durch User
von Drago S. (mratix)


Lesenswert?

Hallo zusammen,

ich bin dabei ein vorhandenes Projekt, mit mehreren Revisionen, von 
Grund auf anzulegen, einzupflegen, zu dokumentieren.

Zum besseren Verständnis und der Unterscheidung, verwende ich einfach 
mal folgende Bezeichnungen:
- Meta-Bauteil, ein Bauteil in der 1. Ebene (Bez: Transistor NPN BJT)
- Bauteil, ein eindeutig definiertes Bauteil der 2. Ebene (Bez: 
BC337-25, BC547C)
- Baugruppe, ein Breakout oder Modul (Bez: ESP-12, ACS712, BME280)
- Schaltung, eine erweiterte Baugruppe, als eigenständiges Modul (Bez: 
ESPxx Dev Board, FTDI-Modul, TP4056-Charger, Balancer)
- Projekt, die komplette Steuerung, ein fertiges Device (Bez: Zirkus 
Colorado Entertainer)

Dabei ergeben sich einige Fragen. Im allgemeinen betrifft es die 
Organisation, ungefähr im folgendem Ablauf:

Kann man Bauteile in ein anderes Meta-Bauteil oder umgekehrt 
verschieben. Kann ein Bauteil mit einem anderen verknüpft, verlinkt oder 
anderweitig ein Bezug hergestellt werden?

Wie legt man Meta-Bauteile am sinnvollsten an?
Gruppierung nach der Belegung (Pinout), der Bauform (Gehäuse), Anzahl 
der Elemente, oder einer Serie (unterschiedliche Features/Parametrie). 
Stichwort Operationsverstärker oder ein Schaltregler.

Wie handhabt man Baugruppen? Also zusammengeschlossene Einheiten (welche 
aus mehreren Einzeilbauteilen der 1./2. Ebene bestehen). Ein Breakout, 
noch kein komplettes eigenständiges Modul. Auch hier das Stichwort Bezug 
zum nativen Bauteil der 2. Ebene.

Wie handhabt man Schaltungen und Module, also Baugruppen welche aus 
Bauteilen der 1./2. Ebene und/oder Baugruppen bestehen? Sind das schon 
Projekte oder gibt es etwas dazwischen?

Wie geht man bei Schaltungen vor, wenn sie unterschiedliche Komponenten 
beinhalten. z.B. durch Bestückungsvarianten ergeben sich 
unterschiedliche Features, jedoch nicht die gleichen. Ich denke dabei 
nicht an fertige Module, eher an die selbst gebauten.

Wie geht man mit Folgerevisionen von Schaltungen und Projekten um?

Sicher gibt es in der Gestaltungsvielfalt zahlreiche Möglichkeiten, 
wahrscheinlich auch kein richtig oder falsch. EleLa ist etwas anders 
gestrickt, ich möchte nur Anfangsfehler in der späteren Gesamtstruktur 
vermeiden.

Mir ist bewusst, Markus hat sich sehr viel Mühe gegeben und ein Handbuch 
verfasst. Ich habe es nicht komplett gelesen, es juckt in den Fingern 
praktisch herumzuklicken :) Daher würden mich euere Erfahrungwerte und 
Vorgänge im Handling interessieren.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich die Frage(n) betreffen 2 Teile von EleLa. Einmal die 
Bauteilverwaltung / Organisation zum zweiten das Projekt.

Wenn man ein neues Bauteil hat so ordnet man es zu erst in eine Typ 
Gruppierung. Die Typen kann man im Baum bei "Typ-F8" anlegen/bearbeiten. 
Das ist eine grundlegende Struktur wie man Bauteile vor sortiert.
Bei mir gibt es bei "Transistor" den Untereintrag "PNP".
Alle Bauteile z.B. BC337, BC557 wenden unter "Bauteile-F2" diesem Typ 
zugeordnet.
Beim Bauteil "BC337" wird dann der Lager/Gehäuse Eintrag mit der exakten 
Bezeichnung, z.B. "BC337A", "BC337B" usw. angelegt.

Wenn man das so sortiert kann man ein Bauteil unter "Typ-F8" sehr 
einfach finden.

Eine Baugruppe, das man kauft oder selbst aus einem Projekt produziert, 
ist wiederum ein Bauteil, das man unter "Bauteil-F2" anlegt und kann man 
wiederum für ein anders Projekt verwenden.

Wenn ein Bauteil z.B. "R101" für eine Variante einen anderen Wert hat 
als für eine andere Bestückungsvariate, so legt man das gleiche Bauteil 
doppelt an, mit der anderen Varianten-Bezeichnung.

Wenn ein Projekt fertig gestellt ist, so kann man es "Versionieren", 
also den Stand einfrieren. Das macht man in der Regel dann wenn man eine 
Platine (oder ein Prototyp) fertig bestückt und aufgebaut hat. Damit ist 
der aktuelle Aufbau dokumentiert. Damit sind die Änderungen gesperrt.
Nun wird die Platine in Betrieb genommen und man stellt bei dem ein oder 
anderen Bauteil fest dass da doch ein anderer Wert besser wäre, also ist 
eine Revision nötig, dazu muss man das Projekt für Änderungen wieder 
frei schalten und kann dann das/die Bauteile ändern.
Damit kann man nachvollziehen was der Stand bei er ursprünglichen 
Bestückung war (z.B. bestellte Platinen vom Bestücker) und welche 
Änderungen diese Platine erfahren hat, daraus kann man wiederum sehen 
welche Teile bei der nächsten Bestückung dann insbesondere 
geändert/kontrolliert werden müssen.

von Drago S. (mratix)


Lesenswert?

Hallo zusammen

in Kurzfassung: EleLa ist sehr mächtig aber auch sehr eigenartig. Bis 
zur nächsten Stable/Minor Version bin ich vorerst raus.

Vielen Dank für die Unterstützung.
Gruß
---

In der Langfassung, weitere wichtige/unwichtige Punkte:

- Generalfehler "das große Eingabefeld" treibt einen in den Wahnsinn. 
Das Positionieren des Mauszeigers/Cursors ist fehlerhaft und extrem 
nervig.
Detailierter Ablauf: Anfangs befindet man sich immer in einem Datensatz. 
Die Selektion wird anhand des typischen Zeigerdreiecks in der Tabelle 
unterhalb gekennzeichnet. Kennt jeder...
Klickt man mit der Maus in das große Beschreibungsfeld, an irgendeine 
Position innerhalb des Textes, wird der Cursor dorthin nur pseudo 
plaziert. Der erste Tastendruck sorgt dafür, dass der eingetippte 
Buchstabe an das Textende angehängt wird. Dann springt der Cursor an 
den Textanfang und fügt den zweiten Buchstaben ein.
In der unteren Datenzeile kann man beobachten, wie daraufhin die 
Selektierung aufgehoben wird (das Dreieck verschwindet).
Erst nach einem erneuten Mauszeiger-Fokus, wird die Eingabe an der 
richtigen Stelle verarbeitet.

Bei copy/paste/cut von Inhalten gibt es ähnliche Störungen. Das 
beschriebene herumhüpfen an Ende/Anfang ist das gleiche. Der daraus 
zusammengemüllte Inhalt ist ein Hingucker. Ein Ctrl-Z könnte das ganze 
rückgängig machen, wäre er nur verfügbar.
Achja, wenn das Feld leer ist, dann wird die erste Tastenkombination 
einfach verschluckt. Erst der zweite greift.

Dieser Zustand ist nicht tragbar. Ich weis nicht, was an diesem Feld so 
besonders ist, jedenfalls scheint dort ein gewaltiger Fehler sein 
Unwesen zu treiben.
Wie bereits früher erwähnt, gleichen Fehler hat auch PartKeepr, was 
damals zum sofortigen Aussortieren führte. Nach dem so ein unikater 
Fehler nicht jeden Tag auftritt, hat einer vom anderen abgeschrieben :)

- Der zweite Riesenknaller ist die "Scroll-Liste", welche an 
verschiedenen Stellen zu finden ist. z.B. als Feld Gehäuse in Bauteilen, 
Feld Bauteil in Projektpositionen und vielen anderen ...
Bereits bei <100 Listeneinträgen ist das so nicht mehr handbar. Man 
klickt hinein und schaut beim scrollen zu.. Nach gefühlen 15 Sekunden 
kommt man endlich zum Buchstaben S, welchen man so ersehnlich sucht um 
ein gewünschtes SOT-23 anzuklicken. Was soll das bitteschön?

Da gehört ein normales Feld hin, beim Tippen fängt ein Filter an die 
Liste zu kürzen. Wer die Scrolldingsliste mag, kann sie rechts 
anklicken, aufklappen und animiert zuschauen.
Oder wenigstens das Anspringen zu einem Anfangsbuchstaben ermöglichen.
Oder noch noch noch einfacher, seitlich einen gewöhnlichen Scrollbalken 
platzieren.

Neues aus den Erkenntnissen zu Projekt anlegen...
- Projekte, Positionen, Import/Export, Schnelleingabe: könnte es sein, 
dass hier nur ein einmaliger Durchlauf möglich ist?
Damit konnte ich zunächst einige (vorhandene) Bauteile zusammentragen, 
mit Hinzufügen habe ich sie übernommen. Das hat hervorragend 
funktioniert. Nun wechselte ich zu den Bauteilen, um fehlende 
anzulegen..
Nach der Rückkehr war ein weiterer Durchlauf nicht mehr möglich. Das 
Feld Typ behielt stur die letzte Kategorie/den Typen. Es war weder 
möglich etwas anderes zu wählen, noch das Feld zu bereinigen.

- Schnelleingabe b): Wäre es möglich, die Schnelleingabe mit einer 
Direkteingabe (im rechter Teil) auszustatten?

- Projekte, Positionen, Positionsliste, Zeile aktualisieren: (global) 
geänderte Daten an einem Bauteil werden hier nicht eingelesen oder 
übernommen.

- Projekte, Positionen, Detailfenster, Feld Variante: Wo ist der Sinn 
dieses Feldes?
Logischerweise würde man hier zu THT oder SMT pledieren. Was sich jedoch 
widerspricht, da einerseits im nächsten Feld das Bauteil schon explizit 
(inkl. des Gehäuse/Bauform/Variante) gewählt und fixiert wird. 
Anderseits auch noch das Hächcken SMD besteht. Oder ist unter dem 
Begriff Variante etwas anderes gemeint?

- Projekte, Positionen, Positionsliste, Spalte Kennz: die habe ich wo 
anders auch schon registriert, aber nirgends ein passendes Feld 
dafür/davon entdeckt. Ich weis nicht wofür die vorgesehen ist, scheint 
aber nur bei einem Import mit fortlaufenden Nummer gefüllt zu werden.

- Lässt sich das Popup-Fenster Bildansicht irgendwie separieren, damit 
es offen bleibt und EleLa nicht gesperrt wird?
Wäre sehr hilfreich z.B. während dem Betrachten eines Schematics/Boards 
und der weiteren Nutzung innerhalb EleLa.

- eine Kleinigkeit noch gefunden, integrierte Versionsprüfung, die 
scheint sich an der Stable festgebissen zu haben. Neue 
unstable-Downloads tauchen hier nicht auf.
P.S.: hierfür habe ich den installer massiv erweitert, damit er eben ein 
Update automatisch verarbeiten und durchführen kann.

Vorerst werde ich eine Pause machen, es gibt leider viel zu viele Sachen 
die mir "nicht schmecken".
Vielen Dank.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Mister A. schrieb:
> - Generalfehler "das große Eingabefeld" treibt einen in den Wahnsinn.

Mir ist das noch nie aufgefallen, ich arbeite nie mit der Linux-Version, 
ich übersetze EleLa nur in einer VBox mit Linux. Nun habe ich doch mal 
die Linux EXE aktiviert, ja unter Linux ist das sehr eigenartig.

> - Der zweite Riesenknaller ist die "Scroll-Liste", welche an

Auch so ein "Linux"-Feature, unter Windows kann man den ersten Buchstabe 
tippen, dann springt die Scroll-Leiste da hin wie erwartet.

Mal schauen ob ich da was in der Lazarus-Gemeinde erreichen kann 
(Bugfixing), das kann jedoch ein paar Monate dauern.

> Neues aus den Erkenntnissen zu Projekt anlegen...
> - Projekte, Positionen, Import/Export, Schnelleingabe: könnte es sein,
> dass hier nur ein einmaliger Durchlauf möglich ist?

Die Schnelleingabe aktualisiert in der Tat das Auswahl-Dropdown nicht 
wenn zwischenzeitlich neue Teile angelegt wurden, korrigiere ich.

> - Schnelleingabe b): Wäre es möglich, die Schnelleingabe mit einer
> Direkteingabe (im rechter Teil) auszustatten?

Bei Direkteingabe braucht man die "Schnelleingabe" nicht, das geht 
schneller in der Eingabemaske bei "Bauteil", die kleine Taste "Auswahl 
Bauteil". Da öffnet auch ein Filter-Dialog wo man irgend einen Text 
eingeben kann.

> - Projekte, Positionen, Positionsliste, Zeile aktualisieren: (global)

Dieses aktualisieren aktualisiert nur die verknüpften Felder oder, falls 
ein anderer User an EleLa arbeitet, so kann man in seiner Ansicht die 
Änderungen des Kollegen aktualisieren. Funktioniert auch.

> - Projekte, Positionen, Detailfenster, Feld Variante: Wo ist der Sinn
> dieses Feldes?

Hier kann man die Bestückungs-Variante deklarieren, z.B. "Analogeingang 
2 bauteile". Wenn man eine Platine hat, wo man mehrere Variationen der 
Bestückung auswählen kann.

> - Projekte, Positionen, Positionsliste, Spalte Kennz

Kennz ist ein Zahlen-Feld, das zur freien Verwendung steht. Damit kann 
man einen Datensatz kennzeichnen um z.B. eine Bearbeitung nicht zu 
vergessen. Also normalerweise braucht man es nicht, dennoch ist es ein 
Feld wo man was rein schreiben könnte, sozusagen Reserve für 
Spezialfälle.

> - Lässt sich das Popup-Fenster Bildansicht irgendwie separieren, damit
> es offen bleibt und EleLa nicht gesperrt wird?

Theoretisch ja. Praktisch muss ich mir überlegen was es für 
Seiteneffekte hat.

> - eine Kleinigkeit noch gefunden, integrierte Versionsprüfung, die
> scheint sich an der Stable festgebissen zu haben.

Das ist Absicht. Ich will die User von EleLa nicht mit unnötigen vielen 
"Update" Nachrichten nerven. Wer auf dem neuesten sein mag kann sich 
entweder hier im Forum die Benachrichtigung aktivieren oder an meinem 
Telegram Kanal sich anmelden, dann bekommt er alle Infos zu den 
Neuerungen und Updates automatisch zugestellt. Beim Forum bekommt man 
eine Mail bei jedem Posting, im Kanal nur wenn ich was Neues schreibe.

> P.S.: hierfür habe ich den Installer massiv erweitert, damit er eben ein
> Update automatisch verarbeiten und durchführen kann.

Dankeschön!

> Vorerst werde ich eine Pause machen, es gibt leider viel zu viele Sachen
> die mir "nicht schmecken".
> Vielen Dank.

Kein Problem. Es gibt auf der Welt eine Riesige Auswahl an Programmen, 
es ist zum Teil echt schwer was zu finden, was einem persönlich gefällt. 
Mir geht es ebenfalls regelmäßig so.
Vielen Dank für das ausführliche und gute Beschreiben der Punkte!

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Angehängte Dateien:

Lesenswert?

@Mister A. (mratix)

Nun kann unter Gehäuse/Lager ein Dialog zur Auswahl vom Gehäuse geöffnet 
werden, siehe Screenshot.

Wegen dem Bug beim Memo-Feld dass der Cursor so verspringt:
https://www.lazarusforum.de/viewtopic.php?p=114622#p114622
Grob die Antwort: QT5 als Widegetset verwenden (nicht GTK3).

Ich bin noch dran...

: Bearbeitet durch User
von Frank L. (florenzen)


Lesenswert?

Markus M. schrieb:
[...]
> Wegen dem Bug beim Memo-Feld dass der Cursor so verspringt:
> https://www.lazarusforum.de/viewtopic.php?p=114622#p114622
> Grob die Antwort: QT5 als Widegetset verwenden (nicht GTK3).

Du kannst ja mal eine QT5 Version bauen (libqt5pas-dev installieren auf 
deinem Build-Rechner) und hier zum Testen einstellen.
Wie und wo du LCLWidgetSet setzen mußt in Lazarus, weisst du vermutlich 
besser als ich.

Gruß,
f

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.