Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
quetzal08
Beiträge: 4
Registriert: 25.01.2010, 23:10

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von quetzal08 » 15.05.2010, 01:54

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

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von walde » 16.05.2010, 13:37

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

quetzal08
Beiträge: 4
Registriert: 25.01.2010, 23:10

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von quetzal08 » 17.05.2010, 12:31

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

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von walde » 19.05.2010, 09:33

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

quetzal08
Beiträge: 4
Registriert: 25.01.2010, 23:10

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von quetzal08 » 19.05.2010, 10:10

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von walde » 19.05.2010, 19:31

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

quetzal08
Beiträge: 4
Registriert: 25.01.2010, 23:10

Datenbank: navigation zum nächsten Datensatz löscht inhalte von Textfeldern

Beitrag von quetzal08 » 19.05.2010, 20:59

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

Antworten