Export der ALV-Anzeige in Excel

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Export der ALV-Anzeige in Excel

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Hallo zusammen,

ich habe mir eine Ausgabe gebastelt, welche mir den aktuellen WIP ermittelt und die Abwertung anzeigt.
Habe dies mit Hilfe von Internen Tabellen / Feldern / und benutzerdefinierten Felder gelöst.

Wenn ich nun die Ausgabe nach Excel exportieren will kommt, folgender Fehler!

OBJECTS_NOT_CHARLIKE

Kann mir jemand sagen, was ich genau tun muss, um diesen Fehler weg zu bekommen, und damit ich mir meine Liste nach Excel exportieren kann im Bedarfsfall?

Die entsprechenden Felder in denen ich die Abwertung berechne habe den Typetyp "p" damit eine geeignete Formatierung möglich ist!

Hier den Code:

Code: Alles auswählen.


TYPES: BEGIN OF type_wip5,
       aufnr TYPE afko-aufnr,
       dauat TYPE afpo-dauat,
       stlbez TYPE afko-stlbez,
       dmbtr type bsis-dmbtr,
       stprs TYPE mbew-stprs,
       peinh TYPE mbew-peinh,
       gamng TYPE afko-gamng,
       gasmg TYPE afko-gasmg,
       ftrmi TYPE afko-ftrmi,
       gstri TYPE afko-gstri,
       menge TYPE aufm-menge,
       nettom(15) type p,
       restsollm(15) type p decimals 2,
       berechnung type p decimals 2,
       wipafter type p decimals 2,
       wiploss type p decimals 2,
       deduction type p decimals 2,
       END OF type_wip5.


DATA: a TYPE p,
        b TYPE p,
        c TYPE p length 3.

  a = 1.
  b = 1.
  c = 100.


  LOOP AT i_wip4 INTO wa_wip4.


    wa_wip5-berechnung = ( wa_wip4-restsollm * wa_wip4-stprs ) / wa_wip4-peinh.

    IF wa_wip5-berechnung = 0.
      wa_wip5-wipafter = wa_wip5-berechnung.
    ENDIF.

    IF wa_wip4-dmbtr > wa_wip5-berechnung.
      wa_wip5-wipafter = wa_wip5-berechnung.
    ELSE.
      wa_wip5-wipafter = wa_wip4-dmbtr.
    ENDIF.

    wa_wip5-wiploss = wa_wip5-wipafter * ( a - ( b / c ) ).

    wa_wip5-deduction = wa_wip4-dmbtr - wa_wip5-wiploss.



    MOVE wa_wip4-aufnr TO wa_wip5-aufnr.
    MOVE wa_wip4-stlbez TO wa_wip5-stlbez.
    MOVE wa_wip4-dauat TO wa_wip5-dauat.
    MOVE wa_wip4-dmbtr TO wa_wip5-dmbtr.
    MOVE wa_wip4-stprs TO wa_wip5-stprs.
    MOVE wa_wip4-peinh TO wa_wip5-peinh.
    MOVE wa_wip4-gamng TO wa_wip5-gamng.
    MOVE wa_wip4-gasmg TO wa_wip5-gasmg.
    MOVE wa_wip4-ftrmi TO wa_wip5-ftrmi.
    MOVE wa_wip4-gstri TO wa_wip5-gstri.
    MOVE wa_wip4-menge TO wa_wip5-menge.
    MOVE wa_wip4-nettom TO wa_wip5-nettom.
    MOVE wa_wip4-restsollm TO wa_wip5-restsollm.
    MOVE wa_wip5-berechnung TO wa_wip5-berechnung.
    MOVE wa_wip5-wiploss TO wa_wip5-wiploss.
    MOVE wa_wip5-deduction TO wa_wip5-deduction.

    APPEND wa_wip5 TO i_wip5.


  ENDLOOP.
Für Tipps bin ich sehr dankbar!

Gruß

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


Re: Export der ALV-Anzeige in Excel

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hallo SAP-Thomas,

könnte am Aufbau des ALV bzw. des Feldkatalogs liegen, z.B. das ein falsches Referenzfeld angegeben ist.
Schreib doch mal bitte, wie du das alles aufbaust.

Re: Export der ALV-Anzeige in Excel

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
Hi!

schreib bitte auch gleich dazu WIE du die Daten nach Excel exportierst. Es gibt aus dem ALV mehrere Wege dies zu tun
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Export der ALV-Anzeige in Excel

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Hallo

ich baue meine ALV-GRID Ausgabe folgendermaßen auf!

Habe einen TOP-Include hier definiere ich mir den ALV GRID!

Code: Alles auswählen.


* ALV GRID

TYPE-POOLS: slis.
DATA:   g_repid   LIKE   sy-repid.
DATA:  itab_feldkatalog   TYPE   slis_t_fieldcat_alv,
      wa_feldkatalog     TYPE   LINE OF slis_t_fieldcat_alv,
      gs_layout    TYPE   slis_layout_alv.


Und in meinem Programm rufe ich es folgendermaßen auf!

Code: Alles auswählen.


FORM alv_anzeigen.

  g_repid = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = g_repid
      i_grid_title       = 'WIP_Bearbeitung'
      i_save             = 'A'
      it_fieldcat        = itab_feldkatalog
      is_layout          = gs_layout
    TABLES
      t_outtab           = i_wip5.
  IF sy-subrc <> 0.
    "  Hier koennen Sie auf Fehler beim ALV-Aufruf reagieren"
  ENDIF.
ENDFORM.  "alv_anzeigen.

Feldkatalog sieht folgendermaßen aus!

Code: Alles auswählen.


CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'AUFNR'.
  wa_feldkatalog-ref_fieldname  = 'AUFNR'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Auftrag'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'DAUAT'.
  wa_feldkatalog-ref_fieldname  = 'DAUAT'.
  wa_feldkatalog-ref_tabname  = 'AFPO'.
  wa_feldkatalog-seltext_l  = 'Auftragsart'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'STLBEZ'.
  wa_feldkatalog-ref_fieldname  = 'STLBEZ'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Material'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'DMBTR'.
  wa_feldkatalog-ref_fieldname  = 'DMBTR'.
  wa_feldkatalog-ref_tabname  = 'BSIS'.
  wa_feldkatalog-seltext_l  = 'WIP'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'STPRS'.
  wa_feldkatalog-ref_fieldname  = 'STPRS'.
  wa_feldkatalog-ref_tabname  = 'MBEW'.
  wa_feldkatalog-seltext_l  = 'Standardpreis'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'PEINH'.
  wa_feldkatalog-ref_fieldname  = 'PEINH'.
  wa_feldkatalog-ref_tabname  = 'MBEW'.
  wa_feldkatalog-seltext_l  = 'Preiseinheit'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'GAMNG'.
  wa_feldkatalog-ref_fieldname  = 'GAMNG'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Auftragsmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'GASMG'.
  wa_feldkatalog-ref_fieldname  = 'GASMG'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Ausschuss'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'NETTOM'.
  wa_feldkatalog-ref_fieldname  = 'NETTOM'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Nettosollmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'MENGE'.
  wa_feldkatalog-ref_fieldname  = 'MENGE'.
  wa_feldkatalog-ref_tabname  = 'AUFM'.
  wa_feldkatalog-seltext_l  = 'Menge'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'RESTSOLLM'.
  wa_feldkatalog-ref_fieldname  = 'RESTSOLLM'.
  wa_feldkatalog-ref_tabname  = 'I_WIP5'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Restsollmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'BERECHNUNG'.
  wa_feldkatalog-ref_fieldname  = 'BERECHNUNG'.
  wa_feldkatalog-ref_tabname  = 'I_WIP5'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Berechnung'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'WIPAFTER'.
  wa_feldkatalog-ref_fieldname  = 'WIPAFTER'.
  wa_feldkatalog-ref_tabname  = 'I_WIP5'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'WIP After Price'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'WIPLOSS'.
  wa_feldkatalog-ref_fieldname  = 'WIPLOSS'.
  wa_feldkatalog-ref_tabname  = 'I_WIP5'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'WIP LOSS-FREE'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'DEDUCTION'.
  wa_feldkatalog-ref_fieldname  = 'DEDUCTION'.
  wa_feldkatalog-ref_tabname  = 'I_WIP5'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-decimals_out = '2'.
  wa_feldkatalog-seltext_l  = 'Deduction'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'FTRMI'.
  wa_feldkatalog-ref_fieldname  = 'FTRMI'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Datum von'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

  CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'GSTRI'.
  wa_feldkatalog-ref_fieldname  = 'GSTRI'.
  wa_feldkatalog-ref_tabname  = 'AFKO'.
  wa_feldkatalog-seltext_l  = 'Datum bis'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

Die Ausgabe soll über folgende Funktionalität funktionieren!

Liste --> Exportieren --> Lokale Datei.

Hier noch die Definiton meiner Internen Tabelle welche ich ausgeben möchte!

Code: Alles auswählen.


TYPES: BEGIN OF type_wip5,
       aufnr TYPE afko-aufnr,
       dauat TYPE afpo-dauat,
       stlbez TYPE afko-stlbez,
       dmbtr type bsis-dmbtr,
       stprs TYPE mbew-stprs,
       peinh TYPE mbew-peinh,
       gamng TYPE afko-gamng,
       gasmg TYPE afko-gasmg,
       ftrmi TYPE afko-ftrmi,
       gstri TYPE afko-gstri,
       menge TYPE aufm-menge,
       nettom like afko-gamng,
       restsollm like afko-gamng,
       berechnung type p decimals 2,
       wipafter type p decimals 2,
       wiploss type p decimals 2,
       deduction type p decimals 2,
       END OF type_wip5.

Hoffe ich konnte alles verständlich machen!

Vielen Dank schon im voraus!

Gruß

Re: Export der ALV-Anzeige in Excel

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Die Hilfe zum REUSE_ALV_GRID_DISPLAY sagt folgendes:
ref_tabname (Feldname Referenztabelle/-struktur)

Wertebereich: SPACE, Name einer Struktur oder Tabelle aus dem Data Dictionary
Struktur- oder Tabellenname des referierten Feldes aus dem Data Dictionary.
Dieser Parameter ist nur zu füllen, wenn das durch den aktuellen Eintrag im Feldkatalog beschriebene Feld der internen Ausgabetabelle einen Bezug zum Data Dictionary hat (kein Programmfeld).
Somit scheint die Angabe deiner Felder aus internen Tabellen nicht erlaubt und führt zu Fehlern.
Versuche mal, ein beliebiges P-Feld mit 2 Nachkommastellen aus dem DDIC anzugeben, z.B. Tab BSIS Feld DMBTR oer lass es einfach mal ganz weg und schau mal, was der ALV dann macht.


Alternativ schau Dir den FuBa REUSE_ALV_FIELDCATALOG_MERGE an, der sollte auch mit internen Tabellen umgehen können.

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
SAP-Thomas


Re: Export der ALV-Anzeige in Excel

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Ja es scheint als ob es wirklich an dem Baustein REUSE_ALV_GRID_DISPLAY liegt, wenn ich die Felder weg machen dann funktioniert alles.
Erst wenn die benutzerdefinierten Felder ins spiel kommen, funktioniert das nicht mehr so!

Kann auch abhilfe über den Baustein REUSE-ALV_GRID_DISPLAY_LVC geschaffen werden?

Welche Änderungen müsste ich hier vornehmen?

Danke!

Re: Export der ALV-Anzeige in Excel

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Kleiner Tipp:
Probier mal CL_SALV_TABLE aus. Da musst du dich nicht mit dem Feldkatalog herumschlagen. Der wird nämlich aus den Informationen der internen Tabelle zur Laufzeit aufgebaut.

Code: Alles auswählen.

cl_salv_table=>factory( 
  IMPORTING r_salv_table = lr_table
  CHANGING  t_table = lt_itab ).
lr_table->display( ).
Das reicht z.B. um eine Tabelle auszugeben.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
SAP-Thomas

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Export der ALV-Anzeige in Excel

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Es sollte eigentlich schon gehen, wenn du einfach deine eigenen Felder wie folgt angibst:

Code: Alles auswählen.

 CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'RESTSOLLM'.
  wa_feldkatalog-ref_fieldname  = 'DMBTR'.
  wa_feldkatalog-ref_tabname  = 'BSIS'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Restsollmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog
Dann hast du natürlich falsche Texte, aber gehen sollte es erstmal.

Allerdings ist der von ADT vorgschlagene Weg wohl der bessere für dich. Das SALV nimmt Dir viel Arbeit ab und ist genauso einfach zu "bedienen" wie die REUSE-Bausteine, wenn man das Prinzip einmal verstanden hat.

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
SAP-Thomas


Re: Export der ALV-Anzeige in Excel

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
casman hat geschrieben:Allerdings ist der von ADT vorgschlagene Weg wohl der bessere für dich. Das SALV nimmt Dir viel Arbeit ab und ist genauso einfach zu "bedienen" wie die REUSE-Bausteine, wenn man das Prinzip einmal verstanden hat.
Den SALV finde ich richtig gut- aber leider ist der Weg den der SALV beschreitet schon im Ansatz völlig verschieden von demjenigen der REUSE-Bausteine oder der cl_gui_alv_grid Klasse. Außerdem hat der SALV ein paar unschöne Unzulänglichkeiten, die man zwar i.A. mit ein wenig Trickserei umschiffen kann, die aber leider im Klassenkonzept einfach fehlen. ( z.B. kein D&D möglich, keine Free-Methode )

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
SAP-Thomas

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Export der ALV-Anzeige in Excel

Beitrag von SAP-Thomas (ForumUser / 15 / 10 / 0 ) »
Hallo zusammen,

vielen Dank für eure Antworten und Tipps!

Habe den Tipp von CASMAN mal befolgt und den Feldkatalog so definiert wie vorgegeben.

Code: Alles auswählen.


CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'RESTSOLLM'.
  wa_feldkatalog-ref_fieldname  = 'DMBTR'.
  wa_feldkatalog-ref_tabname  = 'BSIS'.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Restsollmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog

Wie erwartet funktionierte es so, nur leider wie auch schon berichtet, kommen hier bei die falschen Spaltenüberschriften!

Habe nun den Feldkatalog noch einmal ein wenig abgeändert!

Code: Alles auswählen.


CLEAR wa_feldkatalog.
  wa_feldkatalog-fieldname  = 'RESTSOLLM'.
  wa_feldkatalog-ref_fieldname  = 'MENGE'.
  wa_feldkatalog-ref_tabname  = ''.
  wa_feldkatalog-just = 'R'.
  wa_feldkatalog-seltext_l  = 'Restsollmenge'.
  APPEND wa_feldkatalog TO itab_feldkatalog.

Habe einfach bei wa_feldkatalog-ref_tabname nichts definiert, und siehe da, alle Spalten werden richtig angezeigt, und können auch exportiert werden!

Vielen Dank!

Gruß SAP-Thomas

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3958
Views
EXCEL Export aus SAP mit Excel 2003 / 2007
von hfahrian » 03.02.2014 11:34 • Verfasst in ABAP Objects®
2
Antw.
1906
Views
XML Export an Excel?
von f0x » 26.03.2007 07:49 • Verfasst in SAP - Allgemeines
1
Antw.
2500
Views
Export SAP -> Excel
von Deters » 27.04.2011 15:40 • Verfasst in ABAP® Core
0
Antw.
1591
Views
Export nach Excel
von reini69 » 08.08.2006 14:41 • Verfasst in ABAP Objects®
4
Antw.
1821
Views
Excel-Export im Batchbetrieb
von grossmic » 11.12.2008 10:16 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 15 Stunden von Bright4.5 1 / 317
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1958
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8559