MUNDOSAP

MUNDOSAP (foro/index.php)
-   Formularios - SAPScript - Smartforms (foro/forumdisplay.php?f=5)
-   -   SmartForm rs38l_fnam (foro/showthread.php?t=10239)

fer_saikyo 14/01/08 16:46:21

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!!

emilio.acuna 12/02/08 10:19:18

nombre_modulo_funcion TYPE rs38l_fnam.
 
Hola, ocurre isto conmigo también y no lo se que pasa :confused:

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.

cmejiab 12/02/08 15:55:18

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).

Adriana Anestoso 08/11/12 15:09:59

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.

Anthony Martinez 19/11/12 02:02:32

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.


Husos Horarios son GMT. La hora en este momento es 18:59:19.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web