MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
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 01/06/09, 22:03:54
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
Problema con ALV ayuda

sALUDOS A TODOS ESTOY HACIENDO UN REPORTE CON ALV ,PERO TENGO UN PROBLEMA YA QUE AGREGUE 2 CAMPOS EXTRAS A MI TABLA INTERNA DONDE UNO DEPENDE DEL OTRO , ES DECIR DEL VALOR QUE TENGA UNO EN ESTE CASO (PA9111-ITRIBEN ) VOY A COLOCAR UN TEXTO (EFECITO O CHEQUE ) EN UN CAMPO QUE YO INVENTE EN MI TABLA TPT TYPE C.

AHORA UNA VEZ QUE HAGO MI CONSULTA A LAS TABLAS EL CAMPO TPT ME QUEDA VACIO PORQUE DEBO CONSULTAR PRIMERO A MI CAMPO ITRIBEN PARA SABER QUE VALOR VA , PERO CUANDO TRATO DE HACER UN LOOP PARA RECORRER LA TABLA INTERNA ME DICE QUE NO SE PUEDE QUE DEBE IR ACOMPAÑADO DE UN INTO O DE UN ASSSIGN , ES LA PRIMERA VEZ QUE HAGO UN ALV Y DE VERDAD QUE ME ESTA COSTANDO MUCHO ESA TONTERIA , ESPERO ME PUEDAN AYUDAR.
Responder Con Cita
  #2  
Viejo 01/06/09, 22:23:00
Avatar de luis999
luis999 luis999 is offline
Member
 
Fecha de Ingreso: jun 2008
Localización: Lima - Perú
Mensajes: 82
Smile

ese mensaje te debe salir porque tu tabla interna no la has declarado con cabecera:

DATA: IT_tabla TYPE STANDARD TABLE OF ...... WITH HEADER LINE.


O en todo caso puede declarar un área de trabajo ó trabajar con field-symbol

__________________
Luis Lipa
Responder Con Cita
  #3  
Viejo 01/06/09, 22:38:04
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
Este Es El Codigo De La Parte Donde Creo Que Hay Problema

report .

*========================== Global definitions ====================*

**
* Data Types
**

type-pools: slis.

types: begin of tp_data ,
pernr like pa9111-pernr,
perfil like pa9111-perfil,
finimedemb like pa9111-finimedemb,
mtunico like pa9111-mtunico,
porsmn like pa9111-porsmn,
cibenfr like pa9111-cibenfr,
nbbenfr like pa9111-nbbenfr,
tribunal like pa9111-tribunal,
numofic like pa9111-numofic,
fofc like pa9111-fofc,
numofcsup like pa9111-numofcsup,
status like pa9111-status,
bukrs like pa0001-bukrs,
abkrs like pa0001-abkrs,
ename like pa0001-ename,
icnum like pa0185-icnum,
intereses like zint_eval-intereses,
dsmotemb like z9hrmotemb-dsmotemb,
tstatus like z9hrtstemb-tstatus,
itriben LIKE pa9111-itriben,
tpt TYPE c,

end of tp_data,
tp_tbl_data type standard table of tp_data .

**
* Constants
**


**
* Data objects (variable declarations and definitions)
**

* Report data to be shown.
data: it_data type standard table of tp_data .

* Heading of the report.
data: t_heading type slis_t_listheader.

*======================= Selection Screen ==========================*

selection-screen: begin of block b1 with frame title text-t01.

DATA: w_aux_bukrs like pa0001-bukrs.
SELECT-OPTIONS s_bukrs for w_aux_bukrs OBLIGATORY .
DATA: w_aux_abkrs like pa0001-abkrs.
SELECT-OPTIONS s_abkrs for w_aux_abkrs OBLIGATORY .
DATA: w_aux_pernr like pa9111-pernr.
SELECT-OPTIONS s_pernr for w_aux_pernr .
DATA: w_aux_begda like pa9111-begda.
SELECT-OPTIONS s_begda for w_aux_begda .
DATA: w_aux_finimedemb like pa9111-finimedemb.
SELECT-OPTIONS s_fini03 for w_aux_finimedemb .
DATA: w_aux_status like pa9111-status.
SELECT-OPTIONS s_status for w_aux_status .
DATA: w_aux_codmotivo like pa9111-codmotivo.
SELECT-OPTIONS s_codm05 for w_aux_codmotivo .
DATA: w_aux_fofc like pa9111-fofc.
SELECT-OPTIONS s_fofc for w_aux_fofc .
DATA: w_aux_numofic like pa9111-numofic.
SELECT-OPTIONS s_numo07 for w_aux_numofic .
DATA: w_aux_tribunal like pa9111-tribunal.
SELECT-OPTIONS s_trib08 for w_aux_tribunal .

selection-screen: end of block b1.

*======================== Event Blocks =============================*
at selection-screen.

start-of-selection.

perform get_data using it_data .

end-of-selection.

perform build_alv using it_data t_heading.

*======================== Subroutines ==============================*

*&------------------------------------------------------------------*
*& Form get_data
*&------------------------------------------------------------------*
* Gets the information to be shown in the report.
*-------------------------------------------------------------------*
form get_data using t_data TYPE tp_tbl_data .

*DATA:t_data TYPE tp_tbl_data WITH HEADER LINE.

SELECT pa0001~bukrs
pa0001~abkrs
zint_eval~intereses
pa9111~pernr
pa0185~icnum
pa0001~ename
pa9111~perfil
pa9111~finimedemb
pa9111~mtunico
pa9111~porsmn
z9hrmotemb~dsmotemb
z9hrtstemb~tstatus
pa9111~cibenfr
pa9111~nbbenfr
pa9111~tribunal
pa9111~numofic
pa9111~fofc
pa9111~status
pa9111~numofcsup
pa9111~itriben
INTO CORRESPONDING FIELDS OF TABLE t_data
FROM pa9111 as pa9111
inner join pa0001 as pa0001 on pa9111~pernr = pa0001~pernr
inner join pa0185 as pa0185 on pa9111~pernr = pa0185~pernr
inner join zint_eval as zint_eval on pa9111~pernr = zint_eval~empleado
inner join z9hrmotemb as z9hrmotemb on pa9111~codmotivo = z9hrmotemb~codmotivo
inner join z9hrtstemb as z9hrtstemb on pa9111~status = z9hrtstemb~status
WHERE pa9111~pernr in s_pernr
AND pa9111~begda in s_begda
and pa9111~endda in s_begda
AND pa9111~finimedemb in s_fini03
AND pa9111~status in s_status
AND pa9111~codmotivo in s_codm05
AND pa9111~fofc in s_fofc
AND pa9111~numofic in s_numo07
AND pa9111~tribunal in s_trib08
AND pa0001~bukrs in s_bukrs
AND pa0001~abkrs in s_abkrs
.

DELETE ADJACENT DUPLICATES FROM t_data.


* AQUI ES DONDE QUIERO AGREGAR EL LOOP PARA ACTUALIZAR T_DATA

endform. " get_data
Responder Con Cita
  #4  
Viejo 02/06/09, 07:00:14
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
Como te comenta Luis999 si quieres hacer un loop para tratar las variables debes de crearte una tabla con un workarea o un workarea a parte o utilizar un fieldsymbol.
Lo más rápido sería que en la declaración de la tabla uses:
* Report data to be shown.
data: it_data type standard table of tp_data WITH HEADER LINE.
También podrías declararte un workarea independiente de esta forma:
data: wa_data LIKE LINE OF it_data.

Un saludo.
Responder Con Cita
  #5  
Viejo 02/06/09, 13:47:02
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
Podrian Explicarme Un Poco Mas Como Deberia Trabajarlo , Les Agradezco Mucho , Lo Que Me Interesa Es Que T_data Quede Con Los Datos Como Me Interesa Para Que El Proceso No Cambien , Osea Usa Wa_data ( Si Es El Caso ) Como Respostorio Para Agregar El Dato Al Campo Que Esta Vacio Y Luego Regresarlo A T_data. Espero Me Entiendan.
Responder Con Cita
  #6  
Viejo 02/06/09, 14:52:18
Avatar de luis999
luis999 luis999 is offline
Member
 
Fecha de Ingreso: jun 2008
Localización: Lima - Perú
Mensajes: 82
Para que puedas recorrer tu tabla interna , debes declararla de la siguiente forma:

types: begin of t_tabla,
campo1 like ....
campo2 like.....
end of t_tabla.

DATA: IT_tabla TYPE STANDARD TABLE OF t_tabla WITH HEADER LINE.

Espero que con esto te quede claro

__________________
Luis Lipa
Responder Con Cita
  #7  
Viejo 02/06/09, 16:51:10
martin89 martin89 is offline
Member
 
Fecha de Ingreso: may 2009
Mensajes: 53
que tal, vos declaraste la tabla que queres recorrer de la siguiente forma (según lo que vi)
data: it_data type standard table of tp_data .

El error que te aparece se da porque tu tabla no tiene cabecera o porque no la estas "loopeando" dentro de una estructura. Cuando vos recorres la tabla los datos deberán pasar a una estructura que tiene que tener exactamente los mismos campos y la misma distribución que la tabla. Para esto tenes que crearte una estructura, primero el tipo de estructura
types: begin of ty_data,
aca ban los campos de la tabla en el mismo orden
(campo type tabla-campo,)
end of ty_data.

Luego debes crear la estructura
data: wa_data type ty_data. (del tipo que creaste recién).

Si todo está bien tenés una estructura que contiene los mismos campos que la tabla, ahora debés realizar el LOOP. Para esto debes hacer el LOOP tutabla into wa_data. (La estructura que creaste).

Cada registro de la tabla pasará a la estructura y si tenes que trabajar con los datos trabajas directamente con la estructura, se entiende?

Salduos
Responder Con Cita
  #8  
Viejo 03/06/09, 17:54:20
Avatar de negrogho
negrogho negrogho is offline
Member
 
Fecha de Ingreso: ene 2007
Mensajes: 65
Talking

Presisamente ANICO antes de hacer el SELECT tienes comentada (*) una linea de como se debe declarar una tabla con linea de cabecera para que te permita hacer un Loop, asi es como se debe declarar la tabla

form get_data using t_data TYPE tp_tbl_data .

*DATA:t_data TYPE tp_tbl_data WITH HEADER LINE.

SELECT pa0001~bukrs ....

saludos
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 19:00:18.


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