MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Formularios - SAPScript - Smartforms
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 14/01/08, 16:46:21
fer_saikyo fer_saikyo is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 6
Smile 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!!
Responder Con Cita
  #2  
Viejo 12/02/08, 10:19:18
emilio.acuna emilio.acuna is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Mensajes: 2
Thumbs down 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.
Responder Con Cita
  #3  
Viejo 12/02/08, 15:55:18
cmejiab cmejiab is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 13
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).
Responder Con Cita
  #4  
Viejo 08/11/12, 15:09:59
Adriana Anestoso Adriana Anestoso is offline
Junior Member
 
Fecha de Ingreso: abr 2012
Mensajes: 18
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.
Responder Con Cita
  #5  
Viejo 19/11/12, 02:02:32
Anthony Martinez Anthony Martinez is offline
Member
 
Fecha de Ingreso: nov 2012
Mensajes: 30
Smile 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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 18:33:20.


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