Container ein und ausblenden


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Re: Container ein und ausblenden

Beitragvon Studi » 16.02.2017, 14:17

Danke für eure Hilfe schon mal! Bin echt am verzweifeln gerade
so sieht mein Code aus:


CASE okcode.
DATA: visible TYPE c.

WHEN 'PB_GRAFIK'.
*aktuellen Zustand ermitteln

CALL METHOD g_container_graphics->get_visible
IMPORTING
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container sichtbar ist, dann ...
IF visible is INITIAL.
* ...Container auf invisible setzen
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = space
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container nicht sichtbar ist, dann ...
ELSE.
* ...Container auf visible setzen
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = 'X'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

ENDIF.
---------------------------------------------------------- und das hier war dein Code
g_container_graphics->get_visible( IMPORTING visible = visible ).
g_container_graphics->set_visible( visible = visible ).
CALL METHOD cl_gui_cfw=>flush EXCEPTIONS cntl_system_error = 1 cntl_error = 2.
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Container ein und ausblenden

Beitragvon abuma » 16.02.2017, 14:21

Studi hat geschrieben:Danke für eure Hilfe schon mal! Bin echt am verzweifeln gerade
so sieht mein Code aus:


CASE okcode.
DATA: visible TYPE c.

WHEN 'PB_GRAFIK'.
*aktuellen Zustand ermitteln

CALL METHOD g_container_graphics->get_visible
IMPORTING
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container sichtbar ist, dann ...
IF visible is INITIAL.
* ...Container auf invisible setzen
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = space
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container nicht sichtbar ist, dann ...
ELSE.
* ...Container auf visible setzen
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = 'X'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

ENDIF.

---------------------------------------------------------- und das hier war dein Code
g_container_graphics->get_visible( IMPORTING visible = visible ).
g_container_graphics->set_visible( visible = visible ).
CALL METHOD cl_gui_cfw=>flush EXCEPTIONS cntl_system_error = 1 cntl_error = 2.


Also der markierte Teil kann ja schonmal raus, sonst ist´s ja doppelt.

Und was kommt danach? Du bist ja noch in der case - endcase anweisung und die wurde soweit ich das sehe noch nicht beendet.
Muss ja etwas mit dem ALV zu tun haben.

Liebe Grüße
abuma
abuma
ForumUser
 
Beiträge: 45
Registriert: 17.08.2016, 11:14
Dank erhalten: 5 mal
Ich bin: Entwickler/in

Re: Container ein und ausblenden

Beitragvon Studi » 16.02.2017, 14:22

ja genau das gelbe ist bei mir auch auskommentiert.
Doch danach kam die Case Anweisung :D
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Container ein und ausblenden

Beitragvon abuma » 16.02.2017, 14:32

Und was steht im PBO Module?
abuma
ForumUser
 
Beiträge: 45
Registriert: 17.08.2016, 11:14
Dank erhalten: 5 mal
Ich bin: Entwickler/in

Re: Container ein und ausblenden

Beitragvon Studi » 16.02.2017, 15:14

*&---------------------------------------------------------------------*
*& Include ZAF_WEB_AUSWERTUNG_O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'S100'.
SET TITLEBAR 'T100'.
ENDMODULE.

*&---------------------------------------------------------------------*
*& Module ALV OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*


MODULE alv OUTPUT.

Perform create_objects.
Perform create_fieldcatalog.
Perform AlV_Display.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module GRAFIK OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE grafik OUTPUT.

IF g_container_graphics IS INITIAL.
CREATE OBJECT g_container_graphics
EXPORTING
container_name = 'CC_GRAFIK'
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 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
ENDIF.



CALL METHOD go_grid->set_graphics_container
EXPORTING
i_graphics_container = g_container_graphics.




ENDMODULE.
---------------------------------------------------------------------------FORMS
FORM create_objects .

IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'CC_ALV'.
ENDIF.
IF go_grid IS INITIAL.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_container.
ENDIF.

IF event_receiver IS INITIAL.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_toolbar FOR go_grid.
SET HANDLER event_receiver->handle_user_command FOR go_grid.
ENDIF.

ENDFORM.

FORM create_fieldcatalog .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = '/sew/sce_ws_log'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.

DATA: ls_fieldcat LIKE LINE OF gt_fieldcat.

" 6. Spalte hinzuügen, welche nicht in gt_log verfügbar ist
ls_fieldcat-fieldname = 'ANZAHL'.
ls_fieldcat-scrtext_l = 'Anzahl'.
ls_fieldcat-scrtext_m = 'Anzahl'.
ls_fieldcat-scrtext_s = 'Anzahl'.
ls_fieldcat-col_pos = 6.
APPEND ls_fieldcat TO gt_fieldcat.

ls_fieldcat-fieldname = 'WOCHE'.
ls_fieldcat-scrtext_l = 'Woche'.
ls_fieldcat-scrtext_m = 'Woche'.
ls_fieldcat-scrtext_s = 'Woche'.
ls_fieldcat-col_pos = 7.
APPEND ls_fieldcat TO gt_fieldcat.

ls_fieldcat-fieldname = 'MONAT'.
ls_fieldcat-scrtext_l = 'Monat'.
ls_fieldcat-scrtext_m = 'Monat'.
ls_fieldcat-scrtext_s = 'Monat'.
ls_fieldcat-col_pos = 8.
APPEND ls_fieldcat TO gt_fieldcat.

ls_fieldcat-fieldname = 'JAHR'.
ls_fieldcat-scrtext_l = 'Jahr'.
ls_fieldcat-scrtext_m = 'Jahr'.
ls_fieldcat-scrtext_s = 'Jahr'.
ls_fieldcat-col_pos = 9.
APPEND ls_fieldcat TO gt_fieldcat.

ENDFORM.

FORM alv_display .

*--Variante
gs_variant-report = sy-repid.

*--Layoutsicherung bestimmen
g_save = 'U'.
IF sy-uname = 'DEFUCALI'.
g_save = 'A'.
ENDIF.

*-- ALV wird standardmäßig ausgegeben
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* i_structure_name = '/sew/sce_ws_log'
IS_VARIANT = gs_variant
I_SAVE = g_save
I_DEFAULT = 'X'
* IS_LAYOUT = l_layout
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* it_alv_graphics = lit_alv_graphics
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
it_outtab = gt_log
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.
* Implement suitable error handling here
ENDIF.


ENDFORM.
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Container ein und ausblenden

Beitragvon Studi » 16.02.2017, 15:26

okay problem behoben. Es liegt an den Performs laut Debugger geht er scheinbar immer wieder ins PBO.
Noch ne Frage das mit dem Container ein und ausblenden klappt jetzt super. Nur wird die Grafik als erstes ausgeblendet. Ich möchte sie aber eingeblendet haben. Wie würde denn dein Coding dann ausehen @abuma?
Nicht wundern ich bin blutiger Anfänger.

Lg Alisa
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Container ein und ausblenden

Beitragvon abuma » 17.02.2017, 09:54

Also ich denke da solltest du mal Debuggen und schauen warum es zu Beginn ausgeblendet wird.
Soweit ich das sehe müsste es durch dein Coding im PBO anfangs eingeblendet sein, vielleicht hast du noch irgendeine Änderung im PAI-Modul, die es sofort wieder ausblendet?

Liebe Grüße
abuma
abuma
ForumUser
 
Beiträge: 45
Registriert: 17.08.2016, 11:14
Dank erhalten: 5 mal
Ich bin: Entwickler/in

Re: Container ein und ausblenden

Beitragvon a-dead-trousers » 17.02.2017, 11:03

abuma hat geschrieben:Also ich denke da solltest du mal Debuggen und schauen warum es zu Beginn ausgeblendet wird.
Soweit ich das sehe müsste es durch dein Coding im PBO anfangs eingeblendet sein, vielleicht hast du noch irgendeine Änderung im PAI-Modul, die es sofort wieder ausblendet?

Ohne jetzt das Coding durchgelesen zu haben vermute ich ein "logisches" Problem:
Wenn das Objekt erzeugt wird, ist es VISIBLE. Wenn man also sofort ein GET_VISIBLE macht und dann mit SET_VISIBLE das Gegenteil macht, wird das Objekt Anfangs nicht angezeigt. :wink:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 2670
Registriert: 07.02.2011, 13:40
Dank erhalten: 612 mal
Ich bin: Entwickler/in

Re: Container ein und ausblenden

Beitragvon abuma » 17.02.2017, 11:45

a-dead-trousers hat geschrieben:
abuma hat geschrieben:Also ich denke da solltest du mal Debuggen und schauen warum es zu Beginn ausgeblendet wird.
Soweit ich das sehe müsste es durch dein Coding im PBO anfangs eingeblendet sein, vielleicht hast du noch irgendeine Änderung im PAI-Modul, die es sofort wieder ausblendet?

Ohne jetzt das Coding durchgelesen zu haben vermute ich ein "logisches" Problem:
Wenn das Objekt erzeugt wird, ist es VISIBLE. Wenn man also sofort ein GET_VISIBLE macht und dann mit SET_VISIBLE das Gegenteil macht, wird das Objekt Anfangs nicht angezeigt. :wink:

Ja genau, aber in Ihrem PAI-Modul sollte das GET/SET ja nur auf Knopfdruck funktionieren, daher muss es wohl woanders noch eine Stelle geben bei dem es nach der Erzeugung ausgeblendet wird.
Daher muss das wohl erstmal gedebuggt werden.

Liebe Grüße
abuma
abuma
ForumUser
 
Beiträge: 45
Registriert: 17.08.2016, 11:14
Dank erhalten: 5 mal
Ich bin: Entwickler/in

Vorherige

Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Eclipse-Einstellungen migrieren
vor 11 Stunden von black_adept 1 Antw.
gelöst ALV TREE | Positionsänderung nach Double Click Event
vor 18 Stunden von Lukas R. 2 Antw.
Krypto-Wahn verstehen?
vor 16 Stunden von Moraim 2 Antw.
Beziehungswissen anwenden
Gestern von moo_jo 2 Antw.
gelöst ABAP - Application Log
Gestern von swonny 1 Antw.

  Ähnliche Beiträge beta
gelöst Scrollbalken bei ALV-Container
12.10.2016, 12:41 von Barney 2 Antw.
gelöst Container Splitter und Tabstrip
27.01.2017, 09:53 von ewx 1 Antw.
Html Container in ALV-Grid ausgeben
07.08.2007, 14:33 von MarkusW 1 Antw.
gelöst Container auswerten und in Struktur schreiben
04.02.2015, 16:15 von Kenny 2 Antw.
Spalte ausblenden
03.02.2006, 10:11 von DeathGuardian 7 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!