MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   at line selection con call transaction (foro/showthread.php?t=11992)

robert_milan 26/03/08 15:26:21

Lo que necesitas ahora es el evento AT USER-COMMAND.

el codigo del hotspot es el &IC1

y solo despues debes teenr una variable aux = sy-curow - 2.

read table it_trazbi_sem index aux.

debido a que por defaul la primera linea se imprime en la linea 3

despues mandar este codigo:

SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
call TRANSACTION 'QA13' and SKIP FIRST SCREEN.

y listo

espero te sirva

saludos!!!

juanmgdelomana 27/03/08 08:38:03

Un código al hotspot???

robert_milan 27/03/08 08:42:38

cuando introduces un Status Z, el hot spot se le asigna automaticamente el codigo &IC1.

Saludos!!!

juanmgdelomana 27/03/08 09:28:17

No entiendo lo que quieres decir cuando dices que le he de asociar ese código al hotspot... Estoy un poco perdido con eso... He de tocar algo en mi status Z o tocar el código del programa?

Muchas gracias

robert_milan 27/03/08 09:44:29

en tu funcion

form write.

loop at it_trazbi_sem.
write: /, at 10 it_trazbi_sem-charg,
at 30 it_trazbi_sem-prueflos HOTSPOT.
hide it_trazbi_sem-prueflos.
endloop.
clear it_trazbi_sem.

endform.

Lo que puse en rojo, es el texto en Hotspot. por lo tanto cuando tu le pones el status Z ese campo se le asigna automaticamente el codigo &IC1.

entonces en el AT user-command.

debes poner algo asi:

case sy-ucomm.
when '&IC1'.
"Codigo X"
encase.

con esto ya tienes la funcionalidad del clic.

espero te quede mas claro.

juanmgdelomana 27/03/08 10:28:50

Ya había probado algo así, pero ahora no funciona nada, no hay que poner at line selectio o si? donde?

No entiendo que pasa!!!

Estoy un poco desesperado.

Te pongo el código que estoy probando a ver si me puedes ayudar. Gracias.

******************************************

REPORT ZQM_TRAZABILIDAD_SEM no STANDARD PAGE HEADING.

tables: caufv, qals.

data: va_aufnr like caufv-aufnr.

data: begin of it_aufnr occurs 0,
aufnr like caufv-aufnr.
data: end of it_aufnr.

data: begin of it_trazbi_sem occurs 0,
charg like qals-charg,
prueflos like qals-prueflos.
data: end of it_trazbi_sem.

SELECTION-SCREEN BEGIN OF BLOCK B0 WITH FRAME.
PARAMETERS: Ciclo like caufv-cy_seqnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ciclo.

START-OF-SELECTION.

perform selection.

end-of-SELECTION.

set PF-STATUS 'ZSTATUSTRAZABILIDAD'.

perform write.

CASE sy-ucomm.
WHEN 'MEDIA'.
PERFORM cal_media.
WHEN '&IC1'.
if not it_trazbi_sem-prueflos is initial.

SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
call TRANSACTION 'QA13' and SKIP FIRST SCREEN.

else.

MESSAGE s001(z1).

endif.
endcase.


form selection.

select aufnr
from caufv
into CORRESPONDING FIELDS OF TABLE it_aufnr
WHERE cy_seqnr = ciclo.


SELECT charg prueflos
from qals
into CORRESPONDING FIELDS OF table it_trazbi_sem
FOR ALL ENTRIES IN it_aufnr
where aufnr = it_aufnr-aufnr.

endform.

form write.

write: /, at 10 'LOTE', at 30 'TOLVA', at 50 'LOTE INSP.'.
write: /.
uline at 10(50).
loop at it_trazbi_sem.

write: /, at 30 it_trazbi_sem-charg,
at 50 it_trazbi_sem-prueflos HOTSPOT.
hide it_trazbi_sem-prueflos.

endloop.

clear it_trazbi_sem.

endform.

form cal_media.
write: /, 'Hola'.
endform.

robert_milan 27/03/08 10:31:10

antes del CASE sy-ucomm.

necesitas el AT USER-COMMAND.

Pruebalo.

REPORT ZQM_TRAZABILIDAD_SEM no STANDARD PAGE HEADING.

tables: caufv, qals.

data: va_aufnr like caufv-aufnr.

data: begin of it_aufnr occurs 0,
aufnr like caufv-aufnr.
data: end of it_aufnr.

data: begin of it_trazbi_sem occurs 0,
charg like qals-charg,
prueflos like qals-prueflos.
data: end of it_trazbi_sem.

SELECTION-SCREEN BEGIN OF BLOCK B0 WITH FRAME.
PARAMETERS: Ciclo like caufv-cy_seqnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ciclo.

START-OF-SELECTION.

perform selection.

end-of-SELECTION.

set PF-STATUS 'ZSTATUSTRAZABILIDAD'.

perform write.

AT user-command.

CASE sy-ucomm.
WHEN 'MEDIA'.
PERFORM cal_media.
WHEN '&IC1'.
if not it_trazbi_sem-prueflos is initial.

SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
call TRANSACTION 'QA13' and SKIP FIRST SCREEN.

else.

MESSAGE s001(z1).

endif.
endcase.


form selection.

select aufnr
from caufv
into CORRESPONDING FIELDS OF TABLE it_aufnr
WHERE cy_seqnr = ciclo.


SELECT charg prueflos
from qals
into CORRESPONDING FIELDS OF table it_trazbi_sem
FOR ALL ENTRIES IN it_aufnr
where aufnr = it_aufnr-aufnr.

endform.

form write.

write: /, at 10 'LOTE', at 30 'TOLVA', at 50 'LOTE INSP.'.
write: /.
uline at 10(50).
loop at it_trazbi_sem.

write: /, at 30 it_trazbi_sem-charg,
at 50 it_trazbi_sem-prueflos HOTSPOT.
hide it_trazbi_sem-prueflos.

endloop.

clear it_trazbi_sem.

endform.

form cal_media.
write: /, 'Hola'.
endform.

juanmgdelomana 27/03/08 10:46:42

Añadiendo el at-user command sigue sin funcionar...:(

robert_milan 27/03/08 10:57:54

Haber prueba el codigo que te voy a pasar.
 
Vuelve a probar esto!!!!!

REPORT zqm_trazabilidad_sem NO STANDARD PAGE HEADING.

TABLES: caufv, qals.

DATA: va_aufnr LIKE caufv-aufnr.

DATA: aux LIKE sy-tabix.

DATA: BEGIN OF it_aufnr OCCURS 0,
aufnr LIKE caufv-aufnr.
DATA: END OF it_aufnr.

DATA: BEGIN OF it_trazbi_sem OCCURS 0,
charg LIKE qals-charg,
prueflos LIKE qals-prueflos.
DATA: END OF it_trazbi_sem.

SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.
PARAMETERS: ciclo LIKE caufv-cy_seqnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ciclo.

START-OF-SELECTION.

PERFORM selection.

set PF-STATUS 'ZSTATUSTRAZABILIDAD'.

END-OF-SELECTION.
PERFORM write.

AT USER-COMMAND.

CASE sy-ucomm.
WHEN 'MEDIA'.
PERFORM cal_media.
WHEN '&IC1'.
aux = sy-curow - 4.
READ TABLE it_trazbi_sem INDEX aux.
IF sy-subrc = 0.
SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
CALL TRANSACTION 'QA13' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.






*---------------------------------------------------------------------*
* FORM selection *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM selection.

SELECT aufnr
FROM caufv
INTO CORRESPONDING FIELDS OF TABLE it_aufnr
WHERE cy_seqnr = ciclo.


SELECT charg prueflos
FROM qals
INTO CORRESPONDING FIELDS OF TABLE it_trazbi_sem
FOR ALL ENTRIES IN it_aufnr
WHERE aufnr = it_aufnr-aufnr.

ENDFORM.

*---------------------------------------------------------------------*
* FORM write *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM write.

WRITE: /, AT 10 'LOTE', AT 30 'TOLVA', AT 50 'LOTE INSP.'.
WRITE: /.
ULINE AT 10(50).
LOOP AT it_trazbi_sem.

WRITE: /30 it_trazbi_sem-charg,
50 it_trazbi_sem-prueflos HOTSPOT.
HIDE it_trazbi_sem-prueflos.

ENDLOOP.
CLEAR it_trazbi_sem.
ENDFORM.

*---------------------------------------------------------------------*
* FORM cal_media *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM cal_media.
WRITE: /, 'Hola'.
ENDFORM.
con esto solo le debes dar clic al lote que quieres visualizar.

juanmgdelomana 27/03/08 11:04:47

He probado tu código y no funciona la llamada al call transactión...

Con este código funcionaba, pero claro el status estaba comentado...:

confused:

REPORT ZQM_TRAZABILIDAD_SEM no STANDARD PAGE HEADING.

tables: caufv, qals.

data: va_aufnr like caufv-aufnr.

data: begin of it_aufnr occurs 0,
aufnr like caufv-aufnr.
data: end of it_aufnr.

data: begin of it_trazbi_sem occurs 0,
charg like qals-charg,
prueflos like qals-prueflos.
data: end of it_trazbi_sem.

SELECTION-SCREEN BEGIN OF BLOCK B0 WITH FRAME.
PARAMETERS: Ciclo like caufv-cy_seqnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ciclo.

START-OF-SELECTION.

perform selection.

end-of-SELECTION.

*set PF-STATUS 'ZSTATUSTRAZABILIDAD'.

perform write.

at LINE-SELECTION.





if not it_trazbi_sem-prueflos is initial.

SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
call TRANSACTION 'QA13' and SKIP FIRST SCREEN.

else.

MESSAGE s001(z1).

endif.


form selection.

select aufnr
from caufv
into CORRESPONDING FIELDS OF TABLE it_aufnr
WHERE cy_seqnr = ciclo.


SELECT charg prueflos
from qals
into CORRESPONDING FIELDS OF table it_trazbi_sem
FOR ALL ENTRIES IN it_aufnr
where aufnr = it_aufnr-aufnr.

endform.

form write.

write: /, at 10 'LOTE', at 30 'TOLVA', at 50 'LOTE INSP.'.
write: /.
uline at 10(50).
loop at it_trazbi_sem.

write: /, at 30 it_trazbi_sem-charg,
at 50 it_trazbi_sem-prueflos HOTSPOT.
hide it_trazbi_sem-prueflos.

endloop.

clear it_trazbi_sem.

endform.

form cal_media.
write: /, 'Hola'.
endform.

AT USER-COMMAND.

CASE sy-ucomm.
WHEN 'MEDIA'.
PERFORM cal_media.
WHEN '&IC1'.

endcase.


Husos Horarios son GMT. La hora en este momento es 02:22:07.

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