[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    30
    Hi - du meintest die PF ? in der Bildschirmdatei konnte ich es nicht eintragen, wohl aber in der PF

    Code:
    DATFMT(*JOB) DATSEP(*JOB)
    hat bei mir folgende Formatierung bewirkt:
    Code:
    KAUFDATUM:   01.01.40
    ich habe es dann auf
    Code:
    DATFMT(*EUR)
    geändert u. es hatte flg. Formatierung
    Code:
    KAUFDATUM:   01.01.0001
    Scheint ganz gut zu klappen. Danke euch beiden - vor allem der Link war ziemlich hilfreich Pikachu - sonst hätte ich nicht gewusst wo ich es eintragen muss.

  2. #2
    Registriert seit
    Aug 2007
    Beiträge
    30
    Was ich jetzt festellen musste, im SDA konnte ich das gar nicht ändern mit dem Datentyp "L"
    ich musste die Bildschirmmaske mit "2 - Editieren" öffnen u.
    Code:
    A            W02KAUFDT       L  B 12 74DATFMT(*EUR)
    eintragen.

    Was mir noch auffiel, die Prüfungen ob es *BLANKS oder *ZEROS ist funktioniert nicht mehr - gibt es überhaupt eine Prüfung ob es null ist bzw. ist das dann überhaupt noch notwendig?


    EDIT1:
    Jetz fällt mir auf Pikachu, ich hätte es gleich in der Bildschirmdatei ändern können, ohne es in der PF ändern zu müssen oder?
    In der PF würde vermutlich nur "L" reichen - in der DSPF muss ich dann noch die richtige DATFMT angeben?

    Ist es möglich dem Feld auch einen Standardwert *TODAY zu geben?

  3. #3
    Registriert seit
    Aug 2007
    Beiträge
    30
    sry für die vielen Fragen, aber noch eine =)
    Code:
    FIELD3         3D 0O 12 09DFTVAL('000')
    das hab ich gefunden zum Thema Default-Value.

    Klappt soweit wunderbar, bloß in dem Fall eines Datumsfeldes tue ich mich hier etwas schwer, u. zwar das das aktuelle Tagesdatum angezeigt werden soll.

    habe schon mit DATE(*SYS) zwischen den klammern probiert, geht aber anscheinend nicht ;(

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    DATE(*SYS) ist eine reine Ausgabefunktion.
    Wenn du einen Default haben willst, musst du das halt im Programm machen:

    if MyDate = *loval;
    MyDatei = %date();
    endif;
    exfmt MyDspFmt;

    In der DSPF kannst du natürlich auch DATFMT eintragen.

    Das kleinste datum(*LOVAL) ist eben der 01.01.0001.
    Oder du musst ALWNULL in der PF erlauben und mit

    if %nullind(MyDate) <> *zero;
    MyDate =%Date();
    endif;

    Mit
    %nullind(MyDate)=-1;
    kannst du den NULL-Wert auch setzen.
    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
    Aug 2007
    Beiträge
    30
    Super - klappt alles - danke!

    Aktuelle Datum versorge ich jetzt mit

    Code:
    C                   EVAL      W02KAUFDT=%DATE()
    So ist das Datum in dem Eingabefeld immer schon auf einen Wert gelegt

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.379
    Create table und current_date sind deine Freunde

    D*B

    Zitat Zitat von GutmannHGW Beitrag anzeigen
    Ist es möglich dem Feld auch einen Standardwert *TODAY zu geben?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Aug 2007
    Beiträge
    30
    Hm... hört sich stark nach SQL an? Oder irre ich mich?
    In diesem Falle wüsste ich zunächst nicht wie die Numerischen u. Alphanumerischen Datentypen heißen.
    Vermutlich Integer und Char oder Varchar?

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Hallo,

    falls es Dich interessiert:
    In dem folgenden Redbook Kapitel 9 sind die SQL Datentypen beschrieben und welcher SQL-Typ welchem RPG-Typ entspricht.
    Modernizing IBM eServer iSeries Application Data Access - A Roadmap Cornerstone

    Integer entspricht übrigens dem RPG-Datentyp I.
    Char dem Datentyp A und VarChar dem Datentyp A mit Schlüsselwort Varying.
    Ein Datum hat in SQL den Datentyp Date.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    Allerdings sollte man bei SQL-Tables beachten:
    Der Formatname ist mit dem Dateinamen identisch !
    Bei Native-IO ist also eine Umbenennung des Formatnamens erforderlich.
    Bei SQL interessiert der Formatname natürlich nicht.

    Desweiteren hat eine Tabelle erst mal keinen Schlüssel.
    Man kann zwar einen Constraint "Primary Key" anhängen, der ist allerdings grundsätzlich UNIQUE.

    Mit Create Index kann ich eine LF erstellen (für SQL nur Zugriffsweg), die ich mit Native-IO natürlich direkt nutzen kann.
    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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Allerdings sollte man bei SQL-Tables beachten:
    Der Formatname ist mit dem Dateinamen identisch !
    Bei Native-IO ist also eine Umbenennung des Formatnamens erforderlich.
    Bei SQL interessiert der Formatname natürlich nicht.
    Seit Release V5R4 kann direkt beim Erstellen einer Tabelle über das Schlüssel-Wort RCDFMT direkt ein abweichender Format-Name festgelet werden. (Ebenso kann auch bei einer SQL-View ein abweichender Format-Name angegeben werden.)

    Auch vor Release V5R4 waren abweichende Format-Namen möglich (allerding benötigte man dazu 2 Schritte)
    1. Erstellung einer Tabelle mit dem Format-Namen als Tabellen-Name
    2. Umbenennung der Tabelle auf den eigentlichen Tabellen-Namen. (Der Format-Name wird nicht unbenannt!)

    Ein gewaltiger Vorteil von SQL-Tabellen gegenüber DDS beschriebenen physischen Dateien ist, dass selbst mit CPYF und *NOCHK keine ungültigen Daten übernommen werden können, d.h. alpha in numerische Felder kopieren geht nicht!
    Innerhalb der SQL-Tabellen wird beim Schreiben der Daten auf Gültigkeit beprüft. Bei DDS beschriebenen physischen Dateien erfolgt die Prüfung beim Lesen.

    Mit Create Index kann ich eine LF erstellen (für SQL nur Zugriffsweg), die ich mit Native-IO natürlich direkt nutzen kann.
    ... auf eine SQL-Tabelle können natürlich auch DDS-beschriebene logische Dateien gelegt werden.

    Ein Index erhält das Format der zugrundeliegenden Tabelle (oder DDS beschriebenen physischen Datei) erst ab Release V6R1 wird es möglich sein auch in Indices einen abweichenden Format-Namen anzugeben.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  11. #11
    Registriert seit
    Aug 2007
    Beiträge
    30
    Zitat Zitat von BenderD Beitrag anzeigen
    Create table und current_date sind deine Freunde

    D*B
    Ist das in einer PF auch möglich? Also der Datentyp Date geht schon, aber das "Current" bekommt man anscheinend nur mittels SQL CREATE TABLE hin?

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.752
    Stimmt.
    Ausserdem hilft das in SQL nur bei einem Insert ohne Verwendung des Feldes:

    create mytable (Feld1 char(10) not null, MyDate date not null default current date)

    insert into mytable (feld1) values('Irgendwas')

    In diesem Fall wird in MyDate das Tagesdatum geschrieben.

    Default beim Lesen (Select) gibt es nicht.
    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

Similar Threads

  1. Bilder (*.JPG, *.BMP) in PF
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 05-01-07, 12:47
  2. PF von hinten nach vorne
    By kuempi von stein in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 07-11-06, 09:33
  3. Antworten: 7
    Letzter Beitrag: 08-09-06, 18:24
  4. Fehlerzeile in DSPF
    By Freezer in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-08-06, 09:11
  5. num. Feld in Datumsfeld konvertieren
    By edig in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 27-07-06, 09:20

Berechtigungen

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