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

ALV: множественный выбор по 1му клику.



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Wed Nov 21, 2012 11:27 am    Post subject: ALV: множественный выбор по 1му клику. Reply with quote

Всем привет! Не знаю даже, корректно ли назвал тему.

Задачка в следующем:

Имеется некий грид в котором включена опция множественного выбора:



Обычно приходится выбирать несколько строк через сочетание ctrl+mouse1.

Как можно сделать это по единому клику?

Через handle doubleclick опытным путем определил, что название самой кнопки выбора - "&&MARK&&". Но что с этим дальше делать, не понимаю...

Пытался что-то делать через хотспоты, но все тщетно - событие выбора по единому щелчку никак не удается отловить...
Back to top
View user's profile Send private message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Wed Nov 21, 2012 2:14 pm    Post subject: Reply with quote

Нашел нечто нужное, но все же не понимаю как такое сделать в контексте ALV.

Если зайти в редактор экрана и добавить таблицу, то в настройках можно выбрать опцию выделения строк:



И в технической информации написано: "You can also set the option dynamically in the program by assigning '1' to the variable mytable-LINE_SEL_MODE."

Но вопрос все равно остается открытым...
Back to top
View user's profile Send private message
alezhu
Специалист
Специалист



Joined: 29 Apr 2012
Posts: 86
Location: Spb

PostPosted: Wed Nov 21, 2012 4:04 pm    Post subject: Reply with quote

По моему никак. Разве, что заменить кнопки выбора на CHECKBOX - добавить поле к данным, поле это прописать в LAYOUT.
Можно еще попробовать покопать в сторону событий грида CLICK_ROW_COL и DELAYED_CHANGED_SEL_CALLBACK - запоминать выбранные строки, на события добавлять-удалять к этому списку еще одну строку и восстанавливать через SET_SELECTED_ROWS. Но вообще это извращение - Ctrl+LMB - стандарт по выбору отдельных строк и не только в SAP - возьмите EXCEL хотя бы или даже Проводник.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


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

PostPosted: Thu Nov 22, 2012 10:35 am    Post subject: Re: ALV: множественный выбор по 1му клику. Reply with quote

flex wrote:
Как можно сделать это по единому клику?

А как вы себе это представляете? Surprised
Я еще понимаю, по нажатию отдельной кнопки можно программно определить номера записей и вызвать SET_SELECTED_ROWS.
Но делать такую операцию по клику на (какой?) ячейке имхо негуманно для пользователя.

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
XXX_:)
Аналитик
Аналитик


Age: 41
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Thu Nov 22, 2012 10:47 am    Post subject: Reply with quote

Ну автор имел ввиду клик по левому столбцу, насколько я понял. чтобы дополнительно cntrl не нажимать. Как сделать не знаю. Привык, даже не задумываюсь о каком то неудобстве. Пускай и пользователи учатся, ИМХО.
_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
Удав
Гуру
Гуру


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

PostPosted: Thu Nov 22, 2012 11:20 am    Post subject: Reply with quote

XXX_:) wrote:
Пускай и пользователи учатся, ИМХО.

Это не ИМХО, это первое правило работы пользователя Wink

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Mon Nov 26, 2012 12:45 pm    Post subject: Reply with quote

Удав wrote:
XXX_:) wrote:
Пускай и пользователи учатся, ИМХО.

Это не ИМХО, это первое правило работы пользователя Wink


Я с вами полностью согласен. Но тут скорее мной интерес завладел.
Кстати в тр. SM34 - такая штука по-умолчанию.
Back to top
View user's profile Send private message
alezhu
Специалист
Специалист



Joined: 29 Apr 2012
Posts: 86
Location: Spb

PostPosted: Mon Nov 26, 2012 1:58 pm    Post subject: Reply with quote

flex wrote:

Кстати в тр. SM34 - такая штука по-умолчанию.


Там не ALV Grid, а TableControl
Back to top
View user's profile Send private message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Mon Nov 26, 2012 5:56 pm    Post subject: Reply with quote

alezhu wrote:
flex wrote:

Кстати в тр. SM34 - такая штука по-умолчанию.


Там не ALV Grid, а TableControl


Да, знаю. У меня там картинка как раз к TableControl.
Но почему-то мне кажется, что в глубине ALV такая же технология.
Могу ошибаться конечно.
Back to top
View user's profile Send private message
alezhu
Специалист
Специалист



Joined: 29 Apr 2012
Posts: 86
Location: Spb

PostPosted: Mon Nov 26, 2012 6:26 pm    Post subject: Reply with quote

flex wrote:

Но почему-то мне кажется, что в глубине ALV такая же технология.

Другая. Ну, вернее, если копать совсем глубоко, то там конечно WinAPI, окна, handle, обработка сообщений и тыды. Но чуть выше уже разные.
Back to top
View user's profile Send private message
sergiucz
Специалист
Специалист


Age: 41
Joined: 17 Feb 2012
Posts: 62

PostPosted: Tue Nov 27, 2012 4:40 pm    Post subject: Reply with quote

можешь примерно так сделать .

Code:
REPORT  ZFID_MM_ALVBUTON.
TYPES: BEGIN OF t_alvbutton,
icon TYPE string, "icon field
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF t_alvbutton.

DATA: it_alvbutton TYPE STANDARD TABLE OF t_alvbutton,
wa_alvbutton  TYPE t_alvbutton.

DATA:   ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.

-----
wa_alvbutton-icon = '@1X@'.
wa_alvbutton-kunnr = '0001'.
wa_alvbutton-name1 = 'Ura!!'.
APPEND wa_alvbutton to it_alvbutton.

-----

DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-seltext_l = &2.
ls_fieldcat-outputlen = &3.
ls_fieldcat-hotspot = &4. "X для декларирования как hotspot
ls_fieldcat-icon = &5. "X для декларирования как  icon
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.



m_fieldcat 'ICON' 'Принт' '20' 'X' 'X'. " здесь он как hotspot и как icon
m_fieldcat 'KUNNR' '№ дебитора.' '10' '' ''.
m_fieldcat 'NAME1' 'Название дебитора' '35' '' ''.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
        i_callback_program       = sy-cprog "'ZFID_FI_KLIENTBANK'
        i_callback_user_command  = 'USER_COMMAND'
   IT_FIELDCAT                       = lt_fieldcat

  TABLES
    t_outtab                          = it_alvbutton
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc <> 0.
 
ENDIF.



FORM USER_COMMAND USING ucomm LIKE sy-ucomm
v_selfld TYPE slis_selfield.

IF ucomm = '&IC1' AND v_selfld-fieldname = 'ICON'.
" ваш код
 BREAK-POINT.
ENDIF.
ENDFORM.

_________________
Начинаюший ABAP-er


Last edited by sergiucz on Tue Nov 27, 2012 5:55 pm; edited 4 times in total
Back to top
View user's profile Send private message
sergiucz
Специалист
Специалист


Age: 41
Joined: 17 Feb 2012
Posts: 62

PostPosted: Tue Nov 27, 2012 4:46 pm    Post subject: Reply with quote

Удав wrote:
XXX_:) wrote:
Пускай и пользователи учатся, ИМХО.

Это не ИМХО, это первое правило работы пользователя Wink


Но лучше сделать как удав сказал .
Пользователь должен хоть что то сделать Smile) А то привыкнет и ... Laughing

_________________
Начинаюший ABAP-er
Back to top
View user's profile Send private message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Thu Nov 29, 2012 5:05 pm    Post subject: Reply with quote

sergiucz wrote:
можешь примерно так сделать .


Нуу это другое немного) А насчет того, что Удав сказал, я полностью согласен. Но мной интерес овладел так сказать)
Back to top
View user's profile Send private message
sergiucz
Специалист
Специалист


Age: 41
Joined: 17 Feb 2012
Posts: 62

PostPosted: Thu Nov 29, 2012 5:21 pm    Post subject: Reply with quote

Quote:
Нуу это другое немного) А насчет того, что Удав сказал, я полностью согласен. Но мной интерес овладел так сказать)


Ну я имел ввиду что ты можешь не поставить там icon и уже выделить текущею строку по клику на это поле .

_________________
Начинаюший ABAP-er
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.