[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    Feldgruppen / Tabellen Problem

    Ich habe folgendes Problem:


    D Z S 2 0 inz(*zeros)
    D X S 2 0 inz(*zeros)

    * Anwesenheitstage
    D DS
    D FgAnwTg 1 42 Dim(21)
    D Mo1 1 2
    D Di1 3 4
    D Mi1 5 6
    D Do1 7 8
    D Fr1 9 10
    D Sa1 11 12
    D So1 13 14
    D Mo2 15 16
    D Di2 17 18
    D Mi2 19 20
    D Do2 21 22
    D Fr2 23 24
    D Sa2 25 26
    D So2 27 28
    D Mo3 29 30
    D Di3 31 32
    D Mi3 33 34
    :
    :
    * Trainer & Tage - elektrisch
    D DS
    D FgTraTgE 21 Dim(10)
    D ETrainer 17a
    D ETage 4s 1 inz(*zeros)
    :
    :

    C Do 21 Z
    C If FgAnwTg(Z) <> *blanks
    C Eval GesEle = GesEle + %dec(FgAnwTg(Z):2:1)
    C If %Lookup($KlGrMix(NName):FgTraTgE) = *zeros
    C Eval X = X + 1
    C Eval %subst(FgTraTgE(X): 1:17) = $KlGrMix(NName)
    C EndIf
    C EndIf
    C EndDo


    "$KlGrMix" ist ein "Proc" welche den Wert im Feld "NName" auf klein bzw. Groß-Schirft umstellt!

    In der "Do"-Schleife wird geprüft, ob in der Feldgruppe FgTraTgE" der "NName" schon vorhanden ist.

    Ist das der Fall wird dieser nicht neu in die Feldgruppe geschreiben, sondern es soll dann nur der Wert, welcher in "FgAnwTg" als ",0" o. ",5" o. "1," o. " " steht, in das zugehörige Feld "ETage" (als num. Wert) addiert werden!

    Ist das nicht der Fall wird der Wert im Feld "NName" ins entsprechende Feldgruppenelement übertragen und es soll der zugehöhrige Wert in "FgAnwTg" ins Feld "ETage" addiert bzw. übertragen werden

    Ist das irgendwie möglich bzw. was muß ich machen damit dieses so funkt?

  2. #2
    Registriert seit
    Sep 2003
    Beiträge
    236

    Frage: Wie kommen die Daten hierein?

    Hallo,

    kommen die Daten aus einer Datei?, wenn ja hört sich dies an
    wie eine Lösung über Gruppenwechsel-Programmierung.

    Oder sagte mir mal ein Dozent:
    eine Tabelle verhält sich wie ein Gruppenwechsel, allerdings
    sind die Eingabedaten unsortiert.
    Das müssen sie ja für einen Gruppenwechsel ja sein.

    Bin ich da mit meinem Lösungsansatz auf der richtigen Spur?

    Gruss Thomas

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    309
    ja, die Daten kommen aus einer Datei:

    will/muß eine Excel-Tabelle auf die As400 übernehmen d.h. das was
    die User bisher mit Excel machten soll jetzt auf der AS400 angezeigt und ausgewertet werden!

    In dieser Datei stehen Namen und Tage:
    (NName) Mo1 Di1 Mi1 Do1
    Meier 1, 1, ,5 ,0
    Müller
    Huber
    Mustermann
    Meier 1, ,5
    Schmidt
    Huber
    Meier ,0

    in der Feldgruppe sollte jetzt folgende stehen:
    Meier 4,0
    Müller 0,0
    Huber 0,0
    :

    Ist das überhaupt machbar, wie muß ich die Feldgruppe / Tabelle definieren damit ich das in den "C"-Bestimmungen so realisieren kann?

    PS: Mo1, Di1, Mi1, Do1 Alpha-Felder
    diese habe ich mir gedacht, benutze ich dann mit der bif %dec
    %dec(FgAnwTg(Z):2:1)

  4. #4
    Registriert seit
    Sep 2003
    Beiträge
    236

    ? Vielleicht so?

    Hallo,

    ich bin leider noch nicht so fit in RPGIV, da 90 % unseres
    WWS in RPG III noch ist.

    Um es anders zu formulieren .

    die Datei hat pro Mitarbeiter einen Datensatz.
    Der Datensatz beinhaltet die Felder: (DDS-Beschreibung)1) Name
    2) Wert für MO1
    3) Wert für MO2
    bis es 42 Felder sind.

    Die Datei wird nach Key sortiert eingelesen.

    Entweder prüfst Du dann einzeln auf jedes Feld
    (Wert nicht gleich null oder blank) und errechnest Du die
    Anzahl.

    Oder diese Felder in eine Tabelle moven und dann
    diese Tabelle per Schleife auslesen (index 1-42)

    Wäre der Ansatz von mir korrekt?

    Gruss Thomas

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.280
    Wenn du die Datei mit den 43 Feldern (1.=NAme 42 x Tag) hast, mach es einfach per SQL:
    Definiere eine 2. Datei mit gleichen Feldern und kopiere die Daten

    insert in datei2
    select upper(name), sum(mo1), sum(mo2) .... from datei1
    group by upper(name)
    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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    309
    Das mit SQL hatte ich mir auch schon überlegt!

    Das Problem ist dabei, das vorher noch Prüfungen auf andere Felder in der Datei sind!

    Die Felder mit den Tagen (Mo1, Di1, etc.) stehen eigentlich in einer
    eigenen Feldgruppe! (siehe Source-Code)

    Habe das ganze hier nur mit den Mo1, Di1, etc. beschrieben, um es leichter erklären zu können!

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Verknüpfen von Tabellen mit SQL
    By e_sichert in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 28-11-06, 19:43
  3. Journaling für alle Tabellen eines Schemas einschalten
    By remo2010 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-11-06, 15:24
  4. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  5. SQL Update Problem mit mehreren Tabellen
    By neuling_ in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-05-04, 09:35

Berechtigungen

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