Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

POV and POH in Dialog programming

Former Member
0 Likes
2,221

Hi,

1.How to do POV and POH in Dialog programing?

2. How to do 'total' and 'subtotal' in SCRIPT?

Thanks in advance

Jana

3 REPLIES 3
Read only

Former Member
0 Likes
1,125

Hi

see this for scripts

http://esnips.com/doc/b57e8989-ccf0-40d0-8992-8183be831030/sapscript-how-to-calculate-totals-and-sub...

for POV

For F4 Values on Screen:

PROCESS ON VALUE_REQUEST

using module call starting with FIELD i.e FIELD field MODULE module

There are number of function modules that can be used for the purpose, but these

can fullfill the task easily or combination of them.

DYNP_VALUE_READ

F4IF_FIELD_VALUE_REQUEST

F4IF_INT_TABLE_VALUE_REQUEST

POPUP_WITH_TABLE_DISPLAY

DYNP_VALUE_READ

This function module is used to read values in the screen fields. Use of this

FM causes forced transfer of data from screen fields to ABAP fields.

There are 3 exporting parameters

DYNAME = program name = SY-CPROG

DYNUMB = Screen number = SY-DYNNR

TRANSLATE_TO_UPPER = 'X'

and one importing TABLE parameter

DYNPFIELDS = Table of TYPE DYNPREAD

The DYNPFIELDS parameter is used to pass internal table of type DYNPREAD

to this FM and the values read from the screen will be stored in this table.This

table consists of two fields:

FIELDNAME : Used to pass the name of screen field for which the value is to

be read.

FIELDVALUE : Used to read the value of the field in the screen.

e.g.

DATA: SCREEN_VALUES TYPE TABLE OF DYNPREAD ,

SCREEN_VALUE LIKE LINE OF SCREEN_VALUES.

SCREEN_VALUE-FIELDNAME = 'KUNNR' . * Field to be read

APPEND SCREEN_VALUE TO SCREEN_VALUES. * Fill the table

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = SY-CPROG

DYNUMB = SY-DYNNR

TRANSLATE_TO_UPPER = 'X'

TABLES

DYNPFIELDS = SCREEN_VALUES.

READ TABLE SCREEN_VALUES INDEX 1 INTO SCREEN_VALUE.Now the screen value for field KUNNR is in the SCREEN_VALUE-FIELDVALUE and can be used for further processing like using it to fill the internal table to be used as parameter in F4IF_INT_TABLE_VALUE_REQUEST ETC.

F4IF_FIELD_VALUE_REQUEST

This FM is used to display value help or input from ABAP dictionary.We have to pass the name of the structure or table(TABNAME) along with the field name(FIELDNAME) . The selection can be returned to the specified screen field if three

parameters DYNPNR,DYNPPROG,DYNPROFIELD are also specified or to a table if RETRN_TAB is specified.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

TABNAME = table/structure

FIELDNAME = 'field name'

DYNPPROG = SY-CPROG

DYNPNR = SY-DYNR

DYNPROFIELD = 'screen field'

IMPORTING

RETURN_TAB = table of type DYNPREAD

.

F4IF_INT_TABLE_VALUE_REQUEST

This FM is used to dsiplay values stored in an internal table as input

help.This FM is used to program our own custom help if no such input help

exists in ABAP dictionary for a particular field. The parameter VALUE_TAB is used to pass the internal table containing input values.The parameter RETFIELD

is used to specify the internal table field whose value will be returned to the screen field or RETURN_TAB.

If DYNPNR,DYNPPROG and DYNPROFIELD are specified than the user selection is passed to the screen field specified in the DYNPROFIELD. If RETURN_TAB is specified the selectionis returned in a table.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = field from int table whose value will be returned

DYNPPROG = SY-CPROG

DYNPNR = SY-DYNNR

DYNPROFIELD = 'screen field'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = internal table whose values will be shown.

RETURN_TAB = internal table of type DDSHRETVAL

EXCEPTIONS

parameter_error = 1

no_values_found = 2

others = 3.

POPUP_WITH_TABLE_DISPLAY

This FM is used to display the contents of an internal table in a popup window.The user can select a row and the index of that is returned in the CHOISE

parameter.The VALUETAB is used to pass the internal table.

A suitable title can be set using TITLETEXT parameter. The starting and end position of the popup can be specified by the parameters STARTPOS_COL / ROW and ENDPOS_ROW / COL .

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'

EXPORTING

ENDPOS_COL =

ENDPOS_ROW =

STARTPOS_COL =

STARTPOS_ROW =

TITLETEXT = 'title text'

IMPORTING

CHOISE =

TABLES

VALUETAB =

EXCEPTIONS

BREAK_OFF = 1

OTHERS = 2.

e.g.

DATA: w_choice TYPE SY-TABIX.

DATA: BEGIN OF i_values OCCURS 0 WITH HEADER LINE,

values TYPE I,

END OF i_values.

PARAMETRS : id TYPE I.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR id

i_values-values = '0001'.

APPEND i_values.

i_values-values = '0002'.

APPEND i_values.

i_values-values = '0003'.

APPEND i_values.

i_values-values = '0004'.

APPEND i_values.

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'

EXPORTING

ENDPOS_COL = 40

ENDPOS_ROW = 12

STARTPOS_COL = 20

STARTPOS_ROW = 5

TITLETEXT = 'Select an ID'

IMPORTING

CHOISE = w_choice

TABLES

VALUETAB = i_values

EXCEPTIONS

BREAK_OFF = 1

OTHERS = 2.

CHECK w_choice > 0.

READ TABLE i_values INDEX w_choice....now we can process the selection as it is contained

...in the structure i_values.

Other FM that may be used to provide input help is HELP_START .

Reward points for useful Answers

Regards

Anji

Read only

Former Member
0 Likes
1,125

Hi,

----

-


Field Help

There are three ways of displaying field help for screen elements:

Data Element Documentation

If you place a field on the screen in the Screen Painter by copying a ABAP Dictionary field, the corresponding data element documentation from the ABAP Dictionary is automatically displayed when the user chooses field help (as long as the help has not been overridden in the screen flow logic).

For further information about creating data element documentation, refer to data elements.

Data Element Supplement Documentation

If the data element documentation is insufficient, you can expand it by writing a data element supplement

Data element supplement documentation contains the heading Definition, as well as the following others:

Use

Procedure

Examples

Dependencies

To create data element supplement documentation for a screen, choose Goto ® Documentation ® DE supplement doc. from the element list of the screen. A dialog box appears in which the system proposes a number as the identified for the data element supplement. You can then enter help texts for the above headings using the SAPscript editor.

Data element supplement documentation created in this way is program- and screen-specific. Any data element supplement documentation created in the ABAP Dictionary with the same number is overridden by the screen-specific documentation. You can link existing data element supplement documentation created in the ABAP Dictionary with a screen field by using the table THLPF. To do this, crate a new row in THLPF containing the following data: Program name, screen name, field name, and number of the data element supplement documentation.

To display data element supplement documentation, you must code the following screen flow logic in the POH event:

PROCESS ON HELP-REQUEST.

...

FIELD is defined in the ABAP program like a normal PAI module. The processing logic of the module must ensure that adequate help is displayed for the field in question. Instead of calling an extra screen with text fields, you should use one of the following function modules to display a suitable SAPscript document:

HELP_OBJECT_SHOW_FOR_FIELD

This function module displays the data element documentation for components of any structure or database table from the ABAP Dictionary. You pass the name of the component and structure or table to the import parameters FIELD and TABLE.

HELP_OBJECT_SHOW

Use this function module to display any SAPscript document. You must pass the document class (for example, TX for general texts, DE for data element documentation) and the name of the document to the import parameters DOKCLASS and DOKNAME. For technical reasons, you must also pass an empty internal table with the line type TLINE to the tables parameter of the function module.

For further information about how to create SAPscript documents, refer to the Documentation of System Objects documentation.

Field help on screens.

REPORT DEMO_DYNPRO_F1_HELP.

DATA: TEXT(30),

VAR(4),

INT TYPE I,

LINKS TYPE TABLE OF TLINE,

FIELD3, FIELD4.

TABLES DEMOF1HELP.

TEXT = TEXT-001.

CALL SCREEN 100.

MODULE CANCEL INPUT.

LEAVE PROGRAM.

ENDMODULE.

MODULE F1_HELP_FIELD2 INPUT.

INT = INT + 1.

CASE INT.

WHEN 1.

VAR = '0100'.

WHEN 2.

VAR = '0200'.

INT = 0.

ENDCASE.

ENDMODULE.

MODULE F1_HELP_FIELD3 INPUT.

CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'

EXPORTING

DOKLANGU = SY-LANGU

DOKTITLE = TEXT-002

CALLED_FOR_TAB = 'DEMOF1HELP'

CALLED_FOR_FIELD = 'FIELD1'.

ENDMODULE.

MODULE F1_HELP_FIELD4 INPUT.

CALL FUNCTION 'HELP_OBJECT_SHOW'

EXPORTING

DOKCLASS = 'TX'

DOKLANGU = SY-LANGU

DOKNAME = 'DEMO_FOR_F1_HELP'

DOKTITLE = TEXT-003

TABLES

LINKS = LINKS.

ENDMODULE.

The next screen (statically defined) for screen 100 is 100. It has the following layout:

The screen fields DEMOf1HELP-FIELD1 and DEMOF1HELP-FIELD2 from the ABAP Dictionary and the program fields FIELD3 and FIELD4 are assigned to the input fields. The pushbutton has the function code CANCEL with function type E.

The screen flow logic is as follows:

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

MODULE CANCEL AT EXIT-COMMAND.

PROCESS ON HELP-REQUEST.

FIELD DEMOF1HELP-FIELD2 MODULE F1_HELP_FIELD2 WITH VAR.

FIELD FIELD3 MODULE F1_HELP_FIELD3.

FIELD FIELD4 MODULE F1_HELP_FIELD4.

The components FIELD1 and FIELD2 of structure DEMOF1HELP both refer to the data element DEMOF1TYPE. This data element is documented, and also has two supplements with numbers 0100 and 0200.

The following field help is displayed:

When the user chooses F1 on the input field for DEMOF1HELP-FIELD1, the data element documentation for DEMOF1TYPE is displayed, since the field does not occur in the PROCESS ON HELP-REQUEST event.

If the user chooses F1 repeatedly for the input field DEMOF1HELP-FIELD2, the data element documentation is displayed, along with the supplement documentation for either 0100 or 0200 alternately. The variable VAR is filled in the dialog module F1_HELP_FIELD2.

When the user chooses F1 on the input field for FIELD3, the data element documentation for DEMOF1TYPE is displayed, since this is called in the dialog module F1_HELP_FIELD3 by the function module HELP_OBJECT_SHOW_FOR_FIELD.

When the user chooses F1 on the input field for FIELD4, the SAPscript documentation DEMO_FOR_F1_HELP is displayed, since this is called in the dialog module F1_HELP_FIELD4 by the function module HELP_OBJECT.

Refer this link for second Q

Read only

Former Member
0 Likes
1,125

hi,

PROCESS ON HELP-REQUEST (POH) and PROCESS ON VALUE-REQUEST (POV) are triggered when the user requests field help (F1) or possible values help (F4) respectively. You can program the appropriate coding in the corresponding event blocks. At the end of processing, the system carries on processing the current screen.

<b>POH</b>

f data element supplement documentation is insufficient for your requirements, or you want to display help for program fields that you have not copied from the ABAP Dictionary, you can call dialog modules in the POH event:

<b>PROCESS ON HELP-REQUEST.

...

FIELD <f> MODULE <mod>.

...</b>

After the PROCESS ON HELP-REQUEST statement, you can only use the MODULE statement together with the FIELD statement. When the user chooses F1 for a field <f>, the system calls the module <mod> belonging to the FIELD <f> statement.

The module <mod> is defined in the ABAP program like a normal PAI module. The processing logic of the module must ensure that adequate help is displayed for the field in question. Instead of calling an extra screen with text fields, you should use one of the following function modules to display a suitable SAPscript document:

<b>HELP_OBJECT_SHOW_FOR_FIELD</b>

This function module displays the data element documentation for components of any structure or database table from the ABAP Dictionary. You pass the name of the component and structure or table to the import parameters FIELD and TABLE.

<b>HELP_OBJECT_SHOW</b>

Use this function module to display any SAPscript document.

<b>SAMPLE PROGRAM</b>

The screen flow logic is as follows:

PROCESS BEFORE OUTPUT.

[code]PROCESS AFTER INPUT.
  MODULE CANCEL AT EXIT-COMMAND.

PROCESS ON HELP-REQUEST.
  FIELD DEMOF1HELP-FIELD2 MODULE F1_HELP_FIELD2 WITH VAR.
  FIELD FIELD3 MODULE F1_HELP_FIELD3.
  FIELD FIELD4 MODULE F1_HELP_FIELD4.

REPORT DEMO_DYNPRO_F1_HELP.

DATA:  TEXT(30),
       VAR(4),
       INT TYPE I,
       LINKS TYPE TABLE OF TLINE,
       FIELD3, FIELD4.

TABLES DEMOF1HELP.

TEXT = TEXT-001.

CALL SCREEN 100.

MODULE CANCEL INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE F1_HELP_FIELD2 INPUT.
  INT = INT + 1.
  CASE INT.
    WHEN 1.
    VAR = '0100'.
    WHEN 2.
    VAR = '0200'.
    INT = 0.
  ENDCASE.
ENDMODULE.

MODULE F1_HELP_FIELD3 INPUT.
  CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'
       EXPORTING
            DOKLANGU                      = SY-LANGU
            DOKTITLE                      = TEXT-002
            CALLED_FOR_TAB                = 'DEMOF1HELP'
            CALLED_FOR_FIELD              = 'FIELD1'.
ENDMODULE.

MODULE F1_HELP_FIELD4 INPUT.
  CALL FUNCTION 'HELP_OBJECT_SHOW'
       EXPORTING
            DOKCLASS                      = 'TX'
            DOKLANGU                      = SY-LANGU
            DOKNAME                       = 'DEMO_FOR_F1_HELP'
            DOKTITLE                      = TEXT-003
       TABLES
            LINKS                         = LINKS.
ENDMODULE.

<b>POV</b>

You can call dialog modules in the POV event using the event keyword PROCESS ON VALUE-REQUEST.

<b>PROCESS ON VALUE-REQUEST.

...

FIELD <f> MODULE <mod>.

...</b>

After the PROCESS ON VALUE-REQUEST statement, you can only use the MODULE statement together with the FIELD statement. When the user chooses F4 for a field <f>, the system calls the module <mod> belonging to the FIELD <f> statement

Despite the introduction of search helps (and search help exits), there are still cases in which you need to use parts of the standard F4 functions directly. In this case, there are some standard function modules that you can use in the POV event.

<b>F4IF_FIELD_VALUE_REQUEST</b>

Calls the input help of the ABAP Dictionary dynamically. You can pass the component names of a structure or database table of the ABAP Dictionary to the function module in the import parameters TABNAME and FIELDNAME.

F4IF_INT_TABLE_VALUE_REQUEST

This function module displays a value list that you created in an ABAP program. The value list is passed to the function module as the table parameter VALUE_TAB

<b>SAMPLE PROGRAM</b>.

The screen flow logic is as follows: 

PROCESS BEFORE OUTPUT.
  MODULE INIT.

PROCESS AFTER INPUT.
  MODULE CANCEL AT EXIT-COMMAND.

PROCESS ON VALUE-REQUEST.
  FIELD CARRIER MODULE VALUE_CARRIER.
  FIELD CONNECTION MODULE VALUE_CONNECTION.

REPORT DEMO_DYNPRO_F4_HELP_MODULE.

TYPES: BEGIN OF VALUES,

CARRID TYPE SPFLI-CARRID,

CONNID TYPE SPFLI-CONNID,

END OF VALUES.

DATA: CARRIER(3) TYPE C,

CONNECTION(4) TYPE C.

DATA: PROGNAME LIKE SY-REPID,

DYNNUM LIKE SY-DYNNR,

DYNPRO_VALUES TYPE TABLE OF DYNPREAD,

FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,

VALUES_TAB TYPE TABLE OF VALUES.

CALL SCREEN 100.

MODULE INIT OUTPUT.

PROGNAME = SY-REPID.

DYNNUM = SY-DYNNR.

CLEAR: FIELD_VALUE, DYNPRO_VALUES.

FIELD_VALUE-FIELDNAME = 'CARRIER'.

APPEND FIELD_VALUE TO DYNPRO_VALUES.

ENDMODULE.

MODULE CANCEL INPUT.

LEAVE PROGRAM.

ENDMODULE.

MODULE VALUE_CARRIER INPUT.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

TABNAME = 'DEMOF4HELP'

FIELDNAME = 'CARRIER1'

DYNPPROG = PROGNAME

DYNPNR = DYNNUM

DYNPROFIELD = 'CARRIER'.

ENDMODULE.

MODULE VALUE_CONNECTION INPUT.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = PROGNAME

DYNUMB = DYNNUM

TRANSLATE_TO_UPPER = 'X'

TABLES

DYNPFIELDS = DYNPRO_VALUES.

READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.

SELECT CARRID CONNID

FROM SPFLI

INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB

WHERE CARRID = FIELD_VALUE-FIELDVALUE.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'CONNID'

DYNPPROG = PROGNAME

DYNPNR = DYNNUM

DYNPROFIELD = 'CONNECTION'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = VALUES_TAB.

ENDMODULE.[/code]

<b>FOR TOTAL IN SASPSCRIPT</b>

For calculating total, we use SUMMING control command in sapscript.

the SUMMING command is used for accumulating a total values for program symbol.

the command should be specified just once then each time the specified symbol is formated. it's current value is add to the total symbol.

/:define &SUMTAB-AMOUNT&
/:define &SUMTAB-TOTAL&
/: SUMMING &SUMTAB-AMOUNT& INTO &SUMTAB-TOTAL&

<b>or</b>

<b>follow this link for TOTAL and SUBTOTAL in SCRIPT:</b>

http://sap-img.com/sapscripts/sapscript-how-to-calculate-totals-and-subtotals.htm

regards,

Ashokreddy.