Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8623

Re: Regarding disabling print button

$
0
0

Hi,

 

The only reasonable way I can think of boils down to following:

 

1) calling the print options dialog (using FM SSFCOMP_SHOW_DIALOG) in application rather than letting Smartform Composer handle it internally;

2) after options dialog setting CONTROL_PARAMETERS-NO_DIALOG = 'X' and, if the user has choosen preview, OUTPUT_OPTIONS-TDNOPRINT = 'X'


I have thrown together quick example based on SF_EXAMPLE_01 (do use SAPBC_DATA_GENERATOR to generate the test data or logic will not work!!!):

 

REPORT SF_EXAMPLE_01.


DATA: GS_SSFCOMPIN TYPE SSFCOMPIN .

DATA: GS_OUTPUT_OPTIONS TYPE SSFCOMPOP.

DATA: GS_CONTROL_PARAMETERS TYPE SSFCTRLOP .


DATA: CARR_ID TYPE SBOOK-CARRID,

      FM_NAME TYPE RS38L_FNAM.

 

PARAMETER:      P_CUSTID TYPE SCUSTOM-ID DEFAULT1.

SELECT-OPTIONS: S_CARRID FOR CARR_ID     DEFAULT'LH'TO'LH'.

PARAMETER:      P_FORM   TYPE TDSFNAME   DEFAULT'SF_EXAMPLE_01'.

 

DATA: CUSTOMER    TYPE SCUSTOM,

      BOOKINGS    TYPE TY_BOOKINGS,

      CONNECTIONS TYPE TY_CONNECTIONS.


START-OF-SELECTION.


  CALLFUNCTION'SSFCOMP_SHOW_DIALOG'

    EXPORTING

      INPUT             = GS_SSFCOMPIN

      OK_BUTTON         = SPACE

    IMPORTING

*     ARCHIVE_PARAMETERS =

      OUTPUT_OPTIONS    = GS_OUTPUT_OPTIONS

      CONTROL_PARAMETERS = GS_CONTROL_PARAMETERS

    EXCEPTIONS

      ERROR             = 1

      OTHERS            = 2.

  IF SY-SUBRC <>0.

    MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ELSE.

    GS_CONTROL_PARAMETERS-NO_DIALOG = 'X' .

    IF GS_CONTROL_PARAMETERS-PREVIEW = 'X' .

      GS_OUTPUT_OPTIONS-TDNOPRINT = 'X' .

    ENDIF .

  ENDIF.

 

* get data

  SELECTSINGLE * FROM SCUSTOM INTO CUSTOMER WHEREID = P_CUSTID.

  CHECK SY-SUBRC = 0.

  SELECT * FROM SBOOK INTOTABLE BOOKINGS

           WHERE CUSTOMID = P_CUSTID

           AND   CARRID   IN S_CARRID

           ORDERBY PRIMARY KEY.

  SELECT * FROM SPFLI INTOTABLE CONNECTIONS

           FORALLENTRIESIN BOOKINGS

           WHERE CARRID = BOOKINGS-CARRID

           AND   CONNID = BOOKINGS-CONNID

           ORDERBY PRIMARY KEY.


* print data

  CALLFUNCTION'SSF_FUNCTION_MODULE_NAME'

    EXPORTING

      FORMNAME          = P_FORM

    IMPORTING

      FM_NAME           = FM_NAME

    EXCEPTIONS

      NO_FORM           = 1

      NO_FUNCTION_MODULE = 2

      OTHERS            = 3.


  IF SY-SUBRC <>0.

*   error handling

    MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.


* now call the generated function module

  CALLFUNCTION FM_NAME

    EXPORTING

      CONTROL_PARAMETERS = GS_CONTROL_PARAMETERS

      OUTPUT_OPTIONS    = GS_OUTPUT_OPTIONS

      USER_SETTINGS     = SPACE

      CUSTOMER          = CUSTOMER

      BOOKINGS          = BOOKINGS

      CONNECTIONS       = CONNECTIONS

    EXCEPTIONS

      FORMATTING_ERROR  = 1

      INTERNAL_ERROR    = 2

      SEND_ERROR        = 3

      USER_CANCELED     = 4

      OTHERS            = 5.


  IF SY-SUBRC <>0.

*   error handling

    MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

 

Do not forget to take ARCHIVE_PARAMETERS along; I have left it out because it's quick example for print button

 

cheers

Janis


Viewing all articles
Browse latest Browse all 8623

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>