Joomla 5 Mitteilung

Wir freuen uns mitteilen zu können, dass seit dem 29. Januar 2024 alle unsere Joomla Erweiterungen mit Joomla 5 kompatible sind.

Für alle die gerade noch von Joomla 3 auf 4 aktualisieren: Anleitungen für die Joomla 4 Migration gibt es hier:

Es gibt nun auch eine eigenständige Dokumentation für Visforms für Joomla 4 und für Visforms auf Joomla 5

Forum

Visforms Subscription Inhaber können in unserem Forum Fragen stellen. Bitte mit dem entsprechenden Benutzer anmelden.
Jeder kann lesend auf das Forum zugreifen.

Bitte stellen Sie nur 1 Frage pro Thema.

Erstellung eindeutige ID

Mehr
2 Jahre 6 Tage her #8112 von Jörg Herrmann
Erstellung eindeutige ID wurde erstellt von Jörg Herrmann
Guten Morgen,

ich benötige ein Feld, welches eine Fortlaufende eineindeutige ID generiert. Natürlich könnte ich hierfür die ID des Datensatzes verwenden allerdings startet diese ID mit jedem neuen Formular bei „1“ und ist somit für mich nicht verwendbar.
Es soll also für jedes weitere Formular eine eigene Fortlaufende ID generiert werden können.

Beispiel:
Formular 1:
A12345
A12346
A12347
...

Formular 2:
B12345
B12346
B12347
...

Vorab schon mal herzlichen Dank...

Mehr
2 Jahre 5 Tage her - 2 Jahre 5 Tage her #8113 von Administrator IV
Administrator IV antwortete auf Erstellung eindeutige ID
Hallo Jörg,

die Lösung kannst du mit Hilfe eines Feldes vom Typ 'Listbox Sql' erhalten.
In dem SQL-Statement kannst du den Start des Zählers, statischen Text sowie die Zählweise selbst individuell festlegen.
Ein Beispiel für den Parameter 'SQL-Select-Statement' auf dem Reiter 'Grundeinstellungen' der Feldkonfiguration eines Feldes vom Typ 'Listbox Sql' wäre etwa:

select concat('A-', (select max(id) + 10000 from jx_visforms_2)) as value, concat('A-', (select max(id) + 10000 from #__visforms_2)) as label

Der Wert im Feld wäre dann bei einer größten Daten-ID (ohne Löschen = Anzahl der Datensätze) von 13 in den Daten zum Formular zum Beispiel: 'A-10013'
Der Wert inkrementiert um 1 für jeden neuen Datensatz.

Folgende Parameter sind in der Feldkonfiguration, Reiter 'Grundeinstellungen' zusätzlich zu setzen:
'Einzige Option vorauswählen' = 'Ja'
'Bei Änderung von nachladen' = mindestens 1 Feld (Listbox, Radio oder Checkbox)
'Bei Vorauswahl verstecken' = 'Ja' oder 'Nein' (bei 'ja' ist das Feld im Formular nicht sichtbar).

Wichtig ist auch noch dieser Parameter in der Feldkonfiguration, Reiter 'Erweitert':
'Eindeutige Werte erzwingen' = 'Ja'.
Falls in der Zwischenzeit ein anderer Benutzer ein gleiches Formular abgeschickt hat, kommt eine Fehlermeldung und das Formular muss einfach unverändert noch ein weiteres Mal abgeschickt werden.
Der aktuelle Wert für das Feld 'Listbox Sql' hat sich dabei aber bereits automatisch geändert/inkrementiert/angepasst.

Noch zwei Hinweise:
Mit einer kommenden Visforms Version wird es möglich sein, den Parameter 'Bei Änderung von nachladen' nicht zu setzen.
Mit einer kommenden Visforms Version wird es möglich sein, Defaultwerte (etwa für Textfelder) ebenfalls über ein SQL-Statement zu setzen.

Gruß, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Letzte Änderung: 2 Jahre 5 Tage her von Administrator IV.
Folgende Benutzer bedankten sich: MaliRaj

Mehr
2 Jahre 5 Tage her #8117 von Jörg Herrmann
Jörg Herrmann antwortete auf Erstellung eindeutige ID
Perfekt. Funktioniert genau so, wie ich es mir vorgestellt habe. 


Herzlichen Dank Ingmar

Mehr
2 Jahre 4 Tage her #8123 von prffrost
prffrost antwortete auf Erstellung eindeutige ID
aber direktes Speichen in die DB funktioniert nicht ... oder

Mehr
2 Jahre 3 Tage her #8129 von Jörg Herrmann
Jörg Herrmann antwortete auf Erstellung eindeutige ID
Hallo prffrost.

Doch, das funktioniert. Ich musste ein paar kleine Anpassungen vornehmen:

select concat('A-', (select max(id) + 10000 from (Tabellenname mit Präfix)visforms_2)) as value, concat('A-', (select max(id) + 10000 from (Tabellenname mit Präfix)visforms_2)) as label

(Tabellenname mit Präfix)visforms_2 gibt an, welches Formular verwendet wird.

Da ich mehrere Formulare verwende musste ich auch in der DB nachschauen, welche Tabelle für welches Formular verwendet wird.
Bei mir sieht das ganze für zwei Formulare so aus:

Formular 1: 
select concat('A', (select max(id) + 10000 from ehuc5_visforms_1)) as value, concat('A', (select max(id) + 10000 from ehuc5_visforms_1)) as label

Formular 2: 
select concat('B', (select max(id) + 10000 from ehuc5_visforms_2)) as value, concat('B', (select max(id) + 10000 from ehuc5_visforms_2)) as label

Beste Grüße

Jörg



 

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum