Creacion de un TextBox en Dynpro

posted under by Antonio Lopez

Codigo para insertar un ComboBox en un Dynpro parecido a los de Visual Basic, Debemos tener un input/output field en la pantalla, llamado "mes", etse field debe tener la propiedad "DropDown" en "ListBox".

********************
FLOW LOGIC DYNPROO
-----------------------
PROCESS BEFORE OUTPUT.
MODULE PBO. "STATUS_0100.

PROCESS AFTER INPUT.
MODULE PAI. "USER_COMMAND_0100.

PROCESS ON VALUE-REQUEST.
FIELD MES MODULE SET_DATA_MES.




Codigo:
***********************
*INCLUDE TOP
***********************
DATA:
itabitems like listitem occurs 0 with header line,


*****************
*INCLUDE OUTPUT
*****************
*----------------------------------------------------------------------*
* INCLUDE ZRF_0009O01 *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module PBO OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pbo OUTPUT.
SET PF-STATUS '009'.
SET TITLEBAR 'MAINTITLE '.

ENDMODULE. " PBO OUTPUT


************************
*INCLUDE INPUT
************************
*----------------------------------------------------------------------*
* INCLUDE ZRF_0009I01 *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module PAI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pai INPUT.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
PERFORM leave_program.
ENDCASE.

ENDMODULE. " PAI INPUT
*&---------------------------------------------------------------------*
*& Module SET_DATA_MES INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE set_data_mes INPUT.
IF CONT = 0.
CONT = 1.
itabitems-item = 'ENERO'. APPEND itabitems.
itabitems-item = 'FEBRERO'. APPEND itabitems.
itabitems-item = 'MARZO'. APPEND itabitems.
itabitems-item = 'ABRIL'. APPEND itabitems.
itabitems-item = 'MAYO'. APPEND itabitems.
itabitems-item = 'JUNIO'. APPEND itabitems.
itabitems-item = 'JULIO'. APPEND itabitems.
itabitems-item = 'AGOSTO'. APPEND itabitems.
itabitems-item = 'SEPTIEMBRE'. APPEND itabitems.
itabitems-item = 'OCTUBRE'. APPEND itabitems.
itabitems-item = 'NOVIEMBRE'. APPEND itabitems.
itabitems-item = 'DICIEMBRE'. APPEND itabitems.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CARRID'
value_org = 'S'
TABLES
value_tab = itabitems
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDMODULE. " SET_DATA_MES INPUT



******************************
*INCLUDE FORMS
******************************
*----------------------------------------------------------------------*
* INCLUDE ZRF_0009F01 *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form LEAVE_PROGRAM
*&---------------------------------------------------------------------*
FORM leave_program.
LEAVE PROGRAM.
ENDFORM. " LEAVE_PROGRAM

Simple Module Pool

posted under by Antonio Lopez
* Este module pool pretende introducirnos al mundo
* de la programacion, no es nada elaborado pero
* contiene las sentencias basicas SELECT, INSERT,
* DELETE para una tabla de nombre ZRF_T0024, cuyos
* campos son: ZRF_T0024-ID_CODIGO,
* ZRF_T0024-DESCRIPCION ZRF_T0024-DIAS. Necesitaremos
* crear una screen, con tres input/output fields de
* nombre igual que la tabla:
* ZRF_T0024-ID_CODIGO, ZRF_T0024-DESCRIPCION ZRF_T0024-DIAS.
* Este es el codigo.



*&--------------------------------------*
*& Include ZRF_602TOP *
*&--------------------------------------*
PROGRAM ZRF_0602.
TABLES:
ZRF_T0024. "CODIGOS DE MTTO


*&--------------------------------------*
*& screen *
*&--------------------------------------*
PROCESS BEFORE OUTPUT.
MODULE PBO.
*
PROCESS AFTER INPUT.
FIELD ZRF_T0024-ID_CODIGO MODULE DESPLIEGA_CODIGOS_MTTO.
MODULE PAI.



*&-------------------------------------*
*& Module PAI INPUT *
*&-------------------------------------*
module PAI input.

CASE SY-UCOMM.
WHEN 'ADD'.
PERFORM NUEVO_602.
WHEN 'DELT'.
PERFORM BORRAR_602.
WHEN 'CLEAN'.
PERFORM LIMPIAR_602.
WHEN 'SAVE'.
PERFORM GUARDAR_602.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
PERFORM exit_program.
ENDCASE.

endmodule. " PAI INPUT

*&-----------------------------------------*
*& Module PBO OUTPUT *
*&-----------------------------------------*
module PBO output.
SET PF-STATUS 'ZRF_602GUI'.
SET TITLEBAR 'MAINTITLE'.
endmodule. " PBO OUTPUT

*--------------------------------------*
* INCLUDE ZRF_602F01 *
*--------------------------------------*
*&----------------------*
*& Form NUEVO_602
*&----------------------*
form NUEVO_602.
DATA: TEMPO LIKE ZRF_T0024-ID_CODIGO.
SELECT MAX( ID_CODIGO ) FROM ZRF_T0024 INTO TEMPO.
ZRF_T0024-ID_CODIGO = TEMPO + 1.
endform. " NUEVO_602
*&------------------------*
*& Form BORRAR_602
*&------------------------*
form BORRAR_602.
DATA L_RESP.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'Eliminacion de registros!!!'
DIAGNOSE_OBJECT = ' '
text_question = '¿Desea eliminar el registro actual?'
TEXT_BUTTON_1 = 'si'(001)
ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = 'no'(002)
ICON_BUTTON_2 = ' '
IMPORTING
ANSWER = L_RESP.
IF L_RESP <> 'A'.
IF L_RESP = 1. "Sí
DELETE FROM ZRF_T0024 WHERE ID_CODIGO = ZRF_T0024-ID_CODIGO.
PERFORM LIMPIAR_602.
ENDIF.
ENDIF.
endform. " BORRAR_602
*&-------------------------*
*& Form LIMPIAR_602
*&-------------------------*
form LIMPIAR_602.
ZRF_T0024-ID_CODIGO = ''.
ZRF_T0024-DESCRIPCION = ''.
ZRF_T0024-DIAS = ''.
endform. " LIMPIAR_602
*&---------------------------*
*& Form GUARDAR_602
*&---------------------------*
form GUARDAR_602.
INSERT INTO ZRF_T0024 VALUES ZRF_T0024.
PERFORM LIMPIAR_602.

Google
 
top