Die Liste als Datei runterladen und Excel weiter zubearbeitn

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Die Liste als Datei runterladen und Excel weiter zubearbeitn

Beitrag von philip (ForumUser / 3 / 0 / 0 ) »
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.

*&---------------------------------------------------------------------*
*&      Form  PRINT_WOCHENTAG
*&---------------------------------------------------------------------*
*       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.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Die Liste als Datei runterladen und Excel weiter zubearb

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
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

Re: Die Liste als Datei runterladen und Excel weiter zubearb

Beitrag von philip (ForumUser / 3 / 0 / 0 ) »
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


Seite 1 von 1

Vergleichbare Themen

7
Antw.
8906
Views
Liste von ALV nach Excel exportieren
von ABAP - Programmierer » 05.08.2005 11:29 • Verfasst in ABAP® für Anfänger
4
Antw.
16063
Views
Mit ABAP eine Excel-Liste erstellen
von KaOestreich » 07.01.2009 15:09 • Verfasst in Tips + Tricks & FAQs
6
Antw.
3267
Views
Export einer ALV Liste nach EXCEL
von dEr_BuMaN » 29.06.2007 09:25 • Verfasst in ABAP® für Anfänger
2
Antw.
1201
Views
SAP PI runterladen?
von Chrisu » 30.09.2004 09:15 • Verfasst in SAP - Allgemeines
3
Antw.
4292
Views
Export einer ALV OO Liste nach EXCEL - Probleme mit ICONS
von jondahl11 » 22.09.2006 09:28 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140