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 21/12/07, 09:45:16
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Problema con cabecera ALV

Hola a todos. Tengo un pequeño problema. Hace unos dias cree un programa con cabecera que hasta hoy iba bien...

Ahora me pasa que la cabecera sale en blanco...
e estado debuggeando y he podido ver que los datos se passan corrctamente a la tabla que luego va a la función 'REUSE_ALV_COMMENTARY_WRITE'...es decir..que tiene campos.

Lo que pasa es que dentro de la función hay un metodo que se llama "method get_row_count" que me devuelve un 4 en la variable SY-SUBRC. No se sipuede ser eso pero es que no se que mas mirar... Me podeis ayudar a localizar el error??? No puede ser muy gordo porque como digo...hasta hoy funcionaba. Os pego el códio entero de mi programa para que podais mirar con mas detalle.Solo os pego los FORMS que es donde esta toda la chicha. Considerad que el resto de variables y demas estan bien declardas. De echo el programa no peta..lo unico que la cabecera sale en blanco.

************************************************************************
* FORM: CATALOGO_ALV *
* *
************************************************************************
FORM CATALOGO_ALV.
CLEAR IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'RMZHL'.
WA_FIELDCAT-SELTEXT_L = 'Nº de Palet'.
WA_FIELDCAT-OUTPUTLEN = 9.
APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LMNGA'.
WA_FIELDCAT-SELTEXT_L = 'Cantidad'.
WA_FIELDCAT-OUTPUTLEN = 8.
APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MEINH'.
WA_FIELDCAT-SELTEXT_L = 'Unidad de medida'.
WA_FIELDCAT-OUTPUTLEN = 15.
WA_FIELDCAT-JUST = 'R'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BUDAT'.
WA_FIELDCAT-SELTEXT_L = 'Fecha de Contabilización'.
WA_FIELDCAT-OUTPUTLEN = 20.
WA_FIELDCAT-JUST = 'R'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.

ENDFORM. "CATALEG_ALV


************************************************************************
* FORM: LAYOUT_ALV *
* *
************************************************************************

FORM LAYOUT_ALV USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
LS_LAYOUT-ZEBRA = 'X'.
GS_LAYOUT-BOX_FIELDNAME = 'SELECCION'.
ENDFORM. "LAYOUT_ALV


*************************************************************************
* FORM: FUNCIÓN PARA MOSTRAR EL ALV POR PANTALLA *
* *
*************************************************************************
FORM MOSTRAR_ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
IT_FIELDCAT = IT_FIELDCAT
IS_LAYOUT = GS_LAYOUT
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
TABLES
T_OUTTAB = IT_OUT.
ENDFORM. "MOSTRAR_ALV


*************************************************************************
* FORM: SET_PF_STATUS *
* *
*************************************************************************
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STATUS_ALV'.
ENDFORM. " SET_PF_STATUS


***************************************************************************
* FORM: GENERAR_FICHERO *
* *
***************************************************************************
FORM GENERAR_FICHERO.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = TEXT-003
* FILETYPE = 'DAT'
APPEND = 'X'
* WRITE_FIELD_SEPARATOR = 'X'
* TRUNC_TRAILING_BLANKS = 'X'
TABLES
DATA_TAB = IT_FICHERO
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6.
IF SY-SUBRC NE 0.
MESSAGE TEXT-004 TYPE 'E'.
LEAVE PROGRAM.
ENDIF.
ENDFORM. "GENERAR_FICHERO


************************************************************************
* FORM: USER_COMMAND *
* *
************************************************************************
FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE RF_UCOMM.
WHEN 'GENERAR'.
CLEAR IT_FICHERO.
REFRESH IT_FICHERO.
READ TABLE IT_OUT INDEX P_SELFIELD-TABINDEX INTO IT_OUT2.

*QUITAMOS LOS CEROS A LA IZQUIERDA DE LOS CAMPOS PALET I CANTIDAD
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_OUT2-LMNGA
IMPORTING
OUTPUT = V_CEROS_CANT.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_OUT2-RMZHL
IMPORTING
OUTPUT = V_CEROS_PAL.

CONCATENATE 'Ha seleccionado el palet nº' V_CEROS_PAL INTO V_AVISO SEPARATED BY SPACE.
CONCATENATE V_AVISO '.'INTO V_AVISO3.
CONCATENATE 'A continuación deberá marcar nuevamente el palet nº' V_CEROS_PAL '!' INTO V_AVISO2 SEPARATED BY SPACE.
CONCATENATE 'OF' V_AUFNR '-' IT_OUT2-RMZHL V_MATNR INTO IT_FICHERO-OFIPRODUCTO.
IT_FICHERO-CANTIDAD = IT_OUT2-LMNGA.
IT_FICHERO-FECHA_NOTI = IT_OUT2-BUDAT.
APPEND IT_FICHERO.

*PREPARAMOS LOS DATOS QUE CONSTARAN EN EL IMPRESO
CONCATENATE '<H>PRODUCTO:</> ' V_MATNR INTO V_LINIA1 SEPARATED BY SPACE.
CONCATENATE '<H>DESCRIPCIÓN:</> ' V_DESC_TMP INTO V_LINIA2 SEPARATED BY SPACE.
CONCATENATE '<H>OF:</> ' V_AUFNR INTO V_LINIA3 SEPARATED BY SPACE.
CONCATENATE '<H>PALET:</> ' V_CEROS_PAL INTO V_LINIA4 SEPARATED BY SPACE.
CONCATENATE '<H>CANTIDAD:</> ' V_CEROS_CANT 'UN' INTO V_LINIA5 SEPARATED BY SPACE.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
DATE_INTERNAL = SY-DATUM
IMPORTING
DATE_EXTERNAL = V_DATE
EXCEPTIONS
DATE_INTERNAL_IS_INVALID = 1
OTHERS = 2.
CONCATENATE
'<H>FECHA DE ANULACIÓN:</> ' V_DATE INTO V_LINIA6 SEPARATED BY SPACE.
IF V_FLAG = 1.
EXIT.
ENDIF.
REFRESH IT_BDCDATA.

*REALIZAMOS EL BATCH-INPUT
CASE P_PRINT.

*SE REQUIERE EL IMPRESO.
WHEN 'X'.
CASE V_LINES.
WHEN 1.

PERFORM DYNPRO USING:

'X' 'SAPLCORU' '5100',
'' 'BDC_CURSOR' 'CORUF-AUFNR',
'' 'BDC_OKCODE' '/00',
'' 'CORUF-AUFNR' V_AUFNR,

'X' 'SAPLCORU' '5150',
'' 'BDC_OKCODE' '=BU',
'' 'BDC_SUBSCR' 'SAPLCORU 5830VAR_OPR_10',
'' 'BDC_SUBSCR' 'SAPLCORU 5850VAR_CNF_10',
'' 'BDC_CURSOR' 'AFRUD-LMNGA',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(03)',
'' 'BDC_OKCODE' '=TXOU',
'' 'RSTXT-TXPARGRAPH(02)' '*',
'' 'RSTXT-TXPARGRAPH(03)' 'C',
'' 'RSTXT-TXPARGRAPH(04)' '*',
'' 'RSTXT-TXPARGRAPH(05)' '*',
'' 'RSTXT-TXPARGRAPH(06)' '*',
'' 'RSTXT-TXPARGRAPH(07)' '*',
'' 'RSTXT-TXPARGRAPH(08)' '*',
'' 'RSTXT-TXPARGRAPH(09)' '*',
'' 'RSTXT-TXPARGRAPH(10)' '*',
'' 'RSTXT-TXPARGRAPH(11)' '*',
'' 'RSTXT-TXLINE(02)' '',
'' 'RSTXT-TXLINE(03)' V_LINIA,
'' 'RSTXT-TXLINE(04)' '',
'' 'RSTXT-TXLINE(05)' '',
'' 'RSTXT-TXLINE(06)' V_LINIA6,
'' 'RSTXT-TXLINE(07)' V_LINIA1,
'' 'RSTXT-TXLINE(08)' V_LINIA2,
'' 'RSTXT-TXLINE(09)' V_LINIA3,
'' 'RSTXT-TXLINE(10)' V_LINIA4,
'' 'RSTXT-TXLINE(11)' V_LINIA5,

'X' 'SAPLSTXC' '0100',
'' 'BDC_CURSOR' 'ITCPP-TDDEST',
'' 'BDC_OKCODE' '=PRNT',
'' 'ITCPP-TDDEST' 'DFW',
'' 'ITCPP-TDCOPIES' '1',
'' 'ITCPP-TDDATASET' 'SCRIPT',
'' 'ITCPP-TDSUFFIX1' 'HPCO',
'' 'ITCPP-TDSUFFIX2' SY-UNAME,
'' 'ITCPP-TDIMMED' 'X',
'' 'ITCPP-TDDELETE' 'X',
'' 'ITCPP-TDNEWID' 'X',
'' 'ITCPP-TDRECEIVER' SY-UNAME,
'' 'ITCPP-TDLIFETIME' '8',
'' 'ITCPP-TDARMOD' '1',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(08)',
'' 'BDC_OKCODE' '=TXBA'.

WHEN OTHERS.

CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'N'
DIAGNOSETEXT1 = V_AVISO3
TEXTLINE1 = V_AVISO2
TEXTLINE2 = 'Desea continuar?'
TITEL = 'Atención!'
START_COLUMN = 40
START_ROW = 7
IMPORTING
ANSWER = V_RESPUESTA.

CASE V_RESPUESTA.
WHEN 'N' OR 'A'.
EXIT.
ENDCASE.

PERFORM DYNPRO USING:
'X' 'SAPLCORU' '5100',
'' 'BDC_CURSOR' 'CORUF-AUFNR',
'' 'BDC_OKCODE' '/00',
'' 'CORUF-AUFNR' V_AUFNR,

'X' 'SAPLCORU' '0240',
'' 'BDC_OKCODE' '=BU',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(03)',
'' 'BDC_OKCODE' '=TXOU',
'' 'RSTXT-TXPARGRAPH(02)' '*',
'' 'RSTXT-TXPARGRAPH(03)' 'C',
'' 'RSTXT-TXPARGRAPH(04)' '*',
'' 'RSTXT-TXPARGRAPH(05)' '*',
'' 'RSTXT-TXPARGRAPH(06)' '*',
'' 'RSTXT-TXPARGRAPH(07)' '*',
'' 'RSTXT-TXPARGRAPH(08)' '*',
'' 'RSTXT-TXPARGRAPH(09)' '*',
'' 'RSTXT-TXPARGRAPH(10)' '*',
'' 'RSTXT-TXPARGRAPH(11)' '*',
'' 'RSTXT-TXLINE(02)' '',
'' 'RSTXT-TXLINE(03)' V_LINIA,
'' 'RSTXT-TXLINE(04)' '',
'' 'RSTXT-TXLINE(05)' '',
'' 'RSTXT-TXLINE(06)' V_LINIA6,
'' 'RSTXT-TXLINE(07)' V_LINIA1,
'' 'RSTXT-TXLINE(08)' V_LINIA2,
'' 'RSTXT-TXLINE(09)' V_LINIA3,
'' 'RSTXT-TXLINE(10)' V_LINIA4,
'' 'RSTXT-TXLINE(11)' V_LINIA5,

'X' 'SAPLSTXC' '0100',
'' 'BDC_CURSOR' 'ITCPP-TDDEST',
'' 'BDC_OKCODE' '=PRNT',
'' 'ITCPP-TDDEST' 'DFW',
'' 'ITCPP-TDCOPIES' '1',
'' 'ITCPP-TDDATASET' 'SCRIPT',
'' 'ITCPP-TDSUFFIX1' 'HPCO',
'' 'ITCPP-TDSUFFIX2' SY-UNAME,
'' 'ITCPP-TDIMMED' 'X',
'' 'ITCPP-TDDELETE' 'X',
'' 'ITCPP-TDNEWID' 'X',
'' 'ITCPP-TDRECEIVER' SY-UNAME,
'' 'ITCPP-TDLIFETIME' '8',
'' 'ITCPP-TDARMOD' '1',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(08)',
'' 'BDC_OKCODE' '=TXBA'.
ENDCASE.
*NO SE REQUIERE EL IMPRESO.
WHEN OTHERS.
CASE V_LINES.
WHEN 1.
PERFORM DYNPRO USING:

'X' 'SAPLCORU' '5100',
'' 'BDC_CURSOR' 'CORUF-AUFNR',
'' 'BDC_OKCODE' '/00',
'' 'CORUF-AUFNR' V_AUFNR,

'X' 'SAPLCORU' '5150',
'' 'BDC_OKCODE' '=BU',
'' 'BDC_SUBSCR' 'SAPLCORU 5830VAR_OPR_10',
'' 'BDC_SUBSCR' 'SAPLCORU 5850VAR_CNF_10',
'' 'BDC_CURSOR' 'AFRUD-LMNGA',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(03)',
'' 'BDC_OKCODE' '=TXBA'.
WHEN OTHERS.

CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'N'
DIAGNOSETEXT1 = V_AVISO3
TEXTLINE1 = V_AVISO2
TEXTLINE2 = 'Desea continuar?'
TITEL = 'Atención!'
START_COLUMN = 40
START_ROW = 7
IMPORTING
ANSWER = V_RESPUESTA.
CASE V_RESPUESTA.
WHEN 'N' OR 'A'.
EXIT.
ENDCASE.

PERFORM DYNPRO USING:
'X' 'SAPLCORU' '5100',
'' 'BDC_CURSOR' 'CORUF-AUFNR',
'' 'BDC_OKCODE' '/00',
'' 'CORUF-AUFNR' V_AUFNR,

'X' 'SAPLCORU' '0240',
'' 'BDC_OKCODE' '=BU',

'X' 'SAPLSTXX' '1100',
'' 'BDC_CURSOR' 'RSTXT-TXLINE(02)',
'' 'BDC_OKCODE' '=TXBA'.
ENDCASE.
ENDCASE.
ENDCASE.
CALL TRANSACTION 'CORS' USING IT_BDCDATA MODE 'E' MESSAGES INTO IT_MSG.
IF SY-SUBRC NE 0.
MESSAGE TEXT-009 TYPE 'E'.
LEAVE PROGRAM.
ELSE.
PERFORM GENERAR_FICHERO.
ENDIF.
MESSAGE TEXT-010 TYPE 'S'.
ENDFORM. "user_command


************************************************************************
* FORM: TOP-OF-PAGE *
* *
************************************************************************
FORM TOP-OF-PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
T_LINE LIKE WA_HEADER-INFO,
LD_LINES TYPE I,
LD_LINESC(10) TYPE C.

*ORDEN DE FABRICACIÓN
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'OF: '.
WA_HEADER-INFO = V_AUFNR.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.

*MATERIAL
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'Material: '.
WA_HEADER-INFO = V_MATNR.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.

*DESCRIPCIÓN
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'Descripción: '.
WA_HEADER-INFO = V_DESC_TMP.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM. "TOP-OF-PAGE


************************************************************************
* FORM: DYNPRO *
* *
************************************************************************
FORM DYNPRO USING P_DYNBEGIN P_CAMPO P_VALOR.
CLEAR IT_BDCDATA.
IF P_DYNBEGIN EQ 'X'.
MOVE: P_CAMPO TO IT_BDCDATA-PROGRAM,
P_VALOR TO IT_BDCDATA-DYNPRO,
P_DYNBEGIN TO IT_BDCDATA-DYNBEGIN.
ELSE.
MOVE: P_CAMPO TO IT_BDCDATA-FNAM,
P_VALOR TO IT_BDCDATA-FVAL.
ENDIF.
APPEND IT_BDCDATA.
ENDFORM. "DYNPRO


************************************************************************
* FORM: SELECT_AFRU *
* *
************************************************************************
FORM SELECT_AFRU.
SELECT AUFNR AENAM LTXA1 RMZHL TXTSP LMNGA MEINH BUDAT
FROM AFRU
INTO CORRESPONDING FIELDS OF TABLE IT_AFRU
WHERE AUFNR = P_AUFNR.

SELECT AUFNR BWART RMZHL
FROM AFFW
INTO CORRESPONDING FIELDS OF TABLE IT_AFFW
WHERE AUFNR = P_AUFNR
AND BWART = 102.
ENDFORM. "SELECT_AFRU


************************************************************************
* FORM: PROCESAR_DATOS *
* *
************************************************************************
FORM PROCESAR_DATOS.
DELETE IT_AFRU WHERE AENAM NE '' OR LTXA1 NE '' OR TXTSP NE ''.
LOOP AT IT_AFRU.
READ TABLE IT_AFFW WITH KEY RMZHL = IT_AFRU-RMZHL.
IF SY-SUBRC EQ 0.
DELETE IT_AFRU INDEX SY-TABIX..
ENDIF.
ENDLOOP.
LOOP AT IT_AFRU.
IT_AFRU-MEINH = 'UN'.
SELECT SINGLE MATNR CHARG
FROM CHVW
INTO IT_CHVW
WHERE AUFNR = IT_AFRU-AUFNR
AND BWART = '101'
AND WERKS = 'CENT'.
V_MATNR = IT_CHVW-MATNR.
V_CHARG = IT_CHVW-CHARG.
MOVE-CORRESPONDING IT_CHVW TO IT_OUT.
MOVE-CORRESPONDING IT_AFRU TO IT_OUT.
APPEND IT_OUT.
ENDLOOP.
SELECT SINGLE MAKTX
FROM MAKT
INTO V_DESC_TMP
WHERE MATNR = V_MATNR.
V_AUFNR = P_AUFNR.
ENDFORM. "PROCESAR_DATOS



Os adjuntio tambien una captura del fallo.

Muchas gracias a todos...y disculpad si es un poco a saco.
Imágenes Adjuntas
Tipo de Archivo: jpg Captura.JPG (58.3 KB, 19 visitas)
Responder Con Cita
  #2  
Viejo 23/12/07, 00:03:49
Avatar de Patricia33
Patricia33 Patricia33 is offline
Senior Member
 
Fecha de Ingreso: sep 2006
Localización: Puerto Rico
Mensajes: 148
Por casualidad actualizaste el Browser de internet?? Si es así tienes que aplicar un parche al sapgui.

Espero puedas resolver
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 15:40:13.


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