Seite 1 von 1
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 15.05.2010, 01:54
von quetzal08
Hallo zusammen,
vorweg: ich hoffe das dieses Thema noch nicht besprochen worde
Zum Thema:
ich verwende ein Formular mit einer Datenbank (bzw. eine XLS / cvs Datei) und jedesmal wenn ich den nächsten Datensatz ansteuere löscht er alle Formularfelder.
Zum navigieren verwende ich folgenden Code:
Code: Alles auswählen
xfa.datasets.dataWindow.gotoRecord(xfa.datasets.dataWindow.currentRecordNumber + 1)
Zum Importieren der Daten:
Code: Alles auswählen
readData();
function readData() {
try {
var xlsFile = event.target.getDataObjectContents("Hauptgerichte2a.xls");
var xlsData = Net.stringFromStream(xlsFile, "utf-8"); // xls Datei in einen Datenstom umwandeln
var xlsDataSplit = xlsData.split("\r\n"); // xls Datei in einzelne Zeilen splitten
}
catch(err) { app.alert("Konnte Dateianhang Hauptegerichte2a.xls nicht finden!"); }
for (var i=0; i < xlsDataSplit.length; i++){
var splitSplaten = xlsDataSplit[i].split("\t"); // Zeilen in Spalten splitten
Scripte.newRecord(splitSplaten[0], splitSplaten[1]);
}
}
LiveCycle Version: 8.2
Hoffe keine wesentlichen Informationen vergessen zu haben
Vielen Dank im Vorraus
schönen Gruß,
quetzal
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 16.05.2010, 13:37
von walde
Hallo quetzal08,
1. Was passiert eigentlich in der "newRecord" Funktion. Werden die Daten dort in das Formular gespeichert? Wenn ja, wo genau. Es macht einen Unterschied ob die Daten direkt als Formularfeldergebundene Daten gespeichert werden oder anderweitig im Formular abgelegt werden.
2. Gibt es vielleicht irgendwelche Funktionen, die die Felder leeren.
Es gibt auch einen Beitrag von John Brinkman zu diesem Thema. Könnte vielleicht hilfreich sein.
http://blogs.adobe.com/cgi-bin/mt/mt-search.cgi?search=record&IncludeBlogs=261&limit=20
Gruß,
Walde
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 17.05.2010, 12:31
von quetzal08
Hallo walde,
danke für deine Antwort.
Hier mal die Funktion "newRecord":
Code: Alles auswählen
function newRecord(F1, F2){
var newRecord = xfa.datasets.createNode("dataGroup", "Formular1");
var Hauptgericht = xfa.datasets.createNode("dataValue", "Textfeld14");
var Preis = xfa.datasets.createNode("dataValue", "Textfeld15");
Hauptgericht.value = F1;
Preis.value = F2;
newRecord.nodes.append(Hauptgericht);
newRecord.nodes.append(Preis);
xfa.datasets.data.nodes.append(newRecord);
}
Das ganze besteht aus zwei Seiten in der diverse Textfelder sind (ist ne Speisekarte) und ich hätte gern die ganzen Speisen (und Preise) in einer Datenbank bzw. Excel eingebunden - so das auch neue Speisen hinzugefügt werden können.
funktioniert soweit auch ganz gut - aber sobald ich zum nächsten Datensatz navigiere (Datenbank ist auf der zweiten Seite) löscht er auch alle Textfelder auf der ersten Seite.
Hab den Code durchsucht nach irgendwelchen "reset" oder sonstigen lösch- aktualisierungsbefehlen - nix.
Schönen Gruß,
quetzal
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 19.05.2010, 09:33
von walde
Hallo quetzal08,
Vom Skript her scheint auf den ersten Blick alles O.K. zu sein. Der Fehler liegt entweder in einem leer erzeugtem Datensatz am Anfang oder Schluß oder es ist etwas anderes im für den Fehler verantwortlich.
Es wäre auch sinnvoll eine Beispieldatei zu posten. An dieser kann man meistens mehr sehen.
Gruß,
Walde
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 19.05.2010, 10:10
von quetzal08
Hallo Walde,
vielen Dank für deine Antwort.
Was ich besonders komisch finde ist das er auch Textfelder löscht die nix mit der Datenbank zu tun hat (also er leert alle Textfelder).
Anbei mal die Datei.
Vielen Dank für's lesen
LG
quetzal
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 19.05.2010, 19:31
von walde
Hallo quetzal08,
Ihre Beispieldatei funktioniert mit den Feldern 14 und 15 Problemlos.
Das Problem liegt meiner Meinung nach darin, dass Sie nur bestimmte Felder im neuen Datensatz aufnehmen. Sobald Sie zu diesem Datensatz navigieren werden die Felder, die nicht im Datensatz enthalten Sind auf null gesetzt.
Diese Lösung wurde von mir (
http://www.acronaut.de/view_topic.php?id=1357&forum_id=34&highlight=positions%C3%BCbersicht 1.Seite) mitunter aus einem ähnlichem Grund verworfen und es wurde ein anderes Formular erstellt
http://www.acronaut.de/view_topic.php?id=1523&forum_id=34&highlight=xls Beitrag vom 17 Dez 2009 22:45. Dieses speichert die Daten im Formular gesondert ab. Die Daten werden dann entsprechend aufgerufen.
Gruß,
Walde
Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern
Verfasst: 19.05.2010, 20:59
von quetzal08
Hallo Walde,
vielen Dank für deine rasche Antwort.
Ich habe dein Formular auch schon gesehen und dabei ist mir auch aufgefallen das du es ein wenig anders gemacht hast.
Hab's aber erst gefunden als ich schon alles "fertig" hatte und war der Hoffnung das ich es doch noch so verwenden kann. Naja,
Dann werde ich morgen mal probieren es nach deiner ("Test Datenbank 2.zip") Art zu machen.
Melde mich nochmal
Vielen Dank & schönen Gruß,
quetzal