[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Jun 2005
    Beiträge
    15

    QtmhCvtDb numerischer Felder mit Dezimalkomma

    Hallo,
    Wenn ich in meinem CGI-Programm in den H-Bestimmungen
    "H DECEDIT('0,')" angebe,
    die Felder mit
    "%editc(XXX:'3')" alphanumerisch wandele und anschließend mit
    "QtmhWrStout" ausgebe,
    werden sie wie gewünscht im Format
    999,99 dargestellt.

    Lese ich dieses Format (999,99) nun mit
    "QtmhGetEnv" wieder ein und schreibe es mit
    "QtmhCvtDb" in das Datebankfeld zurück, ist das Datenbankfeld Null (0,00) und der Wert weg.

    Ohne die H-Bestimmungen wird das Format 999.99 ordentlich übertragen.

    Nun habe ich an anderer Stelle gelesen, dass "QtmhCvtDb" wohl mit dem Komma ein Problem hat.

    Aber wie kann man das Problem lösen?

    Alle numerische Felder alphanumerisch übertragen und im CGI-Programm selber ins numerische Datenbankfeld übertragen?

    Oder gibt es da noch eine andere Lösung?

    Viele Grüße
    timeless

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... selbstredend gibt es da besseres: Java Server Pages, selbst PHP dürfte da noch eleganter sein als CGI.

    - lass mich raten: das API ist Ami, tausch mal vor dem Aufruf das Komma gegen einen decimal point

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jun 2005
    Beiträge
    15
    Vielen Dank für die schnelle Antwort.

    Das Komma vor dem Aufruf von "QtmhCvtDb" durch den Punkt zu ersetzen würde natürlich in anderen Textfeldern zu Änderungen führen.

    Die Numerischen Felder einzeln gezielt im QueryString ändern ist auch recht aufwändig.

    Gibts denn da nichts eiheitliches, irgendeine Einstellung, vielleicht im API
    "QtmhCvtDb"?

    viele Grüße
    timeless

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ggf. geht das API von der Job-Einstellung des Dezimalformates aus (es kann ja nichts von deiner RPG-Einstellung wissen.

    Ich gehe mal davon aus, dass das API einen Dezimalpunkt erwartet.

    Ist die Struktur, die du zurückbekommst fest definiert ?
    Dann kannst du dies auch ohne API halt einzeln übertragen und per %dec() den Wert zurückbekommen.
    Bist du sicher, dass du auch ein Komma zurückbekommst ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... HTML kennt nur Textfelder, du bekommst also das zurück, was du selber hingesendet hast, oder das, was der Benutzer in das Formular reingetippt hat.

    Dieter

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Bist du sicher, dass du auch ein Komma zurückbekommst ?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nun ja, dann kann ja je nach User (Land) wahlweise Komma oder Punkt kommen. Dann darf ich mich sowieso nicht auf das API verlassen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... es sei denn, da ist Client seitig Code (Javascript) dazwischen, der dann auch die Decimal Points mit erledigen kann...
    D*B

    Zitat Zitat von BenderD Beitrag anzeigen
    ... HTML kennt nur Textfelder, du bekommst also das zurück, was du selber hingesendet hast, oder das, was der Benutzer in das Formular reingetippt hat.

    Dieter
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Jun 2005
    Beiträge
    15
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ggf. geht das API von der Job-Einstellung des Dezimalformates aus (es kann ja nichts von deiner RPG-Einstellung wissen.

    Ich gehe mal davon aus, dass das API einen Dezimalpunkt erwartet.

    Ist die Struktur, die du zurückbekommst fest definiert ?
    Dann kannst du dies auch ohne API halt einzeln übertragen und per %dec() den Wert zurückbekommen.
    Bist du sicher, dass du auch ein Komma zurückbekommst ?
    Vielen dank euch beiden.

    Die Jobeinstellungen sind OK.

    Das API verlangt den Dezimalpunkt.

    Die Struktur ist dynamisch.

    Das Komma kommt auch zurück.

    Es gibt nun wohl 2 Möglichkeiten:

    1. Query String gezielt modifizieren und dann in die Datenbank mit dem API schreiben.

    2. JavaScript

    Wie mach ich das denn mit JavaScript?

    timeless

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... Voraussetzung für den Einsatz von Javascript ist erst mal, dass alle verwendeten Browser das können und zulassen!
    Das Scriptlet muss dan im CGI generiert werden und an den Browser gesendet werden. Für das Scriptlet selber, solltest du mal die Suchmaschine deines Vertrauens bemühen, oder die Frage an ein JavaScript Forum adressieren.

    D*B

    Zitat Zitat von timeless Beitrag anzeigen
    Wie mach ich das denn mit JavaScript?
    timeless
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    JavaScript : Formular : Eingabe Prüfen

    das hier sieht ganz gut aus!

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Jan 2003
    Beiträge
    302
    Zitat Zitat von timeless Beitrag anzeigen
    Vielen dank euch beiden.

    Die Jobeinstellungen sind OK.

    Das API verlangt den Dezimalpunkt.

    Die Struktur ist dynamisch.

    Das Komma kommt auch zurück.

    Es gibt nun wohl 2 Möglichkeiten:

    1. Query String gezielt modifizieren und dann in die Datenbank mit dem API schreiben.

    2. JavaScript

    Wie mach ich das denn mit JavaScript?

    timeless


    Ich tausche das "," aus der Anwendereingabe gegen den ".",
    bevor ich dann die API aufrufe.
    Also, lesen Browserinput, dann diesen hier..:
    *
    * Aufbereitung Browser-Parameter
    C clear w1pos 4 0
    C do *hival
    C eval w1pos =
    C %scan('%6B':indata)
    C if w1pos = *zeros
    C leave
    C endif
    C eval %subst(indata:w1pos:3) = '%4B'
    C enddo

    und dann konvertieren.
    Bitte, ja, das geht noch besser, es ist aber Jahre alt, und
    funktioniert !

    Vielleicht kommst du ja damit ohne java weiter !

    Peet

  12. #12
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von Peet Beitrag anzeigen
    C clear w1pos 4 0
    C do *hival
    C eval w1pos =
    C %scan('%6B':indata)
    C if w1pos = *zeros
    C leave
    C endif
    C eval %subst(indata:w1pos:3) = '%4B'
    C enddo
    Code:
    /Free
      indata = %xlate ('%6B' :'%4B' :indata);
    /End-Free
    ist einfacher und du brauchst kein do-*hival-*pfui

Similar Threads

  1. Anzahl Felder in Displayfile
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 07-11-06, 11:01
  2. FETCH n ROws in einzelne Felder einer DS
    By pedro-zapata in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 11-09-06, 12:34
  3. Numerische Felder in Alfa-Feldgruppe ausgeben
    By dino in forum NEWSboard Drucker
    Antworten: 4
    Letzter Beitrag: 01-09-06, 12:54
  4. Gezonte Felder aus Bildschirm-/Druckdateien intern gepackt
    By Xanas in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 13-06-06, 14:38
  5. FTP AS400 zu PC, Probleme mit Umwandlung numerischer Felder
    By uweulmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-01-01, 13:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •