ALV exportiert Dezimaltrenner falsch nach Excel

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

ALV exportiert Dezimaltrenner falsch nach Excel

Beitrag von DeathAndPain (Top Expert / 1850 / 233 / 402 ) »
Hallo zusammen,

bei meinem FI-Abenteuer bin ich auf ein Problem gestoßen. Wenn man im SAPGui die Menüfunktion Liste --> Exportieren --> Tabellenkalkulation benutzt, dann kommen bei Beträgen Punkte anstelle von Kommata raus. Es liegt auch nicht an Benutzer- oder Systemeinstellungen. Zum einen habe ich die geprüft, und zum anderen versichert mir der Fachbereich, dass es bei anderen ALVs einwandfrei funktioniert (was aus meiner Sicht auch falsch eingestellte Excel-Optionen ausschließt). Es muss also irgendwas mit meiner Programmierung zu tun haben.
  • Außer einem Icon-Feld beziehen sich alle Felder der internen Tabelle, die dem ALV zugrunde liegt, auf Felder der Datenbanktabellen BKPF oder BSEG. Einen falschen Datentyp meiner Betragsfelder (namentlich: BSEG-DMBTR) möchte ich damit ausschließen.
  • Das ALV wird mit der Methode cl_salv_table=>factory erzeugt. Damit kann ich auch keinen Fehler beim Layout gemacht haben, denn das wird ja automatisch aus den Tabellenfeldern erzeugt.
  • Wenn der Export über Excel Inplace (also das X-Icon in der Standard-Drucktastenleiste des ALV) erfolgt, dann kommen die Dezimaltrenner korrekt raus. Es ist wirklich nur bei der Menüfunktion Liste --> Exportieren --> Tabellenkalkulation.
Hier ist der konkrete Code:

Code: Alles auswählen.

    TRY.
      cl_salv_table=>factory( IMPORTING r_salv_table = salv_table_object
                              CHANGING t_table = unsorted_copy_of_belegzeilen ).

      CATCH cx_salv_msg INTO DATA(errormessage_object).
        MESSAGE errormessage_object->get_text( ) TYPE 'I' DISPLAY LIKE 'E'.
    ENDTRY.

    salv_table_object->set_screen_status( report        = sy-repid
                                          pfstatus      = SWITCH #( sy-sysid WHEN 'T01' THEN 'ERSTE_LISTE'
                                                                                        ELSE 'ERSTE_LISTE_NUR_UNAB' )
                                          set_functions = cl_salv_model_base=>c_functions_all ).

*   Zebra besteigen
    display_object = salv_table_object->get_display_settings( ).
    display_object->set_striped_pattern( cl_salv_display_settings=>true ).

*   Spaltenüberschriften verbessern
    columns_object = salv_table_object->get_columns( ).
    columns_object->set_optimize( abap_true ).
    TRY.
      column_object ?= columns_object->get_column( 'AMPEL_BEREITS_ABGEGRENZT' ).
      column_object->set_long_text( 'Beleg wurde bereits abgegrenzt' ).      "max. 40 Zeichen
      column_object->set_medium_text( 'bereits abgegrenzt' ).  "max. 20 Zeichen
      column_object->set_short_text( 'abgegrenzt' ).

      CATCH cx_salv_not_found  INTO DATA(salv_not_found_object).
        MESSAGE salv_not_found_object->get_text( ) TYPE 'I' DISPLAY LIKE 'E'.
    ENDTRY.

*   Layout (Layoutänderungen benutzerweise abspeicherbar)
    layout_object = salv_table_object->get_layout( ).
    layout_object->set_key( VALUE #( report = sy-repid handle = '0001' ) ).
    layout_object->set_save_restriction( cl_salv_layout=>restrict_user_dependant  ).

*   Events registrieren
    event_object = salv_table_object->get_event( ).
    CREATE OBJECT event_handler.
    SET HANDLER: event_handler->on_user_command FOR event_object,
                 event_handler->on_double_click FOR event_object.

    salv_table_object->display( ).
Ich weiß echt nicht mehr, was ich noch versuchen soll.

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


Re: ALV exportiert Dezimaltrenner falsch nach Excel

Beitrag von ST22 (Specialist / 278 / 41 / 40 ) »
Das hört sich doch eher nach einem EXCEL Problem an(?):
Kontrollier mal diese Einstellungen (Trennzeichen vom...), wenn du die EXCEL öffnest:
PicPick Image 20240911 002.png
Gruß
Frank

Re: ALV exportiert Dezimaltrenner falsch nach Excel

Beitrag von DeathAndPain (Top Expert / 1850 / 233 / 402 ) »
Wie ich schon sagte: Die Einstellungen habe ich überprüft, und bei einem anderen Z-Programm funktioniert es. Ich habe die Codes verglichen, kann aber keinen qualitativen Unterschied ausmachen. Der einzige Unterschied, den ich sehe, besteht darin, dass das andere Programm eine eigene Ausgabestruktur in der SE11 definiert hat und die als Datentyp für die ALV-Tabelle nutzt, während ich eine lokale Typdefinition im Programm nutze. Eigentlich dürfte das keinen Unterschied machen, denn die einzelnen Felder beziehen sich ja auch bei mir auf die BSEG?!

Re: ALV exportiert Dezimaltrenner falsch nach Excel

Beitrag von rob_abc (ForumUser / 70 / 16 / 29 ) »
Das liegt am Datentyp. NETWR funktioniert, DMBTR nicht.

Code: Alles auswählen.

REPORT.
TYPES: BEGIN OF ty_table,
         value1 TYPE dmbtr,
         value2 type netwr,
       END OF ty_table.
DATA l_table TYPE STANDARD TABLE OF ty_table.

l_table = VALUE #( ( value1 = '1232.12' value2 = '1232.12' ) ).

cl_salv_table=>factory(
  IMPORTING
    r_salv_table = DATA(l_salv)
  CHANGING
    t_table      = l_table ).
l_salv->get_functions( )->set_all( abap_true ).

l_salv->display( ).

Folgende Benutzer bedankten sich beim Autor rob_abc für den Beitrag:
DeathAndPain


Re: ALV exportiert Dezimaltrenner falsch nach Excel

Beitrag von DeathAndPain (Top Expert / 1850 / 233 / 402 ) »
Tausend Dank, das war die richtige Antwort! Ich habe die Domänen verglichen: Der Unterschied besteht offenbar darin, dass die Domänen der BSEG-Felder den Haken "mit Vorzeichen" nicht gesetzt haben. Bei solchen Feldern versaut SAP dann also den Dezimaltrenner beim Excel-Export. Das ist so bescheuert, dass man es der SAP als Bug melden könnte...

Seite 1 von 1

Vergleichbare Themen

8
Antw.
2746
Views
ALV liest Zeit aus Excel falsch
von Marc K. » 23.05.2012 09:58 • Verfasst in ABAP® für Anfänger
1
Antw.
1733
Views
select falsch?
von barbara » 07.07.2006 10:38 • Verfasst in ABAP® für Anfänger
2
Antw.
1922
Views
RCPDIRO1 falsch, was tun ?
von sapler » 12.10.2005 15:36 • Verfasst in Material Management & Produktionsplanung
11
Antw.
3489
Views
Ausgabe falsch
von PseudoReal » 10.06.2005 16:08 • Verfasst in ABAP® für Anfänger
5
Antw.
2554
Views
Was mache ich Hier falsch?
von BjoernB » 15.06.2009 09:54 • 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.