Fragen zu ALV Probleme

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

Getting started ... Alles für einen gelungenen Start.
41 Beiträge • Seite 1 von 3 (current) Nächste
41 Beiträge Seite 1 von 3 (current) Nächste

Fragen zu ALV Probleme

Beitrag von Marki ( / / 0 / 3 ) »
Hallo,
ich habe drei Fragen zum ALV-Grid. Die Ausgabe funktioniert wunderbar, aber ich hab noch drei Kleinigkeiten. Vielleicht hat das schon mal jmd ähnlich erlebt, und kann mir einen Tip geben.

Frage 01:
Sobald ich mir das Print-Preview anzeigen lassen will bzw. drucken will, kommt folgender Dump...

------------------------------------------
What happend?
The current ABAP/4 program "SAPLKKBL" had to be terminated because one of the statements could not be executed.
.
.
.
Error analysis:
In statement
"STRLEN( obj )..."
the argument "obj" can only take a character-type data object.
In this case, the operand "obj" has the non-character type "P".
----------------------------------------------

Leider weiss ich nicht einmal, wo ich mit der Fehlersuche anfangen soll (allemal nicht als ABAP-Newbie).

Frage 02:
Ich würde gerne noch ein paar Informationen direkt über den ALV Fenster anzeigen lassen. Leider weiss ich nicht wie, denn sämtliche WRITE Befehle erscheinen erst, nachdem ich beim ALV-Grid auf den BACK-Button gegangen bin. Bei folgendem Beispiel habe ich aber gesehen, dass man sich beliebige Daten über dem ALV-Grid Title anzeigen lassen kann.

Bild

Frage 03:
Die Möglichkeiten zum Einfärben einzelner Zellen habe ich schon getestet durch entsprechende Erweiterung meiner internen Tabelle, welche an das Grid Übergeben wird. Leider habe ich noch nicht herausgefunden, ob bzw. wie es möglich ist, alle Felder mit negativen Werten rot einzufärben.

In der ALV Doku von SAP bin ich heute Nachmittag auch noch nicht fündig geworden. Wäre toll, wenn mir hierbei jemand einen Denkanstoß geben kann.

Danke & Gruß

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


Beitrag von popeiko (ForumUser / 47 / 0 / 1 ) »
Hi.

Zunächst einmal gehe ich davon aus, dass du den OO-ALV-Grid verwendest und nicht den REUSE-FuBa.

Zu 1) keine Ahnung :shock:

Zu 2) Du müsstest eine Ereignishandlerklasse definieren, die auf das ALV-Ereignis 'TOP_OF_PAGE' reagiert. Der Handler-Methode wird ein Objekt der Klasse CL_DD_DOCUMENT übergeben. Dieses kannst du beliebig manipulieren (i.d.R. über die ADD_*-Methoden der Klasse, musst du mal nachgucken)

Zu 3) ein automatisches Einfärben von Zellen auf Basis des enthaltenen Zellwertes ist meiner Meinung nach nicht möglich. Die Prüfung musst du wohl händisch machen und die Zellfarbe entsprechend setzen. Vielleicht habe ich dich da auch nicht richtig verstanden.


Gruß, Heiko.

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moinsen.

Zu 1: Guck mal im OSS, ob es zu dem Problem einen Hinweis gibt. Das hört sich für mich nach einem Fehler im Standard an.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Änderungen im ALV (Vorsicht: längeres Coding)

Beitrag von Marki ( / / 0 / 3 ) »
Zunächst einmal gehe ich davon aus, dass du den OO-ALV-Grid verwendest und nicht den REUSE-FuBa.
Ich bekenne mich schuldig. Hatte zum Einstieg den REUSE verwendet, und mit diesem werde ich nicht besonders glücklich. Jetzt bin ich auf das OO-ALV-Grid aufmerksam geworden. Allerdings stehe ich jetzt auch hier vor einem kleinen Problemchen. Ich habe mich nach einem Tutorial gerichtet. Der Editor zeigt mir KEINE Syntax-Fehler an, allerdings wird bei der Programmausführung das Grid nicht angezeigt. Wenn es genauert interessiert, das Coding.

Code: Alles auswählen.

REPORT ZXYZ.

*--- ALV Grid instance reference
data gr_alvgrid type ref to cl_gui_alv_grid.
*--- Name of the custom control added on the screen
data gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.
*--- Custom container instance reference
data gr_ccontainer type ref to cl_gui_custom_container.
*--- Field catalog table
data gt_fieldcat type lvc_t_fcat.
*--- Layout structure
data gs_layout type lvc_s_layo.

data: begin of gt_list occurs 0,
table1 like t441r-prreg.
data: end of gt_list.

select prreg from t441r
into table gt_list.

*print for testing
loop at gt_list.
write:/ gt_list-table1.
endloop.

perform display_alv.

*----------------------------------------------------------
form display_alv.
  IF gr_alvgrid IS INITIAL.
*----Creating custom container instance
    CREATE OBJECT gr_ccontainer
       EXPORTING
         container_name              = gc_custom_control_name
       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.
*--Ecxception handling
    ENDIF.

*----Creating ALV Grid instance
    CREATE OBJECT gr_alvgrid
      EXPORTING
        i_parent                     = gr_ccontainer
      EXCEPTIONS
        error_cntl_create            = 1
        error_cntl_init              = 2
        error_cntl_link              = 3
        error_dp_create              = 4
        others                       = 5 .
    IF sy-subrc <> 0.
*--Exception handling
    ENDIF.

*----Preparing field catalog.
    PERFORM prepare_field_catalog CHANGING gt_fieldcat .

*----Preparing layout structure
    PERFORM prepare_layout CHANGING gs_layout .

*----Here will be additional preparations
*--e.g. initial sorting criteria, initial filtering criteria, excluding
*--functions

    CALL METHOD gr_alvgrid->set_table_for_first_display
      EXPORTING
*    I_BUFFER_ACTIVE                  =
*    I_CONSISTENCY_CHECK              =
*    I_STRUCTURE_NAME                 =
*    IS_VARIANT                       =
*    I_SAVE                           =
*    I_DEFAULT                        = 'X'
        is_layout                       = gs_layout
*    IS_PRINT                         =
*    IT_SPECIAL_GROUPS                =
*    IT_TOOLBAR_EXCLUDING             =
*    IT_HYPERLINK                     =
      CHANGING
      it_outtab                         = gt_list[]
      it_fieldcatalog                   = gt_fieldcat
*     IT_SORT                         =
*     IT_FILTER                       =
   EXCEPTIONS
       invalid_parameter_combination = 1
       program_error                 = 2
       too_many_lines                = 3
       OTHERS                        = 4 .
    IF sy-subrc <> 0.
*--Exception handling
    ENDIF.
  ELSE.
    CALL METHOD gr_alvgrid->refresh_table_display
*   EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
       EXCEPTIONS
          finished      = 1
          OTHERS        = 2.
    IF sy-subrc <> 0.
*--Exception handling
    ENDIF.
  ENDIF.
ENDFORM.


*----------------------------------------------------------
FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat.

DATA ls_fcat type lvc_s_fcat.

  ls_fcat-fieldname = 'TABLE1'.
  ls_fcat-ref_table = 'T441R'.
  ls_fcat-ref_field = 'PRREG'.
  ls_fcat-coltext   = 'testheader'.
APPEND ls_fcat to pt_fieldcat.

ENDFORM.


*----------------------------------------------------------
FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.

  ps_layout-zebra = 'X'.
  ps_layout-grid_title = 'Flights'.
  ps_layout-smalltitle = 'X'.

ENDFORM.
Vielleicht hat jmd schon ähnliche Erfahrungen gemacht, und mir sagen, warum es nicht geht.
Danke.

Greetings,
Marki

Beitrag von Kowi (ForumUser / 28 / 0 / 0 ) »
Hallo Marki,

es sieht nicht so aus, als wenn du ein Dynpro für die Darstellung hättest.

Du müßtest ein Dynpro anlegen, dort einmalig im PBO "display_alv" aufrufen.

Gruß,
Kowi

Fragen zu ALV Probleme

Beitrag von Marki ( / / 0 / 3 ) »
Hallo Kowi,
danke für den Tipp. Leider beherrsche ich die DYNPRO Programmierung nicht, sondern nur das einfachere Reporting (reicht für meine Zwecke völlig aus).
Geht es nicht, dass ich in meinem bestehenden Report einfach per perform display_alv die ALV-Ausgabe aufrufe?


Grüsse,
Marki

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

zu 1) keine Ahnung,

aber Punkt 2 und 3 lassen sich mit dem REUSE-ALV realisieren. Der REUSE ist sicherlich der einfachere, da du hier kein Dynpro brauchst.

Die Frage ist jetzt: nimmst du jetzt den ALV-OO oder den ALV-Reuse

2 und 3 kann ich dir gern erklären, wenn du wieder mit dem REUSE arbeiten willst.

mfg
Richard

Re: Fragen zu ALV Probleme

Beitrag von pheun (ForumUser / 6 / 0 / 0 ) »
[quote="Marki"]Hallo Kowi,
danke für den Tipp. Leider beherrsche ich die DYNPRO Programmierung nicht, sondern nur das einfachere Reporting (reicht für meine Zwecke völlig aus).
Geht es nicht, dass ich in meinem bestehenden Report einfach per perform display_alv die ALV-Ausgabe aufrufe?



einfach ein Dynpro anlegen und den Control einfügen, aktivieren und fertig!

Problem gelöst

Beitrag von Marki ( / / 0 / 3 ) »
Hallo nochmal,
ich melde mich nochmal von der Front.
Ich bin jetzt wieder zum REUSE-ALV zurückgekehrt.
Leider habe ich zu spät gemerkt, dass das OO-ALV nur mit Dynpro vereinbar ist. Naja, geschadet hat der Ausflug ja nicht :idea:

Ein kleiner Tip am Rande für alle Einsteiger:

http://www.alv-grid-display.de/

Ist sicher keine Dauerlösung, aber mir hat es zumindest für erste Kontakte mit dem ALV sehr geholfen.

Komischerweise erscheint der Dump nun auch nicht mehr. Somit hätte sich das erste Problem erledigt (keine Ahnung wie, aber ist nun eh egal). :D

An den Zusatzinformationen über der Tabelle (vgl. meinen ersten Eintrag) tüftle ich gerade, aber das müsste eigentlich lösbar sein.

Zum Einfärbern der Tabelle ist mir nun eine schicke alternative Idee eingefallen.
In der ALV Doku vom OO-ALV ist mir die Möglichkeit von Exceptions aufgefallen (die SAP-Ampeln). Nun hätte ich die Idee, das ich meine interne Tabelle um eine Spalte erweitere, in welcher der Wert für die Exception steht (eben 1, 2 oder 3).
Nun stelle ich mir allerdings die Frage, ob dies mit dem REUSE überhaupt geht. Dies wäre ein nettes Feature für den Report, da man dann auf die kritischen Werte sofort aufmerksam wird.

Für alle, die ein gutes Tutorial für OO-ALV suchen:

https://www.sdn.sap.com/irj/servlet/prt ... ontrol.pdf

Leider gibt es nix vergleichbares für das REUSE, zumindest habe ich noch nichts gefunden; dann wäre dieses tolle Forum nämlich um ein paar 'sich-sparen-könn' Einträge von mir ärmer. :oops:

Also, euch noch viel Spass beim Programmieren. Falls jmd noch 'ne Idee zu meinen Exceptions hat, so wäre ich für ein paar Sätze dankbar.

Grüsse,
Marki

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

will ja nicht aufdringlich sein aber
Hallo,

zu 1) keine Ahnung,

aber Punkt 2 und 3 lassen sich mit dem REUSE-ALV realisieren. Der REUSE ist sicherlich der einfachere, da du hier kein Dynpro brauchst.

Die Frage ist jetzt: nimmst du jetzt den ALV-OO oder den ALV-Reuse

2 und 3 kann ich dir gern erklären, wenn du wieder mit dem REUSE arbeiten willst.

mfg
Richard
besteht noch interesse ???
mfg
Richard

Fragen zu ALV

Beitrag von Marki ( / / 0 / 3 ) »
Hy RiffRaff,
wenn hier jmd aufdringlich ist, dann sicherlich nicht Du.

Zu den zusätzlichen Informationen besteht klar noch Interesse. Hat das etwas mit dem Top-of-Page zu tun?

Das Einfärbern der Zellen will ich jetzt durch die Ikonen (Ampeln) ersetzen, das erfüllt meine Anforderung besser. Dabei bin ich aber noch am tüfteln.
Ich weiss nur, dass dies mit dem fieldcat-icon = 'X' gesetzt werden kann, jedoch passt die Typisierung dieser Wertes in der Itab nicht. Leider habe ich noch nicht herausfinden können, welcher Typ hier notwendig ist.

Marki

Beitrag von ikim (ForumUser / 1 / 0 / 0 ) »
zu Frage2:

guck dir den FB "REUSE_ALV_COMMENTARY_WRITE"
an, mit dem kann man ein Kommentarfeld über den ALV Grid anlegen.
Vorher mußt du das event top_of_page definieren.
dafür kannst du z.B. den FB "REUSE_ALV_EVENTS_GET" benutzen.

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo

ins Coding folgendes einbauen

Code: Alles auswählen.

* Bei Datendeklaration
TYPE-POOLS: slis.


* beim ALV Aufruf, Parameter setzen
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       i_callback_top_of_page         = 'DO_TOP_OF_PAGE'
und noch die Formroutine

Code: Alles auswählen.

FORM do_top_of_page.

  DATA: it_top_of_page TYPE slis_t_listheader,
        wa_top_of_page TYPE slis_listheader.

* Hier ist folgendes möglich
* (H)eader:    - Listenüberschrift
* (S)election: - Wichtige Kopfinformationen
* (A)ction:    - Aktionsinfo
  wa_top_of_page-typ  = 'S'.

* Text, max 60 Zeichen
  wa_top_of_page-info = 'Selectionsdatum:'.

* Wenn mit Typ 'S' gearbeitet wird, ist die Ausgabe zweispaltig
* 2 Spalte befüllen (sonst nicht), max 20 Zeichen
  wa_top_of_page-key = sy-datum.

  APPEND wa_top_of_page TO it_top_of_page.

* Hier dann auf die gleiche Weise der nächste Text


ENDFORM.                                                 "DO_TOP_OF_PAGE

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo

ins Coding folgendes einbauen

Code: Alles auswählen.

* Bei Datendeklaration
TYPE-POOLS: slis.


* beim ALV Aufruf, Parameter setzen
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       i_callback_top_of_page         = 'DO_TOP_OF_PAGE'
und noch die Formroutine

Code: Alles auswählen.

FORM do_top_of_page.

  DATA: it_top_of_page TYPE slis_t_listheader,
        wa_top_of_page TYPE slis_listheader.

* Hier ist folgendes möglich
* (H)eader:    - Listenüberschrift
* (S)election: - Wichtige Kopfinformationen
* (A)ction:    - Aktionsinfo
  wa_top_of_page-typ  = 'S'.

* Text, max 60 Zeichen
  wa_top_of_page-info = 'Selectionsdatum:'.

* Wenn mit Typ 'S' gearbeitet wird, ist die Ausgabe zweispaltig
* 2 Spalte befüllen (sonst nicht), max 20 Zeichen
  wa_top_of_page-key = sy-datum.

  APPEND wa_top_of_page TO it_top_of_page.

* Hier dann auf die gleiche Weise der nächste Text
*
*
*
*


* zum Schluß
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = it_top_of_page.

ENDFORM.                                                 "DO_TOP_OF_PAGE
wenns nicht verständlich ist, nachfragen
aber erst morgen in der früh -- feierabend :lol:

mfg
richard

ALV Zeugstl

Beitrag von Marki ( / / 0 / 3 ) »
@ RiffRaff,
danke für die Anleitung. Allerdings mag mein Hirn nach dem heutigen Tag nicht mehr :evil:
Darum probiere ich das lieber morgen.

Für alle, die die Ampelsache noch interessiert:
Der Wert in der internen Tabelle (muss vom Typ String sein), hat die entsprechenende Werte...

- Rote Ampel : @0A@
- Gelbe Ampel: @09@
- Grüne Ampel: @08@

Ist vermutlich am besten, wenn die Werte dann entsprechend in einer LOOP gesetzt werden.
So, und jetzt Feierabend.

Serwus

Vergleichbare Themen

2
Antw.
1249
Views
Fragen und Probleme zu Tabellenfeldern
von markus1234 » 14.11.2016 15:55 • Verfasst in ABAP® Core
2
Antw.
3178
Views
Fragen zum ALV
von ABAP_User » 10.04.2012 19:41 • Verfasst in ABAP® für Anfänger
2
Antw.
631
Views
GUI Fragen
von il.ost » 09.07.2019 13:23 • Verfasst in ABAP® für Anfänger
2
Antw.
1319
Views
Systemtechnik Fragen
von newrider » 22.04.2016 08:45 • Verfasst in ABAP® für Anfänger
0
Antw.
771
Views
SIMPLE_LIST_TREE -> Fragen...
von Mavrix » 17.07.2007 07:24 • 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
Gestern von tar 8 / 372
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 289
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 530

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
Gestern von tar 8 / 372
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 289
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 530

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953