Hide display attributes in selection screen?

Hi @ All,
Does anybody knows how I can hide some display attributes of one characteristic in the selection screen in the portal?
For example, I have the characteristic 0plant with the display attribute 0ALTITUDE which I want to hide in the selection screen.
Any ideas?
Thanks!
Stephan

Hi Abhijit,
yes we talking about BW report selection screen
0plant is my input variable in query designer. 0plant is also navigational in the infocube.
0ALTITUDE is an attribute of 0plant. It is not navigational and not input variable in query designer.
Any ideas how I only set some attributes of 0plant visible for the selection screen, and some not?
Thanks,
Stephan

Similar Messages

  • How to hide input fields on selection screen using variant attribute

    Hello all,
    I want to know how to hide input fields on selection screen using variant attribute conpletely.
    As you know, when setting the attribute of variant "Hide field" checked, the field is temporarily hidden, but when clicking "All Selections(F7)" button on the selection screen, the fileds become appeared.
    I want to hide the field completely. Di you know how to do ?
    Thank you for your support.
    Regards,
    Hideki Kozai

    Use this attribute hide field and save the variant. Then create transaction for this program setting default variant for parameter Start with variant . The user who runs it will have it by defualt set.
    Otherwise
    in PBO simply use LOOP at screen and output = 0 for this field. This will ensure that field is invisible in any case.
    Regards
    Marcin

  • How to hide a block in Selection screen ?

    Hello abap gurus,
    I have a requirement where I have to hide a block on Selection screen. Can anyone of u give the command for that or code..
    Its urgent !
    Om Sai Ram,
    aRgD

    Hi,
    Just paste the following code in abap editor.
    *Selectionscreen elements..............................................
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS:
      p_uname     LIKE sy-uname
                  MODIF ID bl1.            " User name
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
    PARAMETERS:
      p_fname(10) TYPE c MODIF ID bl2
                         OBLIGATORY,       " First name
      p_lname(10) TYPE c MODIF ID bl2
                         OBLIGATORY,       " Last name
      p_empid(5)  TYPE n MODIF ID bl2
                         OBLIGATORY.       " Employee id
    SELECTION-SCREEN END OF BLOCK b2.
    *" Data declarations...................................................
    Work variables                                                      *
    DATA:
      w_uname     LIKE sy-uname.           " User name
                 AT SELECTION-SCREEN OUTPUT EVENT                       *
    AT SELECTION-SCREEN OUTPUT.
      PERFORM validate.
                AT SELECTION-SCREEN ON FIELD EVENT                      *
    AT SELECTION-SCREEN ON p_uname.
      PERFORM validate_uname.
                      END OF SELECTION EVENT                            *
    END-OF-SELECTION.
      PERFORM output.
    FORM VALIDATE                                                      *
    This subroutine disables all parameters if user name is not        *
    initialized or user name is not valid.                             *
    There are no interface parameters to be passed to this subroutine. *
    FORM validate.
      w_uname = sy-uname.
      IF p_uname IS INITIAL OR p_uname NE w_uname.
        LOOP AT SCREEN.
          IF screen-group1 EQ 'BL2'.
            screen-active = '0'.
          ELSE.
            screen-active = '1'.
          ENDIF.                           " IF screen-group1 EQ 'BL2'.
          MODIFY SCREEN.
        ENDLOOP.                           " LOOP AT SCREEN.
      ELSEIF p_uname EQ sy-uname.
        LOOP AT SCREEN.
          IF screen-group1 = 'BL1'.
            screen-active = 0.
            MODIFY SCREEN.
          ELSEIF screen-group1 = 'BL2'.
            screen-active = 1.
            screen-output = 1.
            screen-input = 1.
            screen-invisible = 0.
          ENDIF.                           " IF screen-group1 = 'BL1'.
          MODIFY SCREEN.
        ENDLOOP.                           " LOOP AT SCREEN.
      ENDIF.                               " IF p_uname IS INITIAL...
    ENDFORM.                               " VALIDATE
    Form VALIDATE_UNAME                                                *
    This subroutine gives error message and validates the user name.   *
    There are no interface parameters to be passed to this subroutine. *
    FORM validate_uname .
      IF p_uname IS INITIAL.
        MESSAGE 'Enter the user name'(001) TYPE 'E'.
      ELSEIF p_uname NE sy-uname.
        MESSAGE 'Authorization unsuccessful'(002) TYPE 'E'.
      ENDIF.                               " IF p_uname IS INITIAL.
    ENDFORM.                               " VALIDATE_UNAME
    Form  OUTPUT                                                       *
    This subroutine is used to print the output.                       *
    There are no interface parameters to be passed to this subroutine. *
    FORM output .
      IF p_fname IS NOT INITIAL.
        WRITE: / 'First name:'(003),p_fname.
        WRITE: / 'Last name:'(004),p_lname.
        WRITE: / 'Employee id:'(005),p_empid.
      ENDIF.                               " IF p_fname IS NOT INITIAL.
    ENDFORM.                               " OUTPUT
    I think this solves your problem.
    Reward if it helps you.....
    Regards,
    Sandhya

  • How to hide F8 function on selection screen.

    Hi,
    How to hide F8 function on selection screen.

    Just create a customer status and SET this status in your INITIALIZATION block.
    <i>You can copy the standard status from program RSSYSTDB status %_00.</i>
    Regards

  • Query varibale - display InfoObject attribute in selection screen

    Hi,
    At my Query I have a variable for ZSurvey (InfoObject), when I run the report I got the first screen to select a Survey (ZSurvey).
    in This Selection Screen I have 2 columns ( Survey number & Description)
    How Do I add third Column (Start Time) Which is Attribute in ZSurvey infoobject ( Time Depended)
    please help
    Thanks

    Hi.
    Do you want to restrict Start Time by any variable ?
    Is Start Time navigational attribute ?
    Regards.

  • Problem while hide a block on selection screen on button press

    Hi,
    I have added two buttons on the application toolbar of the selection screen. I have input fields under two blocks on the selection-screen. Initially the second block is hidden. If I press the button 1 the second block should be made visible.
    For this to happen, I captured the button 1 click event using the following statement.
    IF sscrfields-ucomm = 'FC01'.
    Inside the if ... endif, I looped at the screen and made the second block visible. It was working fine.
    loop at screen.
      if screen-group4 = '013'.
         screen-invisible = 1.
         screen-active    = 0.
      endif.
    endloop.
    Later the second button was added. Now when i run the report for the first time, if button 2 is clicked the hidden block appears on the selection screen even though i have not added any code for it.
    Just to check, i commented the logic to display the hidden block on button 1 click event. Even without any code the first time i press any of the two buttons added on the application toolbar the hidden block is displayed.
    I saved a variant for the report.
    During execution of the report, if i select any variant then the hidden block is displayed.
    Can anyone please tell me how to fix this problem.
    Regards,
    T2.

    Hi All,
    The problem is solved.
    Everyone was confusing between the pushbutton on the selectio-screen and on apllication toolbar
    (where you have the execute icon).
    Please find the code below. Thanks for you time and help. I appreciate it.
    REPORT ztest.
    INCLUDE <icon>.
    *  TABLES                                                              *
    TABLES: t001,              " Company Codes
            lfa1,              " Vendor Master (General Section)
            sscrfields.        " Fields on selection screens
    * To capture button press event.
    DATA: gv_button_press       TYPE c.
    * Menu Painter: Program interface for dynamic texts
    DATA: gs_dyntxt             TYPE smp_dyntxt.
    *  SELECTION SCREEN                                                    *
    SELECTION-SCREEN FUNCTION KEY 1.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-s01.
    * Company Code.
    SELECTION-SCREEN BEGIN OF BLOCK ccode WITH FRAME TITLE text-s02.
    SELECT-OPTIONS: s_bukrs FOR t001-bukrs OBLIGATORY MEMORY ID buk.
    SELECTION-SCREEN END OF BLOCK ccode.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK dsel WITH FRAME TITLE text-s04.
    * Vendor Master.
    SELECTION-SCREEN BEGIN OF BLOCK vend WITH FRAME TITLE text-s07.
    SELECT-OPTIONS: s_konzs FOR lfa1-konzs MODIF ID aw1.
    SELECT-OPTIONS: s_txcd1 FOR lfa1-stcd1 MODIF ID aw1.
    SELECT-OPTIONS: s_txcd2 FOR lfa1-stcd2 MODIF ID aw1.
    SELECTION-SCREEN END OF BLOCK vend.
    SELECTION-SCREEN END OF BLOCK dsel.
    * INITIALIZATION                                                       *
    INITIALIZATION.
    * Populate the Application toolbar button attributes.
      PERFORM populate_app_toolbar_buttons.
    * Hide the dynamic screen intially.
      PERFORM hide_screenfields.
    * AT SELECTION SCREEN                                                  *
    AT SELECTION-SCREEN.
    * Capture the button press event.
      PERFORM capture_button_press.
    * AT SELECTION-SCREEN OUTPUT.                                          *
    AT SELECTION-SCREEN OUTPUT.
    * Show/Hide the dynamic selection screen based on button press.
      PERFORM adapt_screen.
    *&  Form  populate_app_toolbar_buttons                                 *
    *   Display Icon on the application toolbar buttons. Also set the      *
    *   function codes for these buttons.                                  *
    FORM populate_app_toolbar_buttons.
      CLEAR gs_dyntxt.
      WRITE icon_fencing     TO gs_dyntxt-icon_id AS ICON.
      MOVE  text-b01         TO gs_dyntxt-quickinfo.   " Dynamic Selections
      MOVE gs_dyntxt         TO sscrfields-functxt_01.
    ENDFORM.                    " populate_app_toolbar_buttons
    *&  Form  hide_screenfields                                            *
    *   Initially hide the Dynamic selection screen.                       *
    FORM hide_screenfields.
      LOOP AT SCREEN.
        IF screen-group1 = 'AW1'.
          screen-invisible = '1'.
          screen-active    = '0'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    ENDFORM.                    " hide_screenfields
    *&  Form  capture_button_press                                         *
    *   Set the flag based on button press event. Appication bar button    *
    *   tcode is available only at 'At Selection-screen' event.            *
    *   Use the captured data at 'At Selection-screen Output' event.       *
    *   Screen adjustments is possible only under this event.              *
    FORM capture_button_press.
      IF sscrfields-ucomm = 'FC01'.
        IF gv_button_press IS INITIAL.
          gv_button_press = 'X'.
        ELSEIF gv_button_press EQ 'X'.
          CLEAR gv_button_press.
        ENDIF.
      ENDIF.
    ENDFORM.                    " capture_button_press
    *&  Form  adapt_screen                                                 *
    *   Show/Hide the dynamic selection screen based on button press       *
    *   captured at 'At selection-screen' event.                           *
    FORM adapt_screen.
    * If button press flag is initial hide the dynamic selection screen.
      IF gv_button_press IS INITIAL.
        LOOP AT SCREEN.
          IF screen-group1 = 'AW1'.
            screen-invisible = '1'.
            screen-active    = '0'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
    * Elseif button press flag is 'X' show the dynamic selection screen.
      ELSEIF gv_button_press EQ 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'AW1'.
            screen-invisible = '0'.
            screen-active    = '1'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " adapt_screen
    Regards,
    T2
    Message was edited by: Titu Joseph

  • Navigational attribute in selection screen gives no applicable data

    Hi Gurus
    In the report i am using the navigational attribute in the selection screen.e.g Brand (attribute of material)
    My problem is whenevr i enter value in the navigational attribute (brand)  in the selection screen and execute  its says no data found.
    If i do not fill this parameter and fill only the parent attribute (material)  in the selection screen  , then i can see the results and from its properties  (drilling down )i can see the values of brand .
    If the values of brand exist why via selection screen its not giving vales, However Via material i can drill down and see brand values.
    I have done all the necessary steps to make this attribute as navigational.
    On top of this i have this same navigation attributes as one of the characterisitc in the cube.
    Thanks
    DD

    Hello,
    I've the same problem... for new nav. attributes for 0Material.
    Settings for nav. attibutes in BEx Q.D. are OK.
    But in BEx Analyzer:
    1- not display all values for this attributes. Some values are displayed, some don't.
    I try display it with and without selection screen.  The result is the same.
    2- I try to display (normal) attributes - not nav. In this case everything is OK.
    But I've 2 columns: normal attribute for all values and nav. attribute only with some values...
    (the query is something like: 0Material + 0Material_NOTnav_attr + 0Material_NOTnav_attr)
    It isn't a normal...
    I don't know... Maybe it's depend of the time?
    I can't clear all master data for 0Material, because they're used in some cubes. I had old characteristic without nav. attr. but with master data. I added nav. attr. in 0Material and activated it. Next I load master data (full method). Then I added nav. attr. in infocube, activated it, delete and load data into the cube (Init + Delta).
    If I display data for the cube in RSA1, I can see nav. attr. for all records. I can't see it in BEx Analyzer...
    Can U explain it?
    Thx,
    MSzN

  • 0ORGUNIT short text displayed in variable selection screen

    Hello experts,
    I use the 0ORGUNIT as variable in the selection screen, when i use the selection button, the 0ORGUNIT is displayed as a hierarchy but the text are in short text.
    In the query, the text are well displayed in Medium-Lenght text.
    Where can i defined the parameter to obtain the same lenght for the selection screen?
    Thanks,
    Regards.

    Hello GALVAGNI,
    Go to the administrator of your InfoProvider and go to the dimension of your InfoObject 0ORGUNIT, right-click over 0ORGUNIT there and select "Provider-Specific Properties" then change the option Display to "5 Medium-Length Text".
    Assign points if helpfull.
    Diogo.

  • How to display image in selection-screen of a report

    Dear all ,
    i want to show my image from url or from desktop to the report selection-screen . i have searched sdn and found some code . after applying it i am not able to display image in the selection-screen although it is displaying the box in which the image should appear . here i am sending my code plz verify where is the mistake .
    REPORT  ZPIC2.
    DATA: docking TYPE REF TO cl_gui_docking_container,
    picture_control_1 TYPE REF TO cl_gui_picture,
    url(256) TYPE c .
    PARAMETERS: A(4) DEFAULT '4' .
    PARAMETERS: B(4) DEFAULT '5' .
    AT SELECTION-SCREEN OUTPUT.
    PERFORM show_pic.
    **& Form show_pic
    FORM show_pic.
    CREATE OBJECT picture_control_1 EXPORTING parent = docking.
    CHECK sy-subrc = 0.
    CALL METHOD picture_control_1->set_3d_border
    EXPORTING
    border = 5.
    CALL METHOD picture_control_1->set_display_mode
    EXPORTING
    display_mode = cl_gui_picture=>display_mode_stretch.
    CALL METHOD picture_control_1->set_position
    EXPORTING
    height = 100
    left =   150
    top =    58
    width =  350.
    CALL METHOD picture_control_1->load_picture_from_url
    EXPORTING
    url = 'C:\abc.jpg' .
    endif .
    IF sy-subrc NE 0.
    ENDIF.
    ENDFORM.
    CORECT ANSWERS WILL BE HIGHLY APPRECIATED AND SURELY REWARED .
    THANKS ,
    AMIT RANJAN

    Hi,
    Try this code. hope it will work.
    DATA: DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          PICTURE_CONTROL_1 TYPE REF TO CL_GUI_PICTURE,
          URL(256) TYPE C,
          PIC_DATA TYPE TABLE OF W3MIME WITH HEADER LINE,
          PIC_SIZE TYPE I.
    SELECTION-SCREEN BEGIN OF BLOCK B1.
    PARAMETERS: A(4) DEFAULT '4' .
    PARAMETERS: B(4) DEFAULT '5' .
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN OUTPUT.
      PERFORM SHOW_PIC.
    *&      Form  SHOW_PIC
    FORM SHOW_PIC .
      CREATE OBJECT PICTURE_CONTROL_1
    EXPORTING PARENT = DOCKING.
      CHECK SY-SUBRC = 0.
      CALL METHOD PICTURE_CONTROL_1->SET_3D_BORDER
        EXPORTING
          BORDER = 5.
      CALL METHOD PICTURE_CONTROL_1->SET_DISPLAY_MODE
        EXPORTING
          DISPLAY_MODE = CL_GUI_PICTURE=>DISPLAY_MODE_STRETCH.
      CALL METHOD PICTURE_CONTROL_1->SET_POSITION
        EXPORTING
          HEIGHT = 200
          LEFT   = 100
          TOP    = 20
          WIDTH  = 400.
    CHANGE POSITION AND SIZE ABOVE**************************
      IF URL IS INITIAL.
        CALL FUNCTION 'DP_CREATE_URL'
          EXPORTING
            TYPE     = 'image'
            SUBTYPE  = CNDP_SAP_TAB_UNKNOWN
            SIZE     = PIC_SIZE
            LIFETIME = CNDP_LIFETIME_TRANSACTION
          TABLES
            DATA     = PIC_DATA
          CHANGING
            URL      = URL
          EXCEPTIONS
            OTHERS   = 1.
      ENDIF.
      CALL METHOD PICTURE_CONTROL_1->LOAD_PICTURE_FROM_URL
        EXPORTING
          URL = 'file://D:\img.jpg'.
    ENDFORM.                    " SHOW_PIC

  • Displaying Data Using Selection-screen in Module Pool

    Hi All,
    Currently I'm working on a module pool program.In that i'm having two screens 9000 and 9001.
    I want to select a bookrefno using a selection screen and display header & table control data in 9001 screen when the bookrefno is validated.
    can anyone help me sending sample code regarding this
    Regards
    Ravi S

    Hi Ravi
    Place "bookrefno." field on screen 9000.
    Use validations on that particular field by using chain-endchain.
    in PAI of 9000
    case sy-ucomm
    when 'display'
    call screen 9001
    write select statment to display data i.e header & table control in 9001 .
    hope this would solve your problem.
    reward points, if its helpful.
    Thanks
    RK Nimma

  • Dynamically hide a block in selection screen

    Hi All,
    Can we hide a whole block in a selection screen dynamically.
    If so, then how?
    Regards,
    Bhaskar Tripathi

    Hi,
    Refer this code
    *&      Form  sub_select_report
          text
    FORM sub_select_report .
      IF ( p_post  EQ c_chk ).
        LOOP AT SCREEN.
          IF ( screen-group1 EQ 'MD1' ) OR
             ( screen-group1 EQ 'MD2' ) OR
             ( screen-group1 EQ 'MD3' ) OR
             ( screen-group1 EQ 'MD4' ).
            screen-input   = c_ok.
            screen-active  = c_ok.
          ENDIF.
          IF ( screen-group1 EQ 'MD5' ) OR
             ( screen-group1 EQ 'MD6' ).
            screen-input   = c_1.
            screen-active  = c_1.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ELSEIF p_rpt EQ c_chk.
        LOOP AT SCREEN.
          IF ( screen-group1 EQ 'MD5' ) OR
             ( screen-group1 EQ 'MD6' ).
            screen-input   = c_ok.
            screen-active  = c_ok.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " sub_select_report
    Regards,
    Prashant

  • TO display pop_up on selection screen And chosse that field in 'SELECT' sta

    Hello,
    I want a pop up on selection screen when user clicks the push button on selection screen pop up should come on selection screen and display the all field of YTLEA table. when user checks few or all field from pop up then data for that field is selected from the YTLEA table.

    DDIF_TABL_GET

  • Hide the parameters on selection screen

    Hi1
    I have a report which has parameters as checkboxes in the sleection screen and by default all the three parameters are checked . What I want to do is hide these parameters in the selection screen while their functionality still existing mean when I run teh report the result should show what it showed when the three checjboxes were checked and the parameters were visible. So now I just want to hide these parameters in my selectiopn screen.
    Can anyone help me out pls.
    PARAMETERS:     p_varia TYPE disvariant-variant MEMORY ID wrk,
                    p_rb1 RADIOBUTTON GROUP G1  user-command ucomm default 'X' hide,
                    p_all AS CHECKBOX DEFAULT 'X' modif id 123,
                    p_group AS CHECKBOX modif id 123,
                    p_rb2 RADIOBUTTON GROUP G1,
                    p_date AS CHECKBOX MODIF ID 234,
                    p_bedat TYPE fpla-bedat DEFAULT sy-datum MODIF ID 234,
                    p_endat TYPE fpla-endat MODIF ID 234,
                    p_rental AS CHECKBOX MODIF ID 234.
    Thanks

    Hi,
    Try this sample code. Hope it will solve ur prob.
    REPORT  ztest_hl7.
    PARAMETERS: p_varia TYPE disvariant-variant MEMORY ID wrk,
    p_all AS CHECKBOX DEFAULT 'X' ,
    p_group AS CHECKBOX DEFAULT 'X' ,
    p_rental AS CHECKBOX DEFAULT 'X' .
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'P_ALL' OR screen-name = 'P_GROUP'
        OR screen-name = 'P_RENTAL'.
          screen-invisible = 1.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    START-OF-SELECTION.
      WRITE /: p_all,p_group,p_rental.
    Regards,
    Joy.

  • Initially net value display zeros on selection screen

    hi friends,
    I created one modulepool program in that on the selection screen NTGEW(net wt)
    field initially displays zero like 0.000, but the user wants it to be blank with out zeros. please sujjest me.
    thank u,
    with regards,
    prasad.

    Hi,
      For the NTGEW field make sure to populate the corresponding reference field also...
      Let's say an example..
      If your field name is MARA-NTGEW and the reference field is MARA-MEINS.
      Make sure to have the field MARA-MEINS populated with the UOM value.
    Thanks
    Naren

  • Want to display space in selection screen

    hi,
    I want to display some space between one select-option and ane checkbox.
    my coding is like
    SELECT-OPTIONS:
      s_vstel FOR vekp-vstel.
    PARAMETERS:
                p_dimen AS CHECKBOX DEFAULT ' '.
    any pointer.

    Hi,
    Use the
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
    Selection-Screen : Begin of Line.
      SELECT-OPTIONS:
    s_vstel FOR vekp-vstel.
    SELECTION-SCREEN: Skip.
    PARAMETERS:
    p_dimen AS CHECKBOX DEFAULT ' '.
    Selection-Screen : End of Line.
    SELECTION-SCREEN END OF BLOCK b1.
    Edited by: avinash kodarapu on Nov 20, 2008 3:17 PM

Maybe you are looking for

  • Question regarding Airport and DHCP settings

    I currently had a Dlink 624 router that just died. I need to get a new wifi router and was looking at the airport extreme base station... the question I have is with Dlink my dhcp is set to send out 192.168.0.xxx to my network. The apple is 10.0.0.xx

  • Repeating a field in a query region

    I have a htmldb_item generated query region with an editable text field. In a after submit process, I want to take some action if the value of the text field has changed. The only way I could think of to determine if the field changed was to fetch it

  • Why won't Safari respond to anchors?

    I have anchors on my website that work fine with many versions of IE & Mozilla over the last decade, but I just learned from a friend that Safari ignores the anchors on his computer: http://www.PerformanceAllies.com/about/pioneers (At the bottom of t

  • Upgrade NI-FBUS 3.2 and NI-Configurator 3.1

    Is it possible to upgrade my NI-FBUS Communications Manager version 3.2 to Version 3.2.1 and also use NI-FBUS Configurator Version 3.1? According to the install notes for NI-FBUS software Version 3.2.1 I must use Configurator Verison 3.2. Is NI forci

  • LOVs based on web services

    Hi, I have an ADF 10g application (JSF + ADF BC) in which I am creating LOVs (selectInputText) that need to be populated from web services.The LOV would consist of a search form and an ADF table to show the results. I realise that there are a couple