Report unicode fähig

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

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

Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
Hallo zusammen,
kurze Frage bezüglich eines reports der Nicht unicode fähig war und umgebaut wurde auf unicode fähig (der Code im Anhang ist jetzt unicode fähig).
Es geht darum, dass der Report eine Textdatei erstellt und mit einem excel makro in Spalten formatiert wird.
Kann ich irgendwie etwas hinzucoden im abap programm damit ich so ein excel formatierungsmakro nicht mehr brauche sondern gleich in SAP lasse und formatiert wird?


TYPES:
BEGIN OF ty_excel,
bukrs LIKE pbukrs,
budat LIKE pbudat,
kstar LIKE cosp-kstar,
name LIKE skat-txt50,
objnr LIKE cosp-objnr,
meinh LIKE cosp-meinh,
pramevm LIKE cosp-meg001, "PRA Vorm.
prawevm LIKE cosp-wkg001,
istmemon LIKE itab-pramevm, "Saldo + PRA Mon.
istwemon LIKE itab-prawevm,
istmiprame LIKE itab-pramevm, "Saldo o. PRA Mon.
istmiprawe LIKE itab-prawevm,
budmevm LIKE itab-pramevm,
budwevm LIKE itab-prawevm,
abwme LIKE itab-pramevm,
abwwe LIKE itab-prawevm, "Abw.zum Plan Wert
abgrme LIKE itab-pramevm, "Neue Abgrenzung (für Übern.
abgrwe LIKE itab-prawevm,
istmevm LIKE itab-pramevm, "Saldo + PRA Vorm.
istwevm LIKE itab-prawevm,
END OF ty_excel,

BEGIN OF ty_file,
data(2000),
END OF ty_file.


DATA:
it_excel TYPE TABLE OF ty_excel,
ls_excel TYPE ty_excel,
gt_file TYPE TABLE OF ty_file,
gs_file LIKE LINE OF gt_file,

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


Re: Report unicode fähig

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Im direkten Download kann man keine Formatierungsanweisungen mitgeben.
OLE2 oder ABAP2XSLX wären da meine erste Wahl.

http://wiki.scn.sap.com/wiki/display/ABAP/abap2xlsx
lg Jens
(Die überschrift passt nicht wirklich zur Frage :wink: )
Hier ein Beispiel:
Bild

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
newrider

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
Das Beispiel sieht schon mal sehr gut aus, so in etwa wäre eine super Lösung.
Weiß noch nicht genau wie ich meinen Report auf soetwas bringe gg.

lG.

Re: Report unicode fähig

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

schaue Dir das mal an

http://www.trickkiste.org/2015/07/mach- ... ins-excel/

Gruß
Wolfgang

Re: Report unicode fähig

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
...sooo.. bin soweit fertig: :wink:

Hier ein "Datenmäßg gefaktes" Beispiel eines alten Migrationsprojekts
(Manches holt ein doch immer wieder ein)
Welchen Weg möchtest Du gehen ? OLE2 oder APAPXLSX ?
Bild
http://derimechaniker.gate2app.com/bb/images/001.png
lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
newrider

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
oke schaut echt nice aus =)), mir sagt eher der weg über APAPXLSX zu.
Wäre nice wenn du/ihr mich dabei begleiten könntest =)

lG

Re: Report unicode fähig

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
...klar.

1. Voraussetzungen:
Installation der ABAP XLSX Klassen (als Saplink Projekt oder als WB Auftrag ABAP2XLSX_V_7_0)

2.)Ausgabestruktur für den Download:
a. Die Ausgabestruktur als DDIC Struktur mit SE11 anlegen (e.g.ZFI2EXCEL).

Code: Alles auswählen.

BUKRS	BUKRS
BUDAT	BUDAT
KSTAR	KSTAR
NAME	TXT50
OBJNR	J_OBJNR
MEINH	CO_MEINH
PRAMEVM	MEGXXX
PRAWEVM	WKGXXX
ISTMEMON	MEGXXX
ISTWEMON	WKGXXX
ISTMIPRAME	MEGXXX
ISTMIPRAWE	WKGXXX
BUDMEVM	MEGXXX
BUDWEVM	WKGXXX
ABWME	MEGXXX
ABWWE	WKGXXX
ABGRME	MEGXXX
ABGRWE	WKGXXX
ISTMEVM	MEGXXX
ISTWEVM	WKGXXX

Währungsfelder
PRAMEVM	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
PRAWEVM	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
ISTMEMON	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
ISTWEMON	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
ISTMIPRAME	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
ISTMIPRAWE	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
BUDMEVM	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
BUDWEVM	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
ABWME	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
ABWWE	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
ABGRME	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
ABGRWE	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung
ISTMEVM	MEGXXX	QUAN	COSP	MEINH	Menge gesamt
ISTWEVM	WKGXXX	CURR	TKA01	WAERS	Wert gesamt in Kostenrechnungskreiswährung

Die Neue Struktur bekannt machen und ggf. gegen alte TYPES ersetzen.

Code: Alles auswählen.

* Unicode-Umstellung
    :
    :
  TYPES ty_excel TYPE zfi2excel.


  TYPES:
*  BEGIN OF ty_excel,
*  bukrs LIKE pbukrs,
*  budat LIKE pbudat,
*  kstar LIKE cosp-kstar,
*  name LIKE skat-txt50,
*  objnr LIKE cosp-objnr,
*  meinh LIKE cosp-meinh,
*  pramevm LIKE cosp-meg001, "PRA Vorm.
*  prawevm LIKE cosp-wkg001,

*  istmemon LIKE itab-pramevm, "Saldo + PRA Mon.
*  istwemon LIKE itab-prawevm,
*  istmiprame LIKE itab-pramevm, "Saldo o. PRA Mon.
*  istmiprawe LIKE itab-prawevm,
*  budmevm LIKE itab-pramevm,
*  budwevm LIKE itab-prawevm,
*  abwme LIKE itab-pramevm,
*  abwwe LIKE itab-prawevm, "Abw.zum Plan Wert
*  abgrme LIKE itab-pramevm, "Neue Abgrenzung (für Übern.
*  abgrwe LIKE itab-prawevm,
*  istmevm LIKE itab-pramevm, "Saldo + PRA Vorm.
*  istwevm LIKE itab-prawevm,
*  END OF ty_excel,

  BEGIN OF ty_file,
  data(2000),
  END OF ty_file.

    :
    :
Es wird einfach eine neue Formroutine an das alte Coding gehängt.
Sie erzeugt eine Exceldatei aus einer internen Tabelle (e.g. it_excel[] )
und legt die Datei auf dem Rechner ab (e.g. i_fullpath / C:\temp\test.xlsx )
Bei internen Tabellen mit Kopfzeile die eckigen Klammern nicht vergessen !

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*&      Form  save_excel
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IT_EXCEL   text
*----------------------------------------------------------------------*
FORM save_excel TABLES it_excel USING i_fullpath TYPE string.
  TYPE-POOLS: abap.

  DATA: lo_excel                TYPE REF TO zcl_excel,
        lo_excel_writer         TYPE REF TO zif_excel_writer,
        lo_worksheet            TYPE REF TO zcl_excel_worksheet,
        column_dimension        TYPE REF TO zcl_excel_worksheet_columndime.

  DATA: ls_table_settings       TYPE zexcel_s_table_settings.

  DATA: lv_file                 TYPE xstring,
        lv_bytecount            TYPE i,
        lt_file_tab             TYPE solix_tab.

  DATA: lv_full_path      TYPE string,
        lv_workdir        TYPE string,
        lv_file_separator TYPE c.

  DATA: lv_title TYPE zexcel_sheet_title,
        lt_carr  TYPE TABLE OF scarr,
        row TYPE zexcel_cell_row VALUE 2,
        lo_range TYPE REF TO zcl_excel_range.
  DATA: lo_data_validation  TYPE REF TO zcl_excel_data_validation.

  DATA c_col(21) VALUE 'BCDEFGHIJKLMNOPQRSTU'.
  DATA l_col TYPE zexcel_cell_column_alpha.
  data i type i.


  " Creates active sheet
  CREATE OBJECT lo_excel.

  " Get active sheet
  lo_worksheet = lo_excel->get_active_worksheet( ).
  lo_worksheet->set_title( ip_title = 'Abgrenzung').


  ls_table_settings-table_style  = zcl_excel_table=>builtinstyle_medium2.
  ls_table_settings-show_row_stripes = abap_true.

  lo_worksheet->bind_table( ip_table          = it_excel[]
                            is_table_settings = ls_table_settings ).

  lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling


* OPTIMIZE COLUMNS
  DO 20 TIMES.
    i = sy-index - 1.
    l_col = c_col+i(1).
    column_dimension = lo_worksheet->get_column_dimension( ip_column = l_col ). "make date field a bit wider
    column_dimension->set_auto_size( ip_auto_size = abap_true ).
  ENDDO.
*  column_dimension->set_width( ip_width = 11 ).



  " Write to Excel 2007
  CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
  lv_file = lo_excel_writer->write_file( lo_excel ).

  " Convert to binary
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer        = lv_file
    IMPORTING
      output_length = lv_bytecount
    TABLES
      binary_tab    = lt_file_tab.
*  " This method is only available on AS ABAP > 6.40
*  lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring  = lv_file ).
*  lv_bytecount = xstrlen( lv_file ).

  " Save the file
  cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
                                                    filename     = i_fullpath
                                                    filetype     = 'BIN'
                                           CHANGING data_tab     = lt_file_tab ).


ENDFORM.                    "save_excel
Die obige Zeile nochmal lesbar :
lo_worksheet->bind_table( ip_table = it_excel[]
is_table_settings = ls_table_settings ).



Beispiel Aufruf der Subroutine (Auszug):

:
:
cl_gui_frontend_services=>file_save_dialog(
EXPORTING initial_directory = 'C:\'
default_file_name = 'Abgrenzung'
default_extension = 'XLSX'
CHANGING filename = lv_filename
path = lv_path
fullpath = lv_fullpath
user_action = lv_user_action ).
IF sy-subrc <> 0 OR lv_user_action <> cl_gui_frontend_services=>action_ok.
WRITE: / 'Verarbeitung wurde abgebrochen!!!!'.
EXIT.
ENDIF.



** Daten mittels Trennzeichen zusammenfügen und Download CSV-File
* LOOP AT it_excel INTO ls_excel.
* MOVE-CORRESPONDING ls_excel TO lv_data.
* CONCATENATE ls_excel-bukrs ls_excel-budat ls_excel-kstar
* ls_excel-name ls_excel-objnr ls_excel-meinh
* lv_data-pramevm lv_data-prawevm lv_data-istmemon
* lv_data-istwemon lv_data-istmiprame lv_data-istmiprawe
* lv_data-budmevm lv_data-budwevm lv_data-abwme
* lv_data-abwwe lv_data-abgrme lv_data-abgrwe
* lv_data-istmevm lv_data-istwevm
* INTO gs_file SEPARATED BY ';'.
* APPEND gs_file TO gt_file.
* ENDLOOP.

PERFORM save_excel TABLES it_excel USING lv_fullpath.
:
:
so zum Beispiel.

lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
newrider

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
huhu,

ok daaaanke, mhhh geht mir noch bissl zu schnell gg
Das heißt ich muss erstmal die neue Tabelle anlegen und mit den Werten befüllen?

Re: Report unicode fähig

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
In dem Beispiel habe ich mich für eine DDIC-Struktur entschieden (keine Tabelle), um die Spalten Namen / Datentypen etc. in die Ausgabe zu bekommen.
Dabei habe ich damit den "internen" TYPE ersetzt. Das ist bei ALV Grid ähnlich.

Alternativ könnte man auch beim Type bleiben, muß aber dann "zu Fuß" das Layout für das Excel aufbauen.
Wenn Du Zeit hast, kannst Du ja mal beide Wege probieren. :wink:

lg Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
newrider

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
ok mhh aber se11, damit erstelle ich doch eine Tabelle und keine Struktur?

Re: Report unicode fähig

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
.... se11 ->
Datentyp = Zfiexcel -> anlegen.
auf Popup "Struktur" auswählen
Kurztext ausfüllen ...
Komponenten(= Feldnamen) eintragen/ Komponententyp (=Datentyp) usw...

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
newrider

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
okey

Re: Report unicode fähig

Beitrag von newrider (ForumUser / 22 / 12 / 0 ) »
Wollte mich hier nochmal herzlichst Bedanken, vor allem bei Mr. Tron der mir sehr sehr weiter geholfen hat.

Schöne Weihnachten und Beitrag kann geschlossen werden.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1158
Views
Unicode oder Bild in Report einfügen
von drama » 01.02.2016 14:21 • Verfasst in ABAP® für Anfänger
0
Antw.
2393
Views
Unicode-Strings via ABAP-OLE2 to EXCEL (NON-Unicode-SAP-Sys)
von fritz_herma » 15.03.2007 14:17 • Verfasst in ABAP® Core
1
Antw.
3695
Views
Report von einem anderen Report als Hintergrundjob einplanen
von kbit100 » 04.01.2016 09:46 • Verfasst in ABAP® für Anfänger
22
Antw.
5744
Views
interne Tabelle übergeben von Report zu Report
von cuncon » 26.10.2017 12:27 • Verfasst in ABAP® für Anfänger
0
Antw.
1381
Views
Nutzung RRI (Report-Report-Schnittstelle) aus ALV-Grid
von donny » 22.11.2007 11:17 • Verfasst in ABAP® Core

Ü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

Aktuelle Forenbeiträge

Regex in where
vor 41 Minuten von tar 8 / 174
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1488

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

Regex in where
vor 41 Minuten von tar 8 / 174
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1488

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822