O Conhecimento

O conhecimento é inútil a menos que você o compartilhe.

Mostrando postagens com marcador EVENT. Mostrar todas as postagens
Mostrando postagens com marcador EVENT. Mostrar todas as postagens

sexta-feira, 17 de abril de 2015

ALV OO events

Pra Não esquecer nunca mais....ALV OO....e seus eventos.....

font: http://www.kerum.pl/infodepot/00006%7Chttp://www.kerum.pl/infodepot/00006


PROGRAM zkmalvev.

* 1. SE38: create executable program (type 1), use PROGRAM
*    instead of REPORT because it will have screen and modules
*
* 2. SE80: create screen 0100
*
* 3. Screen Painter: on the screen 0100 create 'Custom control'
*    CONT1_0100
*
* 4. SE80: for screen 0100 set the variable OK_CODE for the element OK
*
* 5. SE80: create calls to PBO and PAI in the flow logic of screen 0100:
*
*    PROCESS BEFORE OUTPUT.
*      MODULE pbo_0100.
*    PROCESS AFTER INPUT.
*      MODULE pai_0100.
*
* 6. SE80: create GUI Status STAT_0100, assign functions EXIT and SAVE
*    to standard icons, eventually create your own toolbar button

TYPE-POOLS:
  slis.

CLASS cl_event_receiver       DEFINITION DEFERRED.
CLASS cl_base_event_receiver  DEFINITION DEFERRED.

DATA:
  gt_usr                 TYPE TABLE OF usr02,
  gs_usr                 TYPE usr02.

DATA:
  go_grid                TYPE REF TO cl_gui_alv_grid,
  go_custom_container    TYPE REF TO cl_gui_custom_container,
  go_event_receiver      TYPE REF TO cl_event_receiver,
  go_base_event_receiver TYPE REF TO cl_base_event_receiver,
  ok_code                TYPE sy-ucomm,
  gt_fcat                TYPE lvc_t_fcat.

*----------------------------------------------------------------------*
*       CLASS cl_event_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS cl_event_receiver DEFINITION.

  PUBLIC SECTION.

    METHODS handle_right_click                  " RIGHT_CLICK
      FOR EVENT right_click OF cl_gui_alv_grid.

    METHODS handle_left_click_design            " LEFT_CLICK_DESIGN
      FOR EVENT left_click_design OF cl_gui_alv_grid.

    METHODS handle_move_control                 " MOVE_CONTROL
      FOR EVENT move_control OF cl_gui_alv_grid.

    METHODS handle_size_control                 " SIZE_CONTROL
      FOR EVENT size_control OF cl_gui_alv_grid.

    METHODS handle_left_click_run               " LEFT_CLICK_RUN
      FOR EVENT left_click_run OF cl_gui_alv_grid.

terça-feira, 13 de novembro de 2012

ALV GRID BOTÃO CHECK / UNCHECK

BLZ.......

Mais pra guardar....botão de check e uncheck de todas as linhas de um ALD GRID usando o REUSE_ALV_GRID_DISPLAY

Dado um relatorio.......


Temos a Saida ABAIXO:

 
 
Repare nos botões, abaixo:
 
 
 
 
Eles fazem o que dizem.........MARCAR TODOS.......e/ou DESMARCAR TODOS......
 
 
 
 
Atente que para este efeito temos que varrer todo o ALV e marcar e desmarcar o campo check......Para isso usamos o codigo abaixo: (para OO fazemos um pouco diferemte disso)

quinta-feira, 14 de junho de 2012

Dicas Uteis para uso no dia-a-dia ABAP'ers.....

Não me lembro onde vi....mas copiei...e encontrei por agora e resolvi compartilhar....

1 AVOID SELECT * (SELECT USING FIELD NAMES)
2 USE WHERE WITH AS MANY 'EQ' AND 'AND' TO RESTRICT DATA RETRIEVAL
3 AVOID SELECTS FROM THE SAME TABLE (SELECT ONCE AND PROCESS INTERNALLY)
4 USE BINARY SEARCH WHEN READING FROM INTERNAL TABLES
5 CHECK IF INTERNAL TABLE IS SORTED BEFORE READING WITH BINARY SEARCH
6 FETCH REQUIRED FIELDS USING TRANSPORTING WHEN READING INTERNAL TABLES
7 USE AS MANY PRIMARY AND SECONDARY INDEXES WHEN RETRIEVING DATA
8 USE SELECT 'SINGLE' RATHER THAN 'UP TO 1 ROWS '
9 USE 'BYPASSING BUFFER' FOR ONE TIME USE TABLES
10 USE INSERT <DBTAB> FROM TABLE <ITAB1> RATHER THAN INSERT INTO <DBTAB>
11 USE 'WITH KEY' WHEN READING FROM AN INTERNAL TABLE
12 SPECIFY KEY FIELDS WHEN SORTING AN INTERNAL TABLE
13 HAVE TYPE DECLARATIONS FOR PARAMETERS PASSED IN SUBROUTINES.
14 HAVE TYPE DECLARATIONS FOR FIELD-SYMBOLS
15 USE 'WHILE ... ENDWHILE' RATHER THAN 'DO ... ENDDO'
16 USE WHERE CLAUSE IN LOOP...ENDLOOP RATHER THAN CHECK CONSTRUCT WITHIN
17 USE WHERE CLAUSE IN SELECT...ENDSELECT THAN CHECK CONSTRUCT WITHIN
18 USE GET <DTABLE> FIELDS F1 F2 F3 ... INSTEAD OF ONLY GET <DTABLE>
19 FOR SMALL AMOUNTS OF DATA RETRIEVAL AVOID ORDER BY, USE SORT BY
20 REMOVE BREAK-POINT FROM THE CODE.
21 IN LOOP ...ENDLOOP WITH 'FROM/TO/WHERE', "AT" EVENTS ARE ERROR-PRONE
22 AVOID "ON CHANGE OF" EVENTS WITHIN 'SELECT...ENDSELECT'
23 IN LOOP... ENDLOOP , "ON CHANGE OF" EVENTS ARE ERROR-PRONE
24 USE %_HINTS IN THE WHERE CLAUSE TO SPECIFY THE INDEX TO BE USED.
25 INSTEAD OF NESTED SELECTS WITH FOR ALL ENTRIES USE SUB-QUERY OR JOIN
26 USE 'SELECT' WITH 'INTO TABLE' RATHER THAN 'SELECT...ENDSELECT'
27 USE MODIFY <DTABLE> FROM TABLE <ITAB> THAN WITHIN A ' LOOP ...ENDLOOP'
28 USE UPDATE <DTABLE> FROM TABLE <ITAB> THAN WITHIN A ' LOOP ...ENDLOOP'
29 USE INSERT <DTABLE> FROM TABLE <ITAB> THAN WITHIN A ' LOOP ...ENDLOOP'
30 USE DELETE <DTABLE> FROM TABLE <ITAB> THAN WITHIN A ' LOOP ...ENDLOOP'
31 AVOID SELECT FROM CLUSTER AND POOL TABLES
32 CHECK IF INTERNAL TABLE IS SORTED BEFORE LOOPING
33 CONFIRM IF RETURN CODES ARE CHECKED AFTER FUNCTION MODULE CALLS

quinta-feira, 5 de janeiro de 2012

Eventos Tela Manutenção

Para o evento 01 – antes de gravar os dados no banco de dados, da tela de manutenção gerada automaticamente, para consistir alterações/inclusões, segue codigo abaixo.


FORM check_alt_mat_comodato.*STATUS = EULG = ALTERAÇÃO
*STATUS = EALX = INCLUSÃO
*
*<ACTION> = N = NEW
*<ACTION> = D = DELETE
*<ACTION> = U = UPDATE

  
IF status 'EULG' AND <ACTION> 'U'.
    
MESSAGE s001(z_msg01WITH  'Itens não podem ser Alterados!' DISPLAY LIKE 'E'.
    
LEAVE SCREEN.
  
ENDIF.
ENDFORM.                    "CHECK_ALT_MAT_COMODATO




quinta-feira, 21 de julho de 2011

Creating transaction code for table maintenance (SM30)

LINK PARA CRIAR TRANSAÇÃO PADRÃO PARA TELA DE MANUTENÇÃO DO SAP.

http://www.sapdev.co.uk/dictionary/tips_tabmaint_tcode.htm


terça-feira, 21 de junho de 2011

Alteração em Manutenção de Tabela

PARA ALTERAR OS EVENTOS DA TELA DE MANUTENÇÃO PADRÃO DO SAP VOCE DEVE ACESSAR A SE56>>AMBIENTE>>MODIFICAÇÃO>>HORAS, DAÍ VOCE CRIA OS EVENTOS QUE QUER TRATAR DA NOME E FAZ AS ALTERAÇÕES VIA SE80 NOS FORMS CRIADOS DENTRO DO MODULO DE FUNÇÃO DA MANUTENÇÃO DA TABELA.



Código para eventos :

form saves.

 
if zmmt029-cto_origem is not initial and zmmt029-centro_espelho is not initial and zmmt029-div_espelho is not initial ).*  break abap.
*  zmmt029-usuario = sy-uname.
*  zmmt029-data = sy-datum.
*  zmmt029-hora = sy-uzeit.
datal_index like sy-tabix"Index to note the lines found
  
loop at total.
    
if <action> 'N'  "New Entry
    
or <action> 'U'"Update

       total+51
(12) = sy-uname.
       total+63
(8)  = sy-datum.
       total+71
(6)  = sy-uzeit.

      
modify total.
      
read table extract with key <vim_xtotal_key>.
      
if sy-subrc 0.
        l_index 
sy-tabix.
        
extract total.
        
modify extract index l_index.
      
else.
        
clear l_index.
      
endif.
    
endif.
  
endloop.
endif.

sy
-subrc 0.
endform.
form crias.
*  break abap.
  
if zmmt029-cto_origem is not initial and zmmt029-centro_espelho is not initial and zmmt029-div_espelho is not initial ).
  zmmt029
-usuario sy-uname.
  zmmt029
-data sy-datum.
  zmmt029
-hora sy-uzeit.
*  MODIFY zmmt029.
endif.
endform.        






quinta-feira, 9 de junho de 2011

links - Criar Eventos Manutenção Padrão

Solução para alterar eventos em Manutenção de Tabela Padrão SM30



Criar Eventos pela SM54 (evento 01 form saves) (evento 05 form crias) e depois programa-los no prog. Gerado.

Atualiza campos user,data,hora, on-line.

form saves.

 
if zmmt029-cto_origem is not initial and zmmt029-centro_espelho is not initial and zmmt029-div_espelho is not initial ).*  break abap.
*  zmmt029-usuario = sy-uname.
*  zmmt029-data = sy-datum.
*  zmmt029-hora = sy-uzeit.
datal_index like sy-tabix"Index to note the lines found
  
loop at total.
    
if <action> 'N'  "New Entry
    
or <action> 'U'"Update

       total+51
(12) = sy-uname.
       total+63
(8)  = sy-datum.
       total+71
(6)  = sy-uzeit.

      
modify total.
      
read table extract with key <vim_xtotal_key>.
      
if sy-subrc 0.
        l_index 
sy-tabix.
        
extract total.
        
modify extract index l_index.
      
else.
        
clear l_index.
      
endif.
    
endif.
  
endloop.
endif.

sy
-subrc 0.
endform.
form crias.
*  break abap.
  
if zmmt029-cto_origem is not initial and zmmt029-centro_espelho is not initial and zmmt029-div_espelho is not initial ).
  zmmt029
-usuario sy-uname.
  zmmt029
-data sy-datum.
  zmmt029
-hora sy-uzeit.
*  MODIFY zmmt029.
endif.
endform




 
Blogger Templates