domingo, 30 de septiembre de 2012
Averiguar en que transacción estamos
DATA w_dynpro TYPE sy-tcode.
CALL METHOD cl_dynpro=>get_current_transaction
RECEIVING
transaction_name = w_dynpro.
LEAVE TO TRANSACTION w_dynpro.
Crear un List box en pantalla
Para crear un list box en selection screen:
PARAMETERS: p_day TYPE char4 AS LISTBOX VISIBLE LENGTH 6 OBLIGATORY.
TYPE-POOLS: vrm.
DATA: l_sid TYPE vrm_id,
l_i_val TYPE vrm_values,
l_val LIKE LINE OF l_i_val.
INITIALIZATION.
l_sid = 'p_day'.
l_val-key = '0'.
l_val-text = 'SUN'.
APPEND l_val TO l_i_val.
l_val-key = '1'.
l_val-text = 'MON'.
APPEND l_val TO l_i_val.
l_val-key = '2'.
l_val-text = 'TUE'.
APPEND l_val TO l_i_val.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = l_sid
values = l_i_val
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
IF sy-subrc = 0.
ENDIF.
-----------------------------------------------------------------
Para crear un list box en una dynpro:
THE TOP INCLUDE:
TYPES: begin of stru_t161t,
BSTYP type t161t-BSTYP,
BSART type t161t-BSART,
BATXT type BATXT,
end of stru_t161t.
types : BEGIN OF STRU_TEXT, "STRUCTURE FOR FUNCTION MODULE
KEY(40) TYPE C, " FOR DROPDOWN BOX
TEXT(80) TYPE C,
END OF STRU_TEXT.
data : it_t161t type TABLE OF stru_t161t,
wa_t161t type stru_t161t,
it_text type TABLE OF STRU_TEXT,
wa_text type STRU_TEXT.
IN THE PBO:
MODULE STATUS_1000 OUTPUT.
SELECT
BSTYP
BSART
BATXT
into table it_t161t
from t161t
where bstyp = 'B'
and SPRAS = 'E'.
clear wa_text.
refresh it_text.
loop at it_t161t into wa_t161t.
move wa_t161t-bsart to wa_text-key.
move wa_t161t-batxt to wa_text-text.
append wa_text to it_text.
endloop.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = 'V_DRPDWN' "'V_DRPDWN' is the screen name of the dropdown field
VALUES = it_text
EXCEPTIONS
ID_ILLEGAL_NAME = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_1000 OUTPUT
Modificaciones en un documento buscarlas por tablas
SELECT SINGLE changenr
INTO w_changenr
FROM cdhdr
WHERE objectclas = 'VERKBELEG'
AND objectid = v_salesdocu "Numero de documento
AND udate = v_zfech_reg. "Fecha
SELECT SINGLE value_old
INTO w_contract_header_in-ord_reason
FROM cdpos
WHERE objectclas = 'VERKBELEG'
AND objectid = v_salesdocu
AND changenr = w_changenr
AND fname = 'AUGRU'. "Campo a buscar
Interlocutores de un documento
Para obtener el interlocutor de un documento, acceder a la tabla VBPA.
Ejemplo:
SELECT SINGLE kunnr
INTO w_kunnr
FROM vbpa
WHERE vbeln EQ v_doc_number
AND parvw EQ 'AG'.
Crear un ENTER en tiempo de ejecución
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = '=/00'
EXCEPTIONS
function_not_supported = 0
OTHERS = 0.
Radiobuttons en un ALV
Para utilizar radiobuttons en un alv, se puede mostrar en una celda de ALV el dibujo de un radiobutton como icono y capturar cuando se presiona sobre el para cambiarlo por el icono del radiobutton presionado.
Ejemplo:
INCLUDE <icons>.
DATA: BEGIN OF it_alv_flight OCCURS 0,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
radio1(4), "Radio button
radio2(4),
END OF it_alv_flight.
En fieldcat:
wa_fcat-fieldname = 'RADIO2'.
wa_fcat-tabname = 'IT_ALV_FLIGHT'.
wa_fcat-seltext_l = 'RADIO2'.
x_fieldcat-edit = c_x.
x_fieldcat-icon = c_x.
x_fieldcat-hotspot = c_x.
A la celda asignarle de valor inicial:
x_alv-pedidos = icon_wd_radio_button_empty. "Radio no seleccionado
en creación de alv definir el evento:
SET HANDLER lcl_event_receiver=>hotspot_click
FOR og_grid1.
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-DATA:
md_cnt TYPE i.
CLASS-METHODS:
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no
sender.
ENDCLASS.
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_hotspot_click.
* define local data
FIELD-SYMBOLS:
<ls_entry> TYPE ty_s_sflight,
<ld_fld> TYPE ANY.
READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.
CHECK ( <ls_entry> IS ASSIGNED ).
* Set all radio buttons "unselected"
<ls_entry>-button1 = icon_wd_radio_button_empty.
<ls_entry>-button2 = icon_wd_radio_button_empty.
<ls_entry>-button3 = icon_wd_radio_button_empty.
<ls_entry>-button4 = icon_wd_radio_button_empty.
ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>
TO <ld_fld>.
IF ( <ld_fld> IS ASSIGNED ).
* Set selected radio button "selected".
<ld_fld> = icon_wd_radio_button.
ENDIF.
* Force PAI followed by refresh of table display in PBO
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = 'DUMMY'
* IMPORTING
* RC =
.
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
Smartform signo de número a izquierda
Dentro de un smartform si queremos mostrar el signo de un número a la izquierda, en la ventana al momento de mostrar una variable utilizar:
&variable(<)&
&variable(<)&
Suscribirse a:
Entradas (Atom)