Write-Ausgabe vor Alv-Grid Ausgabe

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

Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von L0w-RiDer (Specialist / 161 / 23 / 1 ) » 14. Aug 2019 14:09

Hallo,

ich habe ein Programm geschrieben und möchte bei diesem zunächst per Write-Befehl eine Liste ausgeben und im Anschluß eine andere Liste per ALV-Grid.

Wenn ich das bisher so richtig verstanden habe, werden die Write-Befehle nach Ende der Programmausführung ausgegeben. Also im Prinzip, wenn das Programm durchgelaufen ist. Wie schaffe ich es, zunächst die Write-Ausgabe anzeigen zu lassen und im Anschluß eine andere Tabelle per ALV.

Vielen Dank


Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von zzcpak (Expert / 669 / 6 / 63 ) » 14. Aug 2019 14:34

Es gibt ja auch die Möglichkeit, im Kopfbereich des ALV Text auszugeben. Das wäre ggfs. eine sinnvolle Alternative. ALV und Listausgabe mit WRITE zu mischen ist irgendwie nicht so dolle. Alternativ hierrarchische Listen.

Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von black_adept (Top Expert / 3311 / 60 / 603 ) » 14. Aug 2019 15:10

WANN soll denn die ALV-Liste erscheinen?
Nach einer gewissen Zeit? Wenn der User einen bestimmten Button drückt?...

Alternativ könntest du sie ja auch gleichzeitig mit der Liste in einem Dock-Container anzeigen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von masterhash (ForumUser / 9 / 2 / 0 ) » 15. Aug 2019 09:31

Andersrum wäre wohl einfacher, erst ALV und dann der WRITE

Code: Alles auswählen.

    g_obj->alv_show( ).

* Anzeige des User-Screens
    SET PF-STATUS 'RESULT'.
    WRITE / space.
So habe ich es "früher" gemacht, als ich noch keine Docking Container verwendet habe. Wenn der Status 'RESULT' eingerichtet ist, konnte man mit dem Zurück-Button vom ALV zum Screen mit dem Write gehen. Dort hatte ich dann immer diverse Buttons hinterlegt.
Das Vertauschen der von Methode und Write-Befehl bringt leider nicht die Lösung zu deinem Problem.

VG

kurzer Nachtrag:

Code: Alles auswählen.

    SET PF-STATUS `RESULT`.
    WRITE / space.

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN `LOG`.      PERFORM show_log.
    WHEN `ERGEBNIS`. PERFORM show_ergebnis.
    WHEN `EXIT`.     PERFORM exit.
  ENDCASE.
wenn du die Funktionscodes entsprechend einrichtest, kannst du dir erst den WRITE abholen und dann (zb: per Button ;) ) den ALV anzeigen lassen.

Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von L0w-RiDer (Specialist / 161 / 23 / 1 ) » 15. Aug 2019 11:27

So ich habe mich nun entschieden, es mit einer Kopfzeile zu lösen.

Ich bin gerade dabei, bloß wird sie bisher garnicht angezeigt:

Sieht da jemand den Fehler??

Code: Alles auswählen.


DATA:  datex               TYPE c LENGTH 10,
      time(8)             TYPE c,
      gs_butxt2           TYPE c LENGTH 100,
      gr_alv              TYPE REF TO cl_salv_table,
      gr_columns          TYPE REF TO cl_salv_columns_table,
      gr_column           TYPE REF TO cl_salv_column_table,
      gr_header           TYPE REF TO cl_salv_form_layout_grid,
      gr_h_flow           TYPE REF TO cl_salv_form_layout_flow.

Try.
  cl_salv_table=>factory(
      IMPORTING
        r_salv_table   =  gr_alv
      CHANGING
        t_table        = it_kopk
    ).
  CATCH cx_salv_msg.
ENDTRY.

  gr_columns = gr_alv->get_columns( ).
  gr_columns->set_optimize( abap_true ).

" Erzeugung eines Objektes für die
" Überschrift.
  CREATE OBJECT gr_header.

" Funktionsaufruf um das Datum in einer
" anderen Ausgabenart anzeigen zu lassen.
  CALL FUNCTION 'FORMAT_DATE_4_OUTPUT'
    EXPORTING
    datin         = sy-datum
    format        = 'DD.MM.YYYY'
    IMPORTING
    datex         = datex.

" Verbindung von der Uhrzeit in die Variable Time
" um die Uhrzeit in einer anderen Ausgabenart anzeigen
" zu lassen.
  CONCATENATE sy-uzeit(2) ':' sy-uzeit+2(2) ':' sy-uzeit+4(2)
  INTO time.

" setzen einer Kopfzeile der internen Tabelle
" in der ALV-Grid Darstellung. Es soll ein Text,
" Datum und Uhrzeit erscheinen.
  gr_h_flow = gr_header->create_flow( row = 1  column = 1 ).
  CONCATENATE: 'Kreditorennummern:'
  datex '/' time '/' sy-uname
  INTO gs_butxt2 SEPARATED BY space.
  gr_h_flow->create_text( text = gs_butxt2 ).
  CLEAR gs_butxt2.

" Setzen einer Leerzeile.
  gr_h_flow = gr_header->create_flow( row = 2  column = 1 ).
  gs_butxt2 = ''.
  gr_h_flow->create_text( text = gs_butxt2 ).
  CLEAR gs_butxt2.

" Setzen einer Kopfzeile und Anzeige der aus der Liste
" gelöschten.
  gr_h_flow = gr_header->create_flow( row = 3  column = 1 ).
  gs_butxt2 = 'Folgende Verträge:'.
  gr_h_flow->create_text( text = gs_butxt2 ).

  " Setzen einer Leerzeile.
  gr_h_flow = gr_header->create_flow( row = 4  column = 1 ).
  gs_butxt2 = ''.
  gr_h_flow->create_text( text = gs_butxt2 ).
  CLEAR gs_butxt2.

" Einschalten der Funktionssymbole vom ALV-Grid.
  gr_alv->get_functions( )->set_all( abap_true ).

" Ausgabe der Daten per ALV-Grid.
  gr_alv->display( ).


sind natürlich nur die relevanten Codefragmente :).

Dankeschön!

Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von qyurryus (ForumUser / 40 / 30 / 10 ) » 15. Aug 2019 11:35

Falls ich nichts übersehen habe setzt du gr_header nie als header im SALV. Fehlt also:

Code: Alles auswählen.

    gr_alv->set_top_of_list( gr_header ).

Folgende Benutzer bedankten sich beim Autor qyurryus für den Beitrag:
L0w-RiDer (16. Aug 2019 09:10)


Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von L0w-RiDer (Specialist / 161 / 23 / 1 ) » 15. Aug 2019 13:45

Super es hat nun funktioniert.

Ich hätte nun noch eine Frage und zwar, weiß jemand wie man eine Spalte mit dem blau für Key-Feld kennzeichnen kann??

Re: Write-Ausgabe vor Alv-Grid Ausgabe

Beitrag von schick (ForumUser / 50 / 5 / 13 ) » 15. Aug 2019 15:25

Hi,

ungefähr so müsste es möglich sein die Spalten einzufärben:

Code: Alles auswählen.

  METHOD set_colors.
    DATA: gr_coltab TYPE REF TO cl_salv_column_table.
    TRY.
        gr_coltab = CAST cl_salv_column_table( co_alv->get_columns( )->get_column( 'SPALTE1' ) ).
        gr_coltab->set_color( VALUE #( col = 1 int = 1 inv = 1 ) ).
      CATCH cx_salv_not_found ##NO_HANDLER.
    ENDTRY.
  ENDMETHOD.                    "set_colors

Seite 1 von 1

Aktuelle Forenbeiträge

Generierte Datei auf bestimmte Email Adresse versenden
vor 11 Stunden von M@atze! 4 / 65
Zweite Zeile vorhanden, dann überprüfen auf Feld Gleichheit
vor 15 Stunden von a-dead-trousers 5 / 111
benutzerdefinierter CSV Ausgabepfad
Gestern von a-dead-trousers 8 / 147
Mehrere Funktionsbausteine verwenden
Gestern von a-dead-trousers 2 / 100

Unbeantwortete Forenbeiträge

Transaktionen MEIS / VE01
Gestern von SAP_ENTWICKLER 1 / 51
Cl_gui_html_viewer Problem
vor 5 Tagen von YoeBoy 1 / 23
Namensänderung von PSP Elementen
vor einer Woche von jamyr 1 / 46
Generische Objekte in der Massenverarbeitung
vor einer Woche von TravellingEntwickler 1 / 116
Virtuelles System anlegen
vor einer Woche von ichse18577 1 / 92