SCREEN Table Donwload
Hi all,
I would like to know how could I get the value of a variable that is in the table Screen memory. I explain:
When I debugg a program that I´m writing I read that in the System Area->SCREEN table is the field that i need to download and I don´t know how to get that value.
Any Ideas
Thanks!!
Hi Gabriel,
In a field exit you can use function DYNP_VALUES_READ to read the data in other fields of the screen on which you have a field exit . You will have to pass the parameters correctly to this FM to get the values back.
For example
<b> data dynr like dynpread occurs 0 with header line.
dynr-fieldname = <SCREEN_FEILD_NAME>.
append dynr.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = <PROGRAM>
DYNUMB = <SCREEN_NUM>
TRANSLATE_TO_UPPER = ' '
REQUEST = ' '
PERFORM_CONVERSION_EXITS = ' '
PERFORM_INPUT_CONVERSION = ' '
DETERMINE_LOOP_INDEX = ' '
TABLES
DYNPFIELDS = dynr
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.
MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
read table dynr index 1.</b>
The value will be in dynr-fieldvalue. You can append more than one fields to table DYNR .
Between I just noticed in FBCJ the field F_RUN_CASH_BALANCE on screen does not refer to a dictionary field directly so a field exit on data element CJAMOUNT wont work even if you activate it. For field exits to work on a screen the screen field should refer directly to dictionary like MARA-MATNR and the checkbox "Dict Field" should be checked .
Cheers
Message was edited by: Sanjay Sinha
Similar Messages
-
Purpose of REQUEST field in SCREEN table
HI Everyone,
Could someone explain me the purpose of the field REQUEST in the screen table with an example if possible?
Thanks in advance.Hi,
Check this one
SCREEN-COLOR and REQUEST -
SCREEN table in the new ABAP debugger
As of ABAP 6.20 in the debugger it's possible to display the SCREEN table.
I couldn't find the way it in the new debugger (6.40). SCREEN can be displayed as a structure, but if I enter it to the table tab, it shows "invalid table".
I have no access to release 7.00 right now, where it might be possible.
Any info on this one?
Thanks in advance,
PeterHi Sridhar,
Thanks, but this is what I meant, when I said "As of ABAP 6.20 in the debugger it's possible to display the SCREEN table.".
I'm looking for the same in the new debugger.
Peter -
Change the decimal places of a field in screen table control
HI ,
I have a MENGE field having data element as , BSTMG (decimals 3 ).
This field MENGE , I have used in a table control. The value in this field is filled from a custom Z-table where the same data element BSTMG is used. So , for eq.) value in MENGE field is shown as 6.010
But the requirement is that the value should be displayed as only 2 decemals i.e.) 6.01
I dont want to change the domain of the field in the Z-table , to 2 decimal places , because the table is used in other developments also , so it will give a dump there which I have to correct in other developments also.
So , is there any way to change the decimal places of a field in screen table control , without changing the domain , in the table from where the value is fetched... ????
Edited by: abhijeet_7013 on Feb 14, 2011 3:18 PMHi, create a structure in local program with same field names and change the TYPE with some 2 decimal domain of MENGE. Populate this local stucture and use it in TABLE CONTROL.
Hope this helps...
Cheers -
Screen Table ! Doubt!
Hi!
In Screen Table whats the difference b'tween ACTIVE & INPUT
BOTH Seems to be input fields then what??
Thanks In Advance
Rahul.Hi
input is just applies for input-enabled field
active field attributes are Input/Output/Invisible
and used for active field
Except active, all components of structure screen directly correspond to one attribute of the current screen element. The component active has no match in the attributes. If you change its content with MODIFY SCREEN, this affects the attributes Input, Output and Invisible and thus the components input, output and invisible of structure screen.
Reward points for useful Answers
Regards
Anji -
How we can loop the screen table.
Hi All,
We are used loop the screen table but it is a structure how we are able to do this what sap doing behind this can any body please tell me.
Thanks,
Saleem.Hi
SCREEN is a structure only.
But when you create a screen or selection-screen; the program which controls your screen or selection-screen creates an internal table with header line of type SCREEN.
So in your program SCREEN is an internal table, you can always loop it.
To understand it better, write some parameters and select-options in a report program; in debugging mode see the details of SCREEN table.
Regards
Surya. -
How can I directly update a SAP screen table control with values?
I have a need to update a table control on a standard SAP screen with values. Here's the scenario: The user will come into a standard SAP transaction (IQS2-change notification) and click on an action button which calls a function module. That function module will determine what needs to be added to the SAP screen table control (add additional task rows). When the function module returns with the row data to be added to table control, I would like to set those values as if the user input directly. The table control is located on it's separate tab (TASKS) in the transaction. I cannot find any user exists or BADI's for this transaction to allow me to affect the TASKS tab table control for this GUI. I'm trying to prevent from having to make a custom modification. If anyone has any ideas, please let me know. Thanks.
Hi,
Check these enhancements:
IWOC0002 PM/SM notification: Check whether status change is allowed
QQMA0001 QM/PM/SM: User Subscreen for Notification Header
QQMA0008 QM/PM/SM: User Subscreen for Additional Data on Notif. Ite
QQMA0011 QM/PM/SM: User Subscreen for Additional Data on Task
QQMA0013 QM: Default Values when Creating a Task
QQMA0014 QM/PM/SM: Checks before saving a notification
QQMA0015 QM/PM/SM: User-Exit before Call-Up of F4 Help on Catalogs
QQMA0016 QM/PM/SM: "User data" Function "Goto" --> "Task" Menu
IWO10026 User check on setting status 'Do not perform'
IWO10027 User exit: Generate user-defined settlement rule
IWOC0001 Create PM/SM notification: Determine reference object
IWOC0002 PM/SM notification: Check whether status change is allowed
IWOC0003 PM/SM authorization check of ref. object and planner group
IWOC0004 Change single-level list editing PM/QM/SM ALV settings
Regards
Appana -
Helpp regarding screen table.
Hii gurus..
in which table of SAP the screen of the module pool stores.??
Please reply its urgent,
ManishHi,
If you are talking about the SCREEN table that controls the screen attributes, while in the debugger screen try the following path,
GOTO-> System Areas-> SCREEN table.
There you will be able to check the values of the screen table you are using in the program.
Jayant Sahu -
hi!
i build a screen table with table control.
in the screen i dont have the scrolling bar, eventhough all the the parameters in the table control are set.
do i have to set any other parameters in the table.
i read in ths sap help about field line that has to be set in the pai or the pbo, how do i do it?
regards
yifat barHi Yifat,
Please follow the below code.Here internal table is
G_SCR2000_HEADER_2
Create push buttons pagedown pageup last page and first page respectively and give a funcion code P-, P, P-- and P+.
PBO code:
Table control name is PURC_REQI_TBCTR
module PURC_REQI_TBCTR_change_tc_attr.
*&spwizard: module PURC_REQI_TBCTR_change_col_attr.
loop at G_SCR2000_HEADER_2
with control PURC_REQI_TBCTR
cursor PURC_REQI_TBCTR-current_line.
module PURC_REQI_TBCTR_get_lines.
*&spwizard: module PURC_REQI_TBCTR_change_field_attr
endloop.
Modules:
module SUPL_LST_TBLCTR_get_lines output.
g_SUPL_LST_TBLCTR_lines = sy-loopc.
endmodule.
module PURC_REQI_TBCTR_change_tc_attr output.
describe table G_SCR2000_HEADER_2 lines PURC_REQI_TBCTR-lines.
endmodule.
PAI:
loop at G_SCR2000_HEADER_2.
chain.
field G_SCR2000_HEADER_2-PURC_REQI_NO.
field G_SCR2000_HEADER_2-DATE.
endchain.
endloop.
module PURC_REQI_TBCTR_user_command.
Modules:
module PURC_REQI_TBCTR_user_command input.
OK_CODE = sy-ucomm.
perform user_ok_tc using 'PURC_REQI_TBCTR'
'G_SCR2000_HEADER_2'
changing OK_CODE.
sy-ucomm = OK_CODE.
endmodule.
FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME
CHANGING P_OK LIKE SY-UCOMM.
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA: L_OK TYPE SY-UCOMM,
L_OFFSET TYPE I.
&SPWIZARD: END OF LOCAL DATA----
*&SPWIZARD: Table control specific operations *
*&SPWIZARD: evaluate TC name and operations *
SEARCH P_OK FOR P_TC_NAME.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
L_OFFSET = STRLEN( P_TC_NAME ) + 1.
L_OK = P_OK+L_OFFSET.
*&SPWIZARD: execute general and TC specific operations *
CASE L_OK.
WHEN 'INSR'. "insert row
PERFORM FCODE_INSERT_ROW USING P_TC_NAME
P_TABLE_NAME.
CLEAR P_OK.
WHEN 'P--' OR "top of list
'P-' OR "previous page
'P+' OR "next page
'P++'. "bottom of list
PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
L_OK.
CLEAR P_OK.
WHEN 'MARK'. "mark all filled lines
PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
WHEN 'DMRK'. "demark all filled lines
PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
ENDCASE.
ENDFORM. " USER_OK_TC
*& Form COMPUTE_SCROLLING_IN_TC
text
-->P_TC_NAME name of tablecontrol
-->P_OK ok code
FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
P_OK.
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_TC_NEW_TOP_LINE TYPE I.
DATA L_TC_NAME LIKE FELD-NAME.
DATA L_TC_LINES_NAME LIKE FELD-NAME.
DATA L_TC_FIELD_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE cxtab_control.
FIELD-SYMBOLS <LINES> TYPE I.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
ASSIGN (L_TC_LINES_NAME) TO <LINES>.
*&SPWIZARD: is no line filled? *
IF <TC>-LINES = 0.
*&SPWIZARD: yes, ... *
L_TC_NEW_TOP_LINE = 1.
ELSE.
*&SPWIZARD: no, ... *
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
ENTRY_ACT = <TC>-TOP_LINE
ENTRY_FROM = 1
ENTRY_TO = <TC>-LINES
LAST_PAGE_FULL = 'X'
LOOPS = <LINES>
OK_CODE = P_OK
OVERLAPPING = 'X'
IMPORTING
ENTRY_NEW = L_TC_NEW_TOP_LINE
EXCEPTIONS
NO_ENTRY_OR_PAGE_ACT = 01
NO_ENTRY_TO = 02
NO_OK_CODE_OR_PAGE_GO = 03
OTHERS = 0.
ENDIF.
*&SPWIZARD: get actual tc and column *
GET CURSOR FIELD L_TC_FIELD_NAME
AREA L_TC_NAME.
IF SYST-SUBRC = 0.
IF L_TC_NAME = P_TC_NAME.
*&SPWIZARD: et actual column *
SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
ENDIF.
ENDIF.
*&SPWIZARD: set the new top line *
<TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
ENDFORM. " COMPUTE_SCROLLING_IN_TC
There is some extra code also in this for other operations also. Please i suggest use a table control wizard.
Please let me know if any clarifications required.
Regards
Anil Kumar K -
How to populate the next screen based on the previous screen table control
Hi Experts,
Is this possible to generate the next screen values based on the table control values in previous screen.
My Requirement is
In my First screen i m having 5-7 regional offices in table control and also amount field for each regional offices.(amount field is editable)
User has to enter amount field for Regional office..based on the amount field i need to process the next screen. For Ex if user is entering amount for 3 regional offices out of 7 regional offices then i need to get the screen for the 3 regional offices..
Pls suggest me how to do this..
Regards,
ZakirHi Zakir,
Do you have any button for calling the second screen after entering amount in the first table control screen or you have to call the screen on pressing enter on the table control?
You will have to handle it in the PAI of the table control loop.Get data entered in the table control in your internal table of table control.You can prepare the data passed to the next screen from this internal table. Fill the second screen elements and Use CALL SCREEN XXX. XXX is your second screen no.
Thanks,
Pawan -
Collections screen tables in R12
Hi,
I have a requirement to create a new Collector Call history in R12 as these report have been dicommissioned in R12. User is entering the data in Notes and Task tab in the Collection screen. When we select the Organization and select View -Customer- Then it will display all notes in notes tab. I am not able to find out the link between these two.How notes data is displaying customer wise.The table/view AST_NOTES_DETAILS_Vl is having source_object_id field which contains the Customer account ID but when when user enter the notes using Interaction screen then there is no cust_Accout_id. Then how it displays the data? I am really confused... What are the tables names of Interaction screen and what is the link???
Please help..
Thanks,
Joohi1. choose a db
3. learn sql
3. learn jdbc
4. build db and tables
5. connect to db
6. execute appropriate sql statements
7. btw, consider db connection pooling and dao layer
8. have a nice day -
Need to disable delete icon in over view screen (table maintainance)
In the overview screen (transaction se 54 -> generated object -> overview screen) in table maintainance i need to disable the delete icon.
Anyone can please help me in it.Hi,
check the program name for the transaction and create a screen exit for the same.
Also u can go for copying the code in customer namespace and then add ur own functionality to dactivate or remove the delete function.
Pls reward points for the answer.
Regards,
Ameet -
Looping selection screen table
Hi All,
The selection screen has a select-option input field for Profit Center (S_PRCTR).
Hence user can enter the value like 1000 to 1200 in the selection screen.
Now in the Program, one internal table has list of Profit centers.
ex: ITAB will have following profit centers.
1000, 1001, 1002, 1200
Now, i would like to know which are the Profit centers that are missing in the ITAB from S_PRCTR.
How to write the logic?
Regards
PavanHi
you need to have the exact values of the select-options. So put in an internal table the value of profit center
select prctr into table t_tab from cepc where prctr in s_prctr
after you can loop on your second tab and read the table t_tab to find the values out.
like something like this:
loop at itab.
read table t_tab with key prctr = itab-prctr.
if not sy-subrc is initial.
--> you find it
endif.
endloop.
i hope it's helpful -
Updating attributes of screen table
Hi Experts,
Is there any function module which can update the attributes of a screen like
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1
in a PAI event. I just want a FM that is similar to DYNP_VALUES_UPDATE or DYNP_UPDATE_FIELDS. Instead of values the attributes should get updated in PAI without PBO being triggered.
TIA.you can use a validation kind of thing for the value entered by f4.
use the appropriate even to place this psuedo code..
if pa_field = 'Value1'.
loop at screen assigning <fs_screen>.
active == )&*()
inactive == (P()_
endloop.
elseif pa_field = 'Value2'.
loop at screen assigning <fs_screen>.
active == )&*()
inactive == (P()_
endloop.
endif. -
Query about screen as a structure used in table control.
hi all,
plz explain the fields in screen(structure).
when and how it is used.
specialy i/o, o/p,active,
plz give example.hi,
The screen elements text field, input/output field, status icon, group box, radio button, checkbox, and
pushbutton all have general attributes, Dictionary attributes, program attributes, and display attributes.
The elements subscreen, tabstrip control, and table control have general attributes, and special
attributes relating to the respective type.
We can divide the attributes of an element into:
Statically definable attributes that cannot be changed dynamically
Statically definable attributes that can be changed dynamically
Attributes that can only be changed dynamically
At the beginning of the PBO, the runtime system reads the statically-created and dynamically-modifiable
attributes of each screen element on the current screen into a system table with the line type SCREEN.
Dynamic changes to the attributes of screen elements are temporary.
Using this technique to modify the attributes of a screen element (for example, to change whether an
input/output field is ready for input), you can replace long sequences of separate screens, which are
more costly in terms of both programming time and runtime.
The system table with line type SCREEN will be called SCREEN system table in the following unit.
When a screen is processed, the SCREEN system table contains an entry for each element created in
the Screen Painter for that screen.
The system table SCREEN is initialized at the start of the PBO event for the current screen. To do this, a
system program copies the statically defined attributes of the individual screen elements into the table.
You can then change the dynamically-modifiable attributes of the elements on the screen in a module at
PBO using the following statements: LOOP AT SCREEN.
MODIFY SCREEN.
ENDLOOP.
To do this, you use the structure SCREEN, which is created automatically by the system, and filled with
the values of each successive line of the system table in the loop. Set attributes have the value '1',
attributes that are not set have the value '0'. To change the system table, use MODIFY SCREEN. within
the loop.
To find the element whose attributes you want to modify, you can use a LOOP on the SCREEN table,
and query one of the following fields: SCREEN-NAME, SCREEN-GROUP1 to SCREEN-GROUP4.
You can change the attributes of several screen elements simultaneously at runtime, by including them
in a modification group in the Screen Painter. Assign all elements that will be changed within a single
processing step to a group in the Screen Painter.
To do this, enter a group name for each of the relevant elements in one of the fields GROUP1
GROUP4.
You can include each element in up to four modification groups. You can choose any three-character
sequence for the group name. You can assign elements to a modification group either in the element list
or the layout editor in Screen Painter.
You must program your screen modifications in a module that is processed during the PROCESS
BEFORE OUTPUT processing block.
You use a loop through the table SCREEN to change the attributes of an element or a group of
elements. (LOOP AT SCREEN WHERE . . . and READ TABLE SCREEN are not supported).
To activate and deactivate attributes, assign the value 1 (active) or 0 (inactive), and save your changes
using the MODIFY SCREEN statement.
Note that elements you have defined statically in the Screen Painter as invisible cannot be reactivated
with SCREEN-ACTIVE = 1. Instead, use the statement SCREEN-INVISIBLE = 0. However, elements
that you have statically defined as visible in the Screen Painter can dynamically be made invisible. This
has the same effect as the three statements SCREEN-INVISIBLE = 1, SCREEN-INPUT = 0, SCREENOUTPUT
= 0.
There are three steps involved in displaying buffered data from the internal table in the table control:
The system loops through the lines of the table control on the screen. The lines of the screen table are
processed one by one. For each line, the system carries out the following steps:
The current line of the internal table is placed in the work area of the internal table. (Note that it is
possible to scroll in the table on the screen).
The data from the work area of the internal table is copied into the relevant line of the table control.
When you use table controls on a screen, the automatic field transport sequence changes.
In the PBO processing block, data is transferred from the ABAP program to the screen after each loop
pass in the flow logic. The rest of the screen fields are filled, as normal, at the end of the PBO.
In the flow logic, the loop statement
LOOP AT <itab> INTO <wa_itab> WITH CONTROL <tc_name>
starts a loop through the screen table, and reads the line of the internal table corresponding to the
current line of the screen table, placing it in <wa_itab>.
<itab> is the name of the internal table containing the data, <wa_itab> is the name of the work area for
the internal table, and <tc_name> is the name of the table control on the screen.
If the fields in your table control have the same structure and name as those in the work area <wa_itab>,
the system can transport data between the ABAP program and the screen automatically (step 3).
If you are not using the same structure for the table control fields and the work area of the internal table,
you must call a module between LOOP and ENDLOOP that moves the data from the work area
<wa_itab> into the screen fields (MOVE-CORRESPONDING <wa_itab> TO ) .
The system calculates the value of <ctrl>-TOP_LINE when you scroll, but not when you scroll a page at
a time outside the table control.
In order to transfer changed values from the table control back to the internal table the following three
steps must be carried out:
The system loops through the lines of the table control. The lines of the screen table are processed
one by one. For each line, the system carries out the following steps:
The data from the current line of the table control is copied into the header line of the internal table.
The data in the work area must then be placed in the line of the internal table corresponding to the
line of the table control that is being processed. (Note that it is possible to scroll in the table on the
screen).
In the PAI processing block, all screen fields that do not belong to a table control and that are not listed
in a FIELD statement are transported back to the work fields in the ABAP program first.
The contents of the table control are transported line-by-line to the corresponding work area in the ABAP
program in the appropriate loop.
As usual, the fields that occur in FIELD statements are transported directly before that statement.
The structure of the screen tables contain.
NAME
GROUP 1
GROUP 2
GROUP 3
GROUP 4
OUTPUT
REQUIRED
LENGTH
INTENSIFIED
INVISIBLE
ACTIVE
Hope this helps, Do reward.
Edited by: Runal Singh on Mar 13, 2008 10:41 AM
Maybe you are looking for
-
XI Mail Adapter: Sending an XML attachment
Hi I want to send an xml attachment using the XI Mail adapter. I have configured the adapter correctly and am currently receiving the email message. My issue is that my attachment has a .txt extention and I want it to have a .xml extn. I have seen a
-
Multiplexing Error Problem vs. Best Quality
I've been trying to make the .img file for a 29 minute iMovie which consist of 288 photos + beginning and end. I imported the 288 photos at 5 sec (no burns effect), created chapter marks, added audio and was able to create .img OK using Best Quality,
-
hi, anyone please help me out. [AutoConfig Error Report] The following report lists errors AutoConfig encountered during each phase of its execution. Errors are grouped by directory and phase. The report format is: <filename> <phase> <return code whe
-
I added a new playlist but when I sync my ipod it's not showing up. I've closed Itunes and re-synced a few times but still nothing. Anyone know the fix for this? Thanks!
-
Sorting shuffle & 5th generation library
Need help in sorting my library..When I add to my ipod I always used to be able to put them in the order I wanted.. especially the shuffle..I used to be able to go into the shuffle library and click on an item to move it up or down into the order I w