Closed PShumilov closed 3 years ago
Hi @PShumilov, it is the same issue like #41. I don't know why it is this way, but when I want to display grid in the popup, then the instance of grid should be created inside the PBO event of the popup.
If I could solve this problem then your issue and #41 would be solved. I need to check if there is a way for that.
Maybe you have an idea?
Cheers Łukasz
I tried to fix the bug different ways. In case that instance of grid should be created in PBO event I invented horrible bad solution (but it works). Maybe this could lead you to find good solvation.
I added new EXPORTING parametr eo_falv like io_falv in FM Z_FALV_DISPLAY and call it in method create for popup:
rv_falv->layout_save = 'A'.
rv_falv->variant-report = sy-cprog.
rv_falv->variant-username = sy-uname.
rv_falv->grid = cast #( rv_falv ).
if i_popup = abap_true.
call function 'Z_FALV_DISPLAY'
exporting
io_falv = rv_falv
iv_start_row = 1
iv_start_column = 1
importing
eo_falv = rv_falv
endif.
After create_by_copy in PBO event:
falv->pbo( iv_dynnr = iv_dynnr ).
falv->display( iv_force_grid = abap_true ).
LEAVE TO SCREEN 0.
Then replace "old" instance with instance of grid created in PBO:
if io_falv->screen eq io_falv->c_screen_popup.
call screen io_falv->screen starting at iv_start_column iv_start_row
ending at iv_end_column iv_end_row.
eo_falv ?= <out>->falv.
else.
call screen io_falv->screen.
endif.
Perfect, I haven't thought about such way! Thanks I will try to implement similar thing inside to get rid of create_by_copy :D
I'll keep you informed.
Please update your FALV, I've used your approach but bit pimped :)
I am creating a main GUI container in the screen and then I quit, then I pass it to grid object and now copying of objects is not necessary. :)
Thanks @fidley! it works
Hello @fidley! On zcl_falv inherition I add new methods and attributes. Before calling
lo_alv->display( ).
I uselo_alv->set_autosave( abap_true ).
. On redefinition method evf_user_command I try to get attribute autosave, but it is empty. It happends if class instance is created as popup screen. Ifi_popup = abap_false
evertything is OK. For example:I figured out that in metod create_by_copy creating new object. Can you fix it?