SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Теряеться формат на одном из 2-х alv на экране.



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Mon Jan 19, 2009 4:16 pm    Post subject: Теряеться формат на одном из 2-х alv на экране. Reply with quote

Доброго всем времени суток. У меня возникла проблема, есть экран с 2-мя под экранами, на каждом под экране по 2 alv. Когда делаю просто стандартный вывод работает нормально, а когда начинаю задавать формат вывода по умолчанию, скрываются поля вывода.
_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
vga
Мастер
Мастер


Age: 180
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Mon Jan 19, 2009 5:16 pm    Post subject: Reply with quote

Выкладывайте код, иначе гадать можно долго.
Back to top
View user's profile Send private message Blog Visit poster's website
Alex80
Старший специалист
Старший специалист


Age: 44
Joined: 24 Jan 2008
Posts: 129

PostPosted: Mon Jan 19, 2009 5:40 pm    Post subject: Re: Теряеться формат на одном из 2-х alv на экране. Reply with quote

Kostya wrote:
Доброго всем времени суток. У меня возникла проблема, есть экран с 2-мя под экранами, на каждом под экране по 2 alv. Когда делаю просто стандартный вывод работает нормально, а когда начинаю задавать формат вывода по умолчанию, скрываются поля вывода.
Может быть не разграничиваете варианты по гридам (поле log_group)?
Как-то так?
Code:
* Fill variant's parameters
    gs1_variant-report = sy-repid.
    gs1_variant-handle = sy-dynnr.
    gs1_variant-log_group = 'GRID1'.
    gs1_variant-username = sy-uname.

    gs1_variant-report = sy-repid.
    gs1_variant-handle = sy-dynnr.
    gs1_variant-log_group = 'GRID2'.
    gs1_variant-username = sy-uname.
Back to top
View user's profile Send private message
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Mon Jan 19, 2009 5:44 pm    Post subject: Reply with quote

Code:
CLEAR:  alv_variant_1.
  alv_variant_1-report = sy-repid.

CLEAR:  alv_variant_2.
  alv_variant_2-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = 'A'

    CHANGING
      cs_variant = alv_variant_1

    EXCEPTIONS
      not_found  = 2.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = 'A'

    CHANGING
      cs_variant = alv_variant_2

    EXCEPTIONS
      not_found  = 2.



clear: alv_struct_output[].
move wa_struct_output[] TO alv_struct_output[].

IF G_CONTAINER IS INITIAL.

   CREATE OBJECT G_CONTAINER
     EXPORTING
        CONTAINER_NAME = 'G_CONTAINER'.

   CREATE OBJECT grid_1
     EXPORTING
         I_PARENT = G_CONTAINER.

      it_s_fcat-outputlen = 5.
      it_s_fcat-fieldname = 'S_SY_TABIX_NUMBER'.
      it_s_fcat-coltext = '№'.
          APPEND it_s_fcat TO it_fcat.
          clear: it_s_fcat.


 ENDIF.


CALL METHOD grid_1->set_table_for_first_display
     EXPORTING
        i_structure_name  = 'struct_output'
        IS_VARIANT        = alv_variant_1
        i_default         = 'X'
        i_save            = 'A'

     CHANGING
        it_outtab         =  alv_struct_output
        it_fieldcatalog   =  it_fcat.
*--------------------- ALV_2 ------------

clear: alv_train_struct_output[].
move wa_train_struct_output[] TO alv_train_struct_output[].

IF T_CONTAINER  IS INITIAL.

   CREATE OBJECT T_CONTAINER
     EXPORTING
        CONTAINER_NAME = 'T_CONTAINER'.

   CREATE OBJECT grid_2
     EXPORTING
        I_PARENT = T_CONTAINER.

        it_s_fcat-outputlen   = 5.
        it_s_fcat-fieldname   = 'SY_TABIX'.
        it_s_fcat-coltext     = '№'.
            APPEND  it_s_fcat TO it_t_fcat.
            clear it_s_fcat.
ENDIF.

CALL METHOD grid_2->set_table_for_first_display
      EXPORTING
        i_structure_name  = 'train_struct_output'
        IS_VARIANT        = alv_variant_2
        i_default         = 'X'
        i_save            = 'A'

      CHANGING
        it_outtab         =  alv_train_struct_output
        it_fieldcatalog   =  it_t_fcat.

_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Mon Jan 19, 2009 5:52 pm    Post subject: Reply with quote

Сейчас попробую
_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Tue Jan 20, 2009 9:17 am    Post subject: Re: Теряеться формат на одном из 2-х alv на экране. Reply with quote

Kostya wrote:
Доброго всем времени суток. У меня возникла проблема, есть экран с 2-мя под экранами, на каждом под экране по 2 alv. Когда делаю просто стандартный вывод работает нормально, а когда начинаю задавать формат вывода по умолчанию, скрываются поля вывода.

Варианты для ALV должны иметь уникальные имена в рамках программы. Проверьте, что возвращает ФМ REUSE_ALV_VARIANT_DEFAULT_GET, посмотрите пример Alex80.
И еще - зачем получать имена вариантов по умолчанию - они и так прекрасно считываются при показе на экран, игнорируя варианты, которые указываются в set_table_for_first_display Wink

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Tue Jan 20, 2009 10:32 am    Post subject: Reply with quote

Удав, я выложил отрывки кода, там видно, что variant имеет уникальные названия для каждого грида. Сейчас у меня выводит экран с одним форматом верным для 1-го alv, но все остальные наследуют тот же формат - это не правильно. Мне нужно чтобы каждый из alv имел свой формат и выводил его как формат по умолчанию после сохранения.
_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
Alex80
Старший специалист
Старший специалист


Age: 44
Joined: 24 Jan 2008
Posts: 129

PostPosted: Tue Jan 20, 2009 11:16 am    Post subject: Reply with quote

Kostya wrote:
я выложил отрывки кода, там видно, что variant имеет уникальные названия для каждого грида.
Разные названия структур не означает того, что значение полей этих структур после второго вызова REUSE_ALV_VARIANT_DEFAULT_GET будет различно в случае Вашего кода.
Back to top
View user's profile Send private message
superbizon
Участник
Участник



Joined: 18 Dec 2008
Posts: 1

PostPosted: Tue Jan 20, 2009 12:10 pm    Post subject: Reply with quote

Вот здесь:
Code:
CLEAR:  alv_variant_1.
  alv_variant_1-report = sy-repid.

CLEAR:  alv_variant_2.
  alv_variant_2-report = sy-repid.


Нужно еще добавить
alv_variant_1-handle = 'ALV1'.
alv_variant_2-handle = 'ALV2'.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 180
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Jan 20, 2009 12:22 pm    Post subject: Reply with quote

Вам Alex80 правильно подсказал, за исключением, что длина поля log_group = 4 символа, поэтому напишите так

Code:
CLEAR:  alv_variant_1.
  alv_variant_1-report = sy-repid.
  alv_variant_1-log_group = 'GRD1'.
  alv_variant_1-username = sy-uname.

CLEAR:  alv_variant_2.
  alv_variant_2-report = sy-repid.
  alv_variant_2-log_group = 'GRD2'.
  alv_variant_2-username = sy-uname.
Back to top
View user's profile Send private message Blog Visit poster's website
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Tue Jan 20, 2009 12:44 pm    Post subject: Reply with quote

vga, Большое спасибо действительно, проблема была в том, что alv_variant_1-log_group = 'GRD1'.
должно быть 4 символа.

_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
Kostya
Участник
Участник


Age: 38
Joined: 15 Dec 2008
Posts: 9

PostPosted: Tue Jan 20, 2009 12:44 pm    Post subject: Reply with quote

Всем спасибо за советы!!
_________________
Никогда не знаешь, где окажешься завтра!
Back to top
View user's profile Send private message Send e-mail
Alex80
Старший специалист
Старший специалист


Age: 44
Joined: 24 Jan 2008
Posts: 129

PostPosted: Tue Jan 20, 2009 1:16 pm    Post subject: Reply with quote

vga wrote:
Вам Alex80 правильно подсказал, за исключением, что длина поля log_group = 4 символа
Как всегда copy/past подвёл Smile
В оригинале было log_group = 'MAIN'. А то я испугался уже, как у меня эта штука работала раньше.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.