Autor Thema: @TextToNumber  (Gelesen 2161 mal)

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
@TextToNumber
« am: 23.05.03 - 18:30:14 »
Folgende Aufgabe:
Im Web wird eine Bestellung durchgeführt. In diesem Formular sind berechnete Zahlenfelder, deren Inhalte ich via $$Return als Query_String an eine neue Seite übergebe
In dieser Seite wird per Agent der Query_String ausgelesen und die Teile wiederrum berechneter Felder zugewiesen.
Um in diesem Formular weitere Berechnungen durchzuführen, wollte ich in einem Zahlenfeld mit @TextToNumber einen Teil des Query_String in eine Dezimalzahl umwandeln.
Leider werden in diesen berechneten Zahlenfelder dieser Query_String Teil nicht umgewandelt.
Warum nicht?
-------
Gruß Rolf
--------------

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@TextToNumber
« Antwort #1 am: 24.05.03 - 10:23:53 »
Hi RvM,

das ist eher ein Thema für das Entwicklungsforum, aber egal.
Bitte poste doch mal den Code, damit man leichter nachvollziehen kann, was Du da genau machst.

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Re:@TextToNumber
« Antwort #2 am: 24.05.03 - 12:39:37 »
@Meff:
Okay ich versuchs mal.
Also das $$RETURN-Feld hat folgende Berechnung:
Zitat
nametotal:=Vorname +" "+Name;
db:=@ReplaceSubstring(@Subset(@DbName;-1);"\\";"/");
"["+db+"/Videodanke?openform&"+nametotal+"~"+Anzahl+"|"+Zahlart+"]"
wobei im Formular das Feld "Anzahl" ein Listenfeld und "Zahlart" ein Optionsfeld ist.
Das Dokument "Videodanke" wird mit einem "WebQueryOpen"-Agenten gestartet, dessen Berechnung sieht wie folgt aus:
Zitat
queryStr := @Right(Query_String;"&");
X:=@ReplaceSubstring(queryStr;"%20";" ");
FIELD Name:=@Left(X;"~");
FIELD Zahlart:=@Right(X;"|");
FIELD Anzahl:=@TextToNumber(@Right(@Left(X; "|");"~"));
""
Das Feld Zahlart ist ein berechnetes Textfeld mit der Formel "Zahlart" und das Feld Anzahl ist ein Zahlenfeld mit der berechneten Formel "@TextToNumber(Anzahl)", wobei diese Formel immer als Ergebnis ein "@ERROR" rausschmeisst.
Ich hoffe, das diese Infos reichen.
-------
Gruß Rolf
--------------

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:@TextToNumber
« Antwort #3 am: 24.05.03 - 17:42:55 »
hmm. Formel Desperado, wa  ;)

Ich würde:

FIELD Anzahl:=@TextToNumber(@Right(@Left(X; "|");"~"));
""

erstmal ohne @TextToNumber testen:

FIELD Anzahl:=@Right(@Left(X; "|");"~");

Dann siehst du vielleicht schon das problem.
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Re:@TextToNumber
« Antwort #4 am: 24.05.03 - 18:12:40 »
Danke für den Tipp, habe ich aber auch schon getestet.
Formeln: Ja ich liebe Formeln (aus reinem Mangel an Scriptkentnisse - ich raff das objektorientierte Denken nicht  :()
-------
Gruß Rolf
--------------

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Lösung gefunden!
« Antwort #5 am: 24.05.03 - 18:29:39 »
 ;D
Ich habe die Lösung gefunden:
In berechneten Texten klappt es mit @TextToNumber, nicht aber in berechneten Feldern!
Warum???
Fragt micht nicht!
« Letzte Änderung: 24.05.03 - 18:30:08 von RvM »
-------
Gruß Rolf
--------------

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:@TextToNumber
« Antwort #6 am: 26.05.03 - 16:55:33 »
Noch ein allgemeine Tipp zur Vereinfachung der Formelwüsten bei Parameterübergabe per URL. Vom Gottvater der Domino Webentwicklung, Jake Howlett, stammt folgende Technik:

1. Alle Parameter in web-üblichen Art und Weise übergeben, also z.B. in der Form

"["+db+"/Videodanke?openform&nametotal="+nametotal+"&Anzahl="+Anzahl+"&Zahlart="+Zahlart+"]"

Es geht natürlich auch anders, aber so ist die Parameterübergabe standardisiert und man kann eben leichter Code von anderen wiederverwerten anstatt immer seine eigene Behandlung von Trennzeichen durchziehen zu müssen.

2. Auf jeder Maske, die Parameter auslesen soll zwei Felder erstellen, z.B.
Textfeld "ArgNames", computed for display, allow multiple Values Formel:
@Left(@Explode(@Right(Query_String;"&");"&");"=")

Textfeld "ArgValues", computed for display, allow multiple values, Formel:
@Right(@Explode(@Right(Query_String;"&");"&");"=")

3. Wenn man jetzt z.B. den Wert des Parameters "Anzahl" auslesen will, benutzt man die Formel

_pos := @Member("Anzahl"; ArgNames);
@GetMembers(ArgValues; _pos)


Der große Vorteil: Wenn man die beiden Felder in eine Teilmaske packt, die man in jede betroffene Webmaske aufnimmt, muss man sich immer nur dieses letzte, simple Stückchen Code merken und den Namen des Parameters auf den man zugreifen möchte.


Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:@TextToNumber
« Antwort #7 am: 26.05.03 - 18:02:05 »
desweiteren wuerde ich die CGI-Variable Query_String_Decoded verwenden...

gruss

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:@TextToNumber
« Antwort #8 am: 26.05.03 - 19:12:54 »
desweiteren wuerde ich die CGI-Variable Query_String_Decoded verwenden...
Je nachdem, was man alles übergeben will oder muss, sicher sehr sinnvoll.

Allerdings sollte man bedenken, dass Query_String_Decoded nicht zusammen mit Rufzeichen anstelle von Fragezeichen (z.B. wenn im Serverdokument die Option "Make this site accessible to web search site crawlers" eingeschaltet ist) funktioniert.

Query_String kann es dagegen lustigerweise.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz