Need Some help in Developing an ALV report ..Plz help me
Hi Experts I am basic learner to ABAP Here I need some help in developing a Delivery *** Invoice Report....Please help me by spending a little time..
Tables are VBAK VBAP LIPS LIKP and Document floe table is VBFA
SELECT VBELN VKORG VTWEG SPART
FROM VBAK
INTO TABLE I_VBAK
WHERE VBELN IN S_VBELN.
IF I_VBAK IS NOT INITIAL .
SELECT VBELN POSNR MATKL POSAR WERKS
FROM VBAP
INTO TABLE I_VBAP
FOR ALL ENTRIES IN I_VBAK
WHERE VBELN = I_VBAK-VBELN.
ENDIF.
IF I_VBAP IS NOT INITIAL.
SELECT * FROM LIPS
INTO CORRESPONDING FIELDS OF TABLE I_LIPS
WHERE VGBEL = VBAP-VBELN
AND VGPOS = VBAP-POSNR.
ENDIF.
IF I_LIPS IS NOT INITIAL.
SELECT VBELN VSTEL VKORG KUNNR
FROM LIKP
INTO TABLE I_LIKP.
ENDIF.
Moderator message : Outsourcing is not allowed, don't expect others to correct your source code. Thread locked.
Edited by: Vinod Kumar on Aug 1, 2011 5:43 PM
hi ,
Look in this link
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/b3/0ef3e8396111d5b2e80050da4c74dc/frameset.htm">http://help.sap.com/saphelp_nw04/helpdata/en/b3/0ef3e8396111d5b2e80050da4c74dc/frameset.htm</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/21/894eeee0b911d4b2d90050da4c74dc/content.htm">http://help.sap.com/saphelp_nw04/helpdata/en/21/894eeee0b911d4b2d90050da4c74dc/content.htm</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/80/1a62bfe07211d2acb80000e829fbfe/content.htm">http://help.sap.com/saphelp_nw04/helpdata/en/80/1a62bfe07211d2acb80000e829fbfe/content.htm</a>
Regards
Renjith Kumar
Similar Messages
-
hi.
i am developing a ALV report.i need to add one extra button. can any one suggest me howTry this way:
I am showing in OO ABAP area:
Declare in TOP
CLASS lcl_event_handler DEFINITION
Class event handler
CLASS lcl_event_handler DEFINITION .
PUBLIC SECTION .
METHODS:
*To add new functional buttons to the ALV toolbar
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object,
*To implement user commands
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
PRIVATE SECTION.
ENDCLASS. "lcl_event_handler DEFINITION
DATA: gr_event_handler1 TYPE REF TO lcl_event_handler,
gr_event_handler2 TYPE REF TO lcl_event_handler,
flag_alv TYPE c.
Implement the above defined methods in the forms(F01) or main pgm
CLASS lcl_event_handler IMPLEMENTATION
Implementing the method definitions
CLASS lcl_event_handler IMPLEMENTATION .
*Handle Toolbar
METHOD handle_toolbar.
PERFORM handle_toolbar USING e_object.
ENDMETHOD . "handle_toolbar
*Handle User Command
METHOD handle_user_command .
PERFORM handle_user_command USING e_ucomm.
ENDMETHOD . "handle_user_command
ENDCLASS. "lcl_event_handler IMPLEMENTATION
*Create an object(instance) for the event handler in F01
Creating an instance for the event handler
CREATE OBJECT gr_event_handler1.
Registering handler methods to handle ALV Grid events
SET HANDLER gr_event_handler1->handle_user_command FOR g_alv_grid1.
SET HANDLER gr_event_handler1->handle_toolbar FOR g_alv_grid1.
*& Form handle_toolbar
Create buttons on ALV Toolbar
No parameters need to be passed to this form
*FORM handle_toolbar USING
i_object TYPE REF TO cl_alv_event_toolbar_set .
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO i_object->mt_toolbar.
CLEAR ls_toolbar.
IF flag_alv = '1'.
Header Details
MOVE 'FIND1' TO ls_toolbar-function.
MOVE icon_select_detail TO ls_toolbar-icon.
MOVE 'Header Details'(t03) TO ls_toolbar-text.
CLEAR ls_toolbar-disabled.
APPEND ls_toolbar TO i_object->mt_toolbar.
CLEAR ls_toolbar.
Item Details
MOVE 'DETAIL1' TO ls_toolbar-function.
MOVE icon_select_detail TO ls_toolbar-icon.
MOVE 'Item Details'(t04) TO ls_toolbar-text.
CLEAR ls_toolbar-disabled.
APPEND ls_toolbar TO i_object->mt_toolbar.
ENDIF.
IF flag_alv = '2'.
Header Details
MOVE 'FIND2' TO ls_toolbar-function.
MOVE icon_select_detail TO ls_toolbar-icon.
MOVE 'Header Details'(t03) TO ls_toolbar-text.
CLEAR ls_toolbar-disabled.
APPEND ls_toolbar TO i_object->mt_toolbar.
CLEAR ls_toolbar.
Item Details
MOVE 'DETAIL2' TO ls_toolbar-function.
MOVE icon_select_detail TO ls_toolbar-icon.
MOVE 'Item Details'(t04) TO ls_toolbar-text.
CLEAR ls_toolbar-disabled.
APPEND ls_toolbar TO i_object->mt_toolbar.
*& Form handle_user_command
User Command for ALV Toolbar Buttons
-->P_E_UCOMM UCOMM
FORM handle_user_command USING p_e_ucomm TYPE any.
CASE p_e_ucomm .
WHEN 'FIND1'.
For Header detail display
PERFORM get_selected_rows USING g_alv_grid1.
IF i_rowid IS INITIAL.
MESSAGE i000(zv_gts) WITH 'Select atleast one row'(e11).
EXIT.
ENDIF.
PERFORM read_detail TABLES i_zvfx_gts008_head_l .
CALL SCREEN 9020.
WHEN 'DETAIL1'.
For Item Summary display
PERFORM get_selected_rows USING g_alv_grid1.
IF i_rowid IS INITIAL.
MESSAGE i000(zv_gts) WITH 'Select atleast one row'(e11).
EXIT.
ENDIF.
PERFORM read_detail TABLES i_zvfx_gts008_head_l.
CALL SCREEN 9030.
WHEN 'FIND2' .
For Header detail display
PERFORM get_selected_rows USING g_alv_grid2.
IF i_rowid IS INITIAL.
MESSAGE i000(zv_gts) WITH 'Select atleast one row'(e11).
EXIT.
ENDIF.
PERFORM read_detail TABLES i_zvfx_gts008_head.
CALL SCREEN 9020.
WHEN 'DETAIL2'.
For Item Summary display
PERFORM get_selected_rows USING g_alv_grid2.
IF i_rowid IS INITIAL.
MESSAGE i000(zv_gts) WITH 'Select atleast one row'(e11).
EXIT.
ENDIF.
PERFORM read_detail TABLES i_zvfx_gts008_head.
CALL SCREEN 9030.
WHEN OTHERS.
ENDCASE .
ENDFORM. " handle_user_command
ENDIF.
*ENDFORM. "handle_toolbar -
Can somebody give some real time questions for alv report
hi guru
can somebody give some real time questions for alv report.
answers also.
regards
subhasis.hi,
The ALV is a set of function modules and classes and their methods which are added to program code. Developers can use the functionality of the ALV in creating new reports, saving time which might otherwise have been spent on report enhancement
The common features of report are column alignment, sorting, filtering, subtotals, totals etc. <b>To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).</b>
Using ALV, we can have three types of reports:
1. Simple Report
2. Block Report
3. Hierarchical Sequential Report
<b>Reward useful points</b>
Siva -
I need some parts for my MuVo V100, can anyone help?
I need some parts for my MuVo V00, can anyone help I couldn't find any thread this would belong in, but if I've made a mistake, I'm sorry.
I have a Creative Labs MuVo V00 2 gig player. I love it. The only problem is that the back peice of plastic that holds the battery in somehow has fallen off and has disappeared. I really, really, would like to replace it, but I can't find anywhere where parts like this are sold.
So, does anyone know where I can buy this part Or does anyone have one they are willing to sell me If I have to get the whole little "docking bay" that holds the batery and the unit, that would be fine too. I'm not going to pay huge money for it, seeing that I can still get a new one at a few places, but if anyone has one that broke, or that they just aren't using, and wouldn't mind making a few bucks + postage, I would really appreciate it.
Thanks for your time.Re: I need some parts for my MuVo V00, can anyone help As far as I'm concerned the subject is closed. I was just irritated that I asked for help, and got some glib little reply, telling me something that anyone who's been on the internet for more than ten seconds should know about. Because to be honest, him replying with those three words, might have made someone overlook the post, thinking, "Someone is handling that, let's move on." Someone who actually might have what I needed.
But, as it turns out, I could order a reconditioned MuVo from Creative directly for about 6 bucks. (vs. 45+ if I'd gone through ebay) so the problem is resolved. If I could figure out a way to erase this entire post, I would do it. If you can do so, being a mod, I would appreciate it.
Sorry if I upset you Loi-CL, I understand you're a moderator, but I don't take kindly to being treated like I'm stupid and that's exactly what coachop94 was doing. If he didn't have anything important or useful to tell me, he could have just skipped over my post. -
Dear Friends
I have lost my iphone 5 in my office and after sometime I find it in my office in my back drawer but some one has lock it by ICloud plz help me how to recover my phone U have all details of my phone.The only way to locate/disable/erase any lost/stolen iPhone/iPod Touch is through Find My Phone or a similar app. However, this requires that Find My Phone be setup/activated, on your phone, before it was lost/stolen. You would then login at iCloud.com & try to locate it. This requires the phone be turned on & have an Internet connection. There is no other way to locate a lost/stolen iPhone. Apple can't/won't help you, nor will your carrier. Report the loss to the Police, your carrier & Insurance company. Change all of your passwords, especially your Apple ID/iCloud password NOW!
If your carrier offers Blacklisting & they Blacklist the phone, it will be unusable as a phone.
If locked with a passcode, and running iOS 7.0, then phone cannot be re-activated or the passcode removed without knowing your Apple iD/Password. It will be nothing but a useless paperweight.
If not running iOS 7.0, the phone can be forced into recovery mode & restored. -
Need help in developing XML Publisher Report in Multi Language
Hi Tim,
We have requirement to develop XML Publisher report in Multi language.
I know we can upload multiple Templates, one for each language.
Can any one help me in knowing the process other than uploading multiple templates.
Any documents or setup process related to this will be of great help.
I appretiate your help.
Thanks & Regards,
SahooHi,
Lets say you have two smart styles with X and Y, and runtime based on the number of pages, if you would like to modify the style, then check any standard table or structue which holds and responsible for the holding the style value.
If you can trace that, based on the coding we can modify accordingly.
Regards,
Santhosh. -
Logic needed to print blank line in alv report
hi experts,
can anyone please tell me the logic for this
i want to logic one is
1) in alv report contains
a set of data contains 100 (5 datas)
and a set of data contain 200(5 datas)
i want to have one coloum containing serial no
ex for 100 i want to move no '5' to one coloumn ,but it should display only ones not for all 5 records.
same for 200 also i want to move 7 to this ,it should b displayed ones
i used for at new command alos its not working
2)suppose for particular date, 200 related records is not there
it should conatin blank line,displaying 'NIL'.
SO THE OPT FROMAT MUST BE
MATNR DOCNO
100 1000
100 1000
100 "
100 "
100 "
200 2000
200 "
200 "
200 "
200 "
SUPPOSE 200 RECORD IS NOT THERE THE OPT SHLD B
100 1000
100 1000
200 NILArun,
1)
If you are using the function module REUSE_ALV_GRID_DISPLAY, then use the internal table it_sort with a row for the column where you want the suppression of repeated values.
2)
If you are using the function module REUSE_ALV_GRID_DISPLAY, then simply ensure that your internal table t_outtab has the rows that you need containing 'NIL'.
John -
Hi,
Please help me in this.
1) Create the selection screen with the following fields on it.
S_REQUESTOR for ZSWAPHISTORY- REQUESTOR
S_APPROVER for ZSWAPHISTORY- APPROVER providing range
S_to_customer for ZSWAPHISTORY- to_customer providing range
S_from_customer for ZSWAPHISTORY- from_customer providing range
S_MRPC for MARC-DISPO providing range
S_MATNR for MARA-MATNR providing range
S_APPR_DATE for ZSWAPHISTORY- APPR_DATE Default to yesterdays date
S_QUAN for ZSWAPHISTORY-quan
2) Validate the fields entered in the selection screen.
3) Check the user authorizations for this report.
4) Select the entries from the table ZSWAPHISTORY into an internal table based on the input from the selection screen and the value of the field ZSWAPHISTORY -STATUS is APPROVED.
5) Then select the MRP Controller ID (DISPO) from the Table MARC for all entries in the internal table where MARC-MATNR equals to the internal table -material number.
6) Move the field value of MRP Controller ID (DISPO) into the final internal table for the corresponding entries.
7) Declare the Filed Catalogue with the fields that are to be displayed in the ALV
Please help to create this , iam new to this area.
Thanks
AliHi
See the sample code of ALV and do accordingly
Since you are using a Z table it is not clear to create
report ZRGRIRNA no standard page heading
line-count 65
line-size 255
message-id mm.
GR IR Detail Report *
Description : The output has to be displayed
in the ALV Grid format with the Selection *
screen appearing on the output. In The Output *
Subtotals for Vendor, Plant, Period, Material,*
Valuation Class, Purchase Order,Cost Center, *
Cost Element and Receipt Date are displayed *
after sorting the data by same fields. *
Declaration for Tables
tables: t001, " Company Codes
t001w, " Plants/Branches
lfa1, " Vendor Master
ska1, " GL Account Master
mara, " Material Master
mbew, " Material Valuation
ekko, " PO Header Data
cska, " Cost Elements
csks, " Cost Centers
bsis, " GL Accounts: Open Items Data
bkpf. " Accounting Doc: Header Data
Type-pools
Type pools for ALV display
type-pools : slis.
Global variables
data: g_repid like sy-repid,
g_exit type c,
g_events type slis_t_event,
g_list_top_of_page type slis_t_listheader,
g_exit_caused_by_caller,
g_exit_caused_by_user type slis_exit_by_user,
g_top_of_page type slis_formname value 'TOP_OF_PAGE',
g_variant like disvariant,
g_save.
Declaration for Constants
constants : c_x type c value 'X', " Flag
c_c type c value 'C', " Flag
c_l type c value 'L', " Flag
c_a type c value 'A', " Line Type
c_h type c value 'H', " Dr/Cr
c_s type c value 'S', " Line Type
c_mkpf(4) type c value 'MKPF'. " Table
Declaration of Internal Tables
Internal Table for BSIS Table data
data: begin of i_bsis occurs 0,
bukrs like bsis-bukrs, " Company Code
hkont like bsis-hkont, " GR IR Account
gjahr like bsis-gjahr, " Fiscal Year
belnr like bsis-belnr, " Acc Document
buzei like bsis-buzei, " Item No
budat like bsis-budat, " Receipt Date(Posting)
monat like bsis-monat, " Period
end of i_bsis.
Internal Table for BSEG Table data
data: begin of i_bseg occurs 0,
bukrs like bsis-bukrs, " Company Code
belnr like bsis-belnr, " Acc Document
buzei like bsis-buzei, " Item No
gjahr like bsis-gjahr, " Fiscal Year
shkzg like bseg-shkzg, " Dr/Cr Indicator
lifnr like bseg-lifnr, " Vendor Code
matnr like bseg-matnr, " Material No
ebeln like bseg-ebeln, " Purchase Order
ebelp like bseg-ebelp, " PO Item
werks like bseg-werks, " Plant
menge like bseg-menge, " PO Quantity
meins like bseg-meins, " UOM
dmbtr like bseg-dmbtr, " Amount in Local Currency
wrbtr like bseg-wrbtr, " Amount in Trans.Currency
end of i_bseg.
Internal Table for BKPF Table data
data: begin of i_bkpf occurs 0,
bukrs like bkpf-bukrs, " Company Code
belnr like bkpf-belnr, " Acc Document
gjahr like bkpf-gjahr, " Fiscal Year
waers like bkpf-waers, " Trans. Currency
awkey like bkpf-awkey, " Object Key
awtyp like bkpf-awtyp, " Reference Procedure
end of i_bkpf.
Internal Table for MSEG Table data
data: begin of i_mseg occurs 0,
mblnr like mseg-mblnr, " Material Document
mjahr like mseg-mjahr, " Fiscal Year
bwart like mseg-bwart, " Movement Type
matnr like mseg-matnr, " Material No
menge like mseg-menge, " PO Quantity
meins like mseg-meins, " UOM
end of i_mseg.
Internal Table for MBEW Table data
data: begin of i_mbew occurs 0,
matnr like mbew-matnr, " Material No
werks like mbew-bwkey, " Plant
bklas like mbew-bklas, " Valuation Class
end of i_mbew.
Internal Table for EKPO Table data
data: begin of i_ekpo occurs 0,
ebeln like ekpo-ebeln, " Purchase Order
ebelp like ekpo-ebelp, " PO Item
matnr like ekpo-matnr, " Material No
txz01 like ekpo-txz01, " Material Text
end of i_ekpo.
Internal Table for EKKN Table data
data: begin of i_ekkn occurs 0,
ebeln like ekkn-ebeln, " Purchase Order
ebelp like ekkn-ebelp, " PO Item
kostl like ekkn-kostl, " Cost Center
sakto like ekkn-sakto, " Cost Element
end of i_ekkn.
Internal Table for LFA1 Table data
data: begin of i_lfa1 occurs 0,
lifnr like lfa1-lifnr, " Vendor
name1 like lfa1-name1, " Name
end of i_lfa1.
Declaration of Output Internal Table
data: begin of i_final occurs 0,
lifnr like lfa1-lifnr, " Vendor
werks like bseg-werks, " Plant
monat like bsis-monat, " Period
matnr like mara-matnr, " Material Number
bklas like mbew-bklas, " Val Class
ebeln like bseg-ebeln, " PO
kostl like ekkn-kostl, " Cost Center
sakto like ekkn-sakto, " Cost Element
budat like bsis-budat, " Rec. Date
name1 like lfa1-name1, " Vendor Name
belnr like bsis-belnr, " FI Document
bwart like mseg-bwart, " Movement Type
txz01 like ekpo-txz01, " Material Text
menge like bseg-menge, " Quantity
meins like bseg-meins, " UOM
dmbtr like bseg-dmbtr, " Local Amount
wrbtr like bseg-wrbtr, " Tran.Amount
waers like bkpf-waers, " Tran.Currency
status type c, " Material Status
end of i_final.
Internal table to hold field catgory data
data: i_fldcat type slis_t_fieldcat_alv. " Table - field catgory
Internal table to hold Sort/Subtotals criteria data
data: i_sort type slis_t_sortinfo_alv. " Table - sort/Subtotals
Structure
data: x_layout type slis_layout_alv, " Structure-layout
x_fldcat like line of i_fldcat, " Structure-field catagory
x_sort like line of i_sort. " Structure-Sort/Subtotals
Selection screen
selection-screen : begin of block b1 with frame title text-000.
parameters:
p_bukrs like t001-bukrs obligatory, " Company Code
p_grira like ska1-saknr default '0241101000' obligatory. " Account
select-options:
s_budat for bkpf-budat, " Posting Date
s_werks for t001w-werks, " Plant
s_lifnr for lfa1-lifnr, " Vendor
s_matnr for mara-matnr, " Material Number
s_kostl for csks-kostl, " Cost Center
s_kstar for cska-kstar, " Cost Element
s_ebeln for ekko-ebeln, " Purchase Order
s_monat for bsis-monat. " Period
selection-screen skip.
parameters:
p_incmt as checkbox default 'X',
p_incnm as checkbox default 'X'.
selection-screen end of block b1.
Initialization
initialization.
g_repid = sy-repid.
perform layout_init using x_layout.
perform eventtab_build using g_events[].
g_variant-report = g_repid.
g_save = 'A'.
At selection screen
at selection-screen.
Validation of Selection Screen Fields
perform validate_screen.
Start of selection
start-of-selection.
Read Data from Database Tables
perform read_data.
End of selection
end-of-selection.
Build layout report layout.
perform populate_layout_stucture.
Perform build_field_catalog and Sort Table
perform build_field_catalog.
perform build_sort_totals.
List Header for Top-Of-Page
perform comment_build using g_list_top_of_page[].
Call list viewer function module
perform call_list_viewer .
****************Form - Routines**************************************
Form : layout_init
Description : Form to Build layout for list display
form layout_init using rs_layout type slis_layout_alv.
rs_layout-detail_popup = c_x.
endform.
Form : Eventtab_build
Description : Registration of events to happen during list display
form eventtab_build using rt_events type slis_t_event.
Registration of events to happen during list display
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = rt_events.
read table rt_events with key name = slis_ev_top_of_page
into ls_event.
if sy-subrc = 0.
move g_top_of_page to ls_event-form.
append ls_event to rt_events.
endif.
endform. "eventtab_build
Form : top_of_page
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
I_LOGO = 'ENJOYSAP_LOGO'
it_list_commentary = g_list_top_of_page.
endform.
Form validate_screen
Validation of Selection Screen fields
form validate_screen.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select single bukrs
into t001-bukrs
from t001
where bukrs eq p_bukrs.
if sy-subrc <> 0.
message e899 with 'Enter Valid Company Code'(012).
endif.
endif.
Validation of GL Account (GR/IR)
clear ska1.
if not p_grira is initial.
select saknr
into ska1-saknr
from ska1
up to 1 rows
where saknr eq p_grira.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid GR/IR Account'(013).
endif.
endif.
Validation of Vendor Code
clear lfa1.
if not s_lifnr[] is initial.
select single lifnr
into lfa1-lifnr
from lfa1
where lifnr in s_lifnr.
if sy-subrc <> 0.
message e899 with 'Enter Valid Vendor'(001).
endif.
endif.
Validation of Plant Code
clear t001w.
if not s_werks[] is initial.
select single werks
into t001w-werks
from t001w
where werks in s_werks.
if sy-subrc <> 0.
message e899 with 'Enter Valid Plant'(014).
endif.
endif.
Validation of Material Code
clear mara.
if not s_matnr[] is initial.
select single matnr
into mara-matnr
from mara
where matnr in s_matnr.
if sy-subrc <> 0.
message e899 with 'Enter Valid Material'(015).
endif.
endif.
Validation of Purchase Order
clear ekko.
if not s_ebeln[] is initial.
select single ebeln
into ekko-ebeln
from ekko
where ebeln in s_ebeln.
if sy-subrc <> 0.
message e899 with 'Enter Valid Purchase Order'(016).
endif.
endif.
Validation of Cost Center
clear csks.
if not s_kostl[] is initial.
select kostl
into csks-kostl
from csks
up to 1 rows
where kostl in s_kostl.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Cost Center'(017).
endif.
endif.
Validation of Cost Element
clear cska.
if not s_kstar[] is initial.
select kstar
into cska-kstar
from cska
up to 1 rows
where kstar in s_kstar.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Cost Element'(018).
endif.
endif.
endform. "validate_screen
*& Form read_data
Read the Data from the database Tables
form read_data.
Get the Accounting Documents for the GR/IR Account Entered on
Selection Screen
clear i_bsis.
refresh i_bsis.
select bukrs " Company Code
hkont " GR IR Account
gjahr " Fiscal Year
belnr " Acc Document
buzei " Item No
budat " Receipt Date(Posting)
monat " Period
into table i_bsis
from bsis
where bukrs = p_bukrs
and hkont = p_grira
and budat in s_budat
and monat in s_monat .
if sy-subrc <> 0.
message i899 with 'No data found'(043).
g_exit = c_x.
stop.
endif.
sort i_bsis by bukrs hkont gjahr belnr buzei.
Get the Vendor,PO,Material,Qty details from BSEG Table
if not i_bsis[] is initial.
clear i_bseg.
refresh i_bseg.
select bukrs " Company Code
belnr " Acc Document
buzei " Item No
gjahr " Fiscal Year
shkzg " Dr/Cr Indicator
lifnr " Vendor Code
matnr " Material No
ebeln " Purchase Order
ebelp " PO Item
werks " Plant
menge " PO Quantity
meins " UOM
dmbtr " Amount in Local Currency
wrbtr " Amount in Trans.Currency
into table i_bseg
from bseg
for all entries in i_bsis
where bukrs = p_bukrs
and belnr = i_bsis-belnr
and gjahr = i_bsis-gjahr
and buzei = i_bsis-buzei
and lifnr in s_lifnr
and werks in s_werks
and matnr in s_matnr
and ebeln in s_ebeln.
sort i_bseg by bukrs belnr buzei gjahr.
Select the Trans.Currency from BKPF Table
clear i_bkpf.
refresh i_bkpf.
select bukrs " Company Code
belnr " Acc Document
gjahr " Fiscal Year
waers " Trans. Currency
awkey " Object Key
awtyp " Reference Procedure
into table i_bkpf
from bkpf
for all entries in i_bsis
where bukrs = p_bukrs
and belnr = i_bsis-belnr
and gjahr = i_bsis-gjahr.
endif.
sort i_bkpf by bukrs belnr gjahr.
Get the Quantity and UOM of Material from MSEG Table
if not i_bkpf[] is initial.
clear i_mseg.
refresh i_mseg.
select mblnr " Material Document
mjahr " Fiscal Year
bwart " Movement Type
matnr " Material No
menge " PO Quantity
meins " UOM
into table i_mseg
from mseg
for all entries in i_bkpf
where mblnr = i_bkpf-awkey(10).
endif.
sort i_mseg by mblnr mjahr.
Get the Material And Description from EKPO Table
if not i_bseg[] is initial.
clear i_ekpo.
refresh i_ekpo.
select ebeln " Purchase Order
ebelp " PO Item
matnr " Material No
txz01 " Material Text
into table i_ekpo
from ekpo
for all entries in i_bseg
where ebeln = i_bseg-ebeln
and ebelp = i_bseg-ebelp.
sort i_ekpo by ebeln ebelp.
Get the Valuation Class from MBEW Table
clear i_mbew.
refresh i_mbew.
select matnr " Material No
bwkey " Plant
bklas " Valuation Class
into table i_mbew
from mbew
for all entries in i_bseg
where matnr = i_bseg-matnr
and bwkey = i_bseg-werks.
sort i_mbew by matnr werks.
Get the Cost Center and Cost Element of the PO from EKKN Table
clear i_ekkn.
refresh i_ekkn.
select ebeln " Purchase Order
ebelp " PO Item
kostl " Cost Center
sakto " Cost Element
into table i_ekkn
from ekkn
for all entries in i_bseg
where ebeln = i_bseg-ebeln
and ebelp = i_bseg-ebelp
and kostl in s_kostl
and sakto in s_kstar.
sort i_ekkn by ebeln ebelp.
Get the Vendor Name
clear i_lfa1.
refresh i_lfa1.
select lifnr " Vendor
name1 " Name
into table i_lfa1
from lfa1
for all entries in i_bseg
where lifnr = i_bseg-lifnr.
endif.
sort i_lfa1 by lifnr.
Move the data to Final Output Internal Table
loop at i_bsis.
i_final-belnr = i_bsis-belnr. " FI Document
i_final-monat = i_bsis-monat. " Period
i_final-budat = i_bsis-budat. " Rec. Date
Read the Transaction Currency from BKPF Internal Table
read table i_bkpf with key bukrs = i_bsis-bukrs
belnr = i_bsis-belnr
gjahr = i_bsis-gjahr
binary search.
if sy-subrc = 0.
i_final-waers = i_bkpf-waers. " Tran.Currency
Read the Movement Type for all Material Related
Documents from MSEG Internal Table
if i_bkpf-awtyp = c_mkpf.
read table i_mseg with key mblnr = i_bkpf-awkey(10)
mjahr = i_bkpf-awkey+10(4).
if sy-subrc = 0.
i_final-bwart = i_mseg-bwart. " Movement Type
endif.
endif.
endif.
Read Vendor, Plant, PO Document, Local And Trans.Amounts
from BSEG Internal Table
read table i_bseg with key bukrs = i_bsis-bukrs
belnr = i_bsis-belnr
gjahr = i_bsis-gjahr
buzei = i_bsis-buzei
binary search.
if sy-subrc = 0.
i_final-lifnr = i_bseg-lifnr. " Vendor
i_final-werks = i_bseg-werks. " Plant
i_final-ebeln = i_bseg-ebeln. " PO
i_final-dmbtr = i_bseg-dmbtr. " Local Amount
i_final-wrbtr = i_bseg-wrbtr. " Tran.Amount
i_final-menge = i_bseg-menge. " Quantity
i_final-meins = i_bseg-meins. " UOM
For Credit Indicator(SHKZG = H) amounts should be (-)ve
if i_bseg-shkzg = c_h.
i_final-dmbtr = i_final-dmbtr * -1.
i_final-wrbtr = i_final-wrbtr * -1.
i_final-menge = i_final-menge * -1.
endif.
Read the Material and its Description from EKPO Internal Table
read table i_ekpo with key ebeln = i_bseg-ebeln
ebelp = i_bseg-ebelp
matnr = i_bseg-matnr
binary search.
if sy-subrc = 0.
i_final-matnr = i_ekpo-matnr. " Material Number
i_final-txz01 = i_ekpo-txz01. " Material Text
Populate the Material Status depending on the Input Checkbox
On Selection Screen
if not i_ekpo-matnr is initial.
i_final-status = c_x.
endif.
endif.
Read the PO related Cost Element and Cost Centers
from EKKN Internal Table
read table i_ekkn with key ebeln = i_bseg-ebeln
ebelp = i_bseg-ebelp
binary search.
if sy-subrc = 0.
i_final-kostl = i_ekkn-kostl. " Cost Center
i_final-sakto = i_ekkn-sakto. " Cost Element
endif.
Read the Valuation Class from MBEW Internal Table
read table i_mbew with key matnr = i_bseg-matnr
werks = i_bseg-werks
binary search.
if sy-subrc = 0.
i_final-bklas = i_mbew-bklas. " Val Class
endif.
Read the Vendor Name from LFA1 Internal Table
read table i_lfa1 with key lifnr = i_bseg-lifnr
binary search.
if sy-subrc = 0.
i_final-name1 = i_lfa1-name1. " Vendor Name
endif.
endif.
append i_final.
clear i_final.
endloop.
sort i_final by lifnr werks monat matnr.
Depending on the check Box Selected display the data
if p_incmt = c_x and p_incnm ne c_x.
delete i_final where matnr eq space.
elseif p_incnm = c_x and p_incmt ne c_x.
delete i_final where matnr ne space.
endif.
endform. "Read Data
Form : populate_layout_stucture
Description : Populating the layout structure
form populate_layout_stucture.
clear x_layout .
Layout properties
x_layout-zebra = c_x.
x_layout-detail_popup = c_x.
x_layout-detail_initial_lines = c_x.
x_layout-colwidth_optimize = c_x.
endform. " populate_layout_stucture
Form : build_field_catalog
Description : Building the field catalog data
form build_field_catalog.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = g_repid
i_internal_tabname = 'I_FINAL'
i_inclname = g_repid
changing
ct_fieldcat = i_fldcat
exceptions
inconsistent_interface = 1
program_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.
Getting the Header text for the coloums
loop at i_fldcat into x_fldcat where fieldname = 'LIFNR' or
fieldname = 'NAME1' or
fieldname = 'WERKS' or
fieldname = 'MONAT' or
fieldname = 'MATNR' or
fieldname = 'BKLAS' or
fieldname = 'EBELN' or
fieldname = 'KOSTL' or
fieldname = 'SAKTO' or
fieldname = 'BUDAT' or
fieldname = 'BELNR' or
fieldname = 'BWART' or
fieldname = 'TXZ01' or
fieldname = 'MENGE' or
fieldname = 'MEINS' or
fieldname = 'DMBTR' or
fieldname = 'WRBTR' or
fieldname = 'WAERS' or
fieldname = 'STATUS'.
if x_fldcat-fieldname = 'LIFNR'.
x_fldcat-seltext_l = 'Vendor'(003).
x_fldcat-seltext_m = 'Vendor'(003).
x_fldcat-seltext_s = 'Vendor'(003).
x_fldcat-reptext_ddic = 'Vendor'(003).
x_fldcat-inttype = c_c.
endif.
if x_fldcat-fieldname = 'NAME1'.
x_fldcat-seltext_l = 'Vendor Name'(002).
x_fldcat-seltext_m = 'Vendor Name'(002).
x_fldcat-seltext_s = 'Vendor Name'(002).
x_fldcat-reptext_ddic = 'Vendor Name'(002).
x_fldcat-inttype = c_c.
endif.
if x_fldcat-fieldname = 'WERKS'.
x_fldcat-seltext_l = 'Plant'(010).
x_fldcat-seltext_m = 'Plant'(010).
x_fldcat-seltext_s = 'Plant'(010).
x_fldcat-reptext_ddic = 'Plant'(010).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'MONAT'.
x_fldcat-seltext_l = 'Period'(011).
x_fldcat-seltext_m = 'Period'(011).
x_fldcat-seltext_s = 'Period'(011).
x_fldcat-reptext_ddic = 'Period'(011).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'MATNR'.
x_fldcat-seltext_l = 'Material'(004).
x_fldcat-seltext_m = 'Material'(004).
x_fldcat-seltext_s = 'Material'(004).
x_fldcat-reptext_ddic = 'Material'(004).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'BKLAS'.
x_fldcat-seltext_l = 'Valuation Class'(009).
x_fldcat-seltext_m = 'Valuation Class'(009).
x_fldcat-seltext_s = 'Valuation Class'(009).
x_fldcat-reptext_ddic = 'Valuation Class'(009).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'EBELN'.
x_fldcat-seltext_l = 'Purchase Order'(005).
x_fldcat-seltext_m = 'Purchase Order'(005).
x_fldcat-seltext_s = 'Purchase Order'(005).
x_fldcat-reptext_ddic = 'Purchase Order'(005).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'KOSTL'.
x_fldcat-seltext_l = 'Cost Center'(006).
x_fldcat-seltext_m = 'Cost Center'(006).
x_fldcat-seltext_s = 'Cost Center'(006).
x_fldcat-reptext_ddic = 'Cost Center'(006).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'SAKTO'.
x_fldcat-seltext_l = 'Cost Element'(007).
x_fldcat-seltext_m = 'Cost Element'(007).
x_fldcat-seltext_s = 'Cost Element'(007).
x_fldcat-reptext_ddic = 'Cost Element'(007).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'BUDAT'.
x_fldcat-seltext_l = 'Receipt Date'(008).
x_fldcat-seltext_m = 'Receipt Date'(008).
x_fldcat-seltext_s = 'Receipt Date'(008).
x_fldcat-reptext_ddic = 'Receipt Date'(008).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'BELNR'.
x_fldcat-seltext_l = 'Acc.Document'(100).
x_fldcat-seltext_m = 'Acc.Document'(100).
x_fldcat-seltext_s = 'Acc.Document'(100).
x_fldcat-reptext_ddic = 'Acc.Document'(100).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'BWART'.
x_fldcat-seltext_l = 'Movement Type'(101).
x_fldcat-seltext_m = 'Movement Type'(101).
x_fldcat-seltext_s = 'Movement Type'(101).
x_fldcat-reptext_ddic = 'Movement Type'(101).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'TXZ01'.
x_fldcat-seltext_l = 'Material Text'(102).
x_fldcat-seltext_m = 'Material Text'(102).
x_fldcat-seltext_s = 'Material Text'(102).
x_fldcat-reptext_ddic = 'Material Text'(102).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'MENGE'.
x_fldcat-seltext_l = 'Quantity'(103).
x_fldcat-seltext_m = 'Quantity'(103).
x_fldcat-seltext_s = 'Quantity'(103).
x_fldcat-reptext_ddic = 'Quantity'(103).
x_fldcat-ddictxt = c_l.
x_fldcat-do_sum = c_x.
endif.
if x_fldcat-fieldname = 'MEINS'.
x_fldcat-seltext_l = 'UOM'(104).
x_fldcat-seltext_m = 'UOM'(104).
x_fldcat-seltext_s = 'UOM'(104).
x_fldcat-reptext_ddic = 'UOM'(104).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'DMBTR'.
x_fldcat-seltext_l = 'Amount in Local Curr'(105).
x_fldcat-seltext_m = 'Amount in Local Curr'(105).
x_fldcat-seltext_s = 'Amount in Local Curr'(105).
x_fldcat-reptext_ddic = 'Amount in Local Curr'(105).
x_fldcat-ddictxt = c_l.
x_fldcat-do_sum = c_x.
endif.
if x_fldcat-fieldname = 'WRBTR'.
x_fldcat-seltext_l = 'Amount in Trans.Curr'(106).
x_fldcat-seltext_m = 'Amount in Trans.Curr'(106).
x_fldcat-seltext_s = 'Amount in Trans.Curr'(106).
x_fldcat-reptext_ddic = 'Amount in Trans.Curr'(106).
x_fldcat-ddictxt = c_l.
x_fldcat-do_sum = c_x.
endif.
if x_fldcat-fieldname = 'WAERS'.
x_fldcat-seltext_l = 'Trans.Currency'(107).
x_fldcat-seltext_m = 'Trans.Currency'(107).
x_fldcat-seltext_s = 'Trans.Currency'(107).
x_fldcat-reptext_ddic = 'Trans.Currency'(107).
x_fldcat-ddictxt = c_l.
endif.
if x_fldcat-fieldname = 'STATUS'.
x_fldcat-seltext_l = 'Material Status'(019).
x_fldcat-seltext_m = 'Material Status'(019).
x_fldcat-seltext_s = 'Material Status'(019).
x_fldcat-reptext_ddic = 'Material Status'(019).
x_fldcat-ddictxt = c_l.
endif.
modify i_fldcat from x_fldcat index sy-tabix.
endloop.
endform. " build_field_catalog
Form : build_sort_totals
Description : Building the Criteria for Sort/Subtotals
form build_sort_totals.
x_sort-fieldname = 'LIFNR'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 1.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'WERKS'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 2.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'MONAT'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 3.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'MATNR'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 4.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'BKLAS'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 5.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'EBELN'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 6.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'KOSTL'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 7.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'SAKTO'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 8.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
x_sort-fieldname = 'BUDAT'.
x_sort-tabname = 'I_FINAL'.
x_sort-spos = 9.
x_sort-up = c_x.
x_sort-subtot = c_x.
append x_sort to i_sort.
clear x_sort.
endform. " build_sort_totals
Form : comment_build
Description : This form is used to display the Report Header(ALV)
form comment_build using lt_top_of_page type
slis_t_listheader.
data: l_line type slis_listheader,
l_heading1 like rs38m-repti,
l_date(10), l_time(8).
clear l_line.
l_heading1 = 'GR/IR DETAIL REPORT'(021).
g_repid = sy-repid.
write sy-uzeit to l_time.
write sy-datum to l_date.
l_line-typ = c_h.
move l_heading1 to l_line-info.
append l_line to lt_top_of_page.
clear l_line.
l_line-typ = c_s.
concatenate 'System:'(023) sy-sysid
'Date:'(024) l_date
' Time:'(025)
l_time into l_line-info.
append l_line to lt_top_of_page.
concatenate 'Report:'(026) g_repid
' User:'(027) sy-uname into
l_line-info.
append l_line to lt_top_of_page.
l_line-typ = c_a.
move 'SELECTION CRITERIA:'(028) to l_line-info.
append l_line to lt_top_of_page.
concatenate ' Company Code : '(029)
p_bukrs into l_line-info.
append l_line to lt_top_of_page.
concatenate ' GR/IR Account: '(030)
p_grira into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Posting Date : '(032) s_budat-low
' To: '(031) s_budat-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Plant : '(033) s_werks-low
' To: '(031) s_werks-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Vendor: '(034) s_lifnr-low
' To: '(031) s_lifnr-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Material: '(035) s_matnr-low
' To: '(031) s_matnr-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Cost Center : '(036) s_kostl-low
' To: '(031) s_kostl-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Cost Element: '(037) s_kstar-low
' To: '(031) s_kstar-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Purchase Order: '(038) s_ebeln-low
' To: '(031) s_ebeln-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Period : '(039) s_monat-low
' To: '(031) s_monat-high into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Include Material Items: '(040)
p_incmt into l_line-info.
append l_line to lt_top_of_page.
concatenate ' Include Non-Material Items: '(041)
p_incnm into l_line-info.
append l_line to lt_top_of_page.
endform.
Form : call_list_viewer
Description : This form is used to display the grid through ALV
form call_list_viewer.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = g_repid
is_layout = x_layout
it_fieldcat = i_fldcat[]
i_default = c_x
it_sort = i_sort[]
i_save = g_save
is_variant = g_variant
it_events = g_events[]
importing
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = g_exit_caused_by_user
tables
t_outtab = i_final
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
write: / 'Problem in calling the ALV report'(042).
endif.
endform. " call_list_viewer
Regards
Anji -
To develope an alv report or module pool and field link.. and effor require
HI,
I want to display the fields with sort functionality with fields
kunnr kna1 table
name1 kna1
and email id from table ADR6 field SMTP_ADDR
my question ison mapping
from kna1 we can get field kunnr and name1
and adrnr
to put in adr6 to fetch email id
can anyoe suggest on select statements link as table kna1 has one unique kunnr
but it can have multiple name1 and adrnr
so how to pick the kunnr ,name 1 and adrnr from table kna1 and map to
adr6 table
as witinn the table kna1 there can be multiple name1 related to one single kunnr
so wil it be like
select kunnr from kna1..into it_kunnr
then select nam1 from table kna2 for all entrirs in It_kunnr
or firse selet kunnr name1 from kna1 into table it_kunnr
pls suggest an appropiat select statament
and i suppose this can be achevied by alv report no need for moudle pool
regards
Aroraopened a new thread with changes subject
-
Hi experts
plz help
i have createed an alv using slis method
in the output there must come a header
in this header i ill have to show som details
like on the left side of the header i want to show the details of the user and on the right side i want to show he data of vendor .
i am able to get the data in the left side but i am not able to show the data of vendor on the right side
the data of vendor is by default coming on left side only just below the details of user but i want to show those details on the right side of the header .
plz tell me how to do it .
thanx in advance.Hi Anit,
I am attaching here the whole Code. It is somewhat big code so go through it thoroughly.If you still face problem reply this thread otherwise <b>REWARD POINT</b>.
REPORT test
MESSAGE-ID zzrefn01
NO STANDARD PAGE HEADING
*** Portrait: 93x80
LINE-SIZE 150
LINE-COUNT 80.
*** Landscape: 132x65
LINE-SIZE 132
LINE-COUNT 65.
INCLUDES **
INCLUDE zbc_i00. "Customer Standard Include
INCLUDE <icon>. "For Button on the ALV Tool Bar
INCLUDE yyef_check_isp_top.
INCLUDE yyef_check_isp_f01.
INCLUDE yyef_check_isp_o01.
INCLUDE yyef_check_isp_i01.
CLASS zcl_event_handler IMPLEMENTATION
CLASS zcl_event_handler IMPLEMENTATION.
Top-of-page event
METHOD top_of_page.
PERFORM event_top_of_page
USING z_dyndoc_id.
ENDMETHOD. "METHOD top_of_page
Change Status Button
METHOD handle_toolbar.
IF NOT pa_prodr IS INITIAL.
DATA: lz_toolbar TYPE stb_button.
CLEAR lz_toolbar.
MOVE 'CHANGE_STATUS' TO lz_toolbar-function.
MOVE text-001 TO lz_toolbar-text.
APPEND lz_toolbar TO e_object->mt_toolbar.
ENDIF. "IF NOT pa_prodr IS INITIAL
ENDMETHOD. "METHOD handle_toolbar
Handle User Command
METHOD handle_user_command.
CASE e_ucomm.
WHEN 'CHANGE_STATUS'.
LOOP AT it_output
INTO wa_output.
IF wa_output-chk_box EQ kc_x.
z_flag = 1.
EXIT.
ENDIF. "IF wa_output-chk_box EQ kc_x
ENDLOOP. "LOOP AT it_output INTO wa_output
IF z_flag EQ 1.
PERFORM display_selected_data.
ELSE.
MESSAGE i001(zzrefn01)
WITH text-023.
ENDIF. "IF z_flag EQ 1
ENDCASE. "CASE e_ucomm
ENDMETHOD. "METHOD handle_user_command
ENDCLASS. "zcl_event_handler IMPLEMENTATION
Processing of selection screen **
First time initialization *
Get Default variant *
INITIALIZATION.
z_repid = sy-repid.
PERFORM variant_init.
zx_variant = z_variant.
CALL FUNCTION 'LVC_VARIANT_DEFAULT_GET'
EXPORTING
i_save = kc_u
CHANGING
cs_variant = zx_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 0.
pa_vari = zx_variant-variant.
ELSE.
MESSAGE i001(zzrefn01)
WITH text-021.
ENDIF. "IF sy-subrc EQ 0
*** First time initialization in online mode except calls with variant
*** (is not processed on return from prog to selection screen)
pa_xyz = ....
so_xyz.....
SET PF-STATUS 'STAT1000'.
*** An example for select options restrictions is available
*** in TT1/YYKA_EXPORT_START_HOST (remove comment)
Selection screen PBO *
Comment........ *
AT SELECTION-SCREEN OUTPUT.
*** Init selection screen, also on variants
*** (only for online reports)
IF NOT zn_init_seldynp IS INITIAL
AND sy-batch IS INITIAL "Not on batch calls (e.g. AutoSys)
AND sy-slset IS INITIAL. "Not on calls with variant
IF NOT pa_prodr IS INITIAL.
CLEAR: pa_prodr.
MESSAGE w999(zbcc). "Flag prod.run reseted
ENDIF.
CLEAR: pa_start.
ENDIF.
CLEAR: zn_init_seldynp.
*** Process dynpro fields
LOOP AT SCREEN.
*** --> Read-Only fields
IF screen-group1 EQ 'RDO'
AND screen-input NE '0'
AND screen-group3 NE 'VPU'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Selection screen PAI *
Comment........ *
*AT SELECTION-SCREEN ON so_xyz.
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
PERFORM f4_for_variant.
PERFORM btci_at_sel_screen. "Call BTCI checks (optional)
Program **
Main routine *
START-OF-SELECTION.
PERFORM fetch_data.
PERFORM build_data.
PERFORM prepare_field_catalog
CHANGING it_fieldcat.
CALL SCREEN 100.
End routine *
END-OF-SELECTION.
Interactive Reporting **
Comment........ *
AT LINE-SELECTION.
*** Good example in TT1/YIIHART (remove comment)
Comment........ *
AT USER-COMMAND.
PERFORM handle_user_command.
Comment........ *
AT PFN.
iNCLUDE YYEF_CHECK_ISP_F01
*& Include YYEF_CHECK_ISP_F01 *
*& Form pai_of_selection_screen
Check Variant Exist or not
FORM pai_of_selection_screen .
IF NOT pa_vari IS INITIAL.
MOVE z_variant TO zx_variant.
MOVE pa_vari TO zx_variant-variant.
CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK'
EXPORTING
i_save = kc_u
CHANGING
cs_variant = zx_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 2.
MESSAGE i001(zzrefn01)
WITH text-024.
ENDIF. "IF sy-subrc EQ 2
z_variant = zx_variant.
ELSE.
PERFORM variant_init.
ENDIF. "IF NOT pa_vari IS INITIAL
ENDFORM. "pai_of_selection_screen
*& Form variant_init
Initialization of Variant
FORM variant_init .
CLEAR z_variant.
z_variant-report = z_repid.
ENDFORM. " variant_init
*& Form f4_for_variant
F4 Help for Layout
FORM f4_for_variant .
CALL FUNCTION 'LVC_VARIANT_F4'
EXPORTING
is_variant = z_variant
i_save = kc_u
IMPORTING
e_exit = z_exit
es_variant = zx_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc EQ 1.
MESSAGE i001(zzrefn01)
WITH text-022.
ELSE.
IF z_exit = space.
pa_vari = zx_variant-variant.
ENDIF. "IF z_exit = space
ENDIF. "IF sy-subrc EQ 1
ENDFORM. "f4_for_variant
*& Form fetch_data
Fetch data from DB tables.
FORM fetch_data .
SELECT *
FROM yyeft1200
INTO TABLE it_yyeft1200
WHERE id_rech IN so_idrec
AND fnumkred IN so_fnumk
AND status IN so_stat
AND erdat IN so_erdat
ORDER BY PRIMARY KEY.
IF sy-subrc EQ 0.
SELECT *
FROM yyeft1201
INTO TABLE it_yyeft1201
FOR ALL ENTRIES IN it_yyeft1200
WHERE id_rech EQ it_yyeft1200-id_rech
AND artnr_bp IN so_artnr
ORDER BY PRIMARY KEY.
IF sy-subrc EQ 0.
SELECT *
FROM yyeft1008
INTO TABLE it_yyeft1008
FOR ALL ENTRIES IN it_yyeft1201
WHERE bp_refnr EQ it_yyeft1201-bprefnr.
IF sy-subrc EQ 0.
SORT it_yyeft1008[] BY bp_refnr.
ENDIF. "IF sy-subrc EQ 0.
ENDIF. "IF sy-subrc EQ 0.
ELSE.
zn_cancel = kc_x.
ENDIF. "IF sy-subrc EQ 0.
ENDFORM. " fetch_data
*& Form build_data
Gather the data from all the internal tables into one.
FORM build_data .
LOOP AT it_yyeft1200
INTO wa_yyeft1200.
CLEAR wa_output.
wa_output-id_rech = wa_yyeft1200-id_rech.
wa_output-fnumkred = wa_yyeft1200-fnumkred.
wa_output-status = wa_yyeft1200-status.
wa_output-erdat = wa_yyeft1200-erdat.
wa_output-bukrs = wa_yyeft1200-bukrs.
wa_output-belnr = wa_yyeft1200-belnr.
wa_output-gjahr = wa_yyeft1200-gjahr.
IF wa_yyeft1200-status GE kc_status10
AND wa_yyeft1200-belnr IS INITIAL.
wa_output-com_delfnd = 'FI Doc NOT found'(t03).
ENDIF.
IF wa_yyeft1200-status LT kc_status10
AND NOT wa_yyeft1200-belnr IS INITIAL
AND wa_output-com_delfnd IS INITIAL
AND NOT pa_det IS INITIAL.
wa_output-com_delfnd = 'FI Doc should be empty'(t01).
ENDIF.
LOOP AT it_yyeft1201
INTO wa_yyeft1201
WHERE id_rech EQ wa_yyeft1200-id_rech.
wa_output-bprefnr = wa_yyeft1201-bprefnr.
wa_output-lfdat = wa_yyeft1201-lfdat.
wa_output-artnr_bp = wa_yyeft1201-artnr_bp.
READ TABLE it_yyeft1008
WITH KEY bp_refnr = wa_yyeft1201-bprefnr
BINARY SEARCH
TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
LOOP AT it_yyeft1008
INTO wa_yyeft1008
FROM sy-tabix.
IF wa_yyeft1008-bp_refnr NE wa_yyeft1201-bprefnr.
EXIT.
ENDIF.
wa_output-id_anlief = wa_yyeft1008-id_anlief.
IF NOT pa_det IS INITIAL
OR NOT wa_output-com_delfnd IS INITIAL.
APPEND wa_output TO it_output.
ENDIF.
ENDLOOP. "LOOP AT it_yyeft1008
ELSE.
CLEAR wa_output-id_anlief.
wa_output-com_delfnd = 'Deliv. NOT found'(t06).
APPEND wa_output TO it_output.
ENDIF.
ENDLOOP. "LOOP AT it_yyeft1201
IF sy-subrc NE 0.
wa_output-com_delfnd = 'No Detail records in YYEFT1201'(e01).
APPEND wa_output TO it_output.
ENDIF. "IF sy-subrc NE 0.
ENDLOOP. "LOOP AT it_yyeft1200
Checkbox Editable for Production Run
IF pa_prodr IS INITIAL.
LOOP AT it_output
INTO wa_output.
zs_style-fieldname = 'CHK_BOX'.
zs_style-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT zs_style INTO TABLE wa_output-celltab.
MODIFY it_output FROM wa_output
TRANSPORTING celltab.
ENDLOOP. "LOOP AT it_output INTO wa_output.
ENDIF. "IF pa_prodr IS INITIAL
LOOP AT it_output
INTO wa_output.
IF wa_output-status GE kc_status10
AND wa_output-belnr IS INITIAL
AND NOT pa_prodr IS INITIAL.
zs_style-fieldname = 'CHK_BOX'.
zs_style-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT zs_style INTO TABLE wa_output-celltab.
MODIFY it_output FROM wa_output
TRANSPORTING celltab.
ENDIF. "IF wa_output-status GE kc_status10
ENDLOOP. "LOOP AT it_output INTO wa_output
ENDFORM. "build_data
*& Form prepare_field_catalog
Field Catalog Preparation
<--PIT_FIELDCAT Field catalog
FORM prepare_field_catalog
CHANGING pit_fieldcat TYPE lvc_t_fcat.
DATA: ls_fcat TYPE lvc_s_fcat.
IF it_output1 IS INITIAL.
Check Box
CLEAR ls_fcat.
ls_fcat-fieldname = 'CHK_BOX'.
ls_fcat-datatype = 'CHAR'.
ls_fcat-intlen = '1'.
ls_fcat-edit = kc_x.
ls_fcat-coltext = text-014.
ls_fcat-checkbox = kc_x.
ls_fcat-outputlen = '5'.
APPEND ls_fcat TO pit_fieldcat.
ENDIF. "IF it_output1 IS INITIAL
ID RECH
CLEAR ls_fcat.
ls_fcat-fieldname = 'ID_RECH'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-002.
APPEND ls_fcat TO pit_fieldcat.
BP Reference
CLEAR ls_fcat.
ls_fcat-fieldname = 'BPREFNR'.
ls_fcat-outputlen = '15'.
ls_fcat-coltext = text-003.
APPEND ls_fcat TO pit_fieldcat.
Delivery date
CLEAR ls_fcat.
ls_fcat-fieldname = 'LFDAT'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-004.
APPEND ls_fcat TO pit_fieldcat.
Article
CLEAR ls_fcat.
ls_fcat-fieldname = 'ARTNR_BP'.
ls_fcat-outputlen = '18'.
ls_fcat-coltext = text-005.
APPEND ls_fcat TO pit_fieldcat.
Account Payable invoice
CLEAR ls_fcat.
ls_fcat-fieldname = 'FNUMKRED'.
ls_fcat-outputlen = '16'.
ls_fcat-coltext = text-006.
APPEND ls_fcat TO pit_fieldcat.
Status
CLEAR ls_fcat.
ls_fcat-fieldname = 'STATUS'.
ls_fcat-outputlen = '2'.
ls_fcat-coltext = text-007.
APPEND ls_fcat TO pit_fieldcat.
Create date
CLEAR ls_fcat.
ls_fcat-fieldname = 'ERDAT'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-008.
APPEND ls_fcat TO pit_fieldcat.
Comment
CLEAR ls_fcat.
ls_fcat-fieldname = 'COM_DELFND'.
ls_fcat-outputlen = '25'.
ls_fcat-coltext = text-009.
APPEND ls_fcat TO pit_fieldcat.
Delivery ID
CLEAR ls_fcat.
ls_fcat-fieldname = 'ID_ANLIEF'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-010.
APPEND ls_fcat TO pit_fieldcat.
Company Code
CLEAR ls_fcat.
ls_fcat-fieldname = 'BUKRS'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = text-011.
APPEND ls_fcat TO pit_fieldcat.
Accounting Document Number
CLEAR ls_fcat.
ls_fcat-fieldname = 'BELNR'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-012.
APPEND ls_fcat TO pit_fieldcat.
Financial Year
CLEAR ls_fcat.
ls_fcat-fieldname = 'GJAHR'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = text-013.
APPEND ls_fcat TO pit_fieldcat.
ENDFORM. " prepare_field_catalog
*& Form EVENT_TOP_OF_PAGE
TOP-OF-PAGE Preparation
-->z_dyndoc_id Text of TOP-OF-PAGE
FORM event_top_of_page
USING z_dyndoc_id TYPE REF TO cl_dd_document.
DATA : lz_text(255) TYPE c.
System ID
CLEAR : lz_text.
CONCATENATE text-015
sy-sysid
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Title
CLEAR : lz_text.
CONCATENATE text-016
sy-title
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Date
CLEAR : lz_text.
WRITE sy-datum TO lz_text.
CONCATENATE text-017
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
User ID
CLEAR : lz_text.
CONCATENATE text-018
sy-uname
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Time
CLEAR : lz_text.
WRITE sy-uzeit TO lz_text.
CONCATENATE text-019
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Program Name
CLEAR : lz_text.
WRITE sy-repid TO lz_text.
CONCATENATE text-020
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Populating data to TOP-OF-PAGE
PERFORM top-of-page.
ENDFORM. " EVENT_TOP_OF_PAGE
*& Form ADD_TEXT
Add Text To TOP-OF-PAGE
FORM add_text
USING p_text TYPE sdydo_text_element.
CALL METHOD z_dyndoc_id->add_text
EXPORTING
text = p_text.
ENDFORM. " ADD_TEXT
*& Form TOP-OF-PAGE
TOP-OF-PAGE
FORM top-of-page.
CALL METHOD z_dyndoc_id->display_document
EXPORTING
reuse_control = kc_x
parent = z_parent_top
EXCEPTIONS
html_display_error = 1.
IF sy-subrc NE 0.
MESSAGE i001(zzrefn01)
WITH text-036 ' '.
ENDIF. "IF sy-subrc NE 0
ENDFORM. "TOP-OF-PAGE
*& Form handle_user_command
Handle the user command
FORM handle_user_command .
DATA lzi_lin TYPE i.
REFRESH ra_id_rech[].
CLEAR ra_id_rech.
ra_id_rech-sign = kc_include.
ra_id_rech-option = kc_equal.
CASE sy-ucomm.
WHEN kc_ucomm-upd.
DESCRIBE LIST NUMBER OF LINES lzi_lin.
DO lzi_lin TIMES.
CLEAR wa_output.
READ LINE sy-index
FIELD VALUE wa_output-chk_box
wa_output-id_rech.
IF sy-subrc NE 0.
EXIT.
ELSE.
IF wa_output-chk_box EQ kc_x.
ra_id_rech-low = wa_output-id_rech.
APPEND ra_id_rech.
ENDIF.
ENDIF.
ENDDO.
IF NOT ra_id_rech IS INITIAL.
SORT ra_id_rech BY low.
DELETE ADJACENT DUPLICATES FROM ra_id_rech
COMPARING low.
IF NOT pa_prodr IS INITIAL.
UPDATE yyeft1200
SET status = kc_status00
WHERE id_rech IN ra_id_rech.
IF sy-subrc EQ 0.
MESSAGE s900(zbcc)
WITH 'Status change successful'(m08)
space
space
space.
ELSE.
MESSAGE i900(zbcc)
WITH 'Status change failed'(m09)
space
space
space.
ENDIF. "IF sy-subrc EQ 0.
ELSE.
MESSAGE i900(zbcc)
WITH 'TEST RUN: NO databases will be changed'(m03)
space
space
space.
ENDIF. "IF NOT pa_prodr IS INITIAL.
ELSE.
MESSAGE i900(zbcc)
WITH 'Atleast one line should be selected'(m01)
'in order to update.'(m02)
space
space.
ENDIF. "IF NOT ra_id_rech IS INITIAL
WHEN kc_ucomm-back
OR kc_ucomm-exit
OR kc_ucomm-cancel.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE. "CASE sy-ucomm
ENDFORM. " handle_user_command
*& Form display_selected_data
Display Selected Data
FORM display_selected_data.
LOOP AT it_output
INTO wa_output
WHERE chk_box EQ kc_x.
MOVE-CORRESPONDING wa_output TO wa_output1.
APPEND wa_output1 TO it_output1.
ENDLOOP. "LOOP AT it_output
call dialog screen and display new alv control
IF NOT it_output1[] IS INITIAL.
CALL SCREEN 101 STARTING AT 10 5.
ENDIF. "IF NOT it_output1[] IS INITIAL
ENDFORM. " change_status
iNCLUDE YYEF_CHECK_ISP_I01
*& Include YYEF_CHECK_ISP_I01 *
*& Module USER_COMMAND_0100 INPUT
Handle user command for screen 0100
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN kc_ucomm-back.
LEAVE TO SCREEN 0.
WHEN kc_ucomm-exit.
LEAVE TO SCREEN 0.
ENDCASE. "CASE sy-ucomm.
ENDMODULE. "USER_COMMAND_0100 INPUT
*& Module USER_COMMAND_0101 INPUT
Handle User Command for screen 0101
MODULE user_command_0101 INPUT.
CASE sy-ucomm.
WHEN kc_ucomm-back.
LEAVE TO SCREEN 0.
ENDCASE. "CASE sy-ucomm
ENDMODULE. " USER_COMMAND_0101 INPUT
Include YYEF_CHECK_ISP_O01
*& Include YYEF_CHECK_ISP_O01 *
*& Module PBO OUTPUT
OO ALV Display
MODULE pbo OUTPUT.
CREATE OBJECT z_container
EXPORTING container_name = kc_container.
Create TOP-Document
CREATE OBJECT z_dyndoc_id
EXPORTING style = kc_alv.
Create Splitter for custom_container
CREATE OBJECT z_splitter
EXPORTING parent = z_container
rows = 2
columns = 1.
For TOP-OF-PAGE
CALL METHOD z_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = z_parent_top.
For ALV Display
CALL METHOD z_splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = z_parent_grid.
Set height for g_parent_html
CALL METHOD z_splitter->set_row_height
EXPORTING
id = 1
height = 20.
CREATE OBJECT z_grid
EXPORTING i_parent = z_parent_grid.
Set Handler for TOP-OF-PAGE
CREATE OBJECT z_handler.
SET HANDLER z_handler->top_of_page FOR z_grid.
z_repid = sy-repid.
z_variant-report = z_repid.
Display ALV
zs_layout-stylefname = kc_style.
CALL METHOD z_grid->set_table_for_first_display
EXPORTING
is_layout = zs_layout
i_save = kc_u
is_variant = z_variant
CHANGING
it_outtab = it_output[]
it_fieldcatalog = it_fieldcat.
Processing TOP-OF-PAGE Event
CALL METHOD z_grid->list_processing_events
EXPORTING
i_event_name = kc_top
i_dyndoc_id = z_dyndoc_id.
Set handler for ALV Tool Bar
SET HANDLER z_handler->handle_toolbar FOR z_grid.
SET HANDLER z_handler->handle_user_command FOR z_grid.
CALL METHOD z_grid->set_toolbar_interactive.
ENDMODULE. " PBO OUTPUT
*& Module STATUS_0100 OUTPUT
Set the GUI status
MODULE status_0100 OUTPUT.
SET PF-STATUS kc_status.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module STATUS_0101 OUTPUT
Display selected records on screen 0101
MODULE status_0101 OUTPUT.
SET TITLEBAR kc_title.
CREATE OBJECT z_container1
EXPORTING container_name = kc_container1.
CREATE OBJECT z_grid1
EXPORTING i_parent = z_container1.
PERFORM prepare_field_catalog
CHANGING it_fieldcat1.
Display ALV
CALL METHOD z_grid1->set_table_for_first_display
EXPORTING
is_layout = zs_layout
CHANGING
it_outtab = it_output1[]
it_fieldcatalog = it_fieldcat1.
ENDMODULE. " STATUS_0101 OUTPUT
INCLUDE YYEF_CHECK_ISP_TOP
*& Include YYEF_CHECK_ISP_TOP *
DATA DEFINITIONS **
Class declarations *
*class zcl_xyz definition deferred.
CLASS :cl_gui_alv_grid DEFINITION LOAD,
cl_gui_custom_container DEFINITION LOAD.
Tables (old SAP style, please avoid and use workareas instead) *
TABLES: yyeft1200,
yyeft1201.
*tables: xyz.
Controls *
*controls: ctrl_xyz.
Types *
TYPES: BEGIN OF ty_output,
chk_box(1) TYPE c,
celltab TYPE lvc_t_styl,
id_rech TYPE yyeft1200-id_rech,
bprefnr TYPE yyeft1201-bprefnr,
lfdat TYPE yyeft1201-lfdat,
artnr_bp TYPE yyeft1201-artnr_bp,
fnumkred TYPE yyeft1200-fnumkred,
status TYPE yyeft1200-status,
erdat TYPE yyeft1200-erdat,
com_delfnd TYPE char25,
id_anlief TYPE yyeft1008-id_anlief,
bukrs TYPE yyeft1200-bukrs,
belnr TYPE yyeft1200-belnr,
gjahr TYPE yyeft1200-gjahr,
END OF ty_output.
TYPES: BEGIN OF ty_output1,
celltab TYPE lvc_t_styl,
id_rech TYPE yyeft1200-id_rech,
bprefnr TYPE yyeft1201-bprefnr,
lfdat TYPE yyeft1201-lfdat,
artnr_bp TYPE yyeft1201-artnr_bp,
fnumkred TYPE yyeft1200-fnumkred,
status TYPE yyeft1200-status,
erdat TYPE yyeft1200-erdat,
com_delfnd TYPE char25,
id_anlief TYPE yyeft1008-id_anlief,
bukrs TYPE yyeft1200-bukrs,
belnr TYPE yyeft1200-belnr,
gjahr TYPE yyeft1200-gjahr,
END OF ty_output1.
TYPES: BEGIN OF ty_status,
id_rech TYPE yyeft1200-id_rech,
END OF ty_status.
*TYPES-POOLS: xyz.
*TYPES: ty_xyz.
Internal tables *
*DATA: it_xyz.
DATA: it_yyeft1200 TYPE STANDARD TABLE OF yyeft1200,
it_yyeft1201 TYPE SORTED TABLE OF yyeft1201
WITH UNIQUE KEY id_rech posnr,
it_yyeft1008 TYPE STANDARD TABLE OF yyeft1008,
it_output TYPE STANDARD TABLE OF ty_output,
it_output1 TYPE STANDARD TABLE OF ty_output1,
it_fieldcat TYPE lvc_t_fcat,
it_fieldcat1 TYPE lvc_t_fcat.
Workareas *
*DATA: wa_xyz.
DATA: wa_yyeft1200 TYPE yyeft1200,
wa_yyeft1201 TYPE yyeft1201,
wa_yyeft1008 TYPE yyeft1008,
wa_output TYPE ty_output,
wa_output1 TYPE ty_output1.
*****OO ALV DATA DECLARATION
DATA: zs_style TYPE lvc_s_styl,
zs_layout TYPE lvc_s_layo,
z_container TYPE REF TO cl_gui_custom_container,
z_container1 TYPE REF TO cl_gui_custom_container,
z_grid TYPE REF TO cl_gui_alv_grid,
z_grid1 TYPE REF TO cl_gui_alv_grid,
z_dyndoc_id TYPE REF TO cl_dd_document,
z_splitter TYPE REF TO cl_gui_splitter_container,
z_parent_grid TYPE REF TO cl_gui_container,
z_parent_top TYPE REF TO cl_gui_container.
Constants *
*constants: kc_xyz value ... "character
*constants: kn_xyz value ... "numeric
*constants: ki_xyz value ... "integer
*constants: kp_xyz value ... "packed
*constants: kx_xyz value ... "hex
CONSTANTS: kc_status00 TYPE yyeft1200-status VALUE '00',
kc_status10 TYPE yyeft1200-status VALUE '10',
kc_x TYPE char01 VALUE 'X',
kc_include TYPE char01 VALUE 'I',
kc_equal(2) TYPE c VALUE 'EQ',
kc_status(11) TYPE c VALUE 'ZGUI_STATUS',
kc_container TYPE char10 VALUE 'ZCONTAINER',
kc_container1 TYPE char11 VALUE 'ZCONTAINER1',
kc_u TYPE char01 VALUE 'U',
kc_top TYPE char30 VALUE 'TOP_OF_PAGE',
kc_alv TYPE char50 VALUE 'ALV_GRID',
kc_style TYPE char07 VALUE 'CELLTAB',
kc_title TYPE char07 VALUE 'ZTITLE'.
CONSTANTS: BEGIN OF kc_ucomm,
upd TYPE sy-ucomm VALUE 'UPD',
back TYPE sy-ucomm VALUE 'BACK',
exit TYPE sy-ucomm VALUE 'EXIT',
cancel TYPE sy-ucomm VALUE 'CANCEL',
END OF kc_ucomm.
Sentence counters *
*data: cnt_xyz type i value 0.
Calculation variables (Rechenfelder) *
*data: r_xyz.
Switches *
*data: sw_xyz(1) type n value 0.
Misc variables *
*DATA: z_xyz.
*** Initialization of parameters at call of/return to
*** selection dynpro (for Online-only-reports)
DATA: zn_init_seldynp(1) TYPE n
VALUE 1. -
Java Mail Project HELP Required....URGENT PLZ HELP!!!
hello there!!
i took up a pjct for my engineering on java mail..got the code..and i thought that ill analyse it...the code is submitting the mail to the smtp server but after dat its failing to deliver to the client..as i can see this error in the logs on SMTP server...can anyone help me out in analysing this code!!!
plz help, exams are near...(am new to java)
//java FINAL!
import javax.swing.*;
import java.net.URL;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class EmailProg extends JPanel implements ActionListener {
protected JTextArea textArea;
protected String newline = "\n";
static final private String composemail = "compose";
static final private String sendmail = "send";
static final private String about = "about";
static final private String submit = "submit";
static final private String exit = "exit";
JLabel lSubmit = new JLabel("Submit");
JButton subbutton = new JButton();
JTextArea emailfrom = new JTextArea(1,1);
JTextArea emailto = new JTextArea(1, 1);
JTextArea emailsubject = new JTextArea(1, 1);
JTextArea emailmessage = new JTextArea(25, 1);
//------BAG LAYOUT
JLabel lFrom = new JLabel("From:");
JTextField cFrom = new JTextField(32);
JLabel lTo = new JLabel("To:");
JTextField cTo = new JTextField(32);
JFrame frame2 = new JFrame("Compose New");
JLabel lSubject = new JLabel("Subject");
JTextField cSubject = new JTextField(32);
JLabel lMessage = new JLabel("Body");
JTextArea cMessage = new JTextArea(5,32);
//====================================
public EmailProg() {
super(new BorderLayout());
//Create the toolbar.
JToolBar toolBar = new JToolBar();
addButtons(toolBar);
//Create the text area used for output. Request
//enough space for 5 rows and 30 columns.
textArea = new JTextArea(5, 30);
textArea.setEditable(false);
textArea.setText("Welcome to Jeff's email program! With this program you can compose and send emails. I hope I get a good grade on thise, and marine world finds a good use for it :-D:-D (implements really just testing the scroller!!!)");
JScrollPane scrollPane = new JScrollPane(textArea);
//Lay out the main panel.
setPreferredSize(new Dimension(450, 110));
add(toolBar, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
//==================================
protected void addButtons(JToolBar toolBar) {
JButton button = null;
//first button
button = makeNavigationButton("/toolbarButtonGraphics/general/ComposeMail24.gif", composemail ,"Compose new Email", "compose new");
toolBar.add(button);
//second button
button = makeNavigationButton("toolbarButtonGraphics/general/SendMail24.gif", sendmail,"Send The Mail","send");
toolBar.add(button);
//third button
button = makeNavigationButton("toolbarButtonGraphics/general/About24.gif", about,"About","About");
toolBar.add(button);
//exit button
button = makeNavigationButton("toolbarButtonGraphics/general/Stop24.gif", exit, "Exit", "Exit");
toolBar.add(button);
//===================================
protected JButton makeNavigationButton(String imageName, String actionCommand, String toolTipText, String altText) {
//Look for the image.
String imgLocation = imageName;
URL imageURL = EmailProg.class.getResource(imgLocation);
//Create and initialize the button.
JButton button = new JButton();
button.setActionCommand(actionCommand);
button.setToolTipText(toolTipText);
button.addActionListener(this);
if (imageURL != null) { //image found
button.setIcon(new ImageIcon(imageURL));
} else { //no image found
button.setText(altText);
System.err.println("Resource not found: "+ imgLocation);
return button;
//=============================
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String description = null;
// Handle each button.
if (exit.equals(cmd)){
textArea.setText("");
description = "EXITING";
System.exit(0);
if (composemail.equals(cmd)) { //first button clicked
textArea.setText("");
description = "Write new mail.";
composeWindow();
} else if (sendmail.equals(cmd)) { // second button clicked
textArea.setText("");
description = "This button does'nt do anything yet :x";
} else if (about.equals(cmd)) { // third button clicked
textArea.setText("");
description = "About this program. (See pop-up)";
coolWindow();
else if (submit.equals(cmd))
if (cFrom.getText().equals("")||cTo.getText().equals("")||cSubject.getText().equals("")||cMessage.getText().equals(""))
textArea.setText("One or more of the fields was not filled in.");
else{
try {
String smtpServer="serverhere";
String to=cTo.getText();
String from=cFrom.getText();
String subject=cSubject.getText();
String body=cMessage.getText();
send(smtpServer, to, from, subject, body);
textArea.setText("");
description = "Mail Sent.";
JOptionPane.showMessageDialog(null, "Message Sent.");
catch (Exception ex)
System.out.println("Usage: java com.lotontech.mail.SimpleSender"
+" smtpServer toAddress fromAddress subjectText bodyText");
//CLOSE THE FRAME2 WINDOW IIIIIIIIFFFFFFF SENDING IS SUCCESSFUL!!
}//end of else during send
}//end of if of submit
displayResult(description);
//============================
protected void displayResult(String actionDescription) {
textArea.append(actionDescription + newline);
//=============================
public void coolWindow() {
JFrame frame = new JFrame("About");
JTextArea filecontents = new JTextArea();
filecontents.setText("Use the tool bar to compose\n compose new emails, in which you can\n send to anyone on the\n srvhs email server. \n Fill in all the blanks before pressing send. If you dont\n you will receive an error! \n For more information about this program click on the\n information button.");
frame.getContentPane().add(filecontents, BorderLayout.CENTER);
frame.pack();
frame.setResizable(false);
frame.setSize(300,200);
frame.setVisible(true);
//===============================
public void composeWindow() {
frame2.getContentPane().setLayout(new GridBagLayout());
frame2.setResizable(false);
frame2.setSize(600,500);
frame2.setVisible(true);
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 10, 5, 10);
cMessage.setLineWrap(true);
subbutton = makeNavigationButton("toolbarButtonGraphics/general/SendMail24.gif", submit,"submit","submit");
addRow(gbc, lFrom, cFrom);
addRow(gbc, lTo, cTo);
addRow(gbc, lSubject, cSubject);
addRow(gbc, lMessage, cMessage);
addRow(gbc, lSubmit, subbutton);
//===============================
private void addRow(GridBagConstraints gbc, Component left, Component right) {
gbc.gridx = GridBagConstraints.RELATIVE;
gbc.gridy = GridBagConstraints.RELATIVE;
gbc.gridheight = 1;
gbc.gridwidth = 1;
gbc.anchor = GridBagConstraints.EAST;
frame2.getContentPane().add(left, gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.anchor = GridBagConstraints.WEST;
frame2.getContentPane().add(right, gbc);
frame2.pack();
//=======================
public static void send(String smtpServer, String to, String from, String subject, String body) {
try {
Properties props = System.getProperties();
props.put("localhost", smtpServer);
Session session = Session.getDefaultInstance(props, null);
System.out.println(smtpServer);
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
// -- We could include CC recipients too --
// if (cc != null)
// msg.setRecipients(Message.RecipientType.CC
// ,InternetAddress.parse(cc, false));
// -- Set the subject and body text --
msg.setSubject(subject);
msg.setText(body);
// -- Set some other header information --
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
// -- Send the message --
Transport.send(msg);
System.out.println("Message sent OK.");
catch (Exception ex)
ex.printStackTrace();
public static void main(String[] args) {
JFrame frame = new JFrame("EmailProg");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
EmailProg newContentPane = new EmailProg();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}The code to retrieve the messages from SMTP
finally all working fine...
thanx guys!!!
package EmailProg;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
* A simple email receiver class.
public class SimpleReceiver
* Main method to receive messages from the mail server specified
* as command line arguments.
public static void main(String args[])
try
String popServer=args[0];
String popUser=args[1];
String popPassword=args[2];
receive(popServer, popUser, popPassword);
catch (Exception ex)
System.out.println("Usage: java com.mail.SimpleReceiver" +" popServer popUser popPassword");
System.exit(0);
* "receive" method to fetch messages and process them.
public static void receive(String popServer, String popUser, String popPassword)
Store store=null;
Folder folder=null;
try
// -- Get hold of the default session --
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
// -- Get hold of a POP3 message store, and connect to it --
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword);
// -- Try to get hold of the default folder --
folder = store.getDefaultFolder();
if (folder == null) throw new Exception("No default folder");
// -- ...and its INBOX --
folder = folder.getFolder("INBOX");
if (folder == null) throw new Exception("No POP3 INBOX");
// -- Open the folder for read only --
folder.open(Folder.READ_ONLY);
// -- Get the message wrappers and process them --
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++)
System.out.println(msgs[msgNum]);
catch (Exception ex)
ex.printStackTrace();
finally
// -- Close down nicely --
try
if (folder!=null) folder.close(false);
if (store!=null) store.close();
catch (Exception ex2) {ex2.printStackTrace();
} -
Please help on this requirement .. to develop an ALV report
When there are changes in VC characteristic allowed values or in VC tables there is need to ensure that they will not affect existing orders or orders created with reference to the ones that have the corresponding value. Currently there is no report that will tell whether it is safe to delete a VC characteristic value and the solution has so far been to rename the description as u201CDo not useu201D. In a similar way, when a VC table is changed often existing orders need to be changed so that they take the new determination of value starting from a certain date.
This requirement is for a report to show not archived orders that contain a certain value for a characteristic.
Moderator Message: Do not expect others to do your work for you.
Edited by: kishan P on Nov 26, 2010 10:50 AMHi All ,
my requirement is : Accepting Invoice Through EDI , for this reqirement i need to work out in Inbound side , why means i am going to get a invoice file in (AL11) i need to update that invoice Data into t.code (FB60), can any one please suggest me which method i need to use (i.e Message control or with out message control ) or any code for Accepting Invoice data , please help me out .
Rgds
Rafi.Vanalli . -
Need help in Hyperlink to ALV report
Hello Experts,
I want to give hyperlink to Sales Order Number.
I have one report. I am supposed to give hyperlink to Salesorder # so that when user clicks on it,
it should display VA03 transaction.
Can you please guide me how to do this?
Best Regards,
HarishHi,
In fieldcatalog make your VBELN column make attribute HOTSPOT = 'X' and then handle this event in USER COMMAND as
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF rs_selfield-fieldname = 'VBELN'.
READ TABLE it_output INTO wa_output INDEX rs_selfield-tabindex.
SET PARAMETER ID ''AUN' FIELD wa_output-vbeln.
CALL TRANSACTION 'VA03' and skip first screen.
ENDIF.
ENDFORM. -
Need some direction on developing a web service.
Hi,
My requirement is to develop a web service and expose 8 Oracle views as methods that can be invoked that will give the data within those views in XML format.
What is the best approach in doing this?
I've tried developing a PLSLQ procedure and publishing it as a web service but see that there are limitations related in using a PLSQL record type as out variable
Not sure if I can do this by developing a BPEL process.
Appreicate your help on this..
Thanks
-PrapoornaHere are some sample apps and tutorials that might help:
http://brianchau.wordpress.com/2008/02/12/flash-media-server-3-demos/
especially the VideoRecorder one. -
After Effects CS4 crash report (PLZ HELP I NEED IT WORKING DESPERATELY)
Ok, I'll type the window EXACTLY (There's 2 errors I need to fix): -
After Effects error: Crash in progress. Last logged message was:,7832.
<ASL.ResourceUtils.GetLanguageIDFromRegistry> >0< Unable to
obtain the User 'Language' registry key at: Software\Adobe\After
Effects\9.0.3\ Defaulting to 'en_US'.
After Effects can't continue: sorry, After Effects has crashed. See
http://www.adobe.com/support/products/aftereffects.html for known
issues. If you still can't resolve the issue, please contact Adobe
Technical Support (2)
(0::42)
I'm using CS4 ONLY because I have a 32 bit Windows 8.1 computer which has Nvidia GFX card and an i5 processor.
It has 4GB of RAM and that's all you need to know. Please help me guys. <3
Thnx,What I meant was that it was running at all was a lucky happenstance.
xX360noscopfazeopticXx wrote:
Could Adobe actually see my personal data of my computer and just put an error message there to prevent me from using After Effects just because they realized that I have a Windows 8.1 32 bit computer?
No. There is no way they could do that. Especially not in CS4.
There are a lot of people in the same situation as you who pop on the forums with some frequency. Well, not usually trying to run such an old version - it's usually CS5 or CS5.5, but the issues are similar: odd error messages. Trying to run old versions of software on new, unsupported operating systems can be a fun exercise (like getting Linux installed on a potato). However, even if it does work for a while, the least little thing can cause it to foul up. Maybe Windows updated, maybe a background service that wasn't running before is running now, maybe something subtle changed in your registry or your display settings or any of a thousand different things. The bottom line is that something changed between when it was working and now.
The error message seems to indicate some sort of issue in your registry. That is a tricky area to mess around in. Have you installed ANYTHING on your computer between when it was working and now? Added any browser extensions? Installed any codec packs? Downloaded any apps? Updated any software?
By the way, it's not very expensive to bump up to a 64-bit version of your OS if you did want to use a modern version of After Effects. I mean, if you want to continue working with After Effects, it would be a lot easier to use an older OS or a newer AE than to keep trying to kludge it like we are.
Maybe you are looking for
-
HP Photosmart Printer hangs - Snow Leopard
I have an iMac and 2 MacBook Pros, all running Snow Leopard. Using a Cisco Linksys WRT610 Router. I have an HP Photosmart All-in-One printer that has been working flawlessly over WLAN for almost two years. Over the last month or two I have starte
-
i have a new g5 that is connected to a cable modem. i'm wanting to setup a wireless network with it and my pc. i bought a linksys router and already have a wireless card for the pc. but after reading on here and various other sources, linksys isn't c
-
Dell DataSafe vs Windows 7 Backup & restore
I bought a Dell I620. I made 3 disks using Dell's DataSafe program. I used DVD+R disks for that. I'm hearing that DVD disks are not that reliable. I plan eventually to get a Ext HD, because they have come down a lot in cost. Until then, what type of
-
Are there any workarounds for iMacs not having flash?
I recently purchased a new iMac and browsing the web/web research has been a challenge. Most often than not while browsing safari I run into a limitation due to the lack of adobe flash support. Last night my wife spent a half hour filling out an appl
-
Dear expert SAP in working with current server .We just change the server and connect to new server But we dont connect client machine to server.We dont known about that very well so please provide me solution in details,. Thanks Ashish Agrawal