Table in selection screen...
Dear Abapers,
Is it possible to get the table in selection screen,I want to give input from table in selection screen itself.Can anyone suggest some ideas pl?
Thanks in Advance.
Hello,
Yes it is possible using Module pool programming. You can use table control for your multiple inputs.
Then loop throgh the table control to populate table control data(input data) to your internal table for further use in PAI of the screen.
Regards
Arindam
Similar Messages
-
How to fill internal table with selection screen field.
Hi all,
i am new to sap . pls tell me how to fill internal table with selection screen field.Hi,
Please see the example below:-
I have used both select-options and parameter on the selection-screen.
Understand the same.
* type declaration
TYPES: BEGIN OF t_matnr,
matnr TYPE matnr,
END OF t_matnr,
BEGIN OF t_vbeln,
vbeln TYPE vbeln,
END OF t_vbeln.
* internal table declaration
DATA : it_mara TYPE STANDARD TABLE OF t_matnr,
it_vbeln TYPE STANDARD TABLE OF t_vbeln.
* workarea declaration
DATA : wa_mara TYPE t_matnr,
wa_vbeln TYPE t_vbeln.
* selection-screen field
SELECTION-SCREEN: BEGIN OF BLOCK b1.
PARAMETERS : p_matnr TYPE matnr.
SELECT-OPTIONS : s_vbeln FOR wa_vbeln-vbeln.
SELECTION-SCREEN: END OF BLOCK b1.
START-OF-SELECTION.
* I am adding parameter value to my internal table
wa_mara-matnr = p_matnr.
APPEND wa_mara TO it_mara.
* I am adding select-options value to an internal table
LOOP AT s_vbeln.
wa_vbeln-vbeln = s_vbeln-low.
APPEND wa_vbeln TO it_vbeln.
ENDLOOP.
Regards,
Ankur Parab -
Adding new table dynamic selection screen of transaction FBL5N (LDB DDF).
Hi,
I have a requirement to add SEGMENT (CEPC-SEGMENT) field on the dynamic selection screen of transaction FBL5N (LDB DDF).
Please let me know how can I meet this requirement
ThanksI did not find any screen exits for this Tcode, may be you need to use enhancement spots.
-
To show data from internal table on selection Screen
HI,
please solve my problem.
i am taking the LIFNR from MSEG in one internal table
AND LIFNR FROM MY ZTABLE in other internal table
after this READ the table and take the data in
LIFNER2
my condition is:
{READ TABLE it_mseg WITH KEY mblnr = it_mkpf-mblnr.
i_DATA-lifnr = it_mseg-lifnr.
Read table it_ZTMM_LOG_REQ_HDR with key repid = it_ztmm_reporting-repid.
i_data-lifnr1 = it_ZTMM_LOG_REQ_HDR-lifnr.
if i_data-lifnr = ' ' .
i_data-lifnr2 = i_data-lifnr1.
else.
i_data-lifnr2 = i_data-lifnr.
endif.}
the LIFNR3 is in my final table
the lifnr3 field i have to show on selection sceen
the it_mseg is not my 1st selection condition.
Regards,
Pankaj VashistaPankaj,
It is always better to have even the MJHAR in the where/read with key clause as there is a possibility of same material doc number getting repeated in two fiscal years.
K.Kiran. -
How to use table field values as dynamic parameters on selection screen
Hi,
I need help on dynamic selection parameters.
I need to display no. of parameters from the fields of a database table.
Basically i want to pass field values of a table to selection screen and we can use those values as parameter on selection screen.
If there are 10 entries in a table field( say field is field_name and entries are bukrs,kunnr etc.)
I need to display as many parameters on screen as many values are there in field_name( In this case it is 10)
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETERS:
p_bukrs(5) ,
p_kunnr(5) ,
SELECTION-SCREEN END OF BLOCK b2.
ThanxHi,
You can create it using Dynamic Program.Check this link below.
[Creating Dynamic Programs|http://help.sap.com/saphelp_46c/helpdata/en/9f/db996135c111d1829f0000e829fbfe/content.htm]
Hope this might help you.
Thanks,
Prashanth -
Calling selection screen of a standard table
Hi All,
I want to call KNA1 table's Selection Screen' from a customized program. Can anyone let me know how to do this.
Customer program-->KNA1 table selection screen
Thank youHi,
goto se16 and give the table name, then execute it.
it will display the selection screen. Then GOto System in the menu entry. select the status. then will all information like program name and screen name and screen number.
<REMOVED BY MODERATOR>
Edited by: subas Bose on Apr 10, 2008 5:42 PM
Edited by: Alvaro Tejada Galindo on Apr 10, 2008 11:44 AM -
How to create the selection screen dynamically
Hi,
I have a requirement to create the selection screen Dynamically. All the fields that should appear on the selection screen will be available in a custom table. So, based on the entries available in the Z tables, the selection screen should be built. Eg. If there are 10 records available in the Z table, the selection screen should consist of 10 fields. If there are 100 entries, the Selection screen should contain 100 fields. and the logic to build this selection screen should be carried out dynamically in the program.
Could anyone of you please share the valuable inputs on this. If anyone has the sample code to do this, please share.
Thanks in advance.
Regards,
Paddu.Hi,
Kindly go through this sample program below:
DEMO_LIST_FORMAT_INPUT *and
check this function module:
FREE_SELECTIONS_DIALOG *.
Hope it helps
Regards
Mansi -
How to use MM/YYYY Format in the selection Screen?
There is this program RMCB0300 where the date format in the selection screen has MM/YYYY Format.
I am working on a report which requires it "Period" Field in the selection screen to be in the same format.
However, i am trying to give the select option as " SL_SPMON FOR S031-SPMON MODIF ID PER." and declaring S031 table in the declaration part.
But still, its not been able to provide me F4 help in the inpur screen.
Can someone please provide me some guidance in this regard?Hi,
the following works for me..
*& Report ZPMONAT *
report zpmonat .
tables: s031.
selection-screen begin of block abc.
select-options: sl_spmon for s031-spmon.
selection-screen end of block abc.
at selection-screen on value-request for sl_spmon-low.
perform monat_f4.
at selection-screen on value-request for sl_spmon-high.
perform monat_f4.
start-of-selection.
end-of-selection.
*& Form monat_f4
* text
* --> p1 text
* <-- p2 text
form monat_f4 .
data: begin of mf_dynpfields occurs 1.
include structure dynpread.
data: end of mf_dynpfields.
data: mf_returncode like sy-subrc,
mf_monat like isellist-month,
mf_hlp_repid like sy-repid.
field-symbols: <mf_feld>.
* Wert von Dynpro lesen
get cursor field mf_dynpfields-fieldname.
append mf_dynpfields.
mf_hlp_repid = sy-repid.
do 2 times.
call function 'DYNP_VALUES_READ'
exporting
dyname = mf_hlp_repid
dynumb = sy-dynnr
tables
dynpfields = mf_dynpfields
exceptions
invalid_abapworkarea = 01
invalid_dynprofield = 02
invalid_dynproname = 03
invalid_dynpronummer = 04
invalid_request = 05
no_fielddescription = 06
undefind_error = 07.
if sy-subrc = 3.
* Aktuelles Dynpro ist Wertemengenbild
mf_hlp_repid = 'SAPLALDB'.
else.
read table mf_dynpfields index 1.
* Unterstriche durch Blanks ersetzen
translate mf_dynpfields-fieldvalue using '_ '.
exit.
endif.
enddo.
if sy-subrc = 0.
* Konvertierung ins interne Format
call function 'CONVERSION_EXIT_PERI_INPUT'
exporting
input = mf_dynpfields-fieldvalue
importing
output = mf_monat
exceptions
error_message = 1.
if mf_monat is initial.
* Monat ist initial => Vorschlagswert aus akt. Datum ableiten
mf_monat = sy-datlo(6).
endif.
call function 'POPUP_TO_SELECT_MONTH'
exporting
actual_month = mf_monat
importing
selected_month = mf_monat
return_code = mf_returncode
exceptions
factory_calendar_not_found = 01
holiday_calendar_not_found = 02
month_not_found = 03.
if sy-subrc = 0 and mf_returncode = 0.
* ASSIGN (MF_DYNPFIELDS-FIELDNAME) TO <MF_FELD>. " ==>> note 148804
* <MF_FELD> = MF_MONAT.
call function 'CONVERSION_EXIT_PERI_OUTPUT'
exporting
input = mf_monat
importing
output = mf_dynpfields-fieldvalue.
collect mf_dynpfields.
call function 'DYNP_VALUES_UPDATE'
exporting
dyname = mf_hlp_repid
dynumb = sy-dynnr
tables
dynpfields = mf_dynpfields
exceptions
invalid_abapworkarea = 01
invalid_dynprofield = 02
invalid_dynproname = 03
invalid_dynpronummer = 04
invalid_request = 05
no_fielddescription = 06
undefind_error = 07. "<<== note 148804
endif.
endif.
endform. " monat_f4
Regards,
Suresh Datti -
How to restrict more than one 1 range in select option on selection screen.
Hi all,
I have a requirement where I need to restrict user from giving more than 1 range for a date selct option ..other all features of multiple selection will be as usual...
for eg we can do this if we disable / hide other cells if the user clicks on multiple ranges tab.. If only 1 cell is available to give the range user will not be able to give more than 1 range....
I was thinking if I could use select_options_restrict but how do i fill its parameters...
Can anyone send me the sample code or the same to achieve this functionality...I have used select_options_restrict to hide multiple ranges itself ... But here user will be able to give range but only 1....
Thanks and Regards
SwetaHI,
Please try the below logic.
SELECT-OPTIONS: so_addr FOR ADR6-SMTP_ADDR NO INTERVALS.
***********remove_range_for_select_option******************* .
DATA: ls_restrict TYPE SSCR_RESTRICT, "The type for SELECT_OPTIONS_RESTRICT
ls_opt_list TYPE SSCR_OPT_LIST, "One list of options
ls_asn TYPE SSCR_***. "One line of table associating selection screen
"object with opt. list
CLEAR: ls_restrict,
ls_opt_list,
ls_asn.
*Only EQ valid, discrete values, Include & Exclude
ls_opt_list-name = 'EQ'.
ls_opt_list-options-eq = 'X'.
APPEND ls_opt_list TO ls_RESTRICT-OPT_LIST_TAB.
LS_ASN-KIND = 'S'.
LS_ASN-NAME = 'SO_ADDR'. "Select Option
LS_ASN-SG_MAIN = 'I'.
LS_ASN-SG_ADDY = '*'.
LS_ASN-OP_MAIN = 'EQ'.
LS_ASN-OP_ADDY = ' '.
APPEND LS_ASN TO LS_RESTRICT-***_TAB.
*Make use of SELECT-OPTIONS easier on the selection screen
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = LS_RESTRICT
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
SELOPT_WITHOUT_OPTIONS = 3
SELOPT_WITHOUT_SIGNS = 4
INVALID_SIGN = 5
EMPTY_OPTION_LIST = 6
INVALID_KIND = 7
REPEATED_KIND_A = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Edited by: Rajasekhar Reddy P on Mar 16, 2009 2:03 PM -
How to configure selection screen in report
Hi all,
could anyone help me in configuring the selection screen in the report.
Advance Thanks
Regards
GuhapriyanHere is some basic code to generate a selection screen.
tables: afko.
selection-screen begin of block b1 with frame title text-001 .
select-options: s_gltrp for afko-gltrp.
parameters: p_gltrp type afko-gltrp.
selection-screen begin of line.
selection-screen comment (25) text-005.
selection-screen position 33.
parameters: p_pln as checkbox default ' '.
selection-screen end of line.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-004 .
selection-screen begin of line.
selection-screen comment (20) text-002.
selection-screen position 33.
parameters: p_det as checkbox default 'X'.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment (20) text-003.
selection-screen position 33.
parameters: p_sum as checkbox.
selection-screen end of line.
selection-screen end of block b2.
Regards,
Rich Heilman -
I have designed one push button on the selection screen below to input fields. If I press that button then I need to do some bdc programs after that I need to display log in the output screen. For this what I did is I have created perform statement in at selection screen event. And I am calling all the transactions inside of that form. But I am not able to display log in the output screen as it is under at selection screen event. So how to provide the log in the output screen after pressing push button.
What I did is under start of selection I am looping messtab internal tables. The log displaying after I press execute button but it is not displaying after I press push button.
Please help me what logic I have to build for this.
Thanks a lot in advance.Try something like this.
REPORT RICH_0001.
tables: sscrfields.
selection-screen PUSHBUTTON 1(20) pb_test user-command PB1.
at selection-screen.
if sy-ucomm = 'PB1'.
sscrfields-ucomm = 'ONLI'.
endif.
start-of-selection.
write:/ 'StartOfSelection has been executed'.
Regards,
Rich Heilman -
How to link a search help to a selection screen field
Hi All,
I am using field PKWRG from PA0017 table in selection screen. I need F4 help there as in Tcode PA30 . But this field does not have value table or check table. However, it has a search help attached 'TRV_PKWRG' .
But, I donot know how to assign a search help to a selection screen field. Please help.
Regards,
NibhaHello,
Fetch all the data which from the table which you want to show in the search help and pass the value to the FM
F4IF_INT_TABLE_VALUE_REQUEST and the selection-screen event must be
at selection-screen on value request parameter or selection option variable.
BCALV_TEST_FULLSCREEN
BCALV_TEST_FULLSCREEN_CALLS
BCALV_TEST_FULLSCREEN_PRINT
BCALV_TEST_FULLSCREEN_STATUS
BCALV_TEST_GRID
BCALV_TEST_GRID_DRAG_DROP
BCALV_TEST_GRID_EDITABLE
BCALV_TEST_GRID_EVENTS
BCALV_TEST_GRID_INDEX
BCALV_TEST_GRID_TOOLBAR
BCALV_TEST_HIERSEQ_LIST
BCALV_TEST_LIST
BCALV_TEST_LIST_PRINT
BCALV_TEST_LIST_STATUS
BCALV_VERIFY_DTYPES_D0100_F01
BCSMENUF01
BDLCOF10
BDLDVI10
BDLTREDF -
Radio Buttons on Selection Screen
Hi,
I have four radio buttons on selection screen in a frame, all belonging to the same group.
When the program is called using transaction 1, first two radio buttons are displayed. When the program is called using transaction 2, bottom two radio must be displayed.
I am doing this using the following code.
The problem is : When last two are displayed, there is empty space left on the top and first two are displayed there is empty space left in the bottom of the frame. How can this be taken care of such there are no empty spaces in the box frame?
Code:
Radio Buttons for Table Name
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-005.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : p_ot RADIOBUTTON GROUP grp1 MODIF ID one.
SELECTION-SCREEN COMMENT 5(31) text-001 FOR FIELD p_ot.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : p_exp RADIOBUTTON GROUP grp1 MODIF ID one.
SELECTION-SCREEN COMMENT 5(31) text-002 FOR FIELD p_exp.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : p_cost RADIOBUTTON GROUP grp1 MODIF ID two.
SELECTION-SCREEN COMMENT 5(31) text-003 FOR FIELD p_cost.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : p_att RADIOBUTTON GROUP grp1 MODIF ID two.
SELECTION-SCREEN COMMENT 5(31) text-004 FOR FIELD p_att.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK bl1.
Initialization
INITIALIZATION.
Display Table Names depending on transaction calling the program
PERFORM display_table_names.
FORM display_table_names.
DATA : l_mod_id(3) TYPE c.
IF sy-tcode EQ 'ZVTEST1'.
l_mod_id = 'ONE'.
ELSEIF sy-tcode EQ 'ZVTEST2'.
l_mod_id = 'TWO'.
ENDIF.
LOOP AT SCREEN.
IF screen-group1 EQ l_mod_id.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM. " display_table_namesHi,
REPORT Z_SALES MESSAGE-ID ZZ .
* Variables *
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_MSGS LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: V_FILE TYPE STRING.
* Internal Tables *
DATA: BEGIN OF IT_SALES OCCURS 0,
AUART,
VKORG,
VTWEG,
BSTKD,
KUNNR_KUNAG,
KUNNR_KUNWE,
KETDAT,
KPRGBZ,
PRSDT,
BSTKD_1,
KUNNR_KUNAG1,
KUNNR_KUNWE1,
KETDAT_1,
KPRGBZ_1,
PRSDT_1,
ZTERM_1,
INCO1,
INCO2,
MABNR,
KWMENG,
BSTKD_2,
KUNNR_KUNAG2,
KUNNR_KUNWE2,
KETDAT_2,
KPRGBZ_2,
PRSDT_2,
ZTERM_2,
INCO1_1,
INCO2_2,
KSCHL,
KBETR,
END OF IT_SALES.
* Selection-Screen *
*Selection Screen 1
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FILE(25) TYPE C,
O_FILE(25) TYPE C.
SELECTION-SCREEN END OF BLOCK B1.
*Selection Screen 2
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS: CAL_TRA RADIOBUTTON GROUP G1 USER-COMMAND FLAG,
SESSION RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B2.
*Selection Screen 3
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
PARAMETERS: MODE DEFAULT 'X' MODIF ID BL1,
UPDATE DEFAULT 'X' MODIF ID BL1.
SELECTION-SCREEN END OF BLOCK B3.
*Selection Screen 4
SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-003.
PARAMETERS: SES_NAM(25) MODIF ID BL2,
KEP_TRAS TYPE C DEFAULT 'X' MODIF ID BL2,
LOC_DATE TYPE SY-DATUM MODIF ID BL2,
USER TYPE SY-UNAME DEFAULT SY-UNAME MODIF ID BL2.
SELECTION-SCREEN END OF BLOCK B4.
* At Selection-Screen Output *
AT SELECTION-SCREEN OUTPUT.
IF CAL_TRA = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'BL1'.
SCREEN-ACTIVE = '1'.
ENDIF.
IF SCREEN-GROUP1 = 'BL2'.
SCREEN-ACTIVE = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
IF SESSION = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'BL1'.
SCREEN-ACTIVE = '0'.
ENDIF.
IF SCREEN-GROUP1 = 'BL2'.
SCREEN-ACTIVE = '1'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
* At Selection-Screen *
AT SELECTION-SCREEN.
PERFORM VALIDATE_MANDATORY_FIELDS.
***************** INITIALIZATION ********************
INITIALIZATION.
LOC_DATE = SY-DATUM - 1.
* Start of Selection *
START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
TABLES
DATA_TAB = IT_SALES
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*& Form VALIDATE_MANDATORY_FIELDS
* text
FORM VALIDATE_MANDATORY_FIELDS.
IF P_FILE IS INITIAL OR O_FILE IS INITIAL.
MESSAGE E000 WITH 'ENTER BOTH THE FILE NAMES'.
ENDIF.
IF CAL_TRA = 'X'.
IF MODE IS INITIAL OR UPDATE IS INITIAL.
MESSAGE E000 WITH 'ENTER BOTH THE OPTIONS'.
ENDIF.
IF SY-SUBRC <> 0.
IF MODE <> 'A' OR MODE <> 'E' OR MODE <> 'N'
OR MODE <> 'a' OR MODE <> 'e' OR MODE <> 'n'.
MESSAGE E000 WITH 'Mode should be either A, E or N'.
ENDIF.
IF UPDATE <> 'S' OR UPDATE <> 'A'
OR UPDATE <> 's' OR UPDATE <> 'a'.
MESSAGE E000 WITH 'Mode should be either S or A'.
ENDIF.
ENDIF.
ENDIF.
IF SESSION = 'x'.
IF SES_NAM IS INITIAL
OR KEP_TRAS IS INITIAL
OR LOC_DATE IS INITIAL
OR USER IS INITIAL.
MESSAGE E000 WITH 'ENTER ALL THE FIELDS'.
ENDIF.
ENDIF.
ENDFORM. "VALIDATE_MANDATORY_FIELDS
Regards
vijay -
2 selection screen in one report.
hi,
i need to have 2 selection screen in one report....based on the input of 1st selection screen i need to display another selection screen. The 1st selection screen consist of three radio buttons....selecting one of them should allow me to further input data....
i tried user command, modif id...but the problem is the 2nd selection screen is also displayed initially and den after clickin d radio button i get only the 2nd selection screen...
i cannot use module pool programming coz of user requirement.
could anybody help with the code??Hi
Please this code ..
SELECTION-SCREEN: BEGIN OF BLOCK c1 WITH FRAME TITLE text-001.
Upload table
PARAMETER: p_upload TYPE char01 RADIOBUTTON GROUP rsel
DEFAULT 'X' USER-COMMAND ucomm,
Edit Tables
p_edt_tb TYPE char01 RADIOBUTTON GROUP rsel.
SELECTION-SCREEN: END OF BLOCK c1.
Upload table
SELECTION-SCREEN: BEGIN OF BLOCK c2 WITH FRAME TITLE text-002.
PARAMETERS: p_tab TYPE char16 MODIF ID m1,
p_comp TYPE char18 MODIF ID m1,
p_plant TYPE werks_d MODIF ID m1,
p_excel TYPE localfile MODIF ID m1.
SELECTION-SCREEN: END OF BLOCK c2.
Edit Table
SELECTION-SCREEN: BEGIN OF BLOCK c3 WITH FRAME TITLE text-003.
Replace component
PARAMETER: p_rp_cmp TYPE char01 RADIOBUTTON GROUP edtb
DEFAULT 'X' USER-COMMAND ucomm MODIF ID m2,
Edit Lines
p_edt_ln TYPE char01 RADIOBUTTON GROUP edtb MODIF ID m2.
SELECTION-SCREEN: END OF BLOCK c3.
SELECTION-SCREEN: BEGIN OF BLOCK c4 WITH FRAME TITLE text-004.
Replace component
PARAMETERS: p_tab_r TYPE char16 MODIF ID m3, "Assembly Table Name
p_comp_r TYPE char18 MODIF ID m3. "Upload Table Name
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) FOR FIELD p_fcomp MODIF ID m3.
PARAMETER: p_fcomp TYPE zpart MODIF ID m3.
SELECTION-SCREEN COMMENT 62(20) FOR FIELD p_tcomp MODIF ID m3.
PARAMETER p_tcomp TYPE zpart MODIF ID m3.
SELECTION-SCREEN END OF LINE.
Edit Lines
PARAMETERS: p_fexcel TYPE localfile MODIF ID m4,
p_texcel TYPE localfile MODIF ID m4.
SELECTION-SCREEN: END OF BLOCK c4.
SELECTION-SCREEN: BEGIN OF BLOCK c5 WITH FRAME TITLE text-005.
validate data
PARAMETERS: p_valid AS CHECKBOX DEFAULT space
USER-COMMAND ucomm MODIF ID m5,
Background Processing
p_back AS CHECKBOX DEFAULT space
USER-COMMAND ucomm.
SELECTION-SCREEN: END OF BLOCK c5.
AT SELECTION-SCREEN OUTPUT.
Design selection parameters dynamically
PERFORM sub_set_file_param.
FORM sub_set_file_param .
LOOP AT SCREEN.
If Upload is check
IF NOT p_upload IS INITIAL.
IF screen-group1 = 'M2' OR
screen-group1 = 'M3' OR
screen-group1 = 'M4'.
screen-active = 0.
ENDIF.
ELSE.
If Edit Tables is check
IF screen-group1 = 'M1'.
screen-active = 0.
ENDIF.
ENDIF.
If Replace Component is check
IF p_rp_cmp IS NOT INITIAL.
IF screen-group1 = 'M4' OR
screen-group1 = 'M5'.
screen-active = 0.
ENDIF.
ELSE.
If Edit Lines is check
IF screen-group1 = 'M3'.
screen-active = 0.
ENDIF.
ENDIF.
Modify the screen
MODIFY SCREEN.
ENDLOOP.
ENDFORM. -
Dynamic ALV as per the periods on the selection screen
Hello Experts
I am new to dynamic ALV , Please help me to sought out my confusion.
I want to create a dynamic ALV , based on the period mentioned at selection screen.
for example I want to display the movement type ( sum of the quantity ) for materials for the full month.
I want the ALV output as below.
Material .........qty 01.04.2011..... qty 02.04.2011... qty 03.04.2011 ........ qty 30.04.2011
AB1........................... 30.................... 20............................. 50......................... 200
AB2.................................................... 50 ............................. 80 ..........................10
I create an internal table itab with there fields to selact the data
MATNR
date
qty
select MATNR
date
qty
into itab
from mseg
where based on the selection screen.
then collect the data to other table date wise , now i have summrise data of material quantity
now the results after collection data into table itab2 is as follows
Material ................... date ................................ qty
AB1 .................... 01.04.2011....................... 30
AB1 ................... 02.04.2011 ....................... 20
AB1 ................... 03.04.2011....................... 50
AB1 ................... .30.04.2011....................... 200
AB2 .................... 02.04.2011....................... 50
AB2 ....................... 03.04.2011....................... 80
AB2 ....................... 30.04.2011 ....................... 10
How can I display these fields horizontally instead of vertically ,
and to the exact column as per the field catalog column header belongs to date.
it would be so helpful if somebody explain with code by taking the above example.
Thanks in AdvanceHello Both Experts ,
I write the below code and it is working for the requirement.
Can you please check
REPORT z_test_dynamic .
TABLES : mkpf , mseg .
TYPES : BEGIN OF t_mseg ,
mblnr TYPE mblnr ,
bwart TYPE bwart ,
matnr TYPE matnr ,
werks TYPE werks_d ,
menge TYPE menge_d ,
budat TYPE budat ,
END OF t_mseg.
TYPES : BEGIN OF t_mseg_1 ,
matnr TYPE matnr ,
menge TYPE menge_d ,
budat TYPE budat ,
END OF t_mseg_1.
DATA : gt_mseg TYPE STANDARD TABLE OF t_mseg ,
gs_mseg TYPE t_mseg,
gt_mseg_1 TYPE STANDARD TABLE OF t_mseg_1 ,
gs_mseg_1 TYPE t_mseg_1,
gt_mseg_2 TYPE STANDARD TABLE OF t_mseg_1 ,
gs_mseg_2 TYPE t_mseg_1..
DATA : gt_date TYPE STANDARD TABLE OF sy-datum ,
gs_date TYPE sy-datum..
DATA: ok_code LIKE sy-ucomm,
g_container TYPE scrfname VALUE 'CONTAINER_01',
grid1 TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container.
DATA: gt_fieldcat TYPE lvc_t_fcat.
DATA: gp_table TYPE REF TO data.
FIELD-SYMBOLS: <gt_table> TYPE table.
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_matnr FOR mseg-matnr ,
s_bwart FOR mseg-bwart NO INTERVALS,
s_werks FOR mseg-werks ,
s_budat FOR mkpf-budat .
PARAMETERS : p_mjahr TYPE mjahr OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK b1.
PERFORM field_catalog.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fieldcat
IMPORTING
ep_table = gp_table.
ASSIGN gp_table->* TO <gt_table>.
PERFORM select_main_data.
PERFORM move_data.
*& Form select_main_data
* text
* --> p1 text
* <-- p2 text
FORM select_main_data .
SELECT mseg~mblnr
mseg~bwart
mseg~matnr
mseg~werks
mseg~menge
mkpf~budat
INTO TABLE gt_mseg
FROM mseg AS mseg INNER JOIN mkpf AS mkpf
ON mseg~mblnr = mkpf~mblnr AND
mseg~mjahr = mkpf~mjahr
WHERE matnr IN s_matnr AND
budat IN s_budat AND
werks IN s_werks AND
bwart IN s_bwart AND
mseg~mjahr EQ p_mjahr .
IF gt_mseg IS NOT INITIAL.
LOOP AT gt_mseg INTO gs_mseg.
gs_mseg_1-matnr = gs_mseg-matnr.
gs_mseg_1-budat = gs_mseg-budat.
gs_mseg_1-menge = gs_mseg-menge.
COLLECT gs_mseg_1 INTO gt_mseg_1.
ENDLOOP.
ENDIF.
gt_mseg_2 = gt_mseg_1.
DELETE ADJACENT DUPLICATES FROM gt_mseg_2 COMPARING matnr.
ENDFORM. " select_main_data
*& Form field_catalog
* text
* --> p1 text
* <-- p2 text
FORM field_catalog .
DATA : lt_day_attributes TYPE STANDARD TABLE OF casdayattr ,
ls_day_attributes TYPE casdayattr .
DATA: ls_fieldcat TYPE lvc_s_fcat ,
lv_fieldname TYPE lvc_fname.
IF s_budat-high IS INITIAL.
s_budat-high = s_budat-low.
ENDIF.
CALL FUNCTION 'DAY_ATTRIBUTES_GET'
EXPORTING
* FACTORY_CALENDAR = ' '
* HOLIDAY_CALENDAR = ' '
date_from = s_budat-low
date_to = s_budat-high
language = sy-langu
* IMPORTING
* YEAR_OF_VALID_FROM =
* YEAR_OF_VALID_TO =
* RETURNCODE =
TABLES
day_attributes = lt_day_attributes
* EXCEPTIONS
* FACTORY_CALENDAR_NOT_FOUND = 1
* HOLIDAY_CALENDAR_NOT_FOUND = 2
* DATE_HAS_INVALID_FORMAT = 3
* DATE_INCONSISTENCY = 4
* OTHERS = 5
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_day_attributes INTO ls_day_attributes.
gs_date = ls_day_attributes-date.
APPEND gs_date TO gt_date.
ENDLOOP.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-inttype = 'CHAR18'.
ls_fieldcat-coltext = 'MATERIAL'.
* ls_fieldcat-decimals_o = '2'.
ls_fieldcat-outputlen = 18.
APPEND ls_fieldcat TO gt_fieldcat.
LOOP AT gt_date INTO gs_date.
CONCATENATE 'QTY_' gs_date INTO lv_fieldname.
ls_fieldcat-fieldname = lv_fieldname.
ls_fieldcat-inttype = 'QUAN'.
ls_fieldcat-coltext = gs_date.
ls_fieldcat-decimals_o = '2'.
* ls_fieldcat-outputlen = 18.
APPEND ls_fieldcat TO gt_fieldcat.
ENDLOOP.
ENDFORM. " field_catalog
*& Form move_data
* text
* --> p1 text
* <-- p2 text
FORM move_data .
DATA: l_row TYPE sy-index.
FIELD-SYMBOLS: <ls_table>.
FIELD-SYMBOLS: <l_field> ,
<l_mseg_1> TYPE t_mseg_1.
DATA: ls_fieldcat TYPE lvc_s_fcat .
ASSIGN LOCAL COPY OF INITIAL LINE OF <gt_table> TO <ls_table>.
SORT gt_mseg_1 BY matnr.
LOOP AT gt_mseg_1 ASSIGNING <l_mseg_1> .
IF <l_field> IS ASSIGNED.
UNASSIGN <l_field>.
ENDIF.
MOVE-CORRESPONDING <l_mseg_1> TO <ls_table>.
READ TABLE gt_fieldcat INTO ls_fieldcat WITH KEY coltext = <l_mseg_1>-budat.
IF sy-subrc EQ 0.
ASSIGN COMPONENT ls_fieldcat-fieldname OF STRUCTURE <ls_table> TO <l_field>.
<l_field> = <l_mseg_1>-menge.
ELSE.
<l_field> = 0.
ENDIF.
AT end of matnr.
APPEND <ls_table> TO <gt_table>.
clear <ls_table>.
ENDAT.
ENDLOOP.
ENDFORM. " move_data
your answers help me lot . I am awarding the points.
Very Very Thanks
Edited by: Dilraj Singh on Apr 13, 2011 3:58 PM
Edited by: Dilraj Singh on Apr 13, 2011 4:09 PM
Edited by: Dilraj Singh on Apr 13, 2011 4:23 PM
Maybe you are looking for
-
Reserving the sales order stock for a customer
Hello SAP gurus !! My client is wants to Reserve the stocks once the order is placed or confirmed by the Customers. For Example; -- If 10 c/s are available in the plant and a customer has ordered 10 c/s... next time .. if someone is creating order
-
The screen on my IQ505 touchsmart turned white! Cleaned and restarted, screen is white but can hear the computer go through startup and touch screen responds with sound when I touch it as if everything is working fine. I have found a few posts about
-
Shall i update my N96 to V30?
Hey People Shall i update? as all im after is the audio theme? Help
-
HT1202 I want to put the songs onto an Ipad from my Itunes??? HELP
I want to put the songs onto my niece's Ipad from my Itunes... but when i plug the ipad into the computer it says I need to select one of the following 'set up as new ipad' or 'resore from this back up :rachels iphone' .. but i dont want to erase any
-
Equium A100-338 - battery power problem
Hi, My daughter has a Equium A100-338 bought in the UK 15 months ago, running Vista Home Premium. It has recently developed a problem with the battery life, which in theory should mean replacing the battery, but I'm not so sure! The battery runs down