Any standard FM to print select-options criteria on a basic report?

Hi Experts,
Am trying to print the user entered selection criteria on a classical/basic report. I wrote the code for select-options entries, but, am looking for any standard function module (if i pass my_select_options table, I need to get printable/readable entires) to print on my basic report, pls. let me know (I tried in SE37, but i got an in-active FM - PRINT_SELECTOPTIONS!!)
Thank you

Hello,
CALL FUNCTION 'PRINT_SELECTIONS'
    EXPORTING
      rname     = program name
      rvariante = sy-slset "It will catch the selected variant
      mode      = 'TABLE'
    TABLES
      infotab   = li_info.
li_info table will contain all selection screen data, you will can restrict what needs to be shown on spool list!
Thanks.

Similar Messages

  • How to hide some select-option of Logical Database in report?

    How to hide select-option of  Logical Database in report?eg . In Logical Database 'PNP' , my code is 'GET  PERNR' , excute the report , select-screen is displayed . I want to hide some select-options , such as PNPPERNR-LOW .
    Edited by: rongrong wang  on Mar 26, 2008 9:31 AM

    U need to write code in initialization as
    initialization.
    loop at screen.
    if screen-name = 'PNPPERNR-LOW'.
    screen-active = '0'.
    modify screen.
    endif.
    if screen-name = 'PNPPERNR-HIGH'.
    screen-active = '0'.
    modify screen.
    endif.
    endloop.

  • Select option criteria (urgent)

    hi all,
    i have one select option craeted for matnr from mara table.
    SELECT-OPTIONS : S_matnr FOR mara-matnr.
    so it creates internal table with 4 fields.
    my criteria is that in  low option i give default value 100 and
    it should be protected ie not open for any input and having default as 100.
    but the high open should be open for entry by user.
    how to get this done.
    plz reply

    Hi Sanjeev
    <b>You can initialize the low value in the initialization.</b>
    S_MATNR-low = '100'.
    Append s_MATNR.
    <b>To disable low write the following code.</b>
    select-options: s_matnr for mara-matnr.
    at selection-screen output.
    loop at screen.
      if screen-name = 'S_MATNR-LOW'.
          SCREEN-INPUT = 0.
          MODIFY SCREEN.
      endif.
    endloop.
    I have tested it... it's working fine.
    Regards
    Surya.

  • Print Selection Option - Gone!

    I use Firefox and an HP printer.
    When I print, there was - up until 2 days ago! a button I could check where I could print selection only... the button is now gone!
    In fact, the entire format of the window that pops up when I print has changed! What happened there - so weird!
    Any ideas?

    this same thing is happening to me. if i open firefox and go to print a page for the first time, the 'Firefox' option in the pull down (Layout, Copies & Pages... etc) is available where i can select 'print selection' as well as other options. However, if I want to do the same thing again during the same browser session the 'Firefox' option disappears and thus i cannot print a selection only. a restart of firefox brings the option back. my guess is this is a firefox related issue but since i came across it mentioned in this forum i thought i would post my findings here.

  • Standard Match Code for Selection Options with Example

    Hi Guys,
                 Can anybody tell me Standard Match Code or Search help for Selection Options.
             ex: MBEW-MATNR , MBEW-BWKEY and MBEW-BWTAR. can anybody tell how to keep Search Help or Match Code for the Above Fields in ECC 6.0 with Example
              Very Urgent.
    Thanks,
    Gopi.

    Well Gopi.. as per your requirement no need to use collective search help.
    I guess you have three fields in selection-screen,out 3 fields you have two fields contains search help.
    Create your user defined search help BWTAR ..
    Check the below links for creation search help :
    http://help.sap.com/saphelp_46c/helpdata/EN/cf/21ee2b446011d189700000e8322d00/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
    Hope you got it.
    Thanks
    Seshu

  • Filtering Select-Options criteria?

    Hi Experts,
    I populated the itab.
    From this itab, I need to delete the KUNNR records, which wuld not satisfy the S_KUNNR (select-options) range. So, the follwoing codes is not working!
    DELETE ITAB WHERE  KUNNR LT S_KUNNR-LOW AND KUNNR GT S_KUNNR-HIGH.
    DELETE ITAB WHERE  KUNNR NE S_KUNNR.
    What is the correct code?
    ThanQ.

    Hi,
    Try this..
    DELETE ITAB WHERE NOT KUNNR IN S_KUNNR[].
    Thanks,
    Naren

  • Running Windows 7 Home Premium, Firefox 7.0.1, File/Print won't work (doesn't open print dialog box) nor does control+ p nor will right click context menu ever highlight Print selection option after selecting part of a page, ie no printing whatsoever.

    Previous versions of Firefox all printed. All other browsers, programs - Word, Outlook, IE 9, Live Mail, Excel, Adobe files/documents, etc. print. Have more Add-ons than list of plugins below. Can email jpg. screenshots of all printer settings in about:config. Can't paste them here or below.

    See this: <br />
    http://kb.mozillazine.org/Problems_printing_web_pages

  • Print information from a row - Report Builder 3.0 - printer button option?

    Does Report Builder have any way of printing information from a row selection onto a page, rather than the whole report?  I don't think it has a print button option when you create the report? 

    Hi KittyCat101,
    According to your description, you want to select some particular rows when printing the report. Just as you said, there is no such feature in Reporting Services.
    To work around this issue, we can create a parameter with the key field value in the report. Then we can print the particular rows based on the selection in the parameter. For more details, please see:
    Create a multiple parameter named filter in the report.
    Specify Available Values and Default Values from the dataset key field which is acted as filter when printing the report.
    Add a filter as below in the tablix:
    Expression: [Key field]
    Operator: In
    Value: [@filter]
    When we render the report in report builder, it displays all data. While we can select the particular rows in the drop-down list when we want to print the report.
    If there are any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Select option in Dialog program screen

    Hi friends,
    do we have any way to get a select option displayed in dialog programming ?
    or
    create a screen field with the properties of a select option in dialog screen ?
    or
    any standard function module to support this scenario ?
    Thanks and Regards
    Sakthi.

    Hi,
    i don't know you checked it or not, but i am able to do it, i send the screen shot also to you check it..
    it is possible,with some coding also  check it once...
    REPORT  ZTEST_SCREEN                            .
    DATA : BEGIN OF IT_DYNPFIELDS OCCURS 3.
            INCLUDE STRUCTURE DYNPREAD.
    DATA : END OF IT_DYNPFIELDS.
    DATA: TEST(10) TYPE C.
    RANGES:  R_UNAME FOR SY-UNAME.
    DATA:     V_USERNAME LIKE  SY-UNAME.
    DATA : V_PROG LIKE D020S-PROG VALUE 'ZTEST_SCREEN',
           V_DNUM LIKE D020S-DNUM VALUE '0100'.
    CALL SCREEN 100.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'TEST'.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  GET_CURSOR_USERNAME  INPUT
    *       text
    MODULE GET_CURSOR_USERNAME INPUT.
      REFRESH IT_DYNPFIELDS.
      CLEAR   IT_DYNPFIELDS.
      MOVE 'V_USERNAME' TO IT_DYNPFIELDS-FIELDNAME.
      APPEND IT_DYNPFIELDS.
      CLEAR   IT_DYNPFIELDS.
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          DYNAME               = V_PROG
          DYNUMB               = V_DNUM
          TRANSLATE_TO_UPPER   = 'X'
        TABLES
          DYNPFIELDS           = IT_DYNPFIELDS
        EXCEPTIONS
          INVALID_ABAPWORKAREA = 1
          INVALID_DYNPROFIELD  = 2
          INVALID_DYNPRONAME   = 3
          INVALID_DYNPRONUMMER = 4
          INVALID_REQUEST      = 5
          NO_FIELDDESCRIPTION  = 6
          INVALID_PARAMETER    = 7
          UNDEFIND_ERROR       = 8
          DOUBLE_CONVERSION    = 9
          STEPL_NOT_FOUND      = 10
          OTHERS               = 11.
      IF SY-SUBRC = 0.
        READ TABLE IT_DYNPFIELDS WITH KEY FIELDNAME = 'V_USERNAME'.
        IF SY-SUBRC = 0.
          V_USERNAME = IT_DYNPFIELDS-FIELDVALUE.
        ENDIF.
      ENDIF.
      PERFORM GET_MULTIPLE.
    ENDMODULE.                 " GET_CURSOR_USERNAME  INPUT
    *&      Form  GET_MULTIPLE
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_MULTIPLE .
    * Dynamically holding Field name
      FIELD-SYMBOLS: <FST> TYPE STANDARD TABLE.
      IF  R_UNAME[] IS INITIAL.
        IF NOT V_USERNAME IS INITIAL.
          R_UNAME-SIGN = 'I'.
          R_UNAME-OPTION = 'EQ'.
          R_UNAME-LOW = V_USERNAME.
          APPEND R_UNAME.
          CLEAR  R_UNAME.
        ENDIF.
      ENDIF.
      ASSIGN R_UNAME[] TO <FST>.
      CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
        EXPORTING
          TITLE             = 'Select Multiple Value'(059)
          TEXT              = 'Finish Group'(058)
          SIGNED            = 'X'
          LOWER_CASE        = ' '
          NO_INTERVAL_CHECK = 'X'
          JUST_DISPLAY      = ' '
          JUST_INCL         = 'X'
        TABLES
          RANGE             = <FST>
        EXCEPTIONS
          NO_RANGE_TAB      = 1
          CANCELLED         = 2
          INTERNAL_ERROR    = 3
          OTHERS            = 4.
      IF SY-SUBRC = 0.
        READ TABLE R_UNAME INDEX 1.
        IF SY-SUBRC = 0.
          V_USERNAME = R_UNAME-LOW.
        ENDIF.
      ENDIF.
    ENDFORM.                    " GET_MULTIPLE
    Flow loogic....
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    PROCESS ON VALUE-REQUEST.
    *- To capture the cursor and for f4
      FIELD V_USERNAME      MODULE GET_CURSOR_USERNAME.
    in screen i have one field v_username
    for that field do this
    <b>double click on field which you want to make it as select option, it will display the attributes screen, in that click on program attributes button , now go to poss. entries in the dropdown choose 1 show at selection.</b>
    Regards
    vijay

  • Function module for select-options

    Hi Colleagues !
    Is there any function module to read select-options fields in a window ?
    Thanks a lot and kind regards
    Peter

    Hi
    I had this requirement as well, I came up with a workaround....
    I ended up creating a Z structure EG. ZRANGESTRUC with the fields:
    SIGN - CHAR1
    ZOPTION - CHAR2
    LOW - CHAR18
    HIGH - CHAR18 (this would depend on your maximum length of field)
    I had to make a ZOPTION field because option was a reserved system field.
    I then declare tables in my function module pointing at ZRANGESTRUC data type.
    Inside your function module declare ranges and then simply say S_MATNR[]  =  ZSTRUC_MATNR[] and then use the standard range inside your select statement.
    I hope I understood your requirement correctly...
    Edited by: Brad Gorlicki on Feb 10, 2010 9:36 PM

  • Get Selection options from one view to another view

    Hi Experts,
    I am using two views, first view  it shows basic list of records based on selection options criteria , here I used component WDR_SELECT_OPTIONS . Then if we click on any record in first view then it opens popup window with record relevant information. Here I want to get selection option values while editing record values.
    Initially I used context node for one value, for that just I created node and attribute then bind to table then I used with method get_static_attributes_table(  ) in second view.
    But I need all values to be used in second view.
    Please could you suggest, is there another way to get values into second view?
    Regards,
    BBC

    Hello BBC,
    you can access the SELECT_OPTION component usage in second view and then you retrieve the selection fields and its corresponding range table. In this case the component usage instance will be shared across the application unless you explictly delete the component usage.
    BR, Saravanan

  • Select option for selection valid and invalid data.

    Hi All,
    Any one pleas help in validating following case :-
    In the selection screen there is a select option for equipment number like EQUI-EQUNR
    if any user will give wrong equipment no. It will generate an error message from the  range of equipment no.
    and put it to an internal table it error.
    and if any value in between the select option(equipment no) is correct then that value I need to proceed for some other logic.
    Iu2019d appreciate if some one help me in generation code for the above case or logic.
    Thanks

    Hi,
    Use FM 'RS_REFRESH_FROM_SELECTOPTIONS'
    DATA: RSPAR TYPE STANDARD TABLE OF RSPARAMS.
          REFRESH RSPAR.
          CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
              EXPORTING
                CURR_REPORT           = 'prog name'
        IMPORTING
          SP                    =
              TABLES
                SELECTION_TABLE       = RSPAR
             EXCEPTIONS
               NOT_FOUND             = 1
               NO_REPORT             = 2
               OTHERS                = 3.
          IF SY-SUBRC <> 0.
       MESSAGE I000.
          ENDIF.
    In table parameter you ll get the all entries entered .
    Check out the values with respective tables.If value is not correct tk it into internal table
    else proceed ahead. You can Remove incorrect entries this way.
    regards,
    ajit.

  • WD: Select Options shows empty ranges

    Hi there,
    Im using select options in my wd application... I defined a few fields (numeric, dats and so on).  I was expecting that the select options in wd works like the normal ones in normal abap report.
    But when I try to read the results from select options , the result range table has no sign or option value (low value ok) ... when I reach the result to a Select statement a shortdump happen with the notice there is no sign or option value in the IN parameter of the Selection statement.
    Does any one know if this is standard behavior of WD select options ?

    Hi ,
    try to understand following code .
    METHOD wddoinit .
      DATA:
           lr_componentcontroller TYPE REF TO ig_componentcontroller,
           l_ref_cmp_usage TYPE REF TO if_wd_component_usage.
      DATA:
          lt_range_table       TYPE REF TO data,
          lt_types             TYPE string_table,
          rt_range_table       TYPE REF TO data,
          text                 TYPE string,
          typename             TYPE string.
      DATA: vbeln TYPE lips-vbeln,
            erdat TYPE lips-erdat,
            auart TYPE vbak-auart,
            trnsp TYPE vtadd01t-add_info,
            kunnr TYPE likp-kunnr.
      DATA:
        num_events TYPE i.
      DATA: uname TYPE sy-uname.
      uname = sy-uname.
      wd_context->set_attribute(  name = 'CUSTOMER'
      value = uname  ).
    *  wd_context->GET_ATTRIBUTE( Name = 'TRANSPORTER_CODE'
    *  Value = uname ).
    * create the used component
      l_ref_cmp_usage = wd_this->wd_cpuse_select_options( ).
      IF l_ref_cmp_usage->has_active_component( ) IS INITIAL.
        l_ref_cmp_usage->create_component( ).
      ENDIF.
    * get a pointer to the interface controller of the select options component
      wd_this->m_wd_select_options = wd_this->wd_cpifc_select_options( ).
    * init the select screen
      wd_this->m_handler = wd_this->m_wd_select_options->init_selection_screen( ).
      lt_range_table = wd_this->m_handler->create_range_table( i_typename = 'VBELN_VL' ).
      wd_this->m_handler->add_selection_field(
        i_description                = 'Sales Document'
        i_id                         = 'VBELN'
        i_obligatory                 = 'X'
        it_result                    = lt_range_table
        i_value_help_structure       = 'LIPS'
        i_value_help_structure_field = 'VBELN' ).
      lt_range_table = wd_this->m_handler->create_range_table( i_typename = 'ERDAT' ).
      wd_this->m_handler->add_selection_field( i_id = 'ERDAT'  i_obligatory = 'X' it_result = lt_range_table ).
    *lt_range_table = wd_this->m_handler->create_range_table( i_typename = 'VTTK_ADD01' ).
    *wd_this->m_handler->add_selection_field( i_id = 'VTTK_ADD01' I_DESCRIPTION  = 'CHAHA' it_result = lt_range_table ).
    *    wd_this->m_handler->add_selection_field(
    *      i_description                = 'Transporters Code'
    *      i_id                         = 'VTTK_ADD01'
    *      it_result                    = lt_range_table
    *      i_value_help_structure       = 'VTADD01T'
    *      i_value_help_structure_field = 'ADD_INFO' ).
    *Supress Global options in Used Component
      wd_this->m_handler->set_global_options(
          i_display_btn_cancel  = ''
          i_display_btn_check   = ''
          i_display_btn_execute = ''
          i_display_btn_reset   = '' ).
      lt_range_table = wd_this->m_handler->create_range_table( i_typename = 'VBAK-AUART' ).
      wd_this->m_handler->add_selection_field(
        i_description                = 'Sales Document Type'
        i_id                         = 'AUART'
         i_obligatory                = 'X'
        it_result                    = lt_range_table
        i_value_help_structure       = 'VBAK'
        i_value_help_structure_field = 'AUART' ).
    ENDMETHOD.
    METHOD onactionexecute .
      DATA: node_saledoc TYPE REF TO if_wd_context_node.
      DATA: node_crdate TYPE REF TO if_wd_context_node.
      DATA: node_transcode TYPE REF TO if_wd_context_node.
      DATA: node_doctype TYPE REF TO if_wd_context_node.
      DATA: node1 TYPE REF TO if_wd_context_node.
      DATA: node2 TYPE REF TO if_wd_context_node.
      DATA: rt_saledoc TYPE REF TO data.
      DATA: rt_crdate TYPE REF TO data.
      DATA: rt_transcode TYPE REF TO data.
      DATA: rt_doctype TYPE REF TO data.
      FIELD-SYMBOLS: <fs_saledoc> TYPE table,
                      <fs_crdate> TYPE table,
                      <fs_transcode> TYPE table,
                      <fs_doctype> TYPE table.
    * Retrieve the data from the select option
      rt_saledoc = wd_this->m_handler->get_range_table_of_sel_field(
      i_id = 'VBELN' ).
    * Assign it to a field symbol
      ASSIGN rt_saledoc->* TO <fs_saledoc>.
    * Retrieve the data from the select option
      rt_crdate = wd_this->m_handler->get_range_table_of_sel_field(
      i_id = 'ERDAT' ).
    * Assign it to a field symbol
      ASSIGN rt_crdate->* TO <fs_crdate>.
    * Retrieve the data from the select option
      rt_doctype = wd_this->m_handler->get_range_table_of_sel_field(
      i_id = 'AUART' ).
    * Assign it to a field symbol
      ASSIGN rt_doctype->* TO <fs_doctype>.
    * Retrieve the data from the select option
    *rt_transcode = wd_this->m_handler->get_range_table_of_sel_field(
    *i_id = 'VTTK_ADD01' ).
    ** Assign it to a field symbol
    *assign rt_transcode->* to <fs_transcode>.
      node_saledoc = wd_context->get_child_node( name = 'S_VBELN' ).
      node_saledoc->bind_table( <fs_saledoc> ).
      node_crdate = wd_context->get_child_node( name = 'S_ERDAT' ).
      node_crdate->bind_table(  <fs_crdate> ).
      node_doctype = wd_context->get_child_node( name = 'S_AUART' ).
      node_doctype->bind_table( <fs_doctype> ).
      IF <fs_doctype> IS NOT INITIAL
        AND <fs_crdate> IS NOT INITIAL
        AND <fs_saledoc> IS NOT INITIAL
        wd_comp_controller->execute_zotddelvnote_vend_tari( ).
      ENDIF.
    ENDMETHOD.
    Regards,
    Amit solanki
    Edited by: Amit Solanki on Aug 19, 2009 11:30 AM
    Edited by: Amit Solanki on Aug 19, 2009 11:32 AM

  • Print Selection in Leopard.........

    Hi all,
    Apart from just loving my Imac, I just can't understand why Apple does not have a print selection option in it's print box. I know that there are 'other' options, but I guess in this day and age, a simple print selection option in the printer dialog would be sensible.
    Does any body know what the logic is behind Apple not having one. Dare I say it even Windows has had it I imagine since Windows 1995!
    Just can't get my head around what the issue is with including it, it surely can't be that hard to do?
    Anyway, apart from loving the new Leopard system (apart from a few niggles), would appreciate your thoughts.
    Timberman

    You can be that someone. Send a bug report (or enhancement request) to Apple via its Bug Reporter system. Join the Apple Developer Connection (ADC)—it's free and available for all Mac users and gets you a look at some development software. Since you already have an Apple username/ID, use that. Once a member, go to Apple BugReporter and file your bug report/enhancement request. You'll get a get a Bug ID number; thus, starting a dialog directly with engineering.
    Alternatively, send Feedback, but that usually goes through support and marketing—might not get to engineering.

  • Can we hide the select-option in a selection screen

    Hi all,
    I have two radio buttons in my selection screen with 1 select-option criteria, now on choosing the other radio button I want that a different select-option criteria should appears.
    Thanks

    hi kunal check the code below.
    TABLES : SSCRFIELDS,MARA.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.
    PARAMETERS : R1 RADIOBUTTON GROUP RB1 DEFAULT 'X',
    R2 RADIOBUTTON GROUP RB1,
    R3 RADIOBUTTON GROUP RB1,
    R4 RADIOBUTTON GROUP RB1.
    SELECTION-SCREEN PUSHBUTTON /10(20) FRST USER-COMMAND FRST.
    SELECTION-SCREEN PUSHBUTTON /10(20) SCND USER-COMMAND SCND.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA : ACTIVE1 VALUE '1',
    ACTIVE2 VALUE '1'.
    initialization.
    move 'frst' to frst.
    move 'scnd' to scnd.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    IF SCREEN-NAME = 'R1' OR SCREEN-NAME = 'R2' .
    SCREEN-INVISIBLE = ACTIVE1.
    screen-output = '1'.
    MODIFY SCREEN.
    ENDIF.
    IF SCREEN-NAME = 'R3' OR SCREEN-NAME = 'R4' .
    SCREEN-INVISIBLE = ACTIVE2.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    AT SELECTION-SCREEN.
    CASE SSCRFIELDS-UCOMM.
    WHEN 'FRST'.
    ACTIVE1 = '0'.
    ACTIVE2 = '1'.
    WHEN 'SCND'.
    ACTIVE2 = '0'.
    ACTIVE1 = '1'.
    ENDCASE.

Maybe you are looking for

  • Facing the problem in creating dll

    Hi, I have written the JNI example. I have make the .class file, .header file and .c file. But when I am trying to make the dll..its shows the following error. C:\jni test>cl -IC:\j2sdk1.4.2_17\include C:\j2sdk1.4.2_17\include\win32 -LD HelloWorldImp

  • To bridge a Time Capsule

    I want to wirelessly connetct my 4G Huawei router to my Time Capsule. How do I do that ? Settings and so.

  • HP Network Printer periodically prints a page from a web crawler

    I support a HP Color LaserJet CP2025dn which ocassionally prints a page that says: GET http://www.baidu.com/ HTTP/1.1 Host: www.baidu.com Accept: */* Pragma: no-cache User-Agent: Sometimes the GET HTTP/1.1 statement is from  http://www.sciencedirect.

  • Passing Set To Method

    When passing as set to a method of another class, can that method send that set over socket and the objects inside that set, or does it only send the set interface?? Im having this problem in my game. I can sedn a set and its objects over socket when

  • Ideal functionalities of Smart Watch 2

    This version has a big improvement from last one that I took up for a quick look and gave up immediately - very toy-like device.  As compared with Samsung Gear, it loses in terms of quality and functionality.  However, Samsung Gear has lots of functi