#1
|
|||
|
|||
FUNCIONES como crear y llamarlas
Buenas noches a toda la comunidad recien estoy aprendiendo el lenguaje ABAP y en el ejercicio que desarrolle tengo unas llamadas de funciones y la respectiva creacion de cada funcion, lo que no comprendo es a que se debe o que estoy haciendo mal al llamar a una funcion de la sgte manera en esta linea: PERFORM FILL_RIGHT_CHARACTERS USING '*' CHANGING TEXTO2 porque al querer activar mi programita me sale error justo en esta linea en que llamo a esta funcion en cambio si esta linea la comento ya puedo activar mi programita, pero a que se debe el error ?? no comprendo, por favor desearia el apoyo de la comunidad del foro para despejarme esta duda y entender a que se debe el error y como seria la forma correcta de llamar a esta funcion?.
El codigo que desarrolle es el siguiente: TYPES: X_LINES TYPE STRING. DATA: T_TABLE TYPE STANDARD TABLE OF X_LINES. FIELD-SYMBOLS: <FS_TABLE> LIKE LINE OF T_TABLE. DATA: TEXTO2(30) TYPE C, AUX_TEXT(30) TYPE C, V_LEN TYPE I, V_LONG TYPE I, AUV TYPE STRING. SELECTION-SCREEN BEGIN OF BLOCK DEC_TO_BIN2 WITH FRAME. PARAMETERS: P_TEXTO(20) TYPE C. SELECTION-SCREEN END OF BLOCK DEC_TO_BIN2. START-OF-SELECTION. PERFORM INICIALIZAR4. * PERFORM FILL_RIGHT_CHARACTERS USING '*' CHANGING TEXTO2. PERFORM IMPRIMIR3 USING TEXTO2. PERFORM INICIALIZAR4. PERFORM CAPITALIZE_LETTERS CHANGING TEXTO2. PERFORM IMPRIMIR3 USING TEXTO2. PERFORM INICIALIZAR4. PERFORM SPLIT_LONG_TEXT TABLES T_TABLE USING TEXTO2. PERFORM IMPRIMIR_TABLA TABLES T_TABLE. PERFORM INICIALIZAR4. PERFORM REVERSE_STRING USING TEXTO2. PERFORM IMPRIMIR3 USING TEXTO2. FORM INICIALIZAR4. TEXTO2 = P_TEXTO. SKIP 1. ENDFORM. FORM IMPRIMIR_TABLA TABLES T_TAB. LOOP AT T_TAB ASSIGNING <FS_TABLE>. WRITE:/ <FS_TABLE>. ENDLOOP. ENDFORM. FORM IMPRIMIR3 USING L_TEXTO. WRITE:/ TEXTO2. ENDFORM. *LLENA UNA CADENA DE CARACTERES A LA DERECHA FORM FILL_RIGTH_CHARACTERS USING L_CHAR CHANGING L_TEXTO. V_LEN = STRLEN( L_TEXTO ). DESCRIBE FIELD L_TEXTO LENGTH V_LONG IN CHARACTER MODE. V_LEN = V_LONG - V_LEN. DO V_LEN TIMES. CONCATENATE L_TEXTO L_CHAR INTO L_TEXTO. ENDDO. ENDFORM. *CAPITALIZA UN TEXTO DADO FORM CAPITALIZE_LETTERS CHANGING L_TEXTO. TRANSLATE L_TEXTO TO LOWER CASE. SPLIT L_TEXTO AT SPACE INTO TABLE T_TABLE. CLEAR L_TEXTO. LOOP AT T_TABLE ASSIGNING <FS_TABLE>. V_LONG = STRLEN( <FS_TABLE> ). V_LONG = V_LONG - 1. AUX_TEXT = <FS_TABLE>+0(1). TRANSLATE AUX_TEXT TO UPPER CASE. CONCATENATE AUX_TEXT <FS_TABLE>+1(V_LONG) INTO AUX_TEXT. CONCATENATE L_TEXTO AUX_TEXT INTO L_TEXTO SEPARATED BY SPACE. SHIFT L_TEXTO LEFT DELETING LEADING SPACE. ENDLOOP. ENDFORM. FORM SPLIT_LONG_TEXT TABLES T_TAB USING L_TEXTO. CALL FUNCTION 'RSDG_WORD_WRAP' EXPORTING TEXTLINE = L_TEXTO DELIMITER = SPACE TABLES OUT_LINES = T_TAB EXCEPTIONS OUTPUTLEN_TOO_LARGE = 1 OTHERS = 2. DESCRIBE TABLE T_TAB LINES V_LEN. DELETE T_TAB INDEX V_LEN. ENDFORM. *INVIERTE UNA CADENA FORM REVERSE_STRING CHANGING L_TEXTO. CALL FUNCTION 'STRING_REVERSE' EXPORTING STRING = L_TEXTO LANG = SY-LANGU IMPORTING RSTRING = L_TEXTO EXCEPTIONS TOO_SMALL = 1 OTHERS = 2. ENDFORM. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|