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 20/04/07, 14:14:33
jlayana jlayana is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Mensajes: 3
f2code

Hola a todos, alguien me puede dar una idea un enlace de lectura, en donde se indique como se implementa el doble click o f2 en un lista, de tal forma que pueda abrir otra pantalla y mostrar mas información.

Gracias por su ayuda !

Javier
Responder Con Cita
  #2  
Viejo 20/04/07, 15:16:33
Avatar de Claudia Valdespino
Claudia Valdespino Claudia Valdespino is offline
Member
 
Fecha de Ingreso: mar 2007
Localización: Lima - Perú
Mensajes: 54
Hola Jlayana, lo que tienes que hacer para implementar el doble click en una lista es usar un USER_COMMAND como evento y ahi preguntar por el valor &IC1 que corresponde al doble click. Ahi capturas los datos del registro seleccionado y luego puedes hacer un CALL TRANSACTION pasando esos valores con SET PARAMETER ID.

Te mando un ejemplito para que te guies. El código que requieres está en el form init_event y en el form user_command


report zap_facturascompensadas message-id sabapdocu.

tables: bsak, lfa1, bkpf, zmcai, zcain.

* PARAMETROS DE SELECCION
selection-screen begin of block b1 with frame.
select-options:
bukrs for bsak-bukrs, "Sociedad
gjahr for bsak-gjahr, "Ejercicio
lifnr for bsak-lifnr, "Código proveedor
belnr for bsak-belnr default '5000000000' to '5099999999', "Nro doc
augbl for bsak-augbl, "Número de documento de compensación
augdt for bsak-augdt. "Fecha de compensación
selection-screen end of block b1.

* ALV
type-pools: slis.
data: gt_fieldcat type slis_t_fieldcat_alv with header line,
gs_layout type slis_layout_alv,
g_repid like sy-repid,
gt_events type slis_t_event.

* TABLA INTERNA DE FACTURAS COMPENSADAS PARA EL CATALOGO DE DATOS
data: begin of t_faccom occurs 0,
bukrs like bsak-bukrs, "Sociedad
belnr like bsak-belnr, "Documento SAP
gjahr like bsak-gjahr, "Ejercicio
budat like bsak-budat, "Fecha de contabilización
lifnr like bsak-lifnr, "Código proveedor
name1 like lfa1-name1, "Nombre proveedor
waers like bsak-waers, "Moneda
wrbtr like bsak-wrbtr, "Importe moneda original
dmbtr like bsak-dmbtr, "Importe moneda local
augbl like bsak-augbl, "Documento de compensación
augdt like bsak-augdt, "Fecha de compensación
blart like bsak-blart, "Tipo de documento
ncarin like zmcai-ncarin, "Carta de Instrucción
fechbco like zcain-fechbco, "Fecha actualizac.est.cheques
chect like zchek-chect, "Nº de cheque
zaldt like payr-zaldt, "Fecha de pago prevista
shkzg like bsak-shkzg, "Indicador debe/haber
end of t_faccom.

* TABLA INTERNA PARA LOS CODIGOS DE PROVEEDOR
data: begin of t_lifnr occurs 0,
lifnr like bsak-lifnr, "Código proveedor
end of t_lifnr.

* TABLA INTERNA PARA LOS NOMBRES DE PROVEEDORES
data: begin of t_lfa1 occurs 0,
lifnr like bsak-lifnr, "Código proveedor
name1 like lfa1-name1, "Nombre proveedor
end of t_lfa1.

* TABLA INTERNA PARA LOS DOCUMENTOS ANULADOS
data: begin of t_bkpf occurs 0,
bukrs like bsak-bukrs, "Sociedad
belnr like bsak-belnr, "Documento SAP
gjahr like bsak-gjahr, "Ejercicio
stblg like bkpf-stblg, "Número del doc. de anulación
stjah like bkpf-stjah, "Ejercicio del doc. de anulación
end of t_bkpf.

* TABLA PARA OBTENER LA INFORMACIÓN DEL CHEQUE
data t_payr like payr.

* INICIO
start-of-selection.
g_repid = sy-repid.
perform selec_facturas_compensadas.
perform init_fieldcat.
perform init_layout.
perform init_event.
perform report.


*&---------------------------------------------------------------------*
*& Form SELEC_FACTURAS_COMPENSADAS
*&---------------------------------------------------------------------*
form selec_facturas_compensadas .
refresh t_faccom.

* LLENA LA TABLA T_FACCOM CON DATOS DE FACTURAS COMPENSADAS DE LA BSAK
select * into corresponding fields of table t_faccom
from bsak where bukrs in bukrs and
gjahr in gjahr and
lifnr in lifnr and
belnr in belnr and
augbl in augbl and
augdt in augdt.

if sy-subrc <> 0.
message s888 with 'NO SE ENCONTRARON REGISTROS'.
stop.
endif.

sort t_faccom by bukrs belnr gjahr.

* CARGA SOLO LOS PROVEEDORES SIN REPETIRSE
loop at t_faccom.
t_lifnr-lifnr = t_faccom-lifnr.
collect t_lifnr.
clear t_faccom.
endloop.

* LLENA LA TABLA T_LFA1 CON LOS NOMBRES DE LOS PROVEEDORES
* SEGUN LOS CODIGOS DE LA T_LIFNR
select lifnr name1
from lfa1
into corresponding fields of table
t_lfa1 for all entries in t_lifnr
where lifnr = t_lifnr-lifnr.

sort t_lfa1 by lifnr.

* LLENA LA TABLA T_BKPF SEGUN LOS REGISTROS DE LA TABLA T_FACCOM
select bukrs belnr gjahr stblg stjah
from bkpf
into corresponding fields of table
t_bkpf for all entries in t_faccom
where bukrs = t_faccom-bukrs and
belnr = t_faccom-belnr and
gjahr = t_faccom-gjahr and
stblg <> ''.

sort t_bkpf by bukrs belnr gjahr.

* RECORRE LA TABLA T_BKPF Y ELIMINA DE LA TABLA T_FACCOM LOS DOCUMENTOS
* ANULADOS
loop at t_bkpf.
delete t_faccom where bukrs = t_bkpf-bukrs and
belnr = t_bkpf-belnr and
gjahr = t_bkpf-gjahr.
endloop.

perform carga_facturas_compensadas.
endform. " SELEC_FACTURAS_COMPENSADAS


*&---------------------------------------------------------------------*
*& Form CARGA_FACTURAS_COMPENSADAS
*&---------------------------------------------------------------------*
form carga_facturas_compensadas .
loop at t_faccom.
* OBTIENE EL NOMBRE DEL PROVEEDOR
read table t_lfa1 with key lifnr = t_faccom-lifnr binary search.
t_faccom-name1 = t_lfa1-name1.

* OBTIENE EL SIGNO DEL CAMPO
if t_faccom-shkzg = 'S'.
t_faccom-wrbtr = - t_faccom-wrbtr.
t_faccom-dmbtr = - t_faccom-dmbtr.
endif.

* OBTIENE LA CARTA DE INSTRUCCIÓN
clear: zmcai.
zmcai-gjahr = t_faccom-augdt(4). "Ejercicio doc. compensación
select single ncarin into t_faccom-ncarin
from zmcai
where zbukr = t_faccom-bukrs and
gjahr = zmcai-gjahr and
vblnr = t_faccom-augbl.

* OBTIENE LA CLASE DEL DOCUMENTO DE COMPENSACIÓN
select single blart into t_faccom-blart
from bsak
where bukrs = t_faccom-bukrs and
augdt = t_faccom-augdt and
belnr = t_faccom-augbl.

* OBTIENE LA FECHA DE ACTUALIZACIÓN DE ESTADOS DE CHEQUES
clear: zcain.
zcain-gjahr = t_faccom-augdt(4). "Ejercicio doc. compensación
select single fechbco into t_faccom-fechbco
from zcain
where zbukr = t_faccom-bukrs and
gjahr = zcain-gjahr and
ncarin = t_faccom-ncarin.

* OBTIENE EL NÚMERO DE CHEQUE Y LA FECHA DE PAGO PREVISTA
call function 'GET_CHECK_INFORMATION'
exporting
i_augbl = t_faccom-augbl
i_augdt = t_faccom-augdt
i_belnr = t_faccom-augbl
i_bukrs = t_faccom-bukrs
i_gjahr = t_faccom-gjahr
i_call = ''
importing
e_payr = t_payr
exceptions
not_found = 1
others = 2.

if sy-subrc = 0.
t_faccom-chect = t_payr-chect.
t_faccom-zaldt = t_payr-zaldt.
endif.

modify t_faccom.
endloop.
endform. " CARGA_FACTURAS_COMPENSADAS


*&---------------------------------------------------------------------*
*& Form INIT_FIELDCAT
*&---------------------------------------------------------------------*
form init_fieldcat .
clear gt_fieldcat.
refresh gt_fieldcat.

gt_fieldcat-fieldname = 'BUKRS'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Sociedad'.
gt_fieldcat-outputlen = '9'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'BELNR'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Documento'.
gt_fieldcat-outputlen = '11'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'BUDAT'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Fe.Contab.'.
gt_fieldcat-outputlen = '11'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'LIFNR'.
gt_fieldcat-ref_tabname = 'BSIK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Proveedor'.
gt_fieldcat-outputlen = '11'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'NAME1'.
gt_fieldcat-ref_tabname = 'LFA1'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Descripción'.
gt_fieldcat-outputlen = '40'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'WAERS'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Moneda'.
gt_fieldcat-outputlen = '7'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'WRBTR'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Importe MO'.
gt_fieldcat-outputlen = '11'.
gt_fieldcat-cfieldname = 'WAERS'.
gt_fieldcat-ctabname = 'T_FACCOM'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'DMBTR'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Importe ML'.
gt_fieldcat-outputlen = '11'.
gt_fieldcat-cfieldname = 'WAERS'.
gt_fieldcat-ctabname = 'T_FACCOM'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'AUGBL'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Doc.compensa'.
gt_fieldcat-outputlen = '13'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'AUGDT'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Fec.compensa'.
gt_fieldcat-outputlen = '13'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'BLART'.
gt_fieldcat-ref_tabname = 'BSAK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Clase'.
gt_fieldcat-outputlen = '6'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'NCARIN'.
gt_fieldcat-ref_tabname = 'ZMCAI'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Carta Instruc'.
gt_fieldcat-outputlen = '14'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'FECHBCO'.
gt_fieldcat-ref_tabname = 'ZCAIN'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Fecha de envío'.
gt_fieldcat-outputlen = '15'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'CHECT'.
gt_fieldcat-ref_tabname = 'ZCHEK'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Cheque'.
gt_fieldcat-outputlen = '9'.
append gt_fieldcat.
clear: gt_fieldcat.

gt_fieldcat-fieldname = 'ZALDT'.
gt_fieldcat-ref_tabname = 'PAYR'.
gt_fieldcat-tabname = 'T_FACCOM'.
gt_fieldcat-seltext_l = 'Fec.pago prevista'.
gt_fieldcat-outputlen = '18'.
append gt_fieldcat.
clear: gt_fieldcat.
endform. " INIT_FIELDCAT


*&---------------------------------------------------------------------*
*& Form INIT_LAYOUT
*&---------------------------------------------------------------------*
form init_layout .
gs_layout-zebra = 'X'.
endform. " INIT_LAYOUT


*&---------------------------------------------------------------------*
*& Form INIT_EVENT
*&---------------------------------------------------------------------*
form init_event .
data: c_formname_top_of_page type slis_formname value 'TOP_PAGE',
event type slis_alv_event.

event-name = slis_ev_top_of_page.
event-form = 'TOP_PAGE'.
append event to gt_events.

event-name = slis_ev_user_command.
event-form = 'USER_COMMAND'.
append event to gt_events.
endform. " INIT_EVENT


*&---------------------------------------------------------------------*
*& Form TOP_PAGE
*&---------------------------------------------------------------------*
form top_page.
write:/ sy-repid, 197(8) text-001, 207(10) sy-datum. "Fecha
write:/ sy-uname, 197(8) text-002, 207(8) sy-uzeit. "Hora
write:/100(21) text-004, 197(8) text-003, 207(1) sy-pagno. "Pagina
skip 1.
endform. "TOP_PAGE


*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when '&IC1'. "Doble Click
* Se lee la entrada seleccionada de la tabla T_FACCOM
read table t_faccom index rs_selfield-tabindex.
if sy-subrc = 0.
if rs_selfield-fieldname = 'BELNR'. "Documento SAP
set parameter id 'BLN' field t_faccom-belnr.
elseif rs_selfield-fieldname = 'AUGBL'. "Documento compensación
set parameter id 'BLN' field t_faccom-augbl.
endif.
set parameter id 'BUK' field t_faccom-bukrs.
set parameter id 'GJR' field t_faccom-gjahr.
call transaction 'FB03' and skip first screen.
endif.
endcase.
endform. "USER_COMMAND


*&---------------------------------------------------------------------*
*& Form REPORT
*&---------------------------------------------------------------------*
form report .
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events
tables
t_outtab = t_faccom
exceptions
program_error = 1
others = 2.
endform. " REPORT
__________________
Saludos,

Claudia V.
Responder Con Cita
  #3  
Viejo 04/06/07, 11:16:42
FBAENA FBAENA is offline
Junior Member
 
Fecha de Ingreso: may 2006
Mensajes: 9
hola, me ha parecido muy interesante tu report,,,

lo he querido probar y me da error en las tablas zcain y zmcai

como lo puedo solucionar?
Responder Con Cita
  #4  
Viejo 04/06/07, 12:50:24
BY_MY BY_MY is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Mensajes: 130
hola.

Al ser tablas Z supongo que en tu sistema no existiran con lo que o te las tendras que crear o tendras que dejar de usarlas en el REPORT.



un saludo.
Responder Con Cita
  #5  
Viejo 06/06/07, 17:09:35
Avatar de Claudia Valdespino
Claudia Valdespino Claudia Valdespino is offline
Member
 
Fecha de Ingreso: mar 2007
Localización: Lima - Perú
Mensajes: 54
Efectivamente, esas tablas no existen en tu sistema. Lo que puedes hacer es probar un reporte con tablas estandar... y darle doble click para que te llame a un detalle.
__________________
Saludos,

Claudia V.
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 22:28:00.


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