|
#1
|
|||
|
|||
SmartForm rs38l_fnam
Hola! que significa ese tipo de dato y por cual lo puedo reemplazar? Mi SAP no lo tiene instalado y es la primera vez que lo voy a uilizar. Me podrian dar una mano, por favor? Gracias!!
|
#2
|
|||
|
|||
nombre_modulo_funcion TYPE rs38l_fnam.
Hola, ocurre isto conmigo también y no lo se que pasa
Estoy haciendo un SmartForm copiado de uno estandard y mi codigo esta hecho asi: 1) En en nodo interfase formulario y en la solapa Tablas hago la siguiente declaración: TAB1 LIKE TABLADIC1 TAB2 LIKE TABLADIC2 donde las tablas TABLADIC1 y TABLADIC2 son del diccionario SAP. 2) En el nodo definiciones globales y en la solapa datos globales tengo: AUX_TAB1 LIKE TABLADIC1 AUX_TAB2 LIKE TABLADIC2 En la sopala Incialización tengo declarado: PERFORM FORM1. PERFORM FORM2. Hasta aqui no tengo errores. 3) En la solapa Rutinas tengo lo siguiente error: Aleman: Zeile 0002 Sprachelement im Kontext nicht erlaubt Español: La partida 0002 en el contexto de la lengua no está permitida Codigo en esta solapa: DATA: BEGIN OFAUX_TAB1 OCCURS 0. INCLUDE STRUCTURE TABLADIC1. DATA: END OF AUX_TAB1. DATA: BEGIN OF AUX_TAB2 OCCURS 0. INCLUDE STRUCTURE TABLADIC2. DATA: END OF AUX_TAB2. DATA: nombre_modulo_funcion TYPE rs38l_fnam. FORM FORM1. CLEAR AUX_TAB1. REFRESH AUX_TAB1. CLEAR AUX_TAB2. REFRESH AUX_TAB2. SELECT * INTO CORRESPONDING FIELDS OF TABLE AUX_TAB1 FROM TABLADIC1. SELECT * INTO CORRESPONDING FIELDS OF TABLE AUX_TAB2 FROM TABLADIC1 INNER JOIN AUX_TAB1 ON AUX_TAB1~CAMPO1 = AUX_TAB2~CAMPO1. ENDFORM. FORM FORM2. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'NOMBRESMARTFORM' IMPORTING fm_name = nombre_modulo_funcion EXCEPTIONS no_form = 1 no_function_module = 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. CALL FUNCTION nombre_modulo_funcion TABLES TAB1 = AUX_TAB1 EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. Espero que alguien pueda ayudarme. Gracias por adelantado. Emilio Acuña. |
#3
|
|||
|
|||
Smartforms
Hola! Veo que utilizas todo el codigo en el smartforms, y estas declarando dos veces las tablas, lo que puedes hacer esque tus tablas aux las declares type table of, lo que entiendo que quieres hacer en la sola de tablas de interface esque recibe esas tablas , entonces esas tablas las llenas desde un z, almenos asi yo lo ago y en el inicializacion de datos globales puedo hacer uso de ellas, pero antes pregunta si estan llenas.....,, espero averte ayudado aaaa!! y se las mandas con la funcion tipo rs38l_fnam osea: DATA: modulo_funcion TYPE rs38l_fnam. data t_likp type standard table of likp. ** lleno la tabla t_likp con un select o con lo que quieras CALL FUNCTION modulo_funcion TABLES Ta_LIKP = t_likp "Ta_likp es la tabla que declare en el interface del formulario en la solapa tables EXCEPTIONS formattting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. *if sy-subrc <> 0. *endif. Úlima edición por Adriana Anestoso fecha: 08/11/12 a las 15:14:21. |
#4
|
|||
|
|||
El RS38L_FNAM
Es un elemento de dato, q almacena el nombre de la funcion que genera el SmartForm (El SmartForm en el fondo crea una funcion). |
#5
|
|||
|
|||
FORM 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?.
Mi post lo crees en este link: 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 | |
|
|