Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

TABBED_SEL_SCREEN PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos
Domingo, 07 de Diciembre de 2003 06:57
Utilizando Subscreens en pantalla de selección de reports
REPORT tabbed_sel_screen.
*-- Definitions to hold user command for subscreens
DATA:
   ucomm1 LIKE SY-UCOMM,
   ucomm2 LIKE SY-UCOMM,
   ucomm3 LIKE SY-UCOMM.
*-- Macro to put checkbox on selection screen
*-- &1 - checbox parameter name
*-- &2 - text element (description)
*-- &3 - default value for checkbox
 define make_checkbox.
  SELECTION-SCREEN BEGIN OF LINE.
  PARAMETERS: &1 AS CHECKBOX DEFAULT &3.
  SELECTION-SCREEN COMMENT 3(60) &2.
  SELECTION-SCREEN END OF LINE.
 end-of-definition.
*-- Macro to put radiobutton on selection screen
*-- &1 - radiobutton parameter name
*-- &2 - text element (description)
*-- &3 - radiobutton group
 define make_radiobutton.
  SELECTION-SCREEN BEGIN OF LINE.
  PARAMETERS: &1 RADIOBUTTON GROUP &3.
  SELECTION-SCREEN COMMENT 3(60) &2.
  SELECTION-SCREEN END OF LINE.
 end-of-definition.
*-- Macro to put a parameter on selection screen
*-- &1 - parameter name
*-- &2 - text element (description)
*-- &3 - like data element
*-- &4 - default value
 define make_parameter.
  SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT 1(30) &2.
  SELECTION-SCREEN position pos_low.
  PARAMETERS: &1 LIKE &3 DEFAULT &4.
  SELECTION-SCREEN END OF LINE.
 end-of-definition.
*-- Macro to put a dropdown listbox on selection screen
*-- &1 - parameter name
*-- &2 - length of listbox
*-- &3 - default value
*-- &4 - text element (description)
 define make_dropdown.
  SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT 1(30) &4.
  SELECTION-SCREEN position pos_low.
  PARAMETERS: &1 AS listbox visible length &2 DEFAULT &3 obligatory.
  SELECTION-SCREEN END OF LINE.
 end-of-definition.
*-- Define subscreen for upload options
SELECTION-SCREEN BEGIN OF screen 1100 AS subscreen.
SELECTION-SCREEN BEGIN OF BLOCK file_options WITH frame.
 make_parameter   p_filein fil_desc rlgrap-filename '/filename.txt'.
 make_radiobutton rb_unix  unx_desc src.
 make_radiobutton rb_local dos_desc src.
 make_parameter   p_filety typ_desc rlgrap-filetype 'DAT'.
SELECTION-SCREEN END OF BLOCK file_options.
SELECTION-SCREEN END OF screen 1100.
*-- Define subscreen for BDC/CT Processing Options
SELECTION-SCREEN BEGIN OF screen 1200 AS subscreen.
SELECTION-SCREEN BEGIN OF BLOCK bdc_options WITH frame.
 make_radiobutton rb_callt ctr_desc typ.
 make_radiobutton rb_bdc   bdc_desc typ.
 make_dropdown    p_mode(1)  30 'N' mod_desc.
 make_dropdown    p_uptyp(1) 30 'S' upd_desc.
SELECTION-SCREEN END OF BLOCK bdc_options.
SELECTION-SCREEN END OF screen 1200.
*-- Define subscreen for Output Options
SELECTION-SCREEN BEGIN OF screen 1300 AS subscreen.
SELECTION-SCREEN BEGIN OF BLOCK output_opts WITH frame.
 make_checkbox c_detail det_desc ' '.
 make_checkbox c_error  err_desc 'X'.
 make_checkbox c_stats  sta_desc 'X'.
SELECTION-SCREEN END OF BLOCK output_opts.
SELECTION-SCREEN END OF screen 1300.
*-- Define Main Selection screen that will incorporate the subscreens
SELECTION-SCREEN BEGIN OF tabbed BLOCK tabs FOR 10 lines.
SELECTION-SCREEN tab (15) tabs1 user-command ucomm1
 DEFAULT screen 1100.
SELECTION-SCREEN tab (30) tabs2 user-command ucomm2
 DEFAULT screen 1200.
SELECTION-SCREEN tab (15) tabs3 user-command ucomm3
 DEFAULT screen 1300.
SELECTION-SCREEN END OF BLOCK tabs.
*-- Fill the dropdown list boxes before displaying them
AT SELECTION-SCREEN output.
  PERFORM fill_dropdown_list USING 'P_MODE'.
  PERFORM fill_dropdown_list USING 'P_UPTYP'.
AT SELECTION-SCREEN on value-request FOR p_filein.
  PERFORM choose_filename USING p_filein
   CHANGING p_filein.
INITIALIZATION.
   tabs1 = 'Upload Options'.
   tabs2 = 'BDC/Call Transaction Options'.
   tabs3 = 'Output Options'.
*-- Setup descriptions for Selection Screen items
   err_desc = 'Show Errors (Call Transaction Only)'.
   det_desc = 'Show details on records being processed'.
   sta_desc = 'Show statistics on what has been processed'.
   unx_desc = 'File is on App Server (unix)'.
   dos_desc = 'File is on Presentation Server (pc)'.
   typ_desc = 'File Type'..
   fil_desc = 'Name of File'.
   ctr_desc = 'Process in Call Transaction Mode'.
   bdc_desc = 'Process in BDC Mode'.
   mod_desc = 'Transaction Processing Mode'.
   upd_desc = 'Update Type'.
START-OF-SELECTION.
*-- Open input file or Read data from database tables
END-OF-SELECTION.
*-- Loop at data, and create BDC/Call Transactions
*---------------------------------------------------------------------*
*       FORM fill_dropdown_list                   *
*---------------------------------------------------------------------*
*       Populate the dropdown list for the parameter provided         *
*---------------------------------------------------------------------*
*  -->  VALUE(F_PARAMETER)    *
*---------------------------------------------------------------------*
FORM fill_dropdown_list USING value(f_parameter).
   type-pools:  vrm. " For parameter drop down lists
*-- Definitions for parameter drop down lists
  DATA:
     name TYPE vrm_id,
     list TYPE vrm_values,
    VALUE LIKE LINE OF list.
   name = f_parameter.
  CASE f_parameter.
    WHEN 'P_MODE'.
       value-key = 'N'.  value-text = 'Do not display any screens'.
      APPEND VALUE TO list.
       value-key = 'A'.  value-text = 'Display ALL screens'.
      APPEND VALUE TO list.
       value-key = 'E'.  value-text = 'Only display screens in error'.
      APPEND VALUE TO list.
    WHEN 'P_UPTYP'.
       value-key = 'S'.  value-text = 'Update in Synchronous Mode'.
      APPEND VALUE TO list.
       value-key = 'A'.  value-text = 'Update in Asynchronous Mode'.
      APPEND VALUE TO list.
    WHEN others.
  ENDCASE.
  CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
            ID = name
             values = list.
ENDFORM." fill_dropdown_list
*---------------------------------------------------------------------*
*       FORM choose_filename  *
*---------------------------------------------------------------------*
*       Select a filename.  Only provied if a local file is selected  *
*       as the source of the input file.  A       *
*       custom function or routine could be       *
*       written to provide the same functionality *
*       for unix.             *
*---------------------------------------------------------------------*
*  -->  F_FILENAME_IN         *
*  <--  F_FILENAME_OUT        *
*---------------------------------------------------------------------*
FORM choose_filename USING f_filename_in
                  CHANGING f_filename_out.
  DATA:
     lc_fieldname LIKE dynpread-fieldname,
     lc_fieldvalue LIKE dynpread-fieldvalue.
*-- Get the value of p_local
  PERFORM read_value_from_screen USING SY-REPID
                    sy-dynnr
                    'RB_LOCAL'
          CHANGING lc_fieldname
                    lc_fieldvalue.
  IF lc_fieldvalue = 'X'. " User chose a local file
    PERFORM query_local_filename CHANGING f_filename_out.
  ENDIF.

ENDFORM." get_filename
*---------------------------------------------------------------------*
*       FORM READ_VALUE_FROM_SCREEN               *
*---------------------------------------------------------------------*
*       ........              *
*---------------------------------------------------------------------*
*  -->  F_REPID               *
*  -->  F_DYNNR               *
*  -->  VALUE(F_FIELDNAME_IN) *
*  <--  F_FIELDNAME_OUT       *
*  <--  F_FIELDVALUE          *
*---------------------------------------------------------------------*
FORM read_value_from_screen USING f_repid
               f_dynnr
               value(f_fieldname_in)
     CHANGING f_fieldname_out
               f_fieldvalue.
  DATA: ltab_fields LIKE dynpread OCCURS 0 WITH HEADER LINE.
  DATA: lc_dyname LIKE SY-REPID.
  DATA: lc_dynumb LIKE sy-dynnr.
  DATA: lc_dummy(1) TYPE c.
*-- Read the screen to see if the user has entered a value for WERKS
   ltab_fields-fieldname = f_fieldname_in.
  APPEND ltab_fields.
   lc_dyname = f_repid.
   lc_dynumb = f_dynnr.
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
             dyname = lc_dyname
             dynumb = lc_dynumb
       TABLES
             dynpfields = ltab_fields
       EXCEPTIONS
             others = 01.
  READ TABLE ltab_fields INDEX 1.
*-- Return the value from the screen
  IF SY-SUBRC EQ 0.
    SPLIT ltab_fields-fieldname AT '-'
          INTO lc_dummy
           f_fieldname_out.
     f_fieldvalue = ltab_fields-fieldvalue.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM query_filename   *
*---------------------------------------------------------------------*
*       ........              *
*---------------------------------------------------------------------*
*  -->  F_FILENAME_OUT        *
*  -->  DATA                  *
*  -->  : *
*  -->  L_FILENAME            *
*---------------------------------------------------------------------*
FORM query_local_filename CHANGING f_filename_out LIKE rlgrap-filename.
  DATA: l_filename LIKE rlgrap-filename.
  DATA: l_mask(80) TYPE c.
* Build Filter
   l_mask =
   ',All Files (*.*),*.*.'.
  CALL FUNCTION 'WS_FILENAME_GET'
       EXPORTING
             def_filename = f_filename_out
             def_path = 'c:\'
             mask = l_mask
*            mode             = O or S
             title = 'Choose input file'
       IMPORTING
             filename = l_filename
       EXCEPTIONS
             inv_winsys = 01
             no_batch = 02
             selection_cancel = 03
             selection_error = 04.
  IF SY-SUBRC = 0.
     f_filename_out = l_filename.
  ENDIF.
ENDFORM.
Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search