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 / 162 / 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 / 3319 / 60 / 605 ) » 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 / 162 / 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 / 162 / 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

Interne Tabelle um Felder aus SAP-Tabelle ergänzen
vor 16 Stunden von DeathAndPain 4 / 47
F4-Hilfe bei Parameters
vor 17 Stunden von deejey 4 / 78
Userexit für IDOC für Bestellung
vor 17 Stunden von deejey 3 / 38

Unbeantwortete Forenbeiträge

Unterschiedliche Konditionen AB und Rechnungdruck
vor 2 Tagen von Sebastian82 1 / 61
Änderungsbelege für Kundenfelder im BP
vor 6 Tagen von GerryRe 1 / 1996
Anlegen eines externen Dokumentes(URL) für PM-Auftrag
vor einer Woche von tekko 1 / 2010
Transaktionen MEIS / VE01
vor einer Woche von SAP_ENTWICKLER 1 / 2466