Zum Inhalt springen

Buerger

Mitglieder
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Beiträge von Buerger

  1. Vielen Dank schon einmal!!

    Ich habe das ganze bei mir jetzt nochmal umgeschrieben und es sieht nun so aus:

    
    *&---------------------------------------------------------------------*
    
    REPORT ZARTIKELDATENVERWALTEN.
    
    TABLES ZARTIKEL.
    
    DATA: okcode TYPE sy-ucomm,
    
    saveok TYPE okcode.
    
    DATA: line TYPE i,
    
    step TYPE i,
    
    limit TYPE i,
    
    fill TYPE i,
    
    c TYPE i.
    
    DATA: wa TYPE TABLE OF ZARTIKEL,
    
    its TYPE TABLE OF ZARTIKEL,
    
    itartikel TYPE ZARTIKEL,
    
    waartikel TYPE ZARTIKEL.
    
    
    
    SELECT * FROM ZARTIKEL INT O TABLE its.
    
    DESCRIBE TABLE its LINES line.
    
    CONTROLS: ARTIKEL TYPE TABLEVIEW USING SCREEN 1060.
    
    CALL SCREEN 1060.
    
    MODULE V1 INPUT.
    
    CASE okcode.
    
    WHEN 'DELETE'.
    
    DELETE its WHERE PICK = 'X'.
    
    ENDCASE.
    
    ENDMODULE.
    
    MODULE EXIT INPUT.
    
    IF okcode = 'EXIT'.
    
    LEAVE TO TRANSACTION 'ZTRANS'.
    
    ENDIF.
    
    ENDMODULE.
    
    
    FORM bla.
    
    IF waartikel-ARTIKEL_NR IS INITIAL.
    
    CALL FUNCTION 'NUMBER_GET_NEXT'
    
    EXPORTING
    
    nr_range_nr = '01'
    
    object = 'ZNUMMERA'
    
    IMPORTING
    
    number = waartikel-ARTIKEL_NR.
    
    ENDIF.
    
    ENDFORM.
    
    module user_command_1060 input.
    
    CASE okcode.
    
    WHEN 'NEXT-LINE'.
    
    line = line + 1.
    
    limit = fill - step.
    
    IF line > limit.
    
    line = limit.
    
    ENDIF.
    
    WHEN 'PREV_LINE'.
    
    line = line - 1.
    
    IF line < 0.
    
    line = 0.
    
    ENDIF.
    
    WHEN 'NEXT_PAGE'.
    
    line = line + step.
    
    limit = fill - step.
    
    IF line > limit.
    
    line = limit.
    
    ENDIF.
    
    WHEN 'PREV_PAGE'.
    
    line = line - step.
    
    IF line < 0.
    
    line = 0.
    
    ENDIF.
    
    WHEN 'LAST_PAGE'.
    
    line = fill - step.
    
    WHEN 'FIRST_PAGE'.
    
    line = 0.
    
    WHEN 'NEXT'.
    
    c = line + 1.
    
    ENDCASE.
    
    ENDMODULE.
    
    
    module status_1060 output.
    
    DATA: line_count TYPE i.
    
    DESCRIBE TABLE its LINES line_count.
    
    ARTIKEL-lines = line_count + 5.
    
    endmodule.
    
    module pass_data output.
    
    READ TABLE its INTO ZARTIKEL INDEX artikel-current_line.
    
    endmodule.
    
    module modify_data INPUT.
    
    MODIFY ITS INDEX ARTIKEL-CURRENT_LINE FROM waartikel.
    
    endmodule.
    
    
    module function input.
    
    okcode = sy-ucomm.
    
    CASE okcode.
    
    WHEN 'DELETE'.
    
    DELETE FROM ZARTIKEL WHERE PICK = 'X'.
    
    ENDCASE.
    
    endmodule.
    
    
    
    dazu PAI/PBO:
    
    
    PROCESS BEFORE OUTPUT.
    
    MODULE status_1060.
    
    LOOP WITH CONTROL ARTIKEL.
    
    MODULE pass_data.
    
    ENDLOOP.
    
    
    PROCESS AFTER INPUT.
    
    module user_command_1060.
    
    LOOP WITH CONTROL ARTIKEL.
    
    MODULE modify_data.
    
    ENDLOOP.
    
    MODULE FUNCTION.
    
    
    

    Mein Table-Control wird dann auch gefüllt, klicke ich dann aber eine Zeile an, so und klicke auf DELETE, so läuscht er im TABLE CONTROL alle sichtbaren Zeilen raus. Ich möchte aber ja nur eine Zeile löschen, undzwar die, die ich angeklickt habe.

    Habt Ihr vielleicht eine Idee, wo mein Fehler liegt??

    Zudem möchte ich dann natürlich auch, dass die Zeile, die ich im Table Control lösche, auch in der Tabelle ZARTIKEL gelöscht wird, hab Ihr dazu auch eine Idee??

    Ich würde mich über so gute Antworten wie zuletzt wieder sehr freuen.

    Buerger

  2. Hi,

    ich habe ein Table Control erstellt, welches Daten einliest. Nun möchte ich diese Daten gerne in Bezug auf die Tabelle einfügen, bearbeiten oder löschen. Hierfür habe ich bereits 3 Button erstellt. Aber wie can ich jetzt Aktionen auf die einzelnen Knöpfe legen?? Dies funktioniert bei mir nämlich noch gar nicht....

    Das ist mein Code für die interne Tabelle:

    
    
    BEGIN OF its OCCURS 0,
    
    mark TYPE C VALUE ' ',
    
    artikel_nr TYPE ZARTIKEL-ARTIKEL_NR,
    
    artikel_typ TYPE ZARTIKEL-TYPE,
    
    bezeichnung TYPE ZARTIKEL-BEZEICHNUNG,
    
    preis TYPE ZARTIKEL-PREIS,
    
    mwst TYPE ZARTIKEL-MWST,
    
    END OF its.
    
    
    und dies mein Code für die zu löschenden Zeilen im Table Control:
    
    
    WHEN 'DELETE'.
    
    LOOP AT its WHERE mark EQ 'X'.
    
    DELETE its WHERE mark = 'X'.
    
    MOVE its TO ZARTIKEL.
    
    ENDLOOP.
    
    ENDCASE.
    
    ENDMODULE:
    
    
    und mein PBO und PAI:
    
    
    PROCESS BEFORE OUTPUT.
    
    LOOP AT its INTO ZARTIKEL WITH CONTROL ARTIKEL.
    
    ENDLOOP.
    
    
    PROCESS AFTER INPUT.
    
    MODULE EXIT.
    
    LOOP AT its.
    
    MODULE V1.
    
    ENDLOOP.
    
    MODULE user_command_1060.
    
    

    Wenn ich nun den Table Control öffne und die Zeile markiere, welche ich löschen will und meinen Löschen-Button klicke, passiert gar nichts. Weder in meiner internen Tabelle noch in meiner eigentlichen Tabelle ZARTIKEL. Könnt Ihr mir sagen, was ich hier falsch mache??

    Besten Dank schonmal im Voraus.

    Buerger

  3. So, es läuft, wie ich es mir vorstelle...

    Vielen Dank erstmal an Euch alle für die Hilfe ;)

    Hier ist mal der Quellcode:

    
    
    REPORT ZTEST4.
    
    
    INCLUDE <icon>.
    
    
    MOVE ´Neues Kundenkonto erstellen´ TO sy-title.
    
    
    TABLES: ZKUNDEN.
    
    
    PARAMETERS: 	pkdnr LIKE ZKUNDEN-KUNDEN_NR,
    
    		pvor LIKE ZKUNDEN-VORNAME,
    
    		pnach LIKE ZKUNDEN-NACHNAME,
    
    		pstrasse LIKE ZKUNDEN-STRASSE,
    
    		pplz LIKE ZKUNDEN-PLZ,
    
    		port LIKE ZKUNDEN-ORT,
    
    		pemail LIKE ZKUNDEN-EMAIL,
    
    		ptelefon LIKE ZKUNDEN-TELEFONNUMMER,
    
    		pmobil LIKE ZKUNDEN-MOBIL.
    
    
    DATA wakunden LIKE ZKUNDEN.
    
    
    START-OF-SELECTION.
    
    Wakunden-KUNDEN_NR = pkdnr.
    
    Wakunden-VORNAME = pvor.
    
    Wakunden-NACHNAME = pnach.
    
    Wakunden-STRASSE = pstrasse.
    
    Wakunden-PLZ = pplz.
    
    Wakunden-ORT = port.
    
    Wakunden-EMAIL = pemail.
    
    Wakunden-TELEFONNUMMER = ptelefon.
    
    
    IF wakunden-KUNDEN_NR IS INITIAL.
    
    
    CALL FUNCTION ´NUMBER_GET_NEXT´
    
    EXPORTING
    
    Nr_range_nr = ´01´
    
    Object = ´ZANUMMERN´
    
    IMPORTING
    
    Number = wakunden-KUNDEN_NR.
    
    ENDIF.
    
    
    MOVE wakunden TO ZKUNDEN.
    
    
    WRITE: / wakunden-KUNDEN_NR.
    
    
    

    Habt ihr noch ne Idee, wie ich schon bei Eingabe eines neuen Datensatzes überprüfen kann, ob der Datzensatz in der Tabelle ZTABLE schon vorhanden ist?? Muss ich dafür die interne Tabelle "wakunden" benutzen??

    Viele Grüße

    Buerger

  4. Hallo,

    und vielen Dank für die Antwort.

    Ich glaube, bei dem Aufbau der Tabelle itskunden mache ich einen Fehler.

    Nach Deinem Tipp mit den [], der ja wirklich Sinn macht, gibt mir das System nämlich in der MOVE-Anweisung

    
    
    MOVE pkdnr-low TO itskunden-KUNDEN_NR
    
    
    
    an, dass die Tabelle itskunden überhaupt keine interne Tabelle ist. Sie wird wohl nicht richtig aufgebaut. Zudem wirdx sie auch nicht mit Daten befüllt, was ich durch die Breakpoint-Anweisung erfahren habe. Wie würde ich denn eine interne Tabelle, auch in Bezug auf das Einfügen in die interne Tabelle, aufbauen? Beim Testen gebe ich alle Daten ein, bis auf die Kundennummern. Hierfür habe ich mir einen Nummernkreisintervall erstellt, welche ich durch die Anweisung
    
    
    IF wakunden-KUNDEN_NR is INITIAL.
    
     CALL FUNCTION 'NUMBER_GET_NEXT'
    
       EXPORTING
    
         nr_range_nr = '01'
    
         object = 'ZANUMMERN'
    
       IMPORTING
    
         number = wakunden-KUNDEN_NR
    
    ENDIF
    
    
    

    fülle. Den Tipp habe ich aus einem anderen Forum. Ich hab auch zuerst ein ABAP-Buch benutzt. Dieses war aber nicht gut, so dass ich mich jetzt hauptsächlich durch das Skript meines Professors, wie auch durch verschiedene Internetseiten. Dort habe ich auch den Tipp mit dem LOOP her.

    Vorher hatte ich das ganze ja anders gemacht, womit ich damals zumindest das Eintragen in die Tabelle schaffen konnte. Leider ließ sich dort allerdings immer nur maximal 1 bzw. 2 Einträge erstellen und zudem wurde die Kundennummer schon bei dem zweiten Datensatz nicht eingetragen. (Siehe hierzu meinen 1. Beitrag).

    Ich hoffe, dass Du mir bei der Frage, wie ich eine interne Tabelle aufbaue, weiterhelfen kannst??

    Ciaoi

    Buerger

  5. Nein, die Felnder des Arbeitsbereiches sind von Anfang an nicht gefüllt. Ich kann dort dann neue Daten eingeben, die ich dann in der Datenbank haben möchte. Bei diesem Transfer hapert es aber ja leider.

    Mein Code hat sich nun auch etwas geändert. Er sieht nun so aus:

    
    
    REPORT ZTEST3.
    
    
    INCLUDE <icon>.
    
    
    MOVE 'Neues Kundenkonto erstellen' TO sy-title.
    
    
    TABLES: ZKUNDEN.
    
    
    DATA: itskunden TYPE TABLE OF ZKUNDEN with header line.
    
    
    SELECT-OPTIONS: pkdnr FOR ZKUNDEN-KUNDEN_NR,
    
    pvor FOR ZKUNDEN-VORNAME,
    
    pnach FOR ZKUNDEN-NACHNAME,
    
    pstrasse FOR ZKUNDEN-STRASSE,
    
    pplz FOR ZKUNDEN-PLZ,
    
    port FOR ZKUNDEN-ORT,
    
    pemail FOR ZKUNDEN-EMAIL, 
    
    ptelefon FOR ZKUNDEN-TELEFONNUMMER,
    
    pmobil FOR ZKUNDEN-MOBIL.
    
    
    DATA wakunden LIKE itskunden.
    
    
    LOOP AT pkdnr.
    
    MOVE pkdnr-low TO itskunden-KUNDEN_NR.
    
    append itskunden.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pvor.
    
    MOVE pvor-low TO itskunden-VORNAME.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pnach.
    
    MOVE pnach-low TO itskunden-NACHNAME.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pstrasse.
    
    MOVE pstrasse-low TO itskunden-STRASSE.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pplz.
    
    MOVE pplz-low TO itskunden-PLZ.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at port.
    
    MOVE port-low TO itskunden-ORT.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pemail.
    
    MOVE pemail-low TO itsku nden-EMAIL.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at ptelefon.
    
    MOVE ptelefon-low TO itskunden-TELEFONNUMMER.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP at pmobil.
    
    MOVE pmobil-low TO itskunden-MOBIL.
    
    MODIFY itskunden index sy-tabix.
    
    clear itskunden.
    
    endloop.
    
    
    LOOP AT itskunden INTO wakunden.
    
    IF wakunden-KUNDEN_NR is INITIAL.
    
    CALL FUNCTION 'NUMBER_GET_NEXT'
    
    EXPORTING
    
    nr_range_nr = '01'
    
    object = 'ZANUMMERN'
    
    IMPORTING
    
    number = wakunden-KUNDEN_NR.
    
    ENDIF.
    
    INSERT INTO ZKUNDEN VALUES wakunden.
    
    WRITE: wakunden-KUNDEN_NR.
    
    ENDLOOP.
    
    
    

    Die Sachen die ich dann in der Eingabemaske eintrage werden leider immernoch nicht in die Tabelle ZKUNDEN eingetragen....

    Die interne Tabelle wollte ich als Zwischenspeicher nutzen, da ich nicht weiß, ob und wie ich denn die Daten die ich in die Eingabemaske eintrage in die Datenbank ZKUNDEN bekomme.

    Das mit dem Reporting ist mir nun auch schon bewusst geworden. Das nächste Programm werde ich dann mit dem Abfangen von Exceptions versehen, um Fehlern schonmal vorzubeugen.

    Die Eingabemaske fülle ich dabei mit ganz simplen Daten:

    PKDNR: "value0" TO "KUNDENNUMMER"

    PVOR: "value1" TO "VORNAME"

    PNACH: "value2" TO "NACHNAME"

    PSTRASSE: "value3" TO "STRASSE"

    PPLZ: "value4" TO "PLZ"

    PORT: "value5" TO "ORT"

    PEMAIL: "value6" TO "EMAIL"

    PTELEFON: "value7" TO "TELEFONNUMMER"

    PMOBIL: "value8" TO "MOBILNUMMER"

    Die ""-Felder sind dabei die Eingabefelder!! Warum ich zwei Eingabefelder habe, weiß ich leider selbst nicht. Dies wurde mir von einem anderen Forum empfohlen....

    Was meinst Du/Ihr denn, wo ich jetzt noch was in meinem Code ändern sollte??

  6. Ich vermute dein INSERT geht auf die Bretter.

    Setze mal einen Breakpoint bei dem "INSERT"-Statement und schau mal, welcher sy-subrc nach dem Ausführen der Anweisung zurückgegeben wird. Dieser sollte dir Hinweise geben, wo es klemmt.

    Das hab ich mal gemacht. Die Werte sind nun:

    SY-SUBRC = 0

    SY-TABIX = 1

    SY-DBCNT = 1

    Was bedeutet dies?? Es werden in der itskunden auch keine Einträge angezeigt, obwohl ja eigentlich welche angelegt sein müssen. Also zumindest die Einträge, die ich vorher über die erste Maske eingebe....

    Habt Ihr ne Idee wo, was hier mein Fehler ist??

  7. Leider komme ich wieder mal nicht weiter....

    Mein Programm legt mir nun, nach Angabe der Daten im Formular, einen Kunden mit einer Kundennummer ein. Starte ich dann das Programm neue, kann ich in dem dann wiedergeöffneten Kundenformular weitere Daten eingeben. Gebe ich diese nun ein und sicher diese wieder, so wird mir aber leider kein neuer Kunde angelegt. Dies ist mein aktueller Quellcode:

    
    
    REPORT ZTEST3.
    
    
    INCLUDE <icon>.
    
    
    MOVE 'Neues Kundenkonto erstellen' TO sy-title.
    
    
    TABLES: ZKUNDEN.
    
    
    DATA: itskunden TYPE TABLE OF ZKUNDEN with header line.
    
    
    SELECT KUNDEN_NR INTO TABLE itskunden
    
    FROM ZKUNDEN.
    
    
    PARAMETERS: pkdnr LIKE ZKUNDEN-KUNDEN_NR,
    
    pvor LIKE ZKUNDEN-VORNAME,
    
    pnach LIKE ZKUNDEN-NACHNAME,
    
    pstrasse LIKE ZKUNDEN-STRASSE,
    
    pplz LIKE ZKUNDEN-PLZ,
    
    port LIKE ZKUNDEN-ORT,
    
    pemail LIKE ZKUNDEN-EMAIL,
    
    ptelefon LIKE ZKUNDEN-TELEFONNUMMER,
    
    pmobil LIKE ZKUNDEN-MOBIL.
    
    
    DATA wakunden LIKE ZKUNDEN.
    
    
    START-OF-SELECTION.
    
    wakunden-KUNDEN_NR = pkdnr.
    
    wakunden-VORNAME = pvor.
    
    wakunden-NACHNAME = pnach.
    
    wakunden-STRASSE = pstrasse.
    
    wakunden-PLZ = pplz.
    
    wakunden-ORT = port.
    
    wakunden-EMAIL = pemail.
    
    wakunden-TELEFONNUMMER = ptelefon.
    
    wakunden-MOBIL = pmobil.
    
    
    IF wakunden-KUNDEN_NR IS INITIAL.
    
    CALL FUNCTION 'NUMBER_GET_NEXT'
    
    EXPORTING
    
    nr_range_nr = '01'
    
    object = 'ZANUMMERN'
    
    IMPORTING
    
    number = wakunden-KUNDEN_NR.
    
    ENDIF.
    
    INSERT INTO ZKUNDEN VALUES wakunden.
    
    
    WRITE: wakunden-KUNDEN_NR.
    
    
    

    Ich weiß zur Zeit mal leider wieder einfach nicht mehr weiter, da ich schon sämtlich Sachen umgeschrieben hab und es immer noch nicht klappt.....

    Kann mir vielleicht nochmal jemand helfen und weiß eventuell wo mein Problem liegt?? Also, warum er mir nur einen Kundensatz in der Tabelle erzeugen kann??

    Ich wäre Euch sehr sehr dankbar.

  8. Mit dem object-Parameter ist der Name des Nummernkreisobjektes gemeint.

    CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
    nr_range_nr = '01'
    object = 'ZANUMMERN' <= Hochkommata beachten!!
    IMPORTING
    number = pkdnr.
    [/PHP]

    Achtung: Ein Nummernkreisobjekt ist KEIN Objekt im Sinne der Objektorientierung!

    Also das hat super geklappt. Nun legt mir das Programm schon einmal einen Kunden an, mit den Daten die ich im Formular dann eingebe und speicher. Tja, leider kann er noch nicht mehr Kunden anlegen, was wohl mit der Funktion "NUMBER_GET_NEXT" zusammen hängt.... ich denke, dort fehlt mir nun wohl noch ein zusatz. ich werd mir jetzt erstmal die funktion genauer anschauen.

    Vielleicht habt ihr ja noch bzw. schon eine Idee, woran es liegen könnte, dass bisher erst ein kunde angelegt bzw. in der datenbank gespeichert werden kann!?

  9. OK, auch dieses Problem konnte ich lösen. Die Zeile muss so aussehen:

    
    
    object = ZKUNDEN-KUNDEN_NR
    
    
    

    Das ganze lässt sich nun ohne Fehler kompilieren. Allerdings kommt nun immer ein Fehler, wenn ich das Kundenformular ausfülle und auf bestätigen drücke:

    "CALL_FUNCTION_CONFLICT_TYPE

    The call to the function module "NUMBER_GET_NEXT" is incorrect:

    The function module interface allows you to specify only field of a particular type under OBJECT. The field "ZKUNDEN-KUNDEN_NR" specified hier has a different field type."

    Ich hoffe, dass jemand von Euch weiß, wie ich hier jetzt weiterkomme, denn ich glaube, dass ich ziemlich nah an meinem ZIel bin.

    Also, auf viele nützliche Antworten. ;)

    Ciaoi

    Buerger

  10. Okidoki,

    ich habe das es hinbekommen, die Nummern einzurichten. Nun versuche ich Sie in meinen Code zu integrieren, was bisher so aussieht.

    
    
    CALL FUNCTION 'NUMBER_GET_NEXT'
    
        EXPORTING
    
            nr_range_nr = '01'
    
            object = KUNDEN_NR (dies ist mein primärschlüsselfeld in der Tabelle)
    
       IMPORTING
    
            number = pkdnr.
    
    
    
    Nun wirft das Programm mir folgenden Fehler: --------- Field "KUNDEN_NR" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement --------- Was bedeutet dieser Fehler?? Oder was mache ich falsch, wenn ich
    
    object = KUNDEN_NR (dies ist mein primärschlüsselfeld in der Tabelle)
    
    

    aufrufe??

    Muss ich eventuell was an meiner Domain (ZKUNDEN_NR) bzw. an meinem Feld KUNDEN_NR in der Tabelle ZKUNDEN ändern??

    Ciaoi

    Buerger

  11. Was du suchst nennt sich unter SAP ein Nummernkreisobjekt.

    Das kannst du mit der Transaktion SNRO anlegen. Es gibt auch einen Funktionsbaustein dafür (ich glaube GET_NUMBER oder so ähnlich).

    Nummernkreise sind die gängige Praxis, fortlaufende Belegnummern / Kundennummern / weis der Teufel was zu generieren.

    Gruß,

    Major.

    Vielen Dank. Das hat schonmal super geklappt (fast).

    Ich habe die Transaktion SNRO aufgerufen. Dort gebe ich dann als nächstes einen Namen für mein Objekt ein ("ZANUMMERN"). Danach klicke ich auf das weiße Blatt "CREATE", gebe einen Short- und LongText ein. Desweiteren gebe ich als:

    Subobject data element: ZARTIKEL_NR

    Number length domain: NUM8

    Warning % 10

    Main memory buffering: on

    No. of numbers in buffer 10

    Group table: ZARTIKEL (eine meiner Tabellen)

    Subobject field in group table: LEER

    Fld No Range Element: ARTIKEL_NR (der Primärschlüssel der Tabelle ZARTIKEL)

    Field int./ex. no. range no.: BEZEICHNUNG / ARTIKEL_TYP

    ein und speicher erstmal über die Diskette, was gut klappt.

    Klicke ich nun auf die Diskette zum speichern, so wird hierbei ein Fehler angezeigt:

    "DOMAIN ZARTIKEL_NR of data elment ZARTIKEL_NR does not have value table"

    Wisst ihr warum dieser Fehler auftaucht?? Hab ich irgendwas bei der Pflege des Datentypen bzw. der Domain vergessen??

    Ich würde mich sehr freuen, wenn mir dort wieder jemand weiter helfen kann.

    Cu

    Buerger

  12. Guten Tag!!

    Ich sitze gerade an einem Abap-Projekt für die Schule. Dort habe

    ich nun ein Formular programmiert, in den die ein Kunde

    seine Dateneingeben kann und diese dann in die Datenbank (ZKUNDEN)

    übertragen werden.

    
    
        REPORT ZTEST3.
    
    
        INCLUDE <icon>
    
        MOVE ´Neues Kundenkonto erstellen´ TO sy-title.
    
        TABLES: ZKUNDEN.
    
    
        PARAMETERS:    pkdnr LIKE ZKUNDEN-KUNDEN_NR,
    
              pvor LIKE ZKUNDEN-VORNAME,
    
              pnach LIKE ZKUNDEN-NACHNAME,
    
              pstrasse LIKE ZKUNDEN-STRASSE,
    
              pplz LIKE ZKUNDEN-PLZ,
    
              port LIKE ZKUNDEN-ORT,
    
              pemail LIKE ZKUNDEN-EMAIL,
    
              ptelefon LIKE ZKUNDEN-TELEFONNUMMER,
    
              pmobil LIKE ZKUNDEN-MOBIL.
    
    
        DATA:  wakunden LIKE ZKUNDEN.
    
    
        START-OF-SELECTION.
    
        wakunden-KUNDEN_NR = pkdnr.
    
        wakunden-VORNAME = pvor.
    
        wakunden-NACHNAME  = pnach.
    
        wakunden-STRASSE = pstrasse.
    
        wakunden-PLZ = pplz.
    
        wakunden-ORT = port.
    
        wakunden-EMAIL = pemail.
    
        wakunden-TELEFONNUMMER = ptelefon.
    
        wakunden-MOBIL = pmobil.
    
        INSERT INTO ZKUNDEN VALUES wakunden.
    
    
        WRITE: ´Ihre neue Kundennummer ist die: ´, wakunden-KUNDEN_NR.
    
    

    wenn ich nun gewissen Daten in das Eingabeformular eingebe und bestätige, wird auch ein Datensatz in der

    Tabelle "ZKUNDEN" erstellt. Allerdings muss ich dann die Kundenummer immer selbst eingeben.

    Ein Kunde kennt aber bei Anlegen eines neuen Kundenkontos ja seine Kundennummer noch gar nicht. Wie kann ich denn zum Beispiel von irgendwo Kundenummern zuweisen, die ich selbst vorher erstelle.

    Muss ich dafür eine interne Tabelle anlegen, und wenn ja, wie erstelle ich diese in diesem Fall genau?? bzw., wie kann ich es schaffen, dass ich einem Kunden, der ein neues Kundenkonto über das Formular erstellt, eine Nummer oder einen anderen Eintrag, zuweise??

    Ich hoffe, hier ist jemand, der das Problem versetht und mir weiter helfen kann.

    Ciaoi

    Buerger

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...