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 . |
Husos Horarios son GMT. La hora en este momento es 07:35:22. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web