CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von LD57 (ForumUser / 26 / 4 / 0 ) »
Moin zusammen,

ich erstelle regelmäßig Reports mit dem SALV-Table.
Die lasse ich dann als Job laufen und schicke den Spool dann an Verteiler über "Spoollisten-Empfänger" in den Job-Einstellungen.

Alle unsere Anwender haben die Weiterleitung an Outlook aktiviert, so dass sie dann eine Mail erhalten mit einem PDF im Anhang der die Tabelle aus meinem Report darstellt.

Allerdings ist diese Darstellung sehr klein. Egal, wie wenig Spalten ich habe, es wird im Querformat gedruckt und der Platz wird nicht ausgenutzt. Man kann den Text dann nur durch Scrollen lesen.

Die Programm werden nicht nur als Job ausgeführt, sondern auch als Transaktion direkt von den Anwendern. Wegen eines eingebauten Buttons in der Funktionsleiste
brauche ich ein Dynpro und einen Container.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*&  Include           Z..._ALV
*&---------------------------------------------------------------------*
FORM create_alv .
  IF go_container IS NOT BOUND.

    IF cl_salv_table=>is_offline( ) EQ if_salv_c_bool_sap=>false.
      CREATE OBJECT go_container
        EXPORTING
*         parent                      =     " Parent container
          container_name              = 'CONTAINER'    " Name of the dynpro CustCtrl name to link this container to
*         style                       =     " Windows style attributes applied to this container
*         lifetime                    = LIFETIME_DEFAULT    " Lifetime
*         repid                       =     " Dynpro to which this container is linked to
*         dynnr                       =     " Report to which this container is linked to
*         no_autodef_progid_dynnr     =     " dont autodefine progid and dynnr?
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5
          OTHERS                      = 6.
      IF sy-subrc <> 0.
*   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDIF.
  ENDIF.

  TRY.
* Ausgabetabelle ermitteln
*      CASE abap_true.
*        WHEN ...
*    WHEN OTHERS.
      ASSIGN gt_ausgabe TO <fs_table>.
*      ENDCASE.

      IF sy-batch IS INITIAL.
        cl_salv_table=>factory(
          EXPORTING
            r_container    = cl_gui_container=>screen0
          IMPORTING
            r_salv_table   = go_table    " Basisklasse einfache ALV Tabellen
        CHANGING
          t_table        = <fs_table>
                ).
      ELSE.
        cl_salv_table=>factory(
        EXPORTING
*          list_display = 'X'
          r_container    = go_container
          container_name = 'CONTAINER'
        IMPORTING
          r_salv_table   = go_table    " Basisklasse einfache ALV Tabellen
        CHANGING
          t_table        = <fs_table>
                ).
      ENDIF.

* Spaltenbreite optimieren
      go_columns = go_table->get_columns( ).
      go_columns->set_optimize( gc_true ).

* Spaltenoptik ändern
      PERFORM change_column.

* F4-Hilfe für Felder
      PERFORM get_f4_columns.

* Funktionsleiste füllen
      go_functions = go_table->get_functions( ).
      go_functions->set_all( abap_true ).

** Refresh Button
      gv_text_function = text-t01.
      gv_tooltip_function = text-t02.
      gv_icon_function = icon_refresh.

      TRY.
          go_functions->add_function(
            EXPORTING
              name               = 'REFRESH'    " ALV Funktion
              icon               = gv_icon_function
              text               = gv_text_function
              tooltip            = gv_tooltip_function
              position           = if_salv_c_function_position=>right_of_salv_functions    " Funktion Positionierung
          ).
        CATCH cx_salv_existing INTO go_err_salv_exist.
*          MESSAGE gv_string TYPE 'E'.
        CATCH cx_salv_wrong_call INTO go_err_wrong_call.
          MESSAGE gv_string TYPE 'E'.
      ENDTRY.

* Layout speichern
      go_layout = go_table->get_layout( ).
      IF pa_layou IS NOT INITIAL.
        go_layout->set_initial_layout( pa_layou ).
      ENDIF.
      gs_layout_key-report = sy-repid.
      go_layout->set_key( gs_layout_key ).
      go_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
      go_layout->set_default( abap_true ).

* Events (z.B. Doppelklick)
      go_events_tab = go_table->get_event( ).
      CREATE OBJECT go_events
        EXPORTING
          io_salv = go_table.

** Doppelklick
      SET HANDLER go_events->on_double_click FOR go_events_tab.
** Toolbar Klick
      SET HANDLER go_events->handle_toolbar_click FOR go_events_tab.

* Anzeigen
      go_table->display( ).

    CATCH cx_salv_msg INTO DATA(go_exc).
      gv_string = go_exc->get_text( ).
      MESSAGE gv_string TYPE 'E'.

  ENDTRY.
ENDFORM.
Früher hatte ich keine Container und da wurde der Platz sinnvoller genutzt.
Den brauche ich aber.
Ich hatte schon versucht mit der Größe des Containers zu spielen, also viel schmaler, aber es hat nichts geholfen.

Was kann ich tun, damit der Platz vom PDF Dokument besser genutzt wird und sich die Schrift vergrößert?

Vielen Dank.

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


Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von ewx (Top Expert / 4873 / 315 / 644 ) »
Welches Format gewählt wird, hängt meine ich an den Zusätzen zu REPORT: Line-Size und Line-Count.
Dann wird das verwendet, was zu dem Drucker definiert wurde und am besten passt.
X_24_80_JP
X_44_120
X_51_140_JP
X_58_170
X_60_80_JP
X_65_1024/4
X_65_132
X_65_132-2
X_65_200
X_65_255
X_65_256/2
X_65_512/2
X_65_80
X_65_80-2
usw.

vielleicht kannst du mit line-size eine andere Breite einstellen?

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von LD57 (ForumUser / 26 / 4 / 0 ) »
ewx hat geschrieben:
27.01.2025 17:46
Welches Format gewählt wird, hängt meine ich an den Zusätzen zu REPORT: Line-Size und Line-Count.
Dann wird das verwendet, was zu dem Drucker definiert wurde und am besten passt.
X_24_80_JP
X_44_120
X_51_140_JP
X_58_170
X_60_80_JP
X_65_1024/4
X_65_132
X_65_132-2
X_65_200
X_65_255
X_65_256/2
X_65_512/2
X_65_80
X_65_80-2
usw.

vielleicht kannst du mit line-size eine andere Breite einstellen?
Hallo exw,

vielen Danke, aber leider hilft es nicht. LINE-COUNT ändert zwar die Anzahl der Zeilen, die je Seite gedruckt werden, aber LINE-SIZE wird komplett ignoriert.
Die Schriftgröße ist weiterhin winzig klein.

Ich gehe davon aus, dass es irgendeine SALV-Klasse gibt, die ich noch nicht gefunden habe.

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von JHM (Top Expert / 1202 / 1 / 199 ) »
LD57 hat geschrieben:
27.01.2025 13:06
Was kann ich tun, damit der Platz vom PDF Dokument besser genutzt wird und sich die Schrift vergrößert?
Wenn es "vorher" sauber funktioniert hat, musst du doch nur den Aufruf des SALVs im Job wierder analog machen. Du unterscheidest aktuell schon wie du den SALV erzeugst, addest aber immer den Button. Den brauchst du doch gar nicht im Job, erzeugst den SALV deswegen aber im Container...

Mir persöhnlich wäre eine SALV-Liste als PDF im Mail-Attachment generell ein Dorn im Auge. Wieso dem Report nicht eine sinnvolle Mailfunktion spendieren und die SALV-Liste dafür in ein Excel umwandeln?
Ginge auch als generrisches Tool, hatte ich schon mal als Idee skizziert: https://abapforum.com/forum/viewtopic.p ... 38#p104738
Gruß Hendrik

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von ewx (Top Expert / 4873 / 315 / 644 ) »
Dann probiere mal, ein festes Layout mitzugeben. Evtl. wird die notwendige Größe zu früh ermittelt, weil der Aufbereiter noch nicht weiß, wie viele Zeichen für die Ausgabe reserviert werden müssen. Falls auch das nichts bringt, mal ein paar Spalten im Layout ausschalten, um die Ausgabe zu verkleinern.

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von PeterPaletti (Specialist / 358 / 33 / 99 ) »
Hilft die Klasse CL_SALV_PRINT weiter?

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von ewx (Top Expert / 4873 / 315 / 644 ) »
Der Hinweis ist gut! Ich sehe in der Klasse nichts, mit dem man die Ausgabebreite steuern könnte. Aber evtl. ist es relevant, ob Column-optimization gesetzt ist oder nicht. Im Zweifelsfall würde ich die Option ausschalten. Keine Ahnung, ob man das besser im Layout macht oder über CL_SALV_PRINT->SET_COLUMN_OPTIMIZATION.

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von LD57 (ForumUser / 26 / 4 / 0 ) »
Vielen Dank für eure Ideen, leider ändert sich nichts.
- Den Container über Bedingungen nicht zu aktivieren und die Factory-Methode ohne Container zu nutzen, bringt nichts.
- Fixes Layout mit ausgeblendeten Spalten nimmt er zwar, aber ich bekomme nur mehr weißen Rand.
- Column Optimization ja / nein, macht keinen Unterschied

Ich nutze gerne die Verteilerlisten, die ich im Job eintragen kann, deswegen über die PDFs. Für Mails mit Excels muss ich die Empfänger entweder in der Selektionsmaske oder in Z-Tabellen pflegen, was uns das Leben bei den Jobauswertungen wieder schwerer macht.

Re: CL_SALV_TABLE Spoolausgabe als Job Schriftgröße

Beitrag von JHM (Top Expert / 1202 / 1 / 199 ) »
Habe mal ein wenig getestet.
Die Spool-Dateien sehen eigentlich immer "breit" genug aus.
Erst wenn man diese in ein PDF wandelt "schrumpft" die Ausgabe und wird sehr klein.

Denke das Problem entsteht also erst mit der PDF Umwandlung.
Da kann man nach Hinweis:
1885860 - PDF-Konvertierung von ABAP-Listen: Anzahl der Zeilen und Spalten
einwenig umstellen.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag (Insgesamt 2):
ewxblack_adept

Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

2
Antw.
5526
Views
Salv Table - Layouts speichern
von JohnLocklay » 14.06.2019 11:33 • Verfasst in ABAP Objects®
3
Antw.
3336
Views
GUI Status verhindert on click Event des SALV Table
von Pinguincommander » 05.02.2019 09:51 • Verfasst in ABAP® Core
0
Antw.
977
Views
Spoolausgabe mit Zusatztext
von stefan051981 » 26.01.2008 10:52 • Verfasst in SAP - Allgemeines
3
Antw.
3259
Views
Spoolausgabe mit mehr als 255 Zeichen
von gwildor » 25.04.2007 12:13 • Verfasst in ABAP® Core
0
Antw.
910
Views
schriftgrösse
von kostonstyle » 20.11.2006 13:38 • Verfasst in ABAP Objects®

Über diesen Beitrag



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

Aktuelle Forenbeiträge

Workflow-Datenfluss mit Multi-Line-Container
vor 2 Tagen von ewx gelöst 2 / 281
Mahnung erstellen
vor 2 Tagen von Sebastian82 4 / 343

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

Workflow-Datenfluss mit Multi-Line-Container
vor 2 Tagen von ewx gelöst 2 / 281
Mahnung erstellen
vor 2 Tagen von Sebastian82 4 / 343

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 4 Tagen von Manfred K. 1 / 295
Export von Spools in XLSX
vor einer Woche von abapamateur 1 / 1452
Feldberechnung ME32K
vor 2 Wochen von ZF_SAPler 1 / 1968