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 26/01/10, 10:49:21
romario2 romario2 is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 233
Exclamation programa z de estandard

Hola compañeros,

parecía facil pero no.

Tengo que encontrar las descripciones de los campos de una dynpro ( no estan metidas en la dynpro) y además cuando le doy al F8 me sale un pop-up
con funciones (tiene forma de subscreen y lleva pestañas) que tengo que deshabilitar.

Alguna sugerencia ? GRACIAS DE ANTEMANO

Os paso el código( disculpad la parrafada) : no es tan sencillo como encontrar el término popup o el evento start-of-selection


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

REPORT RCNMASSCHANGE

AT SELECTION-SCREEN OUTPUT.
STATICS: FLG_FIRST_BATCH VALUE CON_YES.

* background processing? --> delete name of generated program,
* because of disappearance due to change of roll area
* roll area has to be regenerated
data l_maspar type mass_changes with header line.

if not sy-batch is initial.
macro_import_tcndb_for_batch.
l_maspar[] = p_maspar[].
loop at l_maspar where not abap_prog is initial.
clear l_maspar-abap_prog.
modify l_maspar index sy-tabix.
endloop.
p_maspar[] = l_maspar[].
endif.

IF P_MASCNG[] IS INITIAL.
* set/delete Icon-Okay in Pushbutton
PERFORM DRUCKTASTEN_ICON USING P_MASPAR CHANGING B_MASPAR.
* hide test indicator
IF P_MASPAR[] IS INITIAL.
LOOP AT SCREEN.
CHECK SCREEN-GROUP1 = 'TST'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
ENDLOOP.
ENDIF.

IMPORT FLG_CALL_POPUP CURRENT_TABNAME
FROM MEMORY ID 'RCNMASSCHANGE_POPUP'.
FREE MEMORY ID 'RCNMASSCHANGE_POPUP'.

*IU
IF FLG_CALL_POPUP = CON_YES.
* call popup for parameter input
FLG_CALL_POPUP = CON_NO.
SSCRFIELDS-UCOMM = 'MASP2'.
SY-UCOMM = 'MASP2'.
SUPPRESS DIALOG.
ENDIF.

ELSEIF SY-BATCH IS INITIAL.
IF FLG_FIRST_BATCH = CON_NO.
* leave report
LEAVE PROGRAM.
ELSE.
* call background processing (Popup)
FLG_FIRST_BATCH = CON_NO.
IF SY-BATCH IS INITIAL.
macro_export_tcndb_for_batch.
SSCRFIELDS-UCOMM = 'SJOB'.
SY-UCOMM = 'SJOB'.
FLG_SJOB = CON_YES.
ENDIF.
SUPPRESS DIALOG.
ENDIF.

ELSE.
* background call with transfered single changes
FLG_NO_STOP_INFO = CON_YES.
ENDIF.
"AT SELECTION-SCREEN OUTPUT .


*---------------------------------------------------------------------*
* AT SELECTION-SCREEN *
*---------------------------------------------------------------------*
* Selection Screen PAI (Process After Input) *
*---------------------------------------------------------------------*
AT SELECTION-SCREEN.
IF FLG_SJOB = CON_YES.
* execute report in background
FLG_SJOB = CON_NO.
macro_export_tcndb_for_batch.
SSCRFIELDS-UCOMM = 'SJOB'.
SY-UCOMM = 'SJOB'.
ENDIF.

CASE SSCRFIELDS-UCOMM.
WHEN 'MASP'.
* parameter input for mass data change
EXPORT P_MASPAR P_TEST CURRENT_TABNAME
TO MEMORY ID 'RCNMASSCHANGE_MASPAR'.
PERFORM MASSENAENDERUNG USING CON_YES.

WHEN 'MASP2'.

* If a temporary ABAP-program name had been generated for an ABAP
* after 'testing', 'executing', or 'execute in background' (with
* cancel), it would have been deleted here, due to an appearing dump
* LOAD_UNKNOWN_SUBPOOL when running 'testing' again


LOOP AT P_MASPAR ASSIGNING <MASPAR>
WHERE ABAP_PROG(2) = '%_'.
CLEAR <MASPAR>-ABAP_PROG.
ENDLOOP.
* parameter input for mass data changes
PERFORM MASSENAENDERUNG USING CON_YES.

WHEN 'ONLI'.
IF P_TEST IS INITIAL AND
NOT P_MASPAR[] IS INITIAL AND
P_MASCNG[] IS INITIAL.
* security popup
CALL FUNCTION 'MASS_SHOW_CONFIG_MESSAGE'
EXPORTING
ARBGB = 'M&'
MSGNR = '303'
EXCEPTIONS
USER_CANCEL = 1
MESSAGE_NOT_FOUND = 2
OTHERS = 3.
IF SY-SUBRC = 1.
CLEAR: SY-UCOMM,
SSCRFIELDS-UCOMM.
ENDIF.
ENDIF.
ENDCASE.
"AT SELECTION-SCREEN .


*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*
* possible call of mass data change *
*---------------------------------------------------------------------*
START-OF-SELECTION.
IF NOT P_MASCNG[] IS INITIAL.
PERFORM MASSENAENDERUNG USING CON_NO.
LEAVE PROGRAM.
ENDIF.
" START-OF-SELECTION .


*---------------------------------------------------------------------*
* GET PROJ *
*---------------------------------------------------------------------*
* get project definition *
*---------------------------------------------------------------------*
_GET_PROJ.
APPEND PROJ TO PROJ_TAB.
"END GET PROJ .


*---------------------------------------------------------------------*
* GET PRPS_R *
*---------------------------------------------------------------------*
* get PSP-element *
*---------------------------------------------------------------------*
_GET_PRPS_R.
MOVE-CORRESPONDING PRPS_R TO PRPS_TAB.
APPEND PRPS_TAB TO PRPS_TAB.
"END GET PRPS_R .


*---------------------------------------------------------------------*
* GET PSMLST *
*---------------------------------------------------------------------*
* get milestone for PSP-element *
*---------------------------------------------------------------------*
_GET_PSMLST.
APPEND PSMLST TO PSMLST_TAB.
"END GET PSMLST .


*---------------------------------------------------------------------*
* GET AUFK *
*---------------------------------------------------------------------*
* get network *
*---------------------------------------------------------------------*
_GET_AUFK.
APPEND AUFK TO AUFK_TAB.
"END GET AUFK .


*---------------------------------------------------------------------*
* GET AFKO *
*---------------------------------------------------------------------*
* get network *
*---------------------------------------------------------------------*
_GET_AFKO.
APPEND AFKO TO AFKO_TAB.
MOVE-CORRESPONDING AFKO TO NETZ_KEY.
APPEND NETZ_KEY.
"END GET AFKO .


*---------------------------------------------------------------------*
* GET AFPO *
*---------------------------------------------------------------------*
* get network *
*---------------------------------------------------------------------*
_GET_AFPO.
APPEND AFPO TO AFPO_TAB.
"END GET AFPO .


*---------------------------------------------------------------------*
* GET ACT01 *
*---------------------------------------------------------------------*
* get activity or element for network *
*---------------------------------------------------------------------*
_GET_ACT01.
IF FLG_FIRST_ACT = CON_YES.
SORT NETZ_KEY BY AUFPL.
FLG_FIRST_ACT = CON_NO.
ENDIF.

MOVE-CORRESPONDING ACT01 TO AFVGD_TAB.
IF NOT NETZ_KEY-AUFPL = ACT01-AUFPL.
READ TABLE NETZ_KEY WITH KEY ACT01-AUFPL BINARY SEARCH.
IF NOT SY-SUBRC IS INITIAL.
SELECT AUFNR AUFPL FROM AFKO INTO CORRESPONDING FIELDS OF NETZ_KEY
UP TO 1 ROWS WHERE AUFPL = ACT01-AUFPL.
ENDSELECT.
ENDIF.
ENDIF.
AFVGD_TAB-AUFNRD = NETZ_KEY-AUFNR.
APPEND AFVGD_TAB.
"END GET ACT01 .


*---------------------------------------------------------------------*
* GET AFAB01 *
*---------------------------------------------------------------------*
* get relationship *
*---------------------------------------------------------------------*
_GET_AFAB01.
MOVE-CORRESPONDING AFAB01 TO AFABD_TAB.
IF AFAB01-NCH = CON_NO.
AFABD_TAB-NETZPL_VOR = AFAB01-AUFNR.
AFABD_TAB-VORN1 = AFAB01-VORNR.
AFABD_TAB-NETZPL_NCH = AFVGD_TAB-AUFNRD.
AFABD_TAB-VORN2 = ACT01-VORNR.
ELSE.
AFABD_TAB-NETZPL_VOR = AFVGD_TAB-AUFNRD.
AFABD_TAB-VORN1 = ACT01-VORNR.
AFABD_TAB-NETZPL_NCH = AFAB01-AUFNR.
AFABD_TAB-VORN2 = AFAB01-VORNR.
ENDIF.
APPEND AFABD_TAB.
"END GET AFAB01 .


*---------------------------------------------------------------------*
* GET MLSTD *
*---------------------------------------------------------------------*
* get milestone for activity *
*---------------------------------------------------------------------*
_GET_MLSTD.
APPEND MLSTD TO MLSTD_TAB.
"END GET MLSTD .


*---------------------------------------------------------------------*
* GET RESB01 *
*---------------------------------------------------------------------*
* get component for activity *
*---------------------------------------------------------------------*
*_GET_RESB01.
* APPEND RESB01 TO RESBD_TAB.
"END GET RESB01 .

*---------------------------------------------------------------------*
* GET PRTE *
*---------------------------------------------------------------------*
* get component for activity *
*---------------------------------------------------------------------*
_GET_PRTE.
MOVE-CORRESPONDING PRTE TO PRTE_TAB. "v_n_1046574
APPEND PRTE_TAB. "^_n_1046574
"END GET RESB01

*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*
* call mass data change *
*---------------------------------------------------------------------*
END-OF-SELECTION.
* Has there been a selection of data?
IF PROJ_TAB[] IS INITIAL AND
PRPS_TAB[] IS INITIAL AND
PRTE_TAB[] IS INITIAL AND
PSMLST_TAB[] IS INITIAL AND
AUFK_TAB[] IS INITIAL AND
AFKO_TAB[] IS INITIAL AND
AFPO_TAB[] IS INITIAL AND
AFVGD_TAB[] IS INITIAL AND
AFABD_TAB[] IS INITIAL AND
MLSTD_TAB[] IS INITIAL AND
RESBD_TAB[] IS INITIAL AND
P_MASCNG[] IS INITIAL.
MESSAGE I600(OK).
* there has not been a selection of objects with the given selection *
* criterions
EXIT.
ENDIF.

PERFORM MASSENAENDERUNG USING CON_NO.
" END-OF-SELECTION .


*---------------------------------------------------------------------*
* FORM DRUCKTASTEN_ICON *
*---------------------------------------------------------------------*
* set or delete Okay-icon in push button text *
*---------------------------------------------------------------------*
* FLAG Indicator *
* BUTTON push button text *
*---------------------------------------------------------------------*
FORM DRUCKTASTEN_ICON USING FLAG
CHANGING BUTTON.
DATA: LONG_BUTTON(50).

IF FLAG IS INITIAL.
IF BUTTON CS ICON_OKAY.
* delete Okay-icon
SHIFT BUTTON LEFT BY 4 PLACES.
ENDIF.

ELSEIF BUTTON NS ICON_OKAY.
* paste Okay-icon
CONCATENATE ICON_OKAY BUTTON INTO BUTTON.
* CALL FUNCTION 'ICON_CREATE'
* EXPORTING
* NAME = ICON_OKAY
* TEXT = BUTTON
* ADD_STDINF = ' '
* IMPORTING
* RESULT = LONG_BUTTON
* EXCEPTIONS
* ICON_NOT_FOUND = 1
* OUTPUTFIELD_TOO_SHORT = 2
* OTHERS = 3.
* BUTTON = LONG_BUTTON.
ENDIF.
ENDFORM. "DRUCKTASTEN_ICON .


*---------------------------------------------------------------------*
* FORM MASSENAENDERUNG *
*---------------------------------------------------------------------*
* Popup for input of mass data change parameters *
*---------------------------------------------------------------------*
* --> FLG_SELSCREEN Flag,if call takes place from selection screen *
*---------------------------------------------------------------------*
FORM MASSENAENDERUNG USING FLG_SELSCREEN TYPE C.
DATA: FLG_NO_DIALOG,
FLG_MAINTAIN_TABLES,
FLG_TEST,
FLG_ONLINE,
FLG_BATCH,
FLG_SAVE,
FLG_COPY.

DATA: ITAB_PRPS LIKE PRPS OCCURS 0 WITH HEADER LINE,
ITAB_AFABD LIKE PRPS OCCURS 0 WITH HEADER LINE.

* set parameter for function module mass data change
IF FLG_SELSCREEN = CON_YES.
* call on the Selection Screen
FLG_NO_DIALOG = CON_NO.
FLG_MAINTAIN_TABLES = CON_NO.
FLG_TEST = CON_YES.
FLG_ONLINE = CON_YES.
FLG_BATCH = CON_YES.
FLG_SAVE = CON_YES.
FLG_COPY = CON_YES.

ELSE.
* Call after data selection
IF P_MASPAR[] IS INITIAL AND
P_MASCNG[] IS INITIAL.
* IF SY-BATCH = CON_NO OR
* SY-CALLD = CON_YES.
FLG_NO_DIALOG = CON_NO.
FLG_TEST = CON_YES.
ELSE.
FLG_NO_DIALOG = CON_YES.
FLG_TEST = P_TEST.
ENDIF.
FLG_MAINTAIN_TABLES = CON_YES.
FLG_ONLINE = CON_YES.
FLG_BATCH = CON_YES.
FLG_SAVE = CON_YES.
FLG_COPY = CON_NO.
ENDIF.

SORT AUFK_TAB BY AUFNR.
SORT AFKO_TAB BY AUFNR.
SORT AFPO_TAB BY AUFNR.
SORT AFABD_TAB BY NETZPL_VOR VORN1 NETZPL_NCH VORN2.
DELETE ADJACENT DUPLICATES FROM AFABD_TAB
COMPARING NETZPL_VOR VORN1
NETZPL_NCH VORN2.

* call mass data change
CALL FUNCTION 'CNMASS_CALL_MASS_CHANGE_DATA'
EXPORTING
I_FLG_NO_DIALOG = FLG_NO_DIALOG
I_FLG_MAINTAIN_TABLES = FLG_MAINTAIN_TABLES
I_FLG_COMMIT = CON_YES
I_FLG_TEST = FLG_TEST
I_FLG_ONLINE = FLG_ONLINE
I_FLG_BATCH = FLG_BATCH
I_FLG_SAVE = FLG_SAVE
I_FLG_COPY = FLG_COPY
I_CURRENT_TABNAME = CURRENT_TABNAME
IMPORTING
E_FLG_TEST = FLG_TEST
E_FLG_ONLINE = FLG_ONLINE
E_FLG_BATCH = FLG_BATCH
E_FLG_SAVE = FLG_SAVE
E_CURRENT_TABNAME = CURRENT_TABNAME
TABLES
I_PROJ = PROJ_TAB
I_PRPS = PRPS_TAB
I_PRTE = PRTE_TAB
I_PSMLST = PSMLST_TAB
I_AUFK = AUFK_TAB
I_AFKO = AFKO_TAB
I_AFPO = AFPO_TAB
I_AFVGD = AFVGD_TAB
I_AFABD = AFABD_TAB
I_MLSTD = MLSTD_TAB
I_RESBD = RESBD_TAB
T_CHANGES = P_MASPAR
T_DETAILED_CHANGES = P_MASCNG
EXCEPTIONS
CANCEL = 1.
IF NOT SY-SUBRC IS INITIAL.
* mass data change aborted
IMPORT P_MASPAR P_TEST CURRENT_TABNAME
FROM MEMORY ID 'RCNMASSCHANGE_MASPAR'.
CLEAR: SY-UCOMM,
SSCRFIELDS-UCOMM.
EXIT.
ENDIF.

IF FLG_NO_DIALOG = CON_NO.
IF FLG_TEST = CON_YES.
* test changes
P_TEST = CON_YES.
SSCRFIELDS-UCOMM = 'ONLI'.
SY-UCOMM = 'ONLI'.
ELSEIF FLG_ONLINE = CON_YES OR
FLG_SAVE = CON_YES.
* execute changes directly
P_TEST = CON_NO.
SSCRFIELDS-UCOMM = 'ONLI'.
SY-UCOMM = 'ONLI'.
ELSEIF FLG_BATCH = CON_YES.
* execute changes in batch mode
macro_export_tcndb_for_batch.
P_TEST = CON_NO.
SSCRFIELDS-UCOMM = 'SJOB'.
SY-UCOMM = 'SJOB'.
ELSE.
* simple take-over of changes
IMPORT P_TEST FROM MEMORY ID 'RCNMASSCHANGE_MASPAR'.
FREE MEMORY ID 'RCNMASSCHANGE_MASPAR'.
CLEAR: SY-UCOMM,
SSCRFIELDS-UCOMM.
EXIT.
ENDIF.

* call Input-Popup again later
EXPORT FLG_CALL_POPUP FROM CON_YES CURRENT_TABNAME
TO MEMORY ID 'RCNMASSCHANGE_POPUP'.
ENDIF.
ENDFORM. "MASSENAENDERUNG .
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 18:05:30.


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