Beitrag von Daniel Wenger (13 Beiträge) am Donnerstag, 18.August.2005, 23:56.
Feldinhalte verbinden
Hallo
Ich suche eine Möglichkeit Feldinhalte von einzelnen Spalten in einer weiteren Spalte zusammenzufügen. Nun habe ich im Glossar wie mir scheint die Lösung gefunden. Aber mit dem Syntax komme ich nicht zurecht. Wo muss ich was nun hinsetzten. Kann jemand helfen?
Gruss und Danke
Daniel
------------------------------------------------------------------------------
Aus dem Glossar:
Sollen in einem Feld die Einträge aus mehreren Feldern verknüpft werden, gibt es folgende Möglichkeiten:
oder
Dann wird z.B. aus Feld1="Vorname" und Feld2="Nachname" in Feld3="VornameNachname".
Antworten
Beitrag von Olaf (382 Beiträge) am Freitag, 19.August.2005, 08:03.
Re: Feldinhalte verbinden
Antworten
Beitrag von Olaf (382 Beiträge) am Freitag, 19.August.2005, 08:04.
wie spät ist es? eigentlich 08:59 Uhr...
wie spät ist es? eigentlich 08:59 Uhr...
Antworten
Beitrag von Daniel Wenger (13 Beiträge) am Freitag, 19.August.2005, 09:11.
Re: Feldinhalte verbinden
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 19.August.2005, 09:41.
Re: Feldinhalte verbinden
Hallo Daniel,
>NB: Ich kann Perl-Scripts etwas interpretieren und für mich anpassen aber kenne es kaum.
Dann wird es Zeit, sich mal damit zu befassen;-))
Bei Datensatzänderungen so:
if ($cmd eq "mod")
get "Id==$_get{Id}", "dbname";
mod "Id==$Id", ["Feld3",$Feld1 Feld2], "db-name";
}
bei Hinzufügen so:
if ($cmd eq "add")
put ["Feld3", $_put{Feld1} $_put{Feld2}], "db-name";
Sollte funktionieren;-)
Gruß
Claus
Antworten
Beitrag von Olaf (382 Beiträge) am Freitag, 19.August.2005, 12:48.
Re: Feldinhalte verbinden
Antworten
Beitrag von Daniel Wenger (13 Beiträge) am Montag, 22.August.2005, 20:59.
Re: Feldinhalte verbinden
Ich habe die Antworten von Claus und Olaf vermixt und schon fast was ich will.
Der Teil AENDERN läuft und der Teil NEU fast.
Dies ist der verwendete Script:
<perl>
if ($cmd eq "mod")
{
$ZPara="$Feld1$Feld2";
get "Id==$_get{Id}", "Modulo";
mod "Id==$Id", [Feld3,$ZPara], "Modulo";
}
</perl>
<perl>
if ($cmd eq "add")
{
put [Feld3,"$_put{Feld1}$_put{Feld2}"], "Modulo";
}
</perl>
Mit dem put gibts aber ein Problem: Er eröffnet jedesmal für sich ein neuen Datensatz wo er dann Feld3 ausfüllt. Je nach dem wo sich die Perl-Teil befindet:
Put-Scrip vor do_all-Block ergibt leerer Datensatz dann neuer Datensatz
Put-Script nach do_all Block ergibt neuer Datensatz dann leerer Datensatz.
Da brauchts wohl noch Rat von den Spezialisten.
Ich habe eine Demo-Datenbank gemacht:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/dwenger/test4/Modulo
Antworten
Beitrag von Claus (4645 Beiträge) am Montag, 22.August.2005, 21:32.
Re: Feldinhalte verbinden
falsch:
<perl>
if ($cmd eq "add")
{
put [Feld3,"$_put{Feld1}$_put{Feld2}"], "Modulo";
}
</perl>
richtig:
<perl>
if ($cmd eq "add")
{
put ["Feld3","$_put{Feld1}$_put{Feld2}"], "Modulo";
}
</perl>
ist schon so eine Sache mit dem "Mixen";-))
Feld3 muss in "" geschrieben werden;-)
Gruß
Claus
Antworten
Beitrag von Claus (4645 Beiträge) am Montag, 22.August.2005, 21:52.
Re: Feldinhalte verbinden
Sollte es auch nicht funktionieren, dann halt so:
<perl>
if ($cmd eq "add")
{
$cmd="";
put ["Feld3","$_put{Feld1} $_put{Feld2}", "Feldxy", $_put{xy}"], "Modulo";
}
</perl>
und die anderen Felder entsprechend "anhängen"
"Feldxy", $_put{xy}","Feldxyz", $_put{xyz}" usw.
Gruß
Claus
Antworten
Beitrag von Daniel Wenger (13 Beiträge) am Montag, 22.August.2005, 23:16.
Re: Feldinhalte verbinden
Der erste Vorschlag sieht gleich aus. Der Zweite bringt mir einen Korrekten Datensatz aber auch einen unkorrekten.
<perl>
if ($cmd eq "add")
{
$cmd="";
put ["Feld3","$_put{Feld1}$_put{Feld2}", "Vorname", "$_put{Vorname}",, "Name","$_put{Name}"], "Modulo";
}
</perl>
Try it ;-)
....und danke für die Hilfe.
Daniel
http://baseportal.de/cgi-bin/baseportal.pl?htx=/dwenger/test4/Modulo
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 23.August.2005, 12:58.
Re: Feldinhalte verbinden
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 24.August.2005, 17:04.
Re: Feldinhalte verbinden/Nachtrag;-))
Antworten