Refer to a column in a secondary list in a customized DispForm.aspx page
I would like to know if there is an XMl statement that will allow me to pull a column from a separate list.
I have two lists; List1 has just one item in it that holds the default values for all the columns, including Enhanced Rich Text columns.
List2 has the exact same columns, but only certain columns will contain data if that content needs to be customized from the defualt values.
I need a way so that when i check the column in List2, if it is empty, pull the corressponding column from List1 so it displays the default value.
Is there an XML/XSL statement that can do this and will actually render the Enhanced Rich Text properly?
My sample code below works great, but we cannnot leverage hidden fields as the default values can be updated anytime.
This is code that I have in the DispForm.aspx page
<td width="400px" valign="top" class="ms-formbody">
<xsl:choose>
<xsl:when test="string-length(@First) < 1">
<xsl:value-of select="@first_x002d_hid" disable-output-escaping="yes"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@first " disable-output-escaping="yes"/>
</xsl:otherwise>
</xsl:choose>
The default values in List1 can change at any time. When the user opens an item from List2, it needs to show the custom values in the columns of List2, then show the current values in List1 for any of the columns they did not populate in List2, at
the time they view the item.
I dont think the calculated columns would work as it would save the values that existed in List1 at the time they saved the item in List2, right?
Also, when the users are updating List2, they want to see a form that only shows the custom data they entered in the columns, all the others should be blank. We get this with the OOB EditForm.aspx for List2, so we do nt need to update NewFrom.aspx
or EditForm.aspx, only DispForm.aspx.
The only time they want to see the aggregation of the List2 data and the List1 data is in the DispForm.aspx page.
Similar Messages
-
Question about including JQuery in a Survey list DispForm.aspx page
In SharePoint 2010, I was able to hide the links for editing, deleting... an existing survey entry in the DispForm.aspx page using the following technique:
1 - Save jquery .js file to the Style Library in the top level site
2 - Save the .js file that has the jquery code to hide the link in the Style Library in the top level site
3 - Reference the .js files in the DispForm.aspx page like this:
<asp:content contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">
<script type="text/javascript" language="javascript" src='<asp:Literal runat="server" Text="<%$SPUrl:~SiteCollection/Style Library/jquery-1.5.0.min.js%>"'></script>
<script type="text/javascript" language="javascript" src='<asp:Literal runat="server" Text="<%$SPUrl:~SiteCollection/Style Library/hideedit.js%>"'></script>
</asp:content>
The hideedit.js file contains the following:
$(document).ready(function(){
$('#ctl00_m_g_d3bec7ca_bd25_448d_8874_da35856854c5_ctl00_ctl01_ctl00_toolBarTbl').hide();
I am trying to use this same technique in SharePoint 2013 but it is not working.
It appears that neither of the js files are loading properly.
As a test, I put the following in the hideedit.js:
alert('test');
$(document).ready(function(){
alert('from jquery');
Neither of the alerts are displayed when navigating to the DispForm.aspx file.
How do I get JQuery loaded in a survey DispForm.aspx file in SharePoint 2013?Have you tried this within Designer? Copy the DispForm, edit it and add the JD references below the PlaceHolderMain section and then save. Set this as the default Displat Form and your changes should load.
Steven Andrews
SharePoint Business Analyst: LiveNation Entertainment
Blog: baron72.wordpress.com
Twitter: Follow @backpackerd00d
My Wiki Articles:
CodePlex Corner Series
Please remember to mark your question as "answered" if this solves (or helps) your problem. -
Image instead of List Name, and hyperlink the image to view 'All Items.aspx' page
Hi,
I would like remove the Page title for list (i.e., name of the list in view all items.aspx page) , and instead use image and hyperlink the image
to 'All items.aspx" page.
Using developer tool found the element (#PageTitle) and added 'Script Editor' webpart and below css script to it. I am successful in replace the
title to image, however, I am unable to add the HTML tag for hyperlink. Where do I need to add or how do I add? Could anyone help me please??
<style type="text/css">
#pageTitle
background-image: url('http://w2k81368:2116/SiteAssets/Test.jpg');
background-repeat:no-repeat;
text-indent: 100%;
white-space: nowrap;
</style>
Regards,
SunithaHi Sunitha,
According to your description, my understanding is that you want to change the list title to an image.
I recommend to add the code below to the list page:
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script><script type="text/javascript">
$(document).ready(function (){
var s = "<img alt='SP' src='http://w2k81368:2116/SiteAssets/Test.jpg'>";
var $t = $("#DeltaPlaceHolderPageTitleInTitleArea span span a");
$t.html(s);
</script>
After that, the list title will change to the image and it will show allitems.aspx page when clicking the image.
Thanks,
Victoria
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Victoria Xia
TechNet Community Support -
Dynamic Change of FieldCatalog in OO ALV Secondary List
Dear All,
i have Scenario like when i go to secondary list on some event, the fieldcatlog for the info is generated. then again i go back and choose some other event, now the secondary fieldcatalog list should contain few extra fields which are not being displayed. i am refreshing the fieldcatalog and filling the fieldcatalog table with new fields everytime. but the system displays only the first generated fieldcatalog.
any ideas what can be done?
Thanks & Regards
RahulHello Rahul
The following sample report <b>ZUS_SDN_TWO_ALV_GRIDS_A</b> shows how to dynamically change the fieldcatalog of the second ALV list depending on which customer has been selected (by double-clicking) on the first ALV list.
*& Report ZUS_SDN_TWO_ALV_GRIDS_A
*& Screen '0100' contains no elements.
*& ok_code -> assigned to GD_OKCODE
*& Flow logic:
* PROCESS BEFORE OUTPUT.
* MODULE STATUS_0100.
* PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
REPORT zus_sdn_two_alv_grids_a.
" Dynamic fieldcatalog on second ALV list
DATA:
gd_okcode TYPE ui_func,
go_docking TYPE REF TO cl_gui_docking_container,
go_splitter TYPE REF TO cl_gui_splitter_container,
go_cell_top TYPE REF TO cl_gui_container,
go_cell_bottom TYPE REF TO cl_gui_container,
go_grid1 TYPE REF TO cl_gui_alv_grid,
go_grid2 TYPE REF TO cl_gui_alv_grid,
gs_layout TYPE lvc_s_layo.
DATA:
gt_knb1 TYPE STANDARD TABLE OF knb1,
gt_knvv TYPE STANDARD TABLE OF knvv.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-DATA:
md_row TYPE i.
CLASS-METHODS:
handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING
e_row
e_column
es_row_no
sender.
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_double_click.
* define local data
DATA:
ls_knb1 TYPE knb1.
CHECK ( sender = go_grid1 ).
READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row-index.
CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
md_row = e_row-index.
CALL METHOD go_grid1->set_current_cell_via_id
EXPORTING
* IS_ROW_ID =
* IS_COLUMN_ID =
is_row_no = es_row_no.
* Triggers PAI of the dynpro with the specified ok-code
CALL METHOD cl_gui_cfw=>set_new_ok_code( 'DETAIL' ).
ENDMETHOD. "handle_double_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
START-OF-SELECTION.
SELECT * FROM knb1 INTO TABLE gt_knb1
WHERE bukrs = '1000'.
* Create docking container
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Create splitter container
CREATE OBJECT go_splitter
EXPORTING
parent = go_docking
rows = 2
columns = 1
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Get cell container
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_top.
CALL METHOD go_splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = go_cell_bottom.
* Create ALV grids
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_cell_top
EXCEPTIONS
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.
* Set event handler
SET HANDLER: lcl_eventhandler=>handle_double_click FOR go_grid1.
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_cell_bottom
EXCEPTIONS
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.
* Display data
gs_layout-grid_title = 'Customers'.
CALL METHOD go_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'KNB1'
is_layout = gs_layout
CHANGING
it_outtab = gt_knb1
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
gs_layout-grid_title = 'Customers Details (Sales Areas)'.
CALL METHOD go_grid2->set_table_for_first_display
EXPORTING
i_structure_name = 'KNVV'
is_layout = gs_layout
CHANGING
it_outtab = gt_knvv " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Link the docking container to the target dynpro
CALL METHOD go_docking->link
EXPORTING
repid = syst-repid
dynnr = '0100'
* CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* NOTE: dynpro does not contain any elements
CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*PROCESS BEFORE OUTPUT.
* MODULE STATUS_0100.
*PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
END-OF-SELECTION.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'. " contains push button "DETAIL"
* SET TITLEBAR 'xxx'.
* Refresh display of detail ALV list
CALL METHOD go_grid2->refresh_table_display
* EXPORTING
* IS_STABLE =
* I_SOFT_REFRESH =
EXCEPTIONS
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
CASE gd_okcode.
WHEN 'BACK' OR
'END' OR
'CANC'.
SET SCREEN 0. LEAVE SCREEN.
* User has pushed button "Display Details"
WHEN 'DETAIL'.
PERFORM entry_show_details.
WHEN OTHERS.
ENDCASE.
CLEAR: gd_okcode.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form ENTRY_SHOW_DETAILS
* text
* --> p1 text
* <-- p2 text
FORM entry_show_details .
* define local data
DATA:
ld_row TYPE i,
ls_knb1 TYPE knb1,
ls_fcat TYPE lvc_s_fcat,
lt_fcat TYPE lvc_t_fcat.
CALL METHOD go_grid1->get_current_cell
IMPORTING
e_row = ld_row.
READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
CHECK ( syst-subrc = 0 ).
SELECT * FROM knvv INTO TABLE gt_knvv
WHERE kunnr = ls_knb1-kunnr.
CALL METHOD go_grid2->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = lt_fcat.
" Logic of fieldcatalog modification:
" 1st customer selected -> show 1 column only
" 2nd customer selected -> show 2 columns only
" 3rd customer selected -> show 3 columns
LOOP AT lt_fcat INTO ls_fcat.
IF ( syst-tabix <= ld_row ).
ls_fcat-no_out = ' '.
ELSE.
ls_fcat-no_out = 'X'.
ENDIF.
MODIFY lt_fcat FROM ls_fcat.
ENDLOOP.
go_grid2->set_frontend_fieldcatalog( lt_fcat ).
ENDFORM. " ENTRY_SHOW_DETAILS
Regards
Uwe -
With the lookup technique, it is possible to select an item from another list and display one column of this item
It is obviously possible to create several lookup columns on the same list and therefore display several columns
There’s a high risk of not selecting the same item and therefore have inconsistent columns
The Requirement therefore consist of being able of displaying several columns of the same item from the other list, based on one unique selection
Example:
In list(x), define lookup column on list (y), column Title (possible today)
Then define a “secondary” lookup column on same list, column Code
The effect would be that when selecting an item from list (X), both Title and Code would show up consistently in 2 different columns of list (Y)
All possible solutions are welcomedIf you are using SharePoint 2010, you can retrieve additional columns when adding a Lookup. If you are using 2007, there is no direct OOTB way, but the following two posts provide potential work-arounds:
https://www.definitivelogic.com/blog/microsoft-sharepoint-2007-pulling-column-data-one-list-another-based-common-list-field
http://stefan-stanev-sharepoint-blog.blogspot.com/2010/11/sharepoint-2007-associated-lookup.html
Dimitri Ayrapetov (MCSE: SharePoint) -
Problem in displaying 2nd secondary list
Hi ABAP Gurus,
Here i got an assignment to develope interactive report (basic list, 1st secondary, 2nd secondary list)
according to my report i am able to get 1st secondary list perfectly but i am not able to get 2nd secondary list .pls solve my problem
below is my code.
*& Report ZCRPT_MM_MRP
REPORT zcrpt_mm_mrp .
*& Report : ZRPT_MM_PR_HISTORY *
Dev. Class : ZCVS *
Program Name : ZRPT_MM_PR_HISTORY *
Description : PO History Details List *
Author : Sujit Created on : 12.11.2007 *
SAP Release : SAP ERP Central Component 5.0 *
Tcode : Req DKIK905199 N-160 *
: DKIK905248 N-160 For Deletion indicator *
S O U R C E C O D E C H A N G E H I S T O R Y *
CODE | AUTHOR | DATE | Description *
| | | *
TABLE DECLARATIONS *
TABLES: ekko,ekpo,mara, makt,ekes,eban,mard,s994.
Internal tables decleration
TYPE-POOLS: slis.
DATA: BEGIN OF it_vbrkvbrp OCCURS 0,
vbeln TYPE vbrk-vbeln,
fktyp TYPE vbrk-fktyp,
matnr TYPE vbrp-matnr,
fkimg TYPE vbrp-fkimg,
fklmg TYPE vbrp-fklmg,
vrkme TYPE vbrp-vrkme,
meins TYPE vbrp-meins,
shkzg TYPE vbrp-shkzg,
END OF it_vbrkvbrp.
DATA: BEGIN OF it_vbrk OCCURS 0,
matnr TYPE vbrp-matnr,
fkimg TYPE vbrp-fkimg,
meins TYPE vbrp-meins,
END OF it_vbrk.
DATA: BEGIN OF it_ekko OCCURS 0,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
frggr TYPE ekko-frggr,
frgsx TYPE ekko-frgsx,
frgke TYPE ekko-frgke,
frgzu TYPE ekko-frgzu,
END OF it_ekko.
DATA: BEGIN OF it_ekbe OCCURS 0,
ebeln type ekbe-ebeln,
ebelp type ekbe-ebelp,
belnr type ekbe-belnr,
buzei type ekbe-buzei,
xblnr type ekbe-xblnr,
END OF it_ekbe.
DATA: BEGIN OF it_lips OCCURS 0,
vbeln type lips-vbeln,
posnr type lips-posnr,
matnr type lips-matnr,
vgbel type lips-vgbel,
lfimg type lips-lfimg,
meins type lips-meins,
END OF it_lips.
data : it1_lips like it_lips occurs 0 with header line.
DATA: BEGIN OF itab OCCURS 1 ,
banfn LIKE eban-banfn, " Purchase requisition number
bnfpo LIKE eban-bnfpo, " PR Item Number
werks LIKE ekpo-werks, " Plant
matnr LIKE ekpo-matnr, " Material
maktx LIKE makt-maktx, " Name of Material
pr_menge LIKE eban-menge, " PR Quantity
meins LIKE ekpo-meins, " Unit
ebeln LIKE ekpo-ebeln, " PO No
bsart LIKE ekko-bsart, " Purchasing Document Type
ebelp LIKE ekpo-ebelp, " Item
menge LIKE ekpo-menge, " PO Qty
grn_menge LIKE ekpo-menge, " GRN Qty
trn_menge LIKE ekpo-menge, " Transit Qty
bal_menge LIKE ekpo-menge, " Balance PO Qty
labst LIKE mard-labst, " Valuated stock with unrestricted
fkimg LIKE vbrp-fkimg, " Actual billed quantity
minbe TYPE marc-minbe,
mabst TYPE marc-mabst,
fixkz TYPE eban-fixkz,
zfixkz(7) TYPE c,
matkl TYPE mara-matkl,
mvgr1 TYPE mvke-mvgr1,
bezei TYPE tvm1t-bezei,
zconfirm1(3) TYPE c,
zconfirm2(3) TYPE c,
zconfirm3(3) TYPE c,
END OF itab.
DATA: BEGIN OF itab_sale OCCURS 1 ,
matnr LIKE ekpo-matnr, " Material
werks LIKE ekpo-werks, " Plant
maktx LIKE makt-maktx, " Name of Material
labst LIKE mard-labst, " Valuated stock with unrestricted
END OF itab_sale.
DATA : i_eban LIKE eban OCCURS 0 WITH HEADER LINE.
DATA : del_menge LIKE ekes-menge,
grn_dabmg LIKE ekes-dabmg.
DATA: BEGIN OF it_marc OCCURS 0,
matnr TYPE marc-matnr,
werks TYPE marc-werks,
minbe TYPE marc-minbe,
mabst TYPE marc-mabst,
END OF it_marc.
DATA: BEGIN OF it_eban OCCURS 0,
banfn TYPE eban-banfn,
bnfpo TYPE eban-bnfpo,
fixkz TYPE eban-fixkz,
ebeln type eban-ebeln,
END OF it_eban.
DATA: BEGIN OF it_mara OCCURS 0,
matnr TYPE mara-matnr,
matkl TYPE mara-matkl,
END OF it_mara.
DATA: BEGIN OF it_mvke OCCURS 0,
matnr TYPE mvke-matnr,
mvgr1 TYPE mvke-mvgr1,
mvgr2 TYPE mvke-mvgr2,
mvgr3 TYPE mvke-mvgr3,
mvgr4 TYPE mvke-mvgr4,
END OF it_mvke.
DATA: BEGIN OF it_tvm1t OCCURS 0,
mvgr1 TYPE tvm1t-mvgr1,
bezei TYPE tvm1t-bezei,
END OF it_tvm1t.
DATA: fcat TYPE slis_t_fieldcat_alv,
fcat1 TYPE slis_t_fieldcat_alv,
fcat2 TYPE slis_t_fieldcat_alv,
heading TYPE slis_t_listheader,
heading1 TYPE slis_t_listheader,
heading2 TYPE slis_t_listheader,
events TYPE slis_t_event,
events1 TYPE slis_t_event,
events2 TYPE slis_t_event,
repname LIKE sy-repid.
DATA: keyinfo TYPE slis_keyinfo_alv.
CONSTANTS: formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
CONSTANTS: formname_top_of_page1 TYPE slis_formname VALUE 'TOP_OF_PAGE1'
CONSTANTS: formname_top_of_page2 TYPE slis_formname VALUE 'TOP_OF_PAGE2'
RANGES : s_erdat FOR vbrk-erdat.
DATA: ss_date TYPE mkpf-budat.
DATA: ss_period(3) TYPE n.
Screen Selection
SELECTION-SCREEN BEGIN OF BLOCK s1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS : s_ebeln FOR ekpo-ebeln,
s_werks FOR ekpo-werks.
SELECT-OPTIONS : s_banfn FOR eban-banfn, "Purchase requisition number
s_badat FOR eban-badat, "Requisition (request) date
s_matnr FOR eban-matnr, "Material Number
s_werks FOR eban-werks, "Plant
s_lgort FOR eban-lgort, "Storage Location
s_matkl FOR eban-matkl, "Material group
s_flief FOR eban-flief, "Fixed Vendor
s_bsart FOR ekko-bsart NO INTERVALS. " Purchasing
SELECTION-SCREEN END OF BLOCK s1 .
SELECTION-SCREEN BEGIN OF BLOCK s2 WITH FRAME TITLE text-002.
PARAMETERS: s_period(3) TYPE n .
SELECTION-SCREEN END OF BLOCK s2 .
initialization.
repname = sy-repid.
PERFORM build_eventtab USING events[].
PERFORM build_eventtab1 USING events1[].
PERFORM build_eventtab2 USING events2[].
PERFORM build_comment USING heading[].
PERFORM build_comment1 USING heading1[].
PERFORM build_comment2 USING heading2[].
Strat-of-Selection
START-OF-SELECTION.
PERFORM getdata.
PERFORM getfieldcatalog USING fcat[].
PERFORM getfieldcatalog1 USING fcat1[].
PERFORM getfieldcatalog2 USING fcat2[].
PERFORM alvdisplaydata.
END-OF-SELECTION.
*& Form getdata
text
--> p1 text
<-- p2 text
FORM getdata.
SELECT * FROM eban INTO CORRESPONDING FIELDS OF TABLE i_eban
WHERE banfn IN s_banfn "Purchase requisition number
AND badat IN s_badat "Requisition (request) date
AND matnr IN s_matnr "Material Number
AND werks IN s_werks "Plant
AND lgort IN s_lgort "Storage Location
AND matkl IN s_matkl "Material group
AND flief IN s_flief "Fixed Vendor
AND loekz NE 'X' "Deletion Pocument
AND afnam EQ 'MRP'. "Name of requisitioner/requester
IF NOT i_eban[] IS INITIAL.
LOOP AT i_eban.
CLEAR itab.
itab-banfn = i_eban-banfn.
itab-bnfpo = i_eban-bnfpo.
itab-pr_menge = i_eban-menge.
itab-meins = i_eban-meins.
itab-ebeln = i_eban-ebeln.
itab-ebelp = i_eban-ebelp.
itab-matnr = i_eban-matnr.
itab-werks = i_eban-werks.
**----Get Material Description
IF NOT i_eban-matnr IS INITIAL.
SELECT SINGLE * FROM makt
WHERE matnr EQ i_eban-matnr.
IF sy-subrc EQ 0.
itab-maktx = makt-maktx.
ENDIF.
ELSE.
itab-maktx = i_eban-txz01.
ENDIF.
*----Get PO & GRN Quantity
IF i_eban-ebeln GT 0 AND i_eban-ebelp GT 0.
SELECT SINGLE * FROM ekpo
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp.
IF sy-subrc EQ 0.
itab-menge = ekpo-menge.
ENDIF.
SELECT SINGLE * FROM ekko
WHERE ebeln = i_eban-ebeln.
IF sy-subrc EQ 0.
itab-bsart = ekko-bsart.
ENDIF.
*-------Get GRN Quantity
CLEAR : del_menge,grn_dabmg.
IF ekpo-bstae = '0004'. " GRN Against InbondDelivery
SELECT SUM( menge ) SUM( dabmg )
FROM ekes
INTO (del_menge,grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND ebtyp = 'LA'.
IF sy-subrc EQ 0.
itab-grn_menge = grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
itab-bal_menge = ekpo-menge - del_menge.
IF itab-bal_menge < 0.
itab-bal_menge = 0.
ENDIF.
ELSE.
itab-bal_menge = itab-menge.
ENDIF.
ELSE. " Regular GRN
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'E'
AND bwart = '101'.
IF sy-subrc EQ 0.
itab-grn_menge = grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
ENDIF.
For Cancelled GRN
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'E'
AND bwart = '102'.
IF sy-subrc EQ 0.
itab-grn_menge = itab-grn_menge - grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
ENDIF.
IF itab-bsart = 'UB'.
CLEAR : grn_dabmg,grn_dabmg.
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'U'
AND bwart = '641'.
IF sy-subrc EQ 0.
itab-trn_menge = grn_dabmg.
ENDIF.
For Reversal of Issue Document
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'U'
AND bwart = '642'.
IF sy-subrc EQ 0.
itab-trn_menge = itab-trn_menge - grn_dabmg.
ENDIF.
IF itab-grn_menge <> 0.
itab-trn_menge = 0.
ENDIF.
ENDIF.
End
ENDIF.
*-------End
ENDIF.
itab-bal_menge = itab-menge - ( itab-grn_menge + itab-trn_menge ).
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_OUTPUT'
EXPORTING
input = itab-matnr
IMPORTING
output = itab-matnr.
itab_sale-matnr = itab-matnr.
itab_sale-werks = itab-werks.
itab_sale-maktx = itab-maktx.
COLLECT itab_sale.
APPEND itab.
ENDLOOP.
ENDIF.
IF NOT s_bsart[] IS INITIAL.
DELETE itab WHERE bsart NOT IN s_bsart.
ENDIF.
IF NOT itab_sale IS INITIAL.
LOOP AT itab_sale.
*-----Get Sales Quantity
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_INPUT'
EXPORTING
input = itab_sale-matnr
IMPORTING
output = itab_sale-matnr.
*-----Change as on 08.12.2007
SELECT SUM( clabs ) INTO itab_sale-labst
FROM mchb
WHERE matnr = itab_sale-matnr
AND werks = itab_sale-werks.
*-----End
MODIFY itab_sale TRANSPORTING labst matnr.
ENDLOOP.
LOOP AT itab.
READ TABLE itab_sale WITH KEY matnr = itab-matnr
werks = itab-werks.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_OUTPUT'
EXPORTING
input = itab_sale-matnr
IMPORTING
output = itab_sale-matnr.
MOVE itab_sale-labst TO itab-labst.
ENDIF.
MODIFY itab TRANSPORTING labst.
CLEAR itab.
ENDLOOP.
ENDIF.
CHECK itab[] IS NOT INITIAL.
SELECT * FROM marc CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_marc
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr
AND werks EQ itab-werks.
SELECT * FROM eban CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_eban
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND banfn EQ itab-banfn
AND bnfpo EQ itab-bnfpo.
SELECT * FROM mara CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_mara
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr.
SELECT * FROM mvke CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_mvke
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr.
IF sy-subrc = 0.
SELECT * FROM tvm1t CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_tvm1t
FOR ALL ENTRIES IN it_mvke
WHERE mandt = sy-mandt
AND mvgr1 EQ it_mvke-mvgr1.
ENDIF.
IF s_period IS NOT INITIAL.
ss_period = s_period.
ss_period = ss_period + 1.
s_erdat-sign = 'I'.
s_erdat-option = 'BT'.
s_erdat-high = sy-datum.
ss_date = sy-datum - ss_period.
s_erdat-low = ss_date.
APPEND s_erdat.
CLEAR s_erdat.
SELECT * FROM zcvi_vbrk_vbrp CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_vbrkvbrp
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr = itab-matnr
AND fkart IN ('Z3PS','ZVIT',
'ZVDT','ZFRV',
'ZDRV','ZCMR')
AND fkdat IN s_erdat
AND fksto EQ space
AND sfakn EQ space
AND rfbsk NE 'E'
AND fkimg NE 0.
LOOP AT it_vbrkvbrp.
IF it_vbrkvbrp-fktyp NE 'L'.
DELETE it_vbrkvbrp.
CONTINUE.
ENDIF.
IF it_vbrkvbrp-vrkme NE it_vbrkvbrp-meins.
it_vbrkvbrp-fkimg = it_vbrkvbrp-fklmg.
it_vbrkvbrp-meins = it_vbrkvbrp-vrkme.
ENDIF.
IF it_vbrkvbrp-shkzg = 'X'.
it_vbrkvbrp-fkimg = it_vbrkvbrp-fkimg * -1.
ENDIF.
it_vbrk-matnr = it_vbrkvbrp-matnr.
it_vbrk-fkimg = it_vbrkvbrp-fkimg.
it_vbrk-meins = it_vbrkvbrp-meins.
IF it_vbrk[] IS INITIAL.
APPEND it_vbrk.
CLEAR it_vbrk.
ELSE.
COLLECT it_vbrk.
CLEAR it_vbrk.
ENDIF.
ENDLOOP.
ENDIF.
SORT it_vbrkvbrp BY matnr.
SELECT * FROM ekko CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_ekko
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND ebeln = itab-ebeln.
SORT it_ekko BY ebeln.
LOOP AT itab.
READ TABLE it_ekko BINARY SEARCH WITH KEY
ebeln = itab-ebeln.
IF sy-subrc = 0.
IF it_ekko-frgke = 'R'.
itab-zconfirm1 = 'YES'.
itab-zconfirm2 = 'YES'.
itab-zconfirm3 = 'YES'.
ELSEIF it_ekko-frgzu = 'X'.
itab-zconfirm1 = 'YES'.
ELSEIF it_ekko-frgzu = 'XX'.
itab-zconfirm1 = 'YES'.
itab-zconfirm2 = 'YES'.
ENDIF.
ENDIF.
IF s_period IS NOT INITIAL.
READ TABLE it_vbrk BINARY SEARCH
WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
itab-fkimg = it_vbrk-fkimg.
ENDIF.
ENDIF.
READ TABLE it_marc WITH KEY matnr = itab-matnr
werks = itab-werks.
IF sy-subrc = 0.
MOVE it_marc-minbe TO itab-minbe.
MOVE it_marc-mabst TO itab-mabst.
ENDIF.
READ TABLE it_eban WITH KEY banfn = itab-banfn
bnfpo = itab-bnfpo.
IF sy-subrc = 0.
IF it_eban-fixkz EQ 'X'.
itab-zfixkz = 'Firmed'.
ENDIF.
ENDIF.
READ TABLE it_mara WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
MOVE it_mara-matkl TO itab-matkl.
ENDIF.
READ TABLE it_mvke WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
MOVE it_mvke-mvgr1 TO itab-mvgr1.
READ TABLE it_tvm1t WITH KEY mvgr1 = itab-mvgr1.
IF sy-subrc = 0.
MOVE it_tvm1t-bezei TO itab-bezei.
ENDIF.
ENDIF.
MODIFY itab.
CLEAR itab.
ENDLOOP.
ENDFORM. " getdata
*& Form build_eventtab
text
-->P_EVENTS[] text
FORM build_eventtab USING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
READ TABLE p_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " build_eventtab
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: hline TYPE slis_listheader.
CLEAR: hline.
hline-info = 'Purchase Requision History'.
hline-typ = 'H'.
APPEND hline TO p_heading.
CLEAR hline.
ENDFORM. " build_comment
*& Form getfieldcatalog
text
--> p1 text
<-- p2 text
FORM getfieldcatalog USING p_fcat TYPE slis_t_fieldcat_alv.
DATA : w_fcat TYPE slis_fieldcat_alv.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BANFN'.
w_fcat-seltext_l = 'PR No '.
w_fcat-key = 'X'.
w_fcat-col_pos = 1.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BNFPO'.
w_fcat-seltext_l = 'PR Item '.
w_fcat-key = 'X'.
w_fcat-col_pos = 2.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MATNR'.
w_fcat-seltext_l = 'Material '.
w_fcat-col_pos = 3.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MAKTX'.
w_fcat-seltext_l = 'Name of the Mateiral '.
w_fcat-col_pos = 4.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'WERKS'.
w_fcat-seltext_l = 'Plant '.
w_fcat-col_pos = 5.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'EBELN'.
w_fcat-seltext_l = 'PO No '.
w_fcat-hotspot = 'X'.
w_fcat-col_pos = 6.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'EBELP'.
w_fcat-seltext_l = 'PO Item '.
w_fcat-col_pos = 7.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'PR_MENGE'.
w_fcat-seltext_l = 'PR Qty '.
w_fcat-col_pos = 8.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MEINS'.
w_fcat-seltext_l = 'Unit'.
w_fcat-col_pos = 9.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MENGE'.
w_fcat-seltext_l = 'PO Quantity '.
w_fcat-col_pos = 10.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'GRN_MENGE'.
w_fcat-seltext_l = 'GRN Qty '.
w_fcat-col_pos = 11.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'TRN_MENGE'.
w_fcat-seltext_l = 'Transit Qty '.
w_fcat-col_pos = 12.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BAL_MENGE'.
w_fcat-seltext_l = 'Balance PO Qty '.
w_fcat-col_pos = 13.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'LABST'.
w_fcat-seltext_l = 'Current Stock'.
w_fcat-col_pos = 14.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'FKIMG'.
w_fcat-seltext_l = 'Sales Qty '.
w_fcat-col_pos = 15.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MINBE'.
w_fcat-seltext_l = 'Reorder Point'.
w_fcat-col_pos = 16.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MABST'.
w_fcat-seltext_l = 'Maximum stock level'.
w_fcat-col_pos = 17.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZFIXKZ'.
w_fcat-seltext_l = 'Fixed Indicator'.
w_fcat-col_pos = 18.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MATKL'.
w_fcat-seltext_l = 'Design'.
w_fcat-col_pos = 19.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MVGR1'.
w_fcat-seltext_l = 'Size'.
w_fcat-col_pos = 20.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BEZEI'.
w_fcat-seltext_l = 'Size Desc.'.
w_fcat-col_pos = 21.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'FKIMG'.
w_fcat-seltext_l = 'Sales Qty '.
w_fcat-col_pos = 22.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM1'.
w_fcat-seltext_l = 'Release1'.
w_fcat-col_pos = 23.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM2'.
w_fcat-seltext_l = 'Release2'.
w_fcat-col_pos = 24.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM3'.
w_fcat-seltext_l = 'Release3'.
w_fcat-col_pos = 25.
APPEND w_fcat TO fcat.
ENDFORM. " getfieldcatalog
*& Form alvdisplaydata
text
--> p1 text
<-- p2 text
FORM alvdisplaydata .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fcat
it_events = events[]
TABLES
t_outtab = itab.
IF sy-subrc <> 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " alvdisplaydata
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading.
ENDFORM. "TOP_OF_PAGE
*& Form build_eventtab1
text
-->P_EVENTS[] text
FORM build_eventtab1 USING p_events1 TYPE slis_t_event.
DATA: ls_event1 TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events1.
READ TABLE p_events1 WITH KEY name = slis_ev_top_of_page
INTO ls_event1.
IF sy-subrc = 0.
MOVE formname_top_of_page1 TO ls_event1-form.
APPEND ls_event1 TO p_events1.
ENDIF.
endform.
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment1 USING p_heading1 TYPE slis_t_listheader.
DATA: hline1 TYPE slis_listheader.
hline1-info = '1 Secondary List'.
hline1-typ = 'H'.
APPEND hline1 TO p_heading1.
CLEAR hline1.
ENDFORM. " build_comment
*& Form getfieldcatalog1
text
-->P_FCAT1[] text
form getfieldcatalog1 using p_fcat1 TYPE slis_t_fieldcat_alv.
DATA : w_fcat1 TYPE slis_fieldcat_alv.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'VBELN'.
w_fcat1-seltext_l = 'Pr.No'.
w_fcat1-hotspot = 'X'.
w_fcat1-col_pos = 1.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'POSNR'.
w_fcat1-seltext_l = 'PR Item'.
w_fcat1-col_pos = 2.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'MATNR'.
w_fcat1-seltext_l = 'Material'.
w_fcat1-col_pos = 3.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'LFIMG'.
w_fcat1-seltext_l = 'Actual quantity delivered'.
w_fcat1-col_pos = 4.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'MEINS'.
w_fcat1-seltext_l = 'Base Unit of Measure'.
w_fcat1-col_pos = 5.
APPEND w_fcat1 to fcat1.
endform. " getfieldcatalog1
*& Form USER_COMMAND
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE itab INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
select vbeln
posnr
matnr
vgbel
lfimg
meins from lips into table it_lips
where vgbel = itab-ebeln.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fcat1
it_events = events1[]
TABLES
t_outtab = it_lips.
IF sy-subrc <> 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. "USER_COMMAND
FORM TOP_OF_PAGE1 *
FORM top_of_page1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading1.
ENDFORM. "TOP_OF_PAGE1
*& Form build_eventtab1
text
-->P_EVENTS[] text
FORM build_eventtab2 USING p_events2 TYPE slis_t_event.
DATA: ls_event2 TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events2.
READ TABLE p_events2 WITH KEY name = slis_ev_top_of_page
INTO ls_event2.
IF sy-subrc = 0.
MOVE formname_top_of_page2 TO ls_event2-form.
APPEND ls_event2 TO p_events2.
ENDIF.
endform.
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment2 USING p_heading2 TYPE slis_t_listheader.
DATA: hline2 TYPE slis_listheader.
hline2-info = '2 Secondary List'.
hline2-typ = 'H'.
APPEND hline2 TO p_heading2.
CLEAR hline2.
ENDFORM. " build_comment
*& Form getfieldcatalog1
text
-->P_FCAT1[] text
form getfieldcatalog2 using p_fcat2 TYPE slis_t_fieldcat_alv.
DATA : w_fcat2 TYPE slis_fieldcat_alv.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'EBELN'.
w_fcat2-seltext_l = 'Pr.Doc No'.
w_fcat2-col_pos = 1.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'EBELP'.
w_fcat2-seltext_l = 'PR Doc Item'.
w_fcat2-col_pos = 2.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'BELNR'.
w_fcat2-seltext_l = 'No.Mat Doc'.
w_fcat2-col_pos = 3.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'BUZEI'.
w_fcat2-seltext_l = 'Item in Mat Doc'.Hi,
You did mistakes hear.
check for >>>>
*& Report ZCRPT_MM_MRP
REPORT zcrpt_mm_mrp .
*& Report : ZRPT_MM_PR_HISTORY *
Dev. Class : ZCVS *
Program Name : ZRPT_MM_PR_HISTORY *
Description : PO History Details List *
Author : Sujit Created on : 12.11.2007 *
SAP Release : SAP ERP Central Component 5.0 *
Tcode : Req DKIK905199 N-160 *
: DKIK905248 N-160 For Deletion indicator *
S O U R C E C O D E C H A N G E H I S T O R Y *
CODE | AUTHOR | DATE | Description *
| | | *
TABLE DECLARATIONS *
TABLES: ekko,ekpo,mara, makt,ekes,eban,mard,s994.
Internal tables decleration
TYPE-POOLS: slis.
DATA: BEGIN OF it_vbrkvbrp OCCURS 0,
vbeln TYPE vbrk-vbeln,
fktyp TYPE vbrk-fktyp,
matnr TYPE vbrp-matnr,
fkimg TYPE vbrp-fkimg,
fklmg TYPE vbrp-fklmg,
vrkme TYPE vbrp-vrkme,
meins TYPE vbrp-meins,
shkzg TYPE vbrp-shkzg,
END OF it_vbrkvbrp.
DATA: BEGIN OF it_vbrk OCCURS 0,
matnr TYPE vbrp-matnr,
fkimg TYPE vbrp-fkimg,
meins TYPE vbrp-meins,
END OF it_vbrk.
DATA: BEGIN OF it_ekko OCCURS 0,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
frggr TYPE ekko-frggr,
frgsx TYPE ekko-frgsx,
frgke TYPE ekko-frgke,
frgzu TYPE ekko-frgzu,
END OF it_ekko.
DATA: BEGIN OF it_ekbe OCCURS 0,
ebeln type ekbe-ebeln,
ebelp type ekbe-ebelp,
belnr type ekbe-belnr,
buzei type ekbe-buzei,
xblnr type ekbe-xblnr,
END OF it_ekbe.
DATA: BEGIN OF it_lips OCCURS 0,
vbeln type lips-vbeln,
posnr type lips-posnr,
matnr type lips-matnr,
vgbel type lips-vgbel,
lfimg type lips-lfimg,
meins type lips-meins,
END OF it_lips.
data : it1_lips like it_lips occurs 0 with header line.
DATA: BEGIN OF itab OCCURS 1 ,
banfn LIKE eban-banfn, " Purchase requisition number
bnfpo LIKE eban-bnfpo, " PR Item Number
werks LIKE ekpo-werks, " Plant
matnr LIKE ekpo-matnr, " Material
maktx LIKE makt-maktx, " Name of Material
pr_menge LIKE eban-menge, " PR Quantity
meins LIKE ekpo-meins, " Unit
ebeln LIKE ekpo-ebeln, " PO No
bsart LIKE ekko-bsart, " Purchasing Document Type
ebelp LIKE ekpo-ebelp, " Item
menge LIKE ekpo-menge, " PO Qty
grn_menge LIKE ekpo-menge, " GRN Qty
trn_menge LIKE ekpo-menge, " Transit Qty
bal_menge LIKE ekpo-menge, " Balance PO Qty
labst LIKE mard-labst, " Valuated stock with unrestricted
fkimg LIKE vbrp-fkimg, " Actual billed quantity
minbe TYPE marc-minbe,
mabst TYPE marc-mabst,
fixkz TYPE eban-fixkz,
zfixkz(7) TYPE c,
matkl TYPE mara-matkl,
mvgr1 TYPE mvke-mvgr1,
bezei TYPE tvm1t-bezei,
zconfirm1(3) TYPE c,
zconfirm2(3) TYPE c,
zconfirm3(3) TYPE c,
END OF itab.
DATA: BEGIN OF itab_sale OCCURS 1 ,
matnr LIKE ekpo-matnr, " Material
werks LIKE ekpo-werks, " Plant
maktx LIKE makt-maktx, " Name of Material
labst LIKE mard-labst, " Valuated stock with unrestricted
END OF itab_sale.
DATA : i_eban LIKE eban OCCURS 0 WITH HEADER LINE.
DATA : del_menge LIKE ekes-menge,
grn_dabmg LIKE ekes-dabmg.
DATA: BEGIN OF it_marc OCCURS 0,
matnr TYPE marc-matnr,
werks TYPE marc-werks,
minbe TYPE marc-minbe,
mabst TYPE marc-mabst,
END OF it_marc.
DATA: BEGIN OF it_eban OCCURS 0,
banfn TYPE eban-banfn,
bnfpo TYPE eban-bnfpo,
fixkz TYPE eban-fixkz,
ebeln type eban-ebeln,
END OF it_eban.
DATA: BEGIN OF it_mara OCCURS 0,
matnr TYPE mara-matnr,
matkl TYPE mara-matkl,
END OF it_mara.
DATA: BEGIN OF it_mvke OCCURS 0,
matnr TYPE mvke-matnr,
mvgr1 TYPE mvke-mvgr1,
mvgr2 TYPE mvke-mvgr2,
mvgr3 TYPE mvke-mvgr3,
mvgr4 TYPE mvke-mvgr4,
END OF it_mvke.
DATA: BEGIN OF it_tvm1t OCCURS 0,
mvgr1 TYPE tvm1t-mvgr1,
bezei TYPE tvm1t-bezei,
END OF it_tvm1t.
DATA: fcat TYPE slis_t_fieldcat_alv,
fcat1 TYPE slis_t_fieldcat_alv,
fcat2 TYPE slis_t_fieldcat_alv,
heading TYPE slis_t_listheader,
heading1 TYPE slis_t_listheader,
heading2 TYPE slis_t_listheader,
events TYPE slis_t_event,
events1 TYPE slis_t_event,
events2 TYPE slis_t_event,
repname LIKE sy-repid.
DATA: keyinfo TYPE slis_keyinfo_alv.
CONSTANTS: formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
CONSTANTS: formname_top_of_page1 TYPE slis_formname VALUE 'TOP_OF_PAGE1'
CONSTANTS: formname_top_of_page2 TYPE slis_formname VALUE 'TOP_OF_PAGE2'
RANGES : s_erdat FOR vbrk-erdat.
DATA: ss_date TYPE mkpf-budat.
DATA: ss_period(3) TYPE n.
Screen Selection
SELECTION-SCREEN BEGIN OF BLOCK s1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS : s_ebeln FOR ekpo-ebeln,
s_werks FOR ekpo-werks.
SELECT-OPTIONS : s_banfn FOR eban-banfn, "Purchase requisition number
s_badat FOR eban-badat, "Requisition (request) date
s_matnr FOR eban-matnr, "Material Number
s_werks FOR eban-werks, "Plant
s_lgort FOR eban-lgort, "Storage Location
s_matkl FOR eban-matkl, "Material group
s_flief FOR eban-flief, "Fixed Vendor
s_bsart FOR ekko-bsart NO INTERVALS. " Purchasing
SELECTION-SCREEN END OF BLOCK s1 .
SELECTION-SCREEN BEGIN OF BLOCK s2 WITH FRAME TITLE text-002.
PARAMETERS: s_period(3) TYPE n .
SELECTION-SCREEN END OF BLOCK s2 .
initialization.
repname = sy-repid.
PERFORM build_eventtab USING events[].
PERFORM build_eventtab1 USING events1[].
PERFORM build_eventtab2 USING events2[].
PERFORM build_comment USING heading[].
PERFORM build_comment1 USING heading1[].
PERFORM build_comment2 USING heading2[].
Strat-of-Selection
START-OF-SELECTION.
PERFORM getdata.
PERFORM getfieldcatalog USING fcat[].
PERFORM getfieldcatalog1 USING fcat1[].
PERFORM getfieldcatalog2 USING fcat2[].
PERFORM alvdisplaydata.
END-OF-SELECTION.
*& Form getdata
text
--> p1 text
<-- p2 text
FORM getdata.
SELECT * FROM eban INTO CORRESPONDING FIELDS OF TABLE i_eban
WHERE banfn IN s_banfn "Purchase requisition number
AND badat IN s_badat "Requisition (request) date
AND matnr IN s_matnr "Material Number
AND werks IN s_werks "Plant
AND lgort IN s_lgort "Storage Location
AND matkl IN s_matkl "Material group
AND flief IN s_flief "Fixed Vendor
AND loekz NE 'X' "Deletion Pocument
AND afnam EQ 'MRP'. "Name of requisitioner/requester
IF NOT i_eban[] IS INITIAL.
LOOP AT i_eban.
CLEAR itab.
itab-banfn = i_eban-banfn.
itab-bnfpo = i_eban-bnfpo.
itab-pr_menge = i_eban-menge.
itab-meins = i_eban-meins.
itab-ebeln = i_eban-ebeln.
itab-ebelp = i_eban-ebelp.
itab-matnr = i_eban-matnr.
itab-werks = i_eban-werks.
**----Get Material Description
IF NOT i_eban-matnr IS INITIAL.
SELECT SINGLE * FROM makt
WHERE matnr EQ i_eban-matnr.
IF sy-subrc EQ 0.
itab-maktx = makt-maktx.
ENDIF.
ELSE.
itab-maktx = i_eban-txz01.
ENDIF.
*----Get PO & GRN Quantity
IF i_eban-ebeln GT 0 AND i_eban-ebelp GT 0.
SELECT SINGLE * FROM ekpo
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp.
IF sy-subrc EQ 0.
itab-menge = ekpo-menge.
ENDIF.
SELECT SINGLE * FROM ekko
WHERE ebeln = i_eban-ebeln.
IF sy-subrc EQ 0.
itab-bsart = ekko-bsart.
ENDIF.
*-------Get GRN Quantity
CLEAR : del_menge,grn_dabmg.
IF ekpo-bstae = '0004'. " GRN Against InbondDelivery
SELECT SUM( menge ) SUM( dabmg )
FROM ekes
INTO (del_menge,grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND ebtyp = 'LA'.
IF sy-subrc EQ 0.
itab-grn_menge = grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
itab-bal_menge = ekpo-menge - del_menge.
IF itab-bal_menge < 0.
itab-bal_menge = 0.
ENDIF.
ELSE.
itab-bal_menge = itab-menge.
ENDIF.
ELSE. " Regular GRN
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'E'
AND bwart = '101'.
IF sy-subrc EQ 0.
itab-grn_menge = grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
ENDIF.
For Cancelled GRN
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'E'
AND bwart = '102'.
IF sy-subrc EQ 0.
itab-grn_menge = itab-grn_menge - grn_dabmg.
itab-trn_menge = del_menge - grn_dabmg.
ENDIF.
IF itab-bsart = 'UB'.
CLEAR : grn_dabmg,grn_dabmg.
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'U'
AND bwart = '641'.
IF sy-subrc EQ 0.
itab-trn_menge = grn_dabmg.
ENDIF.
For Reversal of Issue Document
SELECT SUM( menge )
FROM ekbe
INTO (grn_dabmg)
WHERE ebeln = i_eban-ebeln
AND ebelp = i_eban-ebelp
AND bewtp = 'U'
AND bwart = '642'.
IF sy-subrc EQ 0.
itab-trn_menge = itab-trn_menge - grn_dabmg.
ENDIF.
IF itab-grn_menge <> 0.
itab-trn_menge = 0.
ENDIF.
ENDIF.
End
ENDIF.
*-------End
ENDIF.
itab-bal_menge = itab-menge - ( itab-grn_menge + itab-trn_menge ).
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_OUTPUT'
EXPORTING
input = itab-matnr
IMPORTING
output = itab-matnr.
itab_sale-matnr = itab-matnr.
itab_sale-werks = itab-werks.
itab_sale-maktx = itab-maktx.
COLLECT itab_sale.
APPEND itab.
ENDLOOP.
ENDIF.
IF NOT s_bsart[] IS INITIAL.
DELETE itab WHERE bsart NOT IN s_bsart.
ENDIF.
IF NOT itab_sale IS INITIAL.
LOOP AT itab_sale.
*-----Get Sales Quantity
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_INPUT'
EXPORTING
input = itab_sale-matnr
IMPORTING
output = itab_sale-matnr.
*-----Change as on 08.12.2007
SELECT SUM( clabs ) INTO itab_sale-labst
FROM mchb
WHERE matnr = itab_sale-matnr
AND werks = itab_sale-werks.
*-----End
MODIFY itab_sale TRANSPORTING labst matnr.
ENDLOOP.
LOOP AT itab.
READ TABLE itab_sale WITH KEY matnr = itab-matnr
werks = itab-werks.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERSION_EXIT_CCMAT_OUTPUT'
EXPORTING
input = itab_sale-matnr
IMPORTING
output = itab_sale-matnr.
MOVE itab_sale-labst TO itab-labst.
ENDIF.
MODIFY itab TRANSPORTING labst.
CLEAR itab.
ENDLOOP.
ENDIF.
CHECK itab[] IS NOT INITIAL.
SELECT * FROM marc CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_marc
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr
AND werks EQ itab-werks.
SELECT * FROM eban CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_eban
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND banfn EQ itab-banfn
AND bnfpo EQ itab-bnfpo.
SELECT * FROM mara CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_mara
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr.
SELECT * FROM mvke CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_mvke
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr EQ itab-matnr.
IF sy-subrc = 0.
SELECT * FROM tvm1t CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_tvm1t
FOR ALL ENTRIES IN it_mvke
WHERE mandt = sy-mandt
AND mvgr1 EQ it_mvke-mvgr1.
ENDIF.
IF s_period IS NOT INITIAL.
ss_period = s_period.
ss_period = ss_period + 1.
s_erdat-sign = 'I'.
s_erdat-option = 'BT'.
s_erdat-high = sy-datum.
ss_date = sy-datum - ss_period.
s_erdat-low = ss_date.
APPEND s_erdat.
CLEAR s_erdat.
SELECT * FROM zcvi_vbrk_vbrp CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_vbrkvbrp
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND matnr = itab-matnr
AND fkart IN ('Z3PS','ZVIT',
'ZVDT','ZFRV',
'ZDRV','ZCMR')
AND fkdat IN s_erdat
AND fksto EQ space
AND sfakn EQ space
AND rfbsk NE 'E'
AND fkimg NE 0.
LOOP AT it_vbrkvbrp.
IF it_vbrkvbrp-fktyp NE 'L'.
DELETE it_vbrkvbrp.
CONTINUE.
ENDIF.
IF it_vbrkvbrp-vrkme NE it_vbrkvbrp-meins.
it_vbrkvbrp-fkimg = it_vbrkvbrp-fklmg.
it_vbrkvbrp-meins = it_vbrkvbrp-vrkme.
ENDIF.
IF it_vbrkvbrp-shkzg = 'X'.
it_vbrkvbrp-fkimg = it_vbrkvbrp-fkimg * -1.
ENDIF.
it_vbrk-matnr = it_vbrkvbrp-matnr.
it_vbrk-fkimg = it_vbrkvbrp-fkimg.
it_vbrk-meins = it_vbrkvbrp-meins.
IF it_vbrk[] IS INITIAL.
APPEND it_vbrk.
CLEAR it_vbrk.
ELSE.
COLLECT it_vbrk.
CLEAR it_vbrk.
ENDIF.
ENDLOOP.
ENDIF.
SORT it_vbrkvbrp BY matnr.
SELECT * FROM ekko CLIENT SPECIFIED
INTO CORRESPONDING FIELDS OF TABLE it_ekko
FOR ALL ENTRIES IN itab
WHERE mandt = sy-mandt
AND ebeln = itab-ebeln.
SORT it_ekko BY ebeln.
LOOP AT itab.
READ TABLE it_ekko BINARY SEARCH WITH KEY
ebeln = itab-ebeln.
IF sy-subrc = 0.
IF it_ekko-frgke = 'R'.
itab-zconfirm1 = 'YES'.
itab-zconfirm2 = 'YES'.
itab-zconfirm3 = 'YES'.
ELSEIF it_ekko-frgzu = 'X'.
itab-zconfirm1 = 'YES'.
ELSEIF it_ekko-frgzu = 'XX'.
itab-zconfirm1 = 'YES'.
itab-zconfirm2 = 'YES'.
ENDIF.
ENDIF.
IF s_period IS NOT INITIAL.
READ TABLE it_vbrk BINARY SEARCH
WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
itab-fkimg = it_vbrk-fkimg.
ENDIF.
ENDIF.
READ TABLE it_marc WITH KEY matnr = itab-matnr
werks = itab-werks.
IF sy-subrc = 0.
MOVE it_marc-minbe TO itab-minbe.
MOVE it_marc-mabst TO itab-mabst.
ENDIF.
READ TABLE it_eban WITH KEY banfn = itab-banfn
bnfpo = itab-bnfpo.
IF sy-subrc = 0.
IF it_eban-fixkz EQ 'X'.
itab-zfixkz = 'Firmed'.
ENDIF.
ENDIF.
READ TABLE it_mara WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
MOVE it_mara-matkl TO itab-matkl.
ENDIF.
READ TABLE it_mvke WITH KEY matnr = itab-matnr.
IF sy-subrc = 0.
MOVE it_mvke-mvgr1 TO itab-mvgr1.
READ TABLE it_tvm1t WITH KEY mvgr1 = itab-mvgr1.
IF sy-subrc = 0.
MOVE it_tvm1t-bezei TO itab-bezei.
ENDIF.
ENDIF.
MODIFY itab.
CLEAR itab.
ENDLOOP.
ENDFORM. " getdata
*& Form build_eventtab
text
-->P_EVENTS[] text
FORM build_eventtab USING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
READ TABLE p_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " build_eventtab
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: hline TYPE slis_listheader.
CLEAR: hline.
hline-info = 'Purchase Requision History'.
hline-typ = 'H'.
APPEND hline TO p_heading.
CLEAR hline.
ENDFORM. " build_comment
*& Form getfieldcatalog
text
--> p1 text
<-- p2 text
FORM getfieldcatalog USING p_fcat TYPE slis_t_fieldcat_alv.
DATA : w_fcat TYPE slis_fieldcat_alv.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BANFN'.
w_fcat-seltext_l = 'PR No '.
w_fcat-key = 'X'.
w_fcat-col_pos = 1.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BNFPO'.
w_fcat-seltext_l = 'PR Item '.
w_fcat-key = 'X'.
w_fcat-col_pos = 2.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MATNR'.
w_fcat-seltext_l = 'Material '.
w_fcat-col_pos = 3.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MAKTX'.
w_fcat-seltext_l = 'Name of the Mateiral '.
w_fcat-col_pos = 4.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'WERKS'.
w_fcat-seltext_l = 'Plant '.
w_fcat-col_pos = 5.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'EBELN'.
w_fcat-seltext_l = 'PO No '.
w_fcat-hotspot = 'X'.
w_fcat-col_pos = 6.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'EBELP'.
w_fcat-seltext_l = 'PO Item '.
w_fcat-col_pos = 7.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'PR_MENGE'.
w_fcat-seltext_l = 'PR Qty '.
w_fcat-col_pos = 8.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MEINS'.
w_fcat-seltext_l = 'Unit'.
w_fcat-col_pos = 9.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MENGE'.
w_fcat-seltext_l = 'PO Quantity '.
w_fcat-col_pos = 10.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'GRN_MENGE'.
w_fcat-seltext_l = 'GRN Qty '.
w_fcat-col_pos = 11.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'TRN_MENGE'.
w_fcat-seltext_l = 'Transit Qty '.
w_fcat-col_pos = 12.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BAL_MENGE'.
w_fcat-seltext_l = 'Balance PO Qty '.
w_fcat-col_pos = 13.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'LABST'.
w_fcat-seltext_l = 'Current Stock'.
w_fcat-col_pos = 14.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'FKIMG'.
w_fcat-seltext_l = 'Sales Qty '.
w_fcat-col_pos = 15.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MINBE'.
w_fcat-seltext_l = 'Reorder Point'.
w_fcat-col_pos = 16.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MABST'.
w_fcat-seltext_l = 'Maximum stock level'.
w_fcat-col_pos = 17.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZFIXKZ'.
w_fcat-seltext_l = 'Fixed Indicator'.
w_fcat-col_pos = 18.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MATKL'.
w_fcat-seltext_l = 'Design'.
w_fcat-col_pos = 19.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'MVGR1'.
w_fcat-seltext_l = 'Size'.
w_fcat-col_pos = 20.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'BEZEI'.
w_fcat-seltext_l = 'Size Desc.'.
w_fcat-col_pos = 21.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'FKIMG'.
w_fcat-seltext_l = 'Sales Qty '.
w_fcat-col_pos = 22.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM1'.
w_fcat-seltext_l = 'Release1'.
w_fcat-col_pos = 23.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM2'.
w_fcat-seltext_l = 'Release2'.
w_fcat-col_pos = 24.
APPEND w_fcat TO fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB'.
w_fcat-fieldname = 'ZCONFIRM3'.
w_fcat-seltext_l = 'Release3'.
w_fcat-col_pos = 25.
APPEND w_fcat TO fcat.
ENDFORM. " getfieldcatalog
*& Form alvdisplaydata
text
--> p1 text
<-- p2 text
FORM alvdisplaydata .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fcat
it_events = events[]
TABLES
t_outtab = itab.
IF sy-subrc <> 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " alvdisplaydata
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading.
ENDFORM. "TOP_OF_PAGE
*& Form build_eventtab1
text
-->P_EVENTS[] text
FORM build_eventtab1 USING p_events1 TYPE slis_t_event.
DATA: ls_event1 TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events1.
READ TABLE p_events1 WITH KEY name = slis_ev_top_of_page
INTO ls_event1.
IF sy-subrc = 0.
MOVE formname_top_of_page1 TO ls_event1-form.
APPEND ls_event1 TO p_events1.
ENDIF.
endform.
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment1 USING p_heading1 TYPE slis_t_listheader.
DATA: hline1 TYPE slis_listheader.
hline1-info = '1 Secondary List'.
hline1-typ = 'H'.
APPEND hline1 TO p_heading1.
CLEAR hline1.
ENDFORM. " build_comment
*& Form getfieldcatalog1
text
-->P_FCAT1[] text
form getfieldcatalog1 using p_fcat1 TYPE slis_t_fieldcat_alv.
DATA : w_fcat1 TYPE slis_fieldcat_alv.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'VBELN'.
w_fcat1-seltext_l = 'Pr.No'.
w_fcat1-hotspot = 'X'.
w_fcat1-col_pos = 1.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'POSNR'.
w_fcat1-seltext_l = 'PR Item'.
w_fcat1-col_pos = 2.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'MATNR'.
w_fcat1-seltext_l = 'Material'.
w_fcat1-col_pos = 3.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'LFIMG'.
w_fcat1-seltext_l = 'Actual quantity delivered'.
w_fcat1-col_pos = 4.
APPEND w_fcat1 to fcat1.
CLEAR w_fcat1.
w_fcat1-tabname = 'IT_LIPS'.
w_fcat1-fieldname = 'MEINS'.
w_fcat1-seltext_l = 'Base Unit of Measure'.
w_fcat1-col_pos = 5.
APPEND w_fcat1 to fcat1.
endform. " getfieldcatalog1
*& Form USER_COMMAND
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE itab INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
select vbeln
posnr
matnr
vgbel
lfimg
meins from lips into table it_lips
where vgbel = itab-ebeln.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
>>>> i_callback_user_command = 'USER_COMMAND1'
it_fieldcat = fcat1
it_events = events1[]
TABLES
t_outtab = it_lips.
IF sy-subrc 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. "USER_COMMAND
FORM TOP_OF_PAGE1 *
FORM top_of_page1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading1.
ENDFORM. "TOP_OF_PAGE1
*& Form build_eventtab1
text
-->P_EVENTS[] text
FORM build_eventtab2 USING p_events2 TYPE slis_t_event.
DATA: ls_event2 TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events2.
READ TABLE p_events2 WITH KEY name = slis_ev_top_of_page
INTO ls_event2.
IF sy-subrc = 0.
MOVE formname_top_of_page2 TO ls_event2-form.
APPEND ls_event2 TO p_events2.
ENDIF.
endform.
*& Form build_comment
text
-->P_HEADING[] text
FORM build_comment2 USING p_heading2 TYPE slis_t_listheader.
DATA: hline2 TYPE slis_listheader.
hline2-info = '2 Secondary List'.
hline2-typ = 'H'.
APPEND hline2 TO p_heading2.
CLEAR hline2.
ENDFORM. " build_comment
*& Form getfieldcatalog1
text
-->P_FCAT1[] text
form getfieldcatalog2 using p_fcat2 TYPE slis_t_fieldcat_alv.
DATA : w_fcat2 TYPE slis_fieldcat_alv.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'EBELN'.
w_fcat2-seltext_l = 'Pr.Doc No'.
w_fcat2-col_pos = 1.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'EBELP'.
w_fcat2-seltext_l = 'PR Doc Item'.
w_fcat2-col_pos = 2.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'BELNR'.
w_fcat2-seltext_l = 'No.Mat Doc'.
w_fcat2-col_pos = 3.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'BUZEI'.
w_fcat2-seltext_l = 'Item in Mat Doc'.
w_fcat2-col_pos = 4.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'MENGE'.
w_fcat2-seltext_l = 'Quantity'.
w_fcat2-col_pos = 5.
APPEND w_fcat2 to fcat2.
CLEAR w_fcat2.
w_fcat2-tabname = 'IT_EKBE'.
w_fcat2-fieldname = 'XBLNR'.
w_fcat2-seltext_l = 'Ref Doc Num'.
w_fcat2-col_pos = 5.
APPEND w_fcat2 to fcat2.
endform. " getfieldcatalog2
*& Form USER_COMMAND1
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM user_command1 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE it_lips INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
select ebeln
ebelp
belnr
buzei
menge
xblnr from ekbe into table it_ekbe
where xblnr = it_lips-vbeln.
endif.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
i_callback_user_command = 'USER_COMMAND1'
it_fieldcat = fcat2
it_events = events2[]
TABLES
t_outtab = it_ekbe.
IF sy-subrc 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. "USER_COMMAND
FORM TOP_OF_PAGE1
FORM top_of_page2.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading2.
ENDFORM. "TOP_OF_PAGE2 -
what is difference between distribution list and share point group? Can we add distribution list into person and group column of share point list?
there is a workaround you can try, create audience and add DL to them and deal with the audience or convert DL to groups
https://social.technet.microsoft.com/Forums/en-US/02f0d773-8188-4d94-a448-0c04d838b0cf/distribution-lists-in-sharepoint?forum=sharepointgenerallegacy
Kind Regards,
John Naguib
Technical Consultant/Architect
MCITP, MCPD, MCTS, MCT, TOGAF 9 Foundation
Please remember to mark your question as answered if this solves your problem -
hi,
i have pasted the code below.
when i click in the basic list ...its taking me to secondary list sy-lsind = 1. but in this list its not allowing me to click.(not taking me to sy-lsind>=2) something wrong with my menu painter stuff. when i try to click....i get as chose valid function in the status place.
I have given 'TEST' in the function key place before choose.
in application tool bar have crated MARC.MARD.MAKT. GAVE THEM AS sap gui FUNCTIONS. can some one plz correct me.
Tables: marc,mard,makt.
data: begin of itab occurs 0,
matnr like mara-matnr,
ersda like mara-ersda,
ernam like mara-ernam,
mtart like mara-mtart,
end of itab.
TOP-OF-PAGE.
WRITE:/ 'INTERACTIVE REPORTS'.
ULINE.
WRITE:/ 'MATNR', 'ERSDA', 'ERNAM', 'MTART'.
START-OF-SELECTION.
SELECT MATNR ERSDA ERNAM MTART INTO TABLE ITAB FROM MARA.
END-OF-SELECTION.
LOOP AT ITAB.
WRITE:/ ITAB-MATNR HOTSPOT ON,ITAB-ERSDA,ITAB-ERNAM,ITAB-MTART.
HIDE: ITAB-MATNR.
ENDLOOP.
AT LINE-SELECTION.
WRITE:/ 'LIST INDEX NO:',SY-LSIND.
IF SY-LSIND > 0.
WRITE:/ ITAB-MATNR , ITAB-ERSDA, ITAB-ERNAM.
ENDIF.
"this below part of the code is not really executin i guess'
SET PF-STATUS 'THREE'.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'MARC'.
SELECT * FROM MARC WHERE MATNR = ITAB-MATNR.
WRITE:/ MARC-MATNR, MARC-WERKS.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE:/ ' NO RECORDS AVAILABLE'.
ENDIF.
WHEN 'MARD'.
SELECT * FROM MARD WHERE MATNR = ITAB-MATNR.
WRITE:/ MARD-MATNR, MARC-WERKS.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE:/ ' NO RECORDS AVAILABLE FROM MARD'.
ENDIF.
WHEN 'MAKT'.
SELECT * FROM MAKT WHERE MATNR = ITAB-MATNR.
WRITE:/ MAKT-MATNR, MAKT-SPRAS.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE:/ 'NO RECORDS AVAILABLE FROM MAKT'.
ENDIF.
ENDCASE.
END-OF-SELECTION.lease look at the changed code.
However sy-ucomm will be 'PICK' at the line selection.
Shreekant
TABLES: marc,mard,makt.
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
mtart LIKE mara-mtart,
END OF itab.
TOP-OF-PAGE.
WRITE:/ 'INTERACTIVE REPORTS'.
ULINE.
WRITE:/ 'MATNR', 'ERSDA', 'ERNAM', 'MTART'.
START-OF-SELECTION.
SELECT matnr ersda ernam mtart INTO TABLE itab FROM mara.
END-OF-SELECTION.
LOOP AT itab.
WRITE:/ itab-matnr HOTSPOT ON,itab-ersda,itab-ernam,itab-mtart.
HIDE: itab-matnr.
ENDLOOP.
AT LINE-SELECTION.
WRITE:/ 'LIST INDEX NO:',sy-lsind.
IF sy-lsind > 0.
WRITE:/ itab-matnr , itab-ersda, itab-ernam.
CASE sy-ucomm.
WHEN 'MARC'.
SELECT * FROM marc WHERE matnr = itab-matnr.
WRITE:/ marc-matnr, marc-werks.
ENDSELECT.
IF sy-subrc <> 0.
WRITE:/ ' NO RECORDS AVAILABLE'.
ENDIF.
WHEN 'MARD'.
SELECT * FROM mard WHERE matnr = itab-matnr.
WRITE:/ mard-matnr, marc-werks.
ENDSELECT.
IF sy-subrc <> 0.
WRITE:/ ' NO RECORDS AVAILABLE FROM MARD'.
ENDIF.
WHEN 'MAKT'.
SELECT * FROM makt WHERE matnr = itab-matnr.
WRITE:/ makt-matnr, makt-spras.
ENDSELECT.
IF sy-subrc <> 0.
WRITE:/ 'NO RECORDS AVAILABLE FROM MAKT'.
ENDIF.
ENDCASE.
ENDIF.
"this below part of the code is not really executin i guess'
*SET PF-STATUS 'THREE'.
*AT USER-COMMAND.
END-OF-SELECTION. -
Help needed Displaying ALV Secondary list without using oops concept
Hi Experts
Help needed Displaying ALV Secondary list without using oops concept.
its urgent
regds
rajasekharhi chk this code
******************TABLES DECLARATION*****************
TABLES : VBAP,MARA.
*****************TYPE POOLS**************************
TYPE-POOLS : SLIS.
****************INTERNAL TABLES**********************
DATA : BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
END OF IT_VBAP.
****************TEMPORARY VARIABLES******************
DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT
DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE
*****************FIELD CATALOG***********************
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
****************LAYOUT*******************************
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
***************VARIANT*******************************
DATA : G_VARIANT LIKE DISVARIANT.
****************SAVE*********************************
DATA : G_SAVE(1) TYPE C.
*****************EVENTS******************************
DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,
G_EVENTS TYPE SLIS_T_EVENT.
******************PF STATUS**************************
DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.
******************USER COMMAND************************
DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',
R_UCOMM LIKE SY-UCOMM.
****************SELECTION SCREEN************************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
***************AT SELECTION SCREEN*********************
AT SELECTION-SCREEN.
PERFORM VALIDATE.
**************START-OF-SELECTION**************************
START-OF-SELECTION.
PERFORM GET_DETAILS.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM VARIANT.
PERFORM SAVE.
PERFORM EVENTS.
PERFORM ALV_DISPLAY.
*********************FORMS*******************************************
*& Form validate
text
--> p1 text
<-- p2 text
FORM VALIDATE .
SELECT SINGLE VBELN
FROM VBAP
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'enter valid vbeln'.
ENDIF.
ENDFORM. " validate
*& Form get_details
text
--> p1 text
<-- p2 text
FORM GET_DETAILS .
SELECT VBELN
POSNR
MATNR
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'no details found'.
ENDIF.
ENDFORM. " get_details
*& Form fieldcat
text
--> p1 text
<-- p2 text
FORM FIELDCAT .
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-OUTPUTLEN = 10.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-OUTPUTLEN = 6.
WA_FIELDCAT-SELTEXT_L = 'ITEM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-OUTPUTLEN = 18.
WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " fieldcat
*& Form LAYOUT
text
--> p1 text
<-- p2 text
FORM LAYOUT .
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT
*& Form VARIANT
text
--> p1 text
<-- p2 text
FORM VARIANT .
CLEAR G_VARIANT.
G_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT
*& Form SAVE
text
--> p1 text
<-- p2 text
FORM SAVE .
CLEAR G_SAVE.
G_SAVE = 'A'.
ENDFORM. " SAVE
*& Form EVENTS
text
--> p1 text
<-- p2 text
FORM EVENTS .
CLEAR XS_EVENTS.
XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENTS TO G_EVENTS.
ENDFORM. " EVENTS
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
WRITE :/ ' INTELLI GROUP'.
ENDFORM. "TOP_OF_PAGE
*& Form ALV_DISPLAY
text
--> p1 text
<-- p2 text
FORM ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PF_STATUS
I_CALLBACK_USER_COMMAND = USER_COMMAND
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = G_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ALV_DISPLAY
*& Form SET_PF_STATUS
text
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'Z50651_PFSTATUS' EXCLUDING EXTAB.
ENDFORM. "SET_PF_STATUS
*& Form SET_USER_COMMAND
text
FORM SET_USER_COMMAND USING R_UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'DC'.
READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SELECT SINGLE MTART
FROM MARA
INTO V_MTART
WHERE MATNR = IT_VBAP-MATNR.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.
ELSE.
WRITE :/ 'MATERIAL NO :',IT_VBAP-MATNR.
WRITE :/ 'MATERIAL TYPE :' , V_MTART.
ENDIF.
ENDIF.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CLOSE'.
CALL TRANSACTION 'SE38'.
ENDCASE.
REPORT Z_ALV_INTERACTIVE MESSAGE-ID ZMSG_50651
LINE-SIZE 100
LINE-COUNT 60
NO STANDARD PAGE HEADING.
******************TABLES DECLARATION*****************
TABLES : VBAP,MARA.
*****************TYPE POOLS**************************
TYPE-POOLS : SLIS.
****************INTERNAL TABLES**********************
DATA : BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
END OF IT_VBAP.
****************TEMPORARY VARIABLES******************
DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT
DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE
*****************FIELD CATALOG***********************
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
****************LAYOUT*******************************
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
***************VARIANT*******************************
DATA : G_VARIANT LIKE DISVARIANT.
****************SAVE*********************************
DATA : G_SAVE(1) TYPE C.
*****************EVENTS******************************
DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,
G_EVENTS TYPE SLIS_T_EVENT.
******************PF STATUS**************************
DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.
******************USER COMMAND************************
DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',
R_UCOMM LIKE SY-UCOMM.
****************SELECTION SCREEN************************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
***************AT SELECTION SCREEN*********************
AT SELECTION-SCREEN.
PERFORM VALIDATE.
**************START-OF-SELECTION**************************
START-OF-SELECTION.
PERFORM GET_DETAILS.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM VARIANT.
PERFORM SAVE.
PERFORM EVENTS.
PERFORM ALV_DISPLAY.
*********************FORMS*******************************************
*& Form validate
text
--> p1 text
<-- p2 text
FORM VALIDATE .
SELECT SINGLE VBELN
FROM VBAP
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'enter valid vbeln'.
ENDIF.
ENDFORM. " validate
*& Form get_details
text
--> p1 text
<-- p2 text
FORM GET_DETAILS .
SELECT VBELN
POSNR
MATNR
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'no details found'.
ENDIF.
ENDFORM. " get_details
*& Form fieldcat
text
--> p1 text
<-- p2 text
FORM FIELDCAT .
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-OUTPUTLEN = 10.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-OUTPUTLEN = 6.
WA_FIELDCAT-SELTEXT_L = 'ITEM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-OUTPUTLEN = 18.
WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " fieldcat
*& Form LAYOUT
text
--> p1 text
<-- p2 text
FORM LAYOUT .
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT
*& Form VARIANT
text
--> p1 text
<-- p2 text
FORM VARIANT .
CLEAR G_VARIANT.
G_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT
*& Form SAVE
text
--> p1 text
<-- p2 text
FORM SAVE .
CLEAR G_SAVE.
G_SAVE = 'A'.
ENDFORM. " SAVE
*& Form EVENTS
text
--> p1 text
<-- p2 text
FORM EVENTS .
CLEAR XS_EVENTS.
XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENTS TO G_EVENTS.
ENDFORM. " EVENTS
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
WRITE :/ ' INTELLI GROUP'.
ENDFORM. "TOP_OF_PAGE
*& Form ALV_DISPLAY
text
--> p1 text
<-- p2 text
FORM ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PF_STATUS
I_CALLBACK_USER_COMMAND = USER_COMMAND
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = G_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBAP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ALV_DISPLAY
*& Form SET_PF_STATUS
text
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD' EXCLUDING EXTAB.
ENDFORM. "SET_PF_STATUS
*& Form SET_USER_COMMAND
text
FORM SET_USER_COMMAND USING R_UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'DC'.
READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SELECT SINGLE MTART
FROM MARA
INTO V_MTART
WHERE MATNR = IT_VBAP-MATNR.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.
ELSE.
WRITE :/ 'MATERIAL NO :',IT_VBAP-MATNR.
WRITE :/ 'MATERIAL TYPE :' , V_MTART.
SUBMIT SLIS_DUMMY WITH P_MATNR EQ IT_VBAP-MATNR
WITH P_MTART EQ V_MTART.
ENDIF.
ENDIF.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CLOSE'.
CALL TRANSACTION 'SE38'.
ENDCASE.
plz reward if useful -
Adding button in the secondary list and alv grid
Hi all ,
i have devloped an alv grid interactive report as below, my problem is i want to add some button in the secondary list and do some interactions. but i dont know how to do that. i m sending u my code below ,,, plzz suggest what can be done do add that.
<code>
*& Report Z_demo_SALESDOC
REPORT z_demo_salesdoc.
TABLES: vbak, vbap.
TYPE-POOLS:slis.
DATA: BEGIN OF it_vbak OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
auart TYPE vbak-auart,
END OF it_vbak.
DATA: BEGIN OF it_vbap OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-vbeln,
matnr TYPE vbap-matnr,
zmeng TYPE vbap-zmeng,
netwr TYPE vbap-netwr,
END OF it_vbap.
DATA:it_event TYPE slis_t_event.
DATA: t_field TYPE slis_t_fieldcat_alv,
w_field TYPE slis_fieldcat_alv,
t_field1 TYPE slis_t_fieldcat_alv,
w_field1 TYPE slis_fieldcat_alv,
w_layout TYPE slis_layout_alv,
t_sort TYPE slis_t_sortinfo_alv,
w_sort TYPE slis_sortinfo_alv.
CONSTANTS: c_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
c_usercommand TYPE slis_formname VALUE 'USER_COMMAND'.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln MODIF ID m1,
s_erdat FOR vbak-erdat MODIF ID m2.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS:rb1 RADIOBUTTON GROUP g1 USER-COMMAND us1,
rb2 RADIOBUTTON GROUP g1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B2.
AT SELECTION-SCREEN OUTPUT.
IF rb1 = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'M1'.
IF screen-name CS 'S_VBELN'.
screen-active = '0'.
screen-input = '0'.
screen-output = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF rb2 = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'M2'.
screen-active = '0'.
screen-input = '0'.
screen-output = '0'.
screen-invisible = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN.
DATA: v_vbeln LIKE vbak-vbeln.
SELECT SINGLE vbeln
FROM vbak
INTO (v_vbeln)
WHERE vbeln IN s_vbeln .
IF sy-subrc <> 0.
MESSAGE e001(q) WITH 'Invalid Sales document'.
ENDIF.
DATA: v_erdat LIKE vbak-erdat.
SELECT SINGLE erdat
FROM vbak
INTO (v_erdat)
WHERE erdat IN s_erdat.
IF sy-subrc <> 0.
MESSAGE e001(q) WITH 'No document available with given date'.
ENDIF.
START-OF-SELECTION.
PERFORM get_data_vbak.
PERFORM build_field_catalog.
PERFORM fill_event.
PERFORM print_data_vbak.
END-OF-SELECTION.
*& Form get_data_vbak
text
--> p1 text
<-- p2 text
FORM get_data_vbak .
SELECT vbeln ernam erdat auart
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln AND erdat IN s_erdat.
ENDFORM. " get_data_vbak
*& Form build_field_catalog
text
--> p1 text
<-- p2 text
FORM build_field_catalog .
w_field-col_pos = 1.
w_field-fieldname = 'VBELN'.
w_field-tabname = 'IT_VBAK'.
w_field-seltext_m = 'Sales Order'.
w_field-emphasize = 'C710'.
APPEND w_field TO t_field.
CLEAR w_field.
w_field-col_pos = 2.
w_field-fieldname = 'ERNAM'.
w_field-tabname = 'IT_VBAK'.
w_field-seltext_m = 'Created by'.
w_field-emphasize = 'C710'.
APPEND w_field TO t_field.
CLEAR w_field.
w_field-col_pos = 3.
w_field-fieldname = 'ERDAT'.
w_field-tabname = 'IT_VBAK'.
w_field-seltext_m = 'Created Date'.
w_field-emphasize = 'C710'.
APPEND w_field TO t_field.
CLEAR w_field.
w_field-col_pos = 4.
w_field-fieldname = 'AUART'.
w_field-tabname = 'IT_VBAK'.
w_field-seltext_m = 'Order type'.
w_field-emphasize = 'C710'.
APPEND w_field TO t_field.
CLEAR w_field.
w_sort-spos = 1.
w_sort-fieldname = 'VBELN'.
w_sort-up = 'X'.
APPEND w_sort TO t_sort.
w_layout-colwidth_optimize = 'X'.
ENDFORM. " build_field_catalog
*& Form user_command
text
-->RF_UCOMM text
-->RS_SELFIELD text
FORM user_command USING rf_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE rf_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname = 'VBELN'.
READ TABLE it_vbak INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
PERFORM get_data_vbap.
PERFORM build_field_catalog2.
PERFORM print_field_data.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "user_command
*& Form print_data_vbak
text
--> p1 text
<-- p2 text
FORM print_data_vbak .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_GRID_TITLE
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = w_layout
it_fieldcat = t_field[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = t_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_vbak
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " print_data_vbak
*& Form fill_event
text
FORM fill_event .
DATA : st_event TYPE slis_alv_event.
*- Clear.
CLEAR : st_event, it_event[].
*- Local variable
DATA : l_tabix TYPE sy-tabix.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*- Read event table
READ TABLE it_event WITH KEY name = slis_ev_user_command
INTO st_event.
*- Clear
CLEAR l_tabix.
l_tabix = sy-tabix.
*- Check subrc
IF sy-subrc = 0.
st_event-form = c_usercommand.
*- Modify
MODIFY it_event FROM st_event INDEX l_tabix.
*- Clear
CLEAR st_event.
ENDIF.
ENDFORM. " fill_event
*& Form get_data_vbap
text
FORM get_data_vbap .
IF NOT it_vbak[] IS INITIAL.
SELECT vbeln
posnr
matnr
zmeng
netwr
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = it_vbak-vbeln.
IF sy-subrc = 0.
SORT it_vbap BY vbeln.
ENDIF.
ENDIF.
ENDFORM. " get_data_vbap
*& Form build_field_catalog2
text
FORM build_field_catalog2 .
CLEAR:t_field1,w_field1.
w_field1-col_pos = 1.
w_field1-fieldname = 'VBELN'.
w_field1-tabname = 'IT_VBAP'.
w_field1-seltext_m = 'Sales Order'.
w_field1-emphasize = 'C710'.
APPEND w_field1 TO t_field1.
CLEAR w_field1.
w_field1-col_pos = 2.
w_field1-fieldname = 'POSNR'.
w_field1-tabname = 'IT_VBAP'.
w_field1-seltext_m = 'Sales Doc Item'.
w_field1-emphasize = 'C710'.
APPEND w_field1 TO t_field1.
CLEAR w_field1.
w_field1-col_pos = 3.
w_field1-fieldname = 'MATNR'.
w_field1-tabname = 'IT_VBAP'.
w_field1-seltext_m = 'Material No'.
w_field1-emphasize = 'C710'.
APPEND w_field1 TO t_field1.
CLEAR w_field1.
w_field1-col_pos = 4.
w_field1-fieldname = 'ZMENG'.
w_field1-tabname = 'IT_VBAP'.
w_field1-seltext_m = 'Target quan units'.
w_field1-emphasize = 'C710'.
APPEND w_field1 TO t_field1.
CLEAR w_field1.
w_field1-col_pos = 5.
w_field1-fieldname = 'NETWR'.
w_field1-tabname = 'IT_VBAP'.
w_field1-seltext_m = 'Net value dc cu'.
w_field1-emphasize = 'C710'.
APPEND w_field1 TO t_field1.
CLEAR w_field1.
ENDFORM. " build_field_catalog2
*& Form print_field_data
text
FORM print_field_data .
SET PF-STATUS 'VBAP'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
i_grid_title = 'VBAP DETAILS'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
it_fieldcat = t_field1[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " print_field_data
</code>Hi Satya..
This is the Sample code...
DATA : V_FORM_GUI TYPE SLIS_FORMNAME VALUE 'F_GUI'. "Form name
**Secondary List
FORM print_field_data .
SET PF-STATUS 'VBAP'. "This statement will not work for ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
<b> I_CALLBACK_PF_STATUS_SET = V_FORM_GUI
"Subroutine in which GUI status is called</b>
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND' "To handle GUI
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
i_grid_title = 'VBAP DETAILS'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
it_fieldcat = t_field1[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " print_field_data
FORM F_GUI USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'GUI_1'. "Double click and Create this GUI status and add buttons
ENDFORM.
<b><REMOVED BY MODERATOR></b>
Message was edited by:
Alvaro Tejada Galindo -
Report title displaying for the secondary list
Hi All,
I have done a report interactive.The basic list is ALV and the secondary list is normal report.The problem in secondary list is it is diplaying the title "Dynamic list display" I am not getting from where this text is picking up and displaying .The code is as shown below.
LEAVE TO LIST-PROCESSING.
write:/ 'converting spool to pdf'.
The output is displaying as shown below.
dynamic list display.
converting spool to pdf.
I dont want to display dynamic list display in the output.How to suppress this?I even observed in debug mode after leave to list-prcoessing it is going to next line converting spool to pdf.
Regards
Maheshuse
TOP-OF-PAGE DURING LINE-SELECTION.
when ur SY-LSIND
trigger this event with whtever heading u want in secondary list -
Alv drilldown-fields are hiding in secondary list-when layout option used
hey guys,
i displayed alv grid using fms.
the basic list has default layout option.
but when user gives a deault layout,and try to see secondary list,the fields appear as hidden.
one has to unhide them manualy to see.Kumar,
Check the Field catalog Before displaying Secondary list, If NO_OUT is set for Hidden fields.
Thanks,
Kishore -
How do I modify the Title Column of a Task List using JSLink
I would like to modify the title column of a Task List in SharePoint 2013. I would like to make the title column different colors based on a selection in another field. For some reason I can run the TitleRendering function
on a different filed and it works perfectly, but when I try to run it on the Title field it is completely ignored. Is there some kind of work around for this?
var taskSample = taskSample || {};
taskSample.CustomizeFieldRendering = function () {
RegisterSod('hierarchytaskslist.js', '/_layouts/15/hierarchytaskslist.js');
LoadSodByKey('hierarchytaskslist.js', null);
// Intialize the variables for overrides objects
var overrideCtx = {
Templates: {
Fields: {
"Title": {
'View' : taskSample.TitleRendering
// Register the override of the field
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
taskSample.TitleRendering = function (ctx) {
var output = [];
switch(ctx.CurrentItem.Unit) {
case "Unit 1":
output.push('<span style="color: blue;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
case "Unit 2":
output.push('<span style="color: green;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
case "Unit 3":
output.push('<span style="color: red;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
case "Unit 4":
output.push('<span style="color: yellow;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
case "Unit 5":
output.push('<span style="color: orange;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
case "Unit 6":
output.push('<span style="color: pink;">');
output.push(ctx.CurrentItem.Title);
output.push('</span>');
break;
default:
output.push(ctx.CurrentItem.Title);
break;
return output.join('');
taskSample.CustomizeFieldRendering();Hi,
Per my understanding, the TitleRendering function is not been applied to the Title column of the Task list.
I suggest you replace the “Title” with “LinkTitle” in your .js file:
var overrideCtx = {
Templates: {
Fields: {
"LinkTitle": {
'View' : taskSample.TitleRendering
In IE Developer Tools, we can see that the “name” attribute of the Title column is “LinkTitle”:
Best regards
Patrick Liang
TechNet Community Support -
Column width in finder LIST view
I am using Yosemite. This issue has been driving me mad for years and try as I may I cannot find the solution.
How do you set a default column width in Finder LIST view for all folders? Whatever I do (for example VIEW OPTIONS, USE AS DEFAULTS) does not work.
Can anybody help? I would use third party plugins if I could find something that controls this. Please note: I am using LIST view NOT column view.
Many thanksLike Jim, I also generally use Icon view for folders containing images, and have the View Option to show item info selected. Column view will also show image dimensions (both of these work, provided the folder has been indexed by Spotlight).
If you want to see the dimensions, but also want to view the folder contents in List view, the best you can do is bring up the Inspector (Command-Option-i), expand the More Info section, then move down the list using the arrow key. The Inspector pane's contents change with each new selected item, and the More Info section includes the dimensions.
Francine
Francine
Schwieder -
How to create a secondary list of alv grid inside the function module
Hi All,
My requirement is to create a RFC function module to display the alv grid of one table.
i have created that.
while clicking on the records of the alv it should open the secondary list of another table.
My problem is it is not fetching the records of the internal table of the primary list since it is created inside the function module(FUNCTION...ENDFUNCTION).
pls help me on this.
Thanks in Advance.hi,
READ TABLE sel_sheet INTO wa_sheet INDEX rs_selfield-tabindex.
here sel_sheet is the internal table for the primary list..
i called the function module "reuse_lav_grid_display" inside Function...Endfunction.
so when i am using READ TABLE sel_sheet INTO wa_sheet INDEX rs_selfield-tabindex.
inside the user command perform therecords in this internal table is not populating..
pls help me on this.
thanks in advance.
Maybe you are looking for
-
HI All, I have a new unibody macbook. Periodically the screen fades to almost black (like it goes before starting front row). It doesn't seem to be related to key combinations or whether powered/ on battery. It is still awake and some period later (u
-
Why don't I have any predesigned menus in Encore? I have the cloud but I cannot access any predesigned menus.
-
Why can't I get new apps on the AppStore
I can't get games any more and whenever I try it shows the circle but it doesn't move or download
-
I have a STMP that goes along with a video from FCP. My client said they liked it, but I have to add something to the beginning...which means I have to move everything about 9 seconds down. Problem is, a lot of the tracks are keyframed for volume. Is
-
Blackberry Torch 9810 as a modem for Kindle Fire - is it possible?
Hello, I use my BB Torch 9810 with my PCs as a tethered modem when I need to and it works great. I wondered if anyone knows if I can do the same with my Kindle Fire (Android)? That'd be awesome if I could get that working. I already have a micro U