PDA

Ver la Versión Completa : Definicon de Tabla en Smartform


amam2605
05/06/14, 20:12:18
Hola a todos, necesito definir una tabla interna en un smartforms cuyos campos son: Como y donde s erealiza esto? Gracias de Antemano

CTNUMBER LIKE WITH_ITEM-CTNUMBER, " No. Comprobante
BELNR LIKE BSAK-BELNR, " No. Documento
BUZEI LIKE BSAK-BUZEI, " No. posición del doc.
GJAHR LIKE BSAK-GJAHR, " Ejercicio del Documento
BLDAT LIKE BKPF-BLDAT, " Fecha del Documento
BUDAT LIKE BKPF-BUDAT, " Fecha de Contabilización
XBLNR LIKE BKPF-XBLNR, " No. de Factura
ZUONR LIKE BSAK-ZUONR, " No. de Control
USNAM LIKE BKPF-USNAM, " Código de Usuario
AUGBL LIKE WITH_ITEM-AUGBL, " Doc. Compensación
AUGDT LIKE WITH_ITEM-AUGDT, " Fecha Compensación
TIDOC(1) TYPE C, " Tipo de Documento
TITRA(8) TYPE C, " Tipo de Transacción
NOTAD LIKE BKPF-XBLNR, " No. Nota de Débito
NOTAC LIKE BKPF-XBLNR, " No. Nota de Crédito
F_AFE LIKE BKPF-XBLNR, " No. Factura Afectada

Ripper87
06/06/14, 12:37:04
En la pestaña "Tipos" del nodo "Definiciones Globales" creas la estructura:

TYPES: BEGIN OF ts_tabla,
CTNUMBER LIKE WITH_ITEM-CTNUMBER, " No. Comprobante
BELNR LIKE BSAK-BELNR, " No. Documento
BUZEI LIKE BSAK-BUZEI, " No. posición del doc.
GJAHR LIKE BSAK-GJAHR, " Ejercicio del Documento
BLDAT LIKE BKPF-BLDAT, " Fecha del Documento
BUDAT LIKE BKPF-BUDAT, " Fecha de Contabilización
XBLNR LIKE BKPF-XBLNR, " No. de Factura
ZUONR LIKE BSAK-ZUONR, " No. de Control
USNAM LIKE BKPF-USNAM, " Código de Usuario
AUGBL LIKE WITH_ITEM-AUGBL, " Doc. Compensación
AUGDT LIKE WITH_ITEM-AUGDT, " Fecha Compensación
TIDOC(1) TYPE C, " Tipo de Documento
TITRA(8) TYPE C, " Tipo de Transacción
NOTAD LIKE BKPF-XBLNR, " No. Nota de Débito
NOTAC LIKE BKPF-XBLNR, " No. Nota de Crédito
F_AFE LIKE BKPF-XBLNR, " No. Factura Afectada
END OF ts_tabla.

Luego creas el tipo tabla en la misma pestaña:

TYPES: tt_tabla TYPE TABLE OF ts_tabla.

Luego declaras tu tabla interna en la pestaña de datos globales con el tipo tt_tabla.

amam2605
10/06/14, 16:11:16
Hola !! Gracias por la informacion. Ahora estoy necesitando declarar un parameter y select options debido a que tengo en el programa lo siguiente: Donde se declara esto y como.

Muchas Gracias de Antemano.

Saludos

SELECTION-SCREEN BEGIN OF BLOCK BOX1 WITH FRAME TITLE TEXT-P01.
PARAMETERS: SOCIE LIKE BSAK-BUKRS MEMORY ID BUK OBLIGATORY.
SELECT-OPTIONS: EJERC FOR BSAK-GJAHR OBLIGATORY NO-EXTENSION,
FEC_R FOR BKPF-BUDAT OBLIGATORY NO-EXTENSION,
DOC_R FOR BSAK-BELNR,
COD_U FOR BKPF-USNAM,
ACREE FOR LFA1-LIFNR.
SELECTION-SCREEN END OF BLOCK BOX1.

SELECTION-SCREEN BEGIN OF BLOCK BOX2 WITH FRAME TITLE TEXT-P02.
SELECT-OPTIONS TIPO_R FOR WITH_ITEM-WITHT DEFAULT 'RF' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BOX2.

* ---------------------------------------------------------------------*
* INICIO DEL PROGRAMA
* ---------------------------------------------------------------------*
* Busqueda de información de la Sociedad
AT SELECTION-SCREEN ON SOCIE.
SELECT SINGLE * FROM T001 WHERE BUKRS EQ SOCIE.
IF SY-SUBRC NE 0.
MESSAGE E012 WITH SOCIE.
ELSE.
NOMSOC = T001-BUTXT. " Nombre de la sociedad
SELECT SINGLE * FROM ADRC WHERE ADDRNUMBER EQ T001-ADRNR.
DIRSOC = ADRC-STREET. " Dirección de la sociedad
RIFSOC = ADRC-SORT2. " RIF de la sociedad
ENDIF.



En la pestaña "Tipos" del nodo "Definiciones Globales" creas la estructura:

TYPES: BEGIN OF ts_tabla,
CTNUMBER LIKE WITH_ITEM-CTNUMBER, " No. Comprobante
BELNR LIKE BSAK-BELNR, " No. Documento
BUZEI LIKE BSAK-BUZEI, " No. posición del doc.
GJAHR LIKE BSAK-GJAHR, " Ejercicio del Documento
BLDAT LIKE BKPF-BLDAT, " Fecha del Documento
BUDAT LIKE BKPF-BUDAT, " Fecha de Contabilización
XBLNR LIKE BKPF-XBLNR, " No. de Factura
ZUONR LIKE BSAK-ZUONR, " No. de Control
USNAM LIKE BKPF-USNAM, " Código de Usuario
AUGBL LIKE WITH_ITEM-AUGBL, " Doc. Compensación
AUGDT LIKE WITH_ITEM-AUGDT, " Fecha Compensación
TIDOC(1) TYPE C, " Tipo de Documento
TITRA(8) TYPE C, " Tipo de Transacción
NOTAD LIKE BKPF-XBLNR, " No. Nota de Débito
NOTAC LIKE BKPF-XBLNR, " No. Nota de Crédito
F_AFE LIKE BKPF-XBLNR, " No. Factura Afectada
END OF ts_tabla.

Luego creas el tipo tabla en la misma pestaña:

TYPES: tt_tabla TYPE TABLE OF ts_tabla.

Luego declaras tu tabla interna en la pestaña de datos globales con el tipo tt_tabla.

Ripper87
10/06/14, 19:30:34
Tendras que pasarlos como parametros a la función de smartforms.

Para el caso de un PARAMETER, por ejemplo el campo SOCIE es una variable de tipo BUKRS común y corriente que tendrás que declararla en la pestaña IMPORT del smartform.

Para el caso de un SELECT-OPTION, ellos en el fondo son una tabla porque el usuario puede agregar multiples valores. Por ejemplo para el campo EJERC hay que declarar un Tipo Tabla con estructura de Rango (Todos los SELECT-OPTIONs son Rangos), afortunadamente como GJARH es un tipo estándar ya existe un tipo tabla en el diccionario que puedes usar: FKK_RT_GJAHR.

Entonces declaras el parametro en la pestaña TABLAS del smartform y le colocas tipo FKK_RT_GJAHR.

Ya en tu código cuando llames el módulo de función del smartform, tendrás que agregar tus campos como parametros EXPORT y TABLES respectivamente.

amam2605
14/08/14, 19:29:20
Gracias por tus informaciones.

Enriq
18/08/14, 16:59:03
Que tal, te recomiendo para que ahorres código y trabajo, mejor declara una estructura y la puedes usar tanto en tu programa de control como en el smartform y de esta forma te sera mas fácil hacer el paso de parámetros al smartform y tendrás menos errores.