Die Liste als Datei runterladen und Excel weiter zubearbeitn


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Die Liste als Datei runterladen und Excel weiter zubearbeitn

Beitragvon philip » 13.01.2017, 09:31

Ich möchte mein Liste speichern und danach mit Excel weiter verarbeiten.
Da ich erst seit 3 Wochen mit Sap zu tun habe und ich nicht einmal weis wo der Code eingetragen werden muss, schicke ich den Ganzen Code.
Ich hoffe ich könnt mir helfen und ausfunkt geben.
Vielen Dank.


Code: Alles auswählen
REPORT zgaragino_kunden_oeffnungszeit LINE-COUNT 200(8) LINE-SIZE 241.
*Variablen festlegen
TABLES: kna1,
        zpapp_opentimes.
*interne Tabellen erstellen mit den werten von..
* gt_ = Globale Programminterne Tabelle
* wa_
DATA  : gt_kna1            TYPE TABLE OF kna1,
        gt_zpapp_opentimes TYPE TABLE OF zpapp_opentimes,
        wa_zpapp_opentimes TYPE zpapp_opentimes.

*interne tabelle erstellt mit werden von
FIELD-SYMBOLS:
  <fs_kna1>            TYPE kna1,
  <fs_zpapp_opentimes> TYPE zpapp_opentimes.

SELECT-OPTIONS s_kunnr FOR kna1-kunnr.
PARAMETERS p_datei AS CHECKBOX.

*--------------------------------------------------------------------------------------
* Main Programm
*--------------------------------------------------------------------------------------
START-OF-SELECTION.
*cleant gt_kna1 zum sicherstellen das wirklich nichts drin ist.
  CLEAR gt_kna1.
  CLEAR gt_zpapp_opentimes.
*    wähle alles von der Tabelle kna1 in die Tabelle gt_kna1 mit er selectionsoption kundennummer von-bis
  SELECT * FROM kna1 INTO TABLE gt_kna1 WHERE kunnr IN s_kunnr
  AND zzgaragino_active ='X'.


*wähle alles von der Tabelle zpapp_opentimes in die Tabelle gt_zpapp_opentimes
*wo die kundennummer ist gefragt in gt_kna1-kunnr.
  SELECT * FROM zpapp_opentimes INTO TABLE gt_zpapp_opentimes
     FOR ALL ENTRIES IN gt_kna1
   WHERE kunnr = gt_kna1-kunnr.



*loope zu gt_kna1 weise die Werte in die Tabelle fs_kna1.
  LOOP AT gt_kna1 ASSIGNING <fs_kna1>.
*schreibe die Kundenummer und der Name mit der postiotion (x) getrennt mit einer vertikaler Linie
    WRITE:/ sy-vline, (10) <fs_kna1>-kunnr,
            sy-vline, (42) <fs_kna1>-name1,

*  falls es keine Werte hatt soll es die durch ein Leerzeichen ersetzten
            sy-vline NO-GAP.
*führe aus print_wochentag benutze von der Tabelle fs_kna1 wo die Kundennummer gefragt sind die Werte mit dem Atribut x auf (de) oder (en)
*mache einen loop für die anderen gefragten kundennummer bis fertig

    PERFORM print_wochentag USING <fs_kna1>-kunnr 'mo' 'mo'  60.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'tu' 'di'  86.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'we' 'mi' 112.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'th' 'do' 138.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'fr' 'fr' 164.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'sa' 'sa' 190.
    PERFORM print_wochentag USING <fs_kna1>-kunnr 'su' 'so' 216.

*mache nach jeder recource einen Strich bis Sonntag
    ULINE.
  ENDLOOP.

  IF p_datei = 'X'.
    " Datei exportieren
  ENDIF.
*--------------------------------------------------------------------------------------
* REPORT TOP (Header oder Überschriften)
*--------------------------------------------------------------------------------------
TOP-OF-PAGE.
  PERFORM top_of_page.

*&amp;---------------------------------------------------------------------*
*&amp;      Form  PRINT_WOCHENTAG
*&amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_<FS_KNA1>_KUNNR  text
*      -->P_0094   text
*      -->P_60     text
*----------------------------------------------------------------------*
*zeigt mit welchen Daten wir arbeiten werden
FORM print_wochentag  USING    p_kunnr
                               VALUE(p_wt_en)
                               VALUE(p_wt_de)
                               VALUE(p_pos).

* Locale Veriablen
  DATA  : lw_zpapp_opentimes TYPE zpapp_opentimes.
  DATA: lv_maks TYPE string.
  DATA: p TYPE i.
  DATA: gt_kna1.

* lese interne Tabelle gt_zpapp_opentimes (Achtung en und de) in lw_zpapp_opentimes mit der selections option kundennummer
  READ TABLE gt_zpapp_opentimes
       INTO lw_zpapp_opentimes
       WITH KEY kunnr = p_kunnr
                wochentag = p_wt_en.
*  wenn es einen Wert ausgibt dann...
  IF sy-subrc <> 0.
*     lese interne Tabelle gt_zpapp_opentimes (Achtung en und de) in lw_zpapp_opentimes mit der selections option kundennummer
    READ TABLE gt_zpapp_opentimes
     INTO lw_zpapp_opentimes
     WITH KEY kunnr = p_kunnr
              wochentag = p_wt_de.
  ENDIF.

  IF sy-subrc = 0. "Gefunden
    IF lw_zpapp_opentimes-durchgehend = 'X'.
      PERFORM show_durchgehend  USING p_pos lw_zpapp_opentimes.
    ELSEIF lw_zpapp_opentimes-geschlossen = 'X'.
      PERFORM show_geschlossen  USING p_pos .
    ELSE.
      PERFORM show_normal  USING p_pos lw_zpapp_opentimes.
    ENDIF.
  ELSE.   "Nicht gefunden
    PERFORM show_leer  USING p_pos.
  ENDIF.

ENDFORM.
FORM show_leer USING p_pos.
  DATA: p TYPE i.
  " geschlossen ausgeben
  p = p_pos.
  p = p + 6.
  WRITE: AT p(15)'(keine Angaben)'.
  p = p + 19.
  WRITE: AT p(1) sy-vline.

ENDFORM.
FORM show_geschlossen  USING p_pos.
  DATA: p TYPE i.
  " geschlossen ausgeben
  p = p_pos.
  p = p + 6.
  WRITE: AT p(13)'(Geschlossen)'.
  p = p + 19.
  WRITE: AT p(1) sy-vline.
ENDFORM.
FORM show_durchgehend  USING p_pos lw_zpapp_opentimes TYPE zpapp_opentimes.
  DATA: p TYPE i.
  " durchgehend ausgeben
  p = p_pos.
  WRITE: AT p(5) lw_zpapp_opentimes-morgen_von USING EDIT MASK '__:__'.
  p = p + 6.

  WRITE: 'durgehend bis'.
  p = p + 14.
  WRITE: AT p(5) lw_zpapp_opentimes-mittag_bis USING EDIT MASK '__:__'.
  p = p_pos + 25.
  WRITE: AT p(1) sy-vline.
ENDFORM.
FORM show_normal  USING p_pos lw_zpapp_opentimes TYPE zpapp_opentimes.
  " normal ausgeben...
*es soll nur lesend auf sie zugewiesen werden.
*  schreibe in position (x) die Daten morgen_von - Mittag_bis mit der oben vorgegebenen maske
  DATA: p TYPE i.

  p = p_pos.
  IF lw_zpapp_opentimes-morgen_von = '000000'.
    PERFORM show_geschlossen  USING p_pos.
  ELSE.
    WRITE: AT p(5) lw_zpapp_opentimes-morgen_von USING EDIT MASK '__:__'.
    p = p + 5.
    WRITE: AT p(1) '-'.
    p = p + 1.
    WRITE: AT p(5) lw_zpapp_opentimes-morgen_bis USING EDIT MASK '__:__'.
    p = p + 5.
    WRITE: AT p(2) ', '.
    p = p + 2.
    WRITE: AT p(5) lw_zpapp_opentimes-mittag_von USING EDIT MASK '__:__'.
    p = p + 5.
    WRITE: AT p(1) '-'.
    p = p + 1.
    WRITE: AT p(5) lw_zpapp_opentimes-mittag_bis USING EDIT MASK '__:__'.
    p = p_pos + 25.
    WRITE: AT p(1) sy-vline.
  ENDIF.
ENDFORM.
FORM top_of_page.
  ULINE.

* Zeile 1
  WRITE: /
         sy-vline, (10) 'K.Nummer  ',
         sy-vline, (42) 'Name',
         sy-vline, (23) 'Montag',
         sy-vline, (23) 'Dienstag',
         sy-vline, (23) 'Mittwoch',
         sy-vline, (23) 'Donnerstag',
         sy-vline, (23) 'Freitag',
         sy-vline, (23) 'Samstag',
         sy-vline, (23) 'Sonntag',
         sy-vline NO-GAP.

  ULINE.

ENDFORM.
 
Zuletzt geändert von philip am 13.01.2017, 11:37, insgesamt 1-mal geändert.
philip
ForumUser
 
Beiträge: 3
Registriert: 13.01.2017, 09:12
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Die Liste als Datei runterladen und Excel weiter zubearb

Beitragvon JHM » 13.01.2017, 10:26

philip hat geschrieben:Ich hoffe ich könnt mir helfen und ausfunkt geben.


In der Listanzeige Menu -> System -> Liste -> Sichern -> lokale Datei -> im PopUp das gewünschte Format auswählen und fertig.

Wenn du das automatisiert haben möchtest, muss du deine Anforderung genau definieren.
Was genau möchtest du haben: TXT;CSV;EXCEL;Mail mit Attachment oder gar ExcelInplace?
Wann möchtest du es haben: Online oder auch per Batch?
Muss die Write-Liste erhalten bleiben oder wäre auch eine modernere Ausgabetechnik ala ALV denkbar?
Gruß Hendrik
JHM
Top Expert
 
Beiträge: 1119
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 175 mal

Re: Die Liste als Datei runterladen und Excel weiter zubearb

Beitragvon philip » 13.01.2017, 11:35

Das Kriterium lautet :
Es soll die Möglichkeit geschaffen werden, die Liste als Datei herunterzuladen und in Excel weiter zu bearbeiten.
Also in der Selections-optionen soll eine Neue Liste sein mit abfrage "Soll die Datei als csv. im Desktop gespeichert werden ?" was ich bereits gemacht habe (neu)
Jetzt muss ich irgendwo ein Kasten einbauen wo steht..
If (dort) ein 'X' dann speichere unter desktop...
und ich weis leider nicht wie man das schreibt und das ist meine eigentliche frage.

Das Programm oben wurde aktualisiert.

Lg
philip
ForumUser
 
Beiträge: 3
Registriert: 13.01.2017, 09:12
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Die Liste als Datei runterladen und Excel weiter zubearb

Beitragvon philip » 13.01.2017, 11:36

.
philip
ForumUser
 
Beiträge: 3
Registriert: 13.01.2017, 09:12
Dank erhalten: 0 mal
Ich bin: Student/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Typendeklaration von tiefen Strukturen
vor 2 Stunden von ewx 3 Antw.
BOPF Action auslösen
vor 4 Stunden von unknown 0 Antw.
Konditionen via Report ausgeben
vor 6 Stunden von BubbleSort 0 Antw.
gelöst FuBa material_maintain_dark_retail
vor 3 Stunden von erubadhron 2 Antw.
Tabelle in interne Tabelle kopieren und Felder kennzeichnen
vor 4 Stunden von lausek 7 Antw.

  Ähnliche Beiträge beta
Liste von ALV nach Excel exportieren
12.10.2005, 09:49 von GastX 7 Antw.
Export einer ALV Liste nach EXCEL
29.06.2007, 12:09 von JHM 6 Antw.
Excel Datei einlesen
11.12.2006, 14:00 von TakerOne 1 Antw.
Excel Datei öffnen
29.07.2009, 14:21 von AndreB 2 Antw.
Export einer ALV OO Liste nach EXCEL - Probleme mit ICONS
18.10.2006, 11:40 von jondahl11 3 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!