Hierarchical ALV Column Seperator
Hello Friends,
I have a report which displays the data in Hierarchical ALV.
Now the fields shown in the output are not sperated (by a line). I can see an option in the PF Status.
Settings > Columns > Automatic Seperator.
This option when checked, seperates the fields by a vertical line.
My requirement is: I want this seperation by default.
Thanks for the help in advance..
Try to give one of the following value to
is_layout-no_vline = '2'. " Separator always on
is_layout-no_vline = '3'. " Automatic separator
That works in some versions. Be aware this is not a function opened and documented by SAP. If that don't work on your version, you could try to update the layout using field-symbol during the set status routine.
Regards
Similar Messages
-
Hierarchical ALV - enabling row/column input
Hello,
I'm going to incoporate the hierarchical ALV in a report. Let's say I have 5 item rows for a header row, is it possible to make individiual rows input enabled? Meaning, of the 5 item rows, I wish to make two of them editable, but not the other three.
I've done the standard ALV and made columns input enabled when building the fieldcat, but this applied to all rows, which I don't want in my scenario.
Any help would be appreciated.
ThanksHello,
Input enable is a parameter of fieldcat but you have to specify the internal table that you used in header row or item row.
You create a data ZHEAD and ZITEM that you transfer in fieldcat data "table"
Don't forget the clear when youo fill this internal table
Regards
sebastien -
Urgent:Grand total in hierarchical alv
I am printing a hierarchical alv with subtotals. I want to print the grand total for the whole numeric columns ...
Can anyone explain me how i can do this.
Thanks and regards,
SubhakarHi,
In this case you not only require the totals but the subtotals also.
For achieving this output you will have to sort the alv on the first column and also give subtotals there.
use
data: SORTF TYPE SLIS_SORTINFO_ALV,
TSORT TYPE SLIS_T_SORTINFO_ALV.
in the function module reuse_alv_grid_display give
it_sort = tsort.
eg:
FORM ALV_SHOW.
LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT-BOX_TABNAME = 'IT_DISPLAY'.
LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = TCATALOG
IS_VARIANT = VAR1
I_SAVE = 'A'
IT_SORT = TSORT
IT_EVENTS = TEVENT[]
TABLES
T_OUTTAB = IT_DISPLAY.
ENDFORM . "ALV_SHOW
and write a subroutine for sort...
form sort.
CLEAR SORTF.
SORTF-spos = 1.
SORTF-fieldname = 'column_1'.
SORTF-tabname = 'IT_table used for display in alv'.
SORTF-up = 'X'.
SORTF-subtot = 'X'.
APPEND SORTF TO TSORT.
endform.
If this doesn't help I will send you the whole source of a sample program..
Abdullah -
Date Field in Hierarchical ALV
Hello Friends,
I have a few fields in my Hierarchical ALV output which are initially hidden.
When I choose to display these fields by changing the Layout the date fields come out in the form
MMDDYYYY
I need those fields as
MM/DD/YYYY
The date fields which are NOT hidden initially are in the format MM/DD/YYYY. No problem there.
When I go to settings and choose column width optimize I am then able to see these date fields as MM/DD/YYYY.
In My code I already set this col width to optimize. It is also working . But for fields which are hidden initially I have to explicitly set the width optimize again .
This problem is not there in GRID ALV.
Why is the HIER ALV not putting the date fields in MM/DD/YYYY format.Hi,
Just pass the Edit option of the fieldcatalog for those specific fields...
fcat-edit = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND' "<---- pass this
i_callback_top_of_page = 'TOP'
is_layout = it_layout
it_fieldcat = it_fcat
i_default = 'X'
i_save = 'A'
it_events = it_event
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form USER_COMMAND
* text
* -->R_UCOMM text
* -->RS_SELFIELD text
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&DATA_SAVE'. "<-------check this
PERFORM save_data.
ENDCASE.
ENDFORM. "USER_COMMAND -
Changing totals value in hierarchical alv for a particular level/row
Hi,
I am displaying a hierarchical ALV having 4 levels.
Using field catalog, totals for all dynamic columns are found out.
I have a requirement not to display totals value for first and second levels.
And if possible, to display another value.
Tried using CL_GUI_ALV_TREE->change_node.
But it not updating.
Please suggest a solution.
Thanks,
Nisha Vengal.Hi Ten Mariga,
I wonder why the second select Query is needed at all instead you can use
---> Not Needed
FORM DATA_RETRIEVAL1.
SELECT * FROM zcontact INTO TABLE it_zcontact WHERE id EQ wa_zcontact-id.
ENDFORM.
----> Instead you can do
READ TABLE it_zcontact INTO wa_zcontact INDEX p_seltab-tabindex.
Append wa_zcontact to Second_table.
And you can use the Second_table to display the second ALV. The second Select Query will affect the performance too.
Cheers,
Krishnakumar B. -
Urgent: Add a custom line in Hierarchical ALV.
Hi
I am using the FM 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' to display the header and item table details. However I would like to add a custom line below the item details of each section so that I can calculate the total (total of a particular field in the item table) and print it in this line....How do I do this....
Thanks..
VijayHi,
See the attached report which is used to display Hierarchial display for header and item;
REPORT zwmr_pick_status_report NO STANDARD PAGE HEADING
MESSAGE-ID zw.
Type Pools
TYPE-POOLS: icon, slis.
Tables
TABLES: tvst,
likp,
t30b,
vekp,
zhu_to_link,
zpallettr,
vttk,
zvantr.
Types
TYPES:
BEGIN OF ty_data,
lgtor LIKE likp-lgtor, " door
vbeln LIKE likp-vbeln, " delivery
wbstk LIKE vbuk-wbstk, " Goods movement status
kostk LIKE vbuk-kostk, " Picking status
posnr LIKE lips-posnr, " item
route LIKE likp-route, " route
wadat LIKE likp-wadat, " goods issue date
lvsta LIKE vbup-lvsta, " warehouse status
packvorschr LIKE vekp-packvorschr, " pack mnemonic
exidv LIKE vekp-exidv, " handling unit
zpallet_no(10), "like zpallettr-zpallet_no, " pallet no
zdep_point LIKE zpallettr-zdep_point, "Departur Point "Jvdm01
zcount_check LIKE zpallettr-zcount_check," count check flag
zvan_no(10), "like zvantr-zvan_no, " van no
zvan_print LIKE zvantr-zvan_print, " van manifest print
tknum LIKE vttk-tknum, " Shipment No "ANV 11523
zeod_print LIKE zvantr-zeod_print, " eod manifest print
zzpackclass LIKE vekp-zzpackclass, " package class
zzti LIKE vekp-zzti, " T.I. value
vstel LIKE likp-vstel, "Shipping point RM050906
anzpk TYPE znopack, "No of packages in dlv MB01+
END OF ty_data.
TYPES:BEGIN OF x_likp ,
vbeln LIKE likp-vbeln,
vstel LIKE likp-vstel,
lgtor LIKE likp-lgtor,
zzroute2lgtor LIKE likp-zzroute2lgtor,
route LIKE likp-route,
wadat LIKE likp-wadat,
zz2route LIKE likp-zz2route,
zzexproute LIKE likp-zzexproute,
zzroute2 LIKE likp-zzroute2,
anzpk LIKE likp-anzpk,
END OF x_likp.
TYPES: BEGIN OF x_vbuk,
vbeln TYPE vbuk-vbeln,
wbstk TYPE vbuk-wbstk, " Goods movement status
kostk TYPE vbuk-kostk, " Picking status
END OF x_vbuk.
TYPES: BEGIN OF x_lips,
vbeln TYPE lips-vbeln, " delivery
posnr TYPE lips-posnr, " item
pstyv TYPE lips-pstyv,
matnr TYPE lips-matnr,
charg TYPE lips-charg,
END OF x_lips.
TYPES: BEGIN OF x_vbup,
vbeln TYPE vbup-vbeln, " delivery
posnr TYPE vbup-posnr, " item
lvsta TYPE vbup-lvsta, " warehouse status
END OF x_vbup.
TYPES: BEGIN OF x_vepo,
venum TYPE vepo-venum, "Internal Handling Unit
Number
vepos TYPE vepo-vepos, "Handling Unit Item
vbeln TYPE vepo-vbeln, " delivery
posnr TYPE vepo-posnr, " item
exidv TYPE vekp-exidv,
END OF x_vepo.
TYPES: BEGIN OF x_vepo1,
venum TYPE vekp-venum, "Internal Handling Unit
Number
exidv TYPE vekp-exidv,
END OF x_vepo1.
Start of changes by ANV SR#11523
TYPES: BEGIN OF x_vttp,
tknum TYPE tknum, " Shipment No
tpnum TYPE tpnum, " Item No
vbeln TYPE vbup-vbeln, " delivery
laufk LIKE vttk-laufk, " leg indicator MB01+
END OF x_vttp.
End of changes by ANV SR#11523
Data
RANGES: r_del FOR likp-vbeln,
r_lgtor FOR likp-lgtor.
RANGES: r_vanno FOR zvantr-zvan_no,
r_palno FOR zpallettr-zpallet_no.
DATA: BEGIN OF number_range OCCURS 0,
mark(1),
id(3),
num(10) TYPE n,
desc LIKE zpalletmd-zdesc,
END OF number_range.
DATA: t_disp_tab TYPE STANDARD TABLE OF zpickdisp,
t_data_tab TYPE ty_data OCCURS 0 WITH HEADER LINE,
it_likp TYPE x_likp OCCURS 0 WITH HEADER LINE, "SUM
it_vbuk TYPE x_vbuk OCCURS 0 WITH HEADER LINE, "SUM
it_lips TYPE x_lips OCCURS 0 WITH HEADER LINE, "SUM
it_vbup TYPE x_vbup OCCURS 0 WITH HEADER LINE, "SUM
it_vepo TYPE x_vepo OCCURS 0 WITH HEADER LINE, "SUM
it_vepo2 TYPE x_vepo OCCURS 0 WITH HEADER LINE, "SUM
*{ INSERT UKMK900355 3
t_vepo_low TYPE x_vepo OCCURS 0 WITH HEADER LINE, " AS01
*} INSERT
it_vepo1 TYPE x_vepo1 OCCURS 0 WITH HEADER LINE, "SUM
it_vttp TYPE x_vttp OCCURS 0 WITH HEADER LINE,
t_disp_head TYPE STANDARD TABLE OF zpickhead.
DATA wa_item_tab TYPE zpickdisp OCCURS 0 WITH HEADER LINE.
"ANV SR#11113
DATA: w_numrnge LIKE number_range,
w_number(10) TYPE n.
DATA: t_likp LIKE likp OCCURS 0 WITH HEADER LINE,
t_lips LIKE lips OCCURS 0 WITH HEADER LINE,
t_vbuk LIKE vbuk OCCURS 0 WITH HEADER LINE,
t_vbup LIKE vbup OCCURS 0 WITH HEADER LINE,
t_vepo LIKE vepo OCCURS 0 WITH HEADER LINE,
t_vekp LIKE vekp OCCURS 0 WITH HEADER LINE,
t_vantr LIKE zvantr OCCURS 0 WITH HEADER LINE,
t_pallettr LIKE zpallettr OCCURS 0 WITH HEADER LINE,
w_likp like likp,
w_lips LIKE lips,
w_vbuk LIKE vbuk,
w_vbup LIKE vbup,
w_vepo LIKE vepo,
w_vekp LIKE vekp,
w_vepo TYPE x_vepo1,
w_vbup TYPE x_vbup,
w_vttp TYPE x_vttp, " ANV SR#11523
w_lips TYPE x_lips,
w_vbuk TYPE x_vbuk,
w_likp TYPE x_likp, "MB01-+
w_tplst LIKE vttk-tplst. "MB01+
DATA: s_variant LIKE disvariant, "MB01+
def_variant LIKE disvariant.
ALV DATA *****
DATA:
g_grid TYPE REF TO cl_gui_alv_grid,
g_sort TYPE slis_t_sortinfo_alv,
g_custom_container TYPE REF TO cl_gui_custom_container,
g_layout TYPE slis_layout_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
t_fldcat LIKE LINE OF gt_fieldcat,
g_keyinfo TYPE slis_keyinfo_alv,
gt_events TYPE slis_t_event,
gs_event TYPE slis_alv_event,
w_sy_repid LIKE sy-repid.
DATA: BEGIN OF seltab OCCURS 0.
INCLUDE STRUCTURE rsparams.
DATA: END OF seltab.
SYSTEM GENERATED TABLE CONTROL DATA ********
DECLARATION OF TABLECONTROL 'TC_TABCON' ITSELF
CONTROLS: tc_tabcon TYPE TABLEVIEW USING SCREEN 0100.
LINES OF TABLECONTROL 'TC_TABCON'
DATA: g_tc_tabcon_lines LIKE sy-loopc.
DATA: ok_code LIKE sy-ucomm.
Constants
CONSTANTS: c_data_class LIKE klah-class VALUE 'DG_DATA',
c_mat_class LIKE rmclf-klart VALUE '001',
c_pack LIKE lips-mtart VALUE 'VERP',
c_a(1) VALUE 'A',
c_b(1) VALUE 'B',
c_c(1) VALUE 'C',
c_yes(1) VALUE 'X',
c_no(1) VALUE ' '.
Selection screen
standard report select options block
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-002.
SELECT-OPTIONS:
s_wadat FOR likp-wadat NO-EXTENSION OBLIGATORY. " Goods Issue Date
*parameters: "TR01-
p_vstel like tvst-vstel obligatory. " Shipping Point "TR01-
SELECT-OPTIONS: "TR01+
p_vstel FOR tvst-vstel. " Shipping Point "TR01+
SELECT-OPTIONS:
s_lfart FOR likp-lfart, " Delivery type
s_lgtor FOR t30b-lgtor, " Door selection
s_exidv FOR vekp-exidv, " Handling Unit
s_vbeln FOR likp-vbeln, " Delivery "MB01-+
s_lfdat FOR likp-lfdat. " Delivery date
PARAMETERS:
p_exdata AS CHECKBOX. " Show extra columns flag
SELECTION-SCREEN END OF BLOCK a.
van/pallet specific select options block
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_palno FOR zpallettr-zpallet_no, " no-extension,
s_vanno FOR zvantr-zvan_no. " no-extension.
SELECT-OPTIONS:
s_deppnt FOR zpallettr-zdep_point, "Jvdm01
s_tplst FOR vttk-tplst. "MB01
SELECTION-SCREEN END OF BLOCK b.
MB01 - START - Display variant
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-019.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK c.
MB01 - END
Value Request Events
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_palno-low.
CLEAR: number_range, w_number .
REFRESH number_range.
select numbers and display pop up screen for selection
PERFORM select_pal_nos.
s_palno-low = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_palno-high.
CLEAR: number_range, w_number .
REFRESH number_range.
select numbers and display pop up screen for selection
PERFORM select_pal_nos.
s_palno-high = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vanno-low.
CLEAR: number_range, w_number .
REFRESH number_range.
select numbers and display pop up screen for selection
PERFORM select_van_nos.
s_vanno-low = w_number.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vanno-high.
CLEAR: number_range, w_number .
REFRESH number_range.
select numbers and display pop up screen for selection
PERFORM select_van_nos.
s_vanno-high = w_number.
MB01 - START - display variant
F4-Help for variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
MB01 - END
At Selection Screen
AT SELECTION-SCREEN.
PERFORM validate_selections.
Initialization
INITIALIZATION.
MB01 - START INSERT
1. Transportation planning point
Import transportation planning point from user parameters and
populate
select option.
GET PARAMETER ID 'TDP' FIELD w_tplst.
MOVE: 'I' TO s_tplst-sign,
'EQ' TO s_tplst-option,
w_tplst TO s_tplst-low.
APPEND s_tplst.
2. Display variant
CLEAR s_variant.
s_variant-report = sy-repid.
Get default variant
s_def_variante = s_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = s_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = s_variant-variant.
ENDIF.
MB01 - END INSERT
Start of selection
START-OF-SELECTION.
clear all data tables
CLEAR: t_likp,
it_likp,
t_lips,
t_vbuk,
t_vbup,
t_vepo,
t_vantr,
t_pallettr,
w_likp,
w_lips,
w_vbuk,
w_vbup,
w_vepo,
w_vekp.
REFRESH: t_likp,
it_likp,
t_lips,
t_vbuk,
t_vbup,
t_vepo,
t_vantr,
t_pallettr.
select data for ALV
due to different input parameters being used, to streamline the data
selection process, different selection methods are required
IF NOT s_vanno IS INITIAL
OR NOT s_palno IS INITIAL
OR NOT s_deppnt IS INITIAL. "Jvdm01
if selecting by van/pallet number, need to select the data from the
handling unit upwards to delivery
PERFORM select_data_up.
ELSE.
otherwise the data can be selected from the delivery downwards
PERFORM select_data_down.
ENDIF.
End of selection
END-OF-SELECTION.
call hierarchical ALV display function module
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZWMR_PICK_STATUS_REPORT'
i_callback_pf_status_set = 'SET_STATUS'
i_callback_user_command =
'USER_COMMAND' "custom gui status form
is_layout = g_layout "user command form
it_fieldcat = gt_fieldcat
it_sort = g_sort
i_save = 'X' "MB01+
is_variant = s_variant
it_events = gt_events
i_tabname_header = 't_disp_head'
i_tabname_item = 't_disp_tab'
i_structure_name_header = 'ZPICKHEAD'
i_structure_name_item = 'ZPICKDISP'
is_keyinfo = g_keyinfo
TABLES
t_outtab_header = t_disp_head
t_outtab_item = t_disp_tab.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
FORMS
Includes inserted by Screen Painter Wizard. DO NOT CHANGE THIS LINE!
INCLUDE zwmr_pick_o01.
INCLUDE zwmr_pick_status_reporto01 .
INCLUDE zwmr_pick_i01.
INCLUDE zwmr_pick_status_reporti01 .
INCLUDE zwmr_pick_f01.
INCLUDE zwmr_pick_status_reportf01 .
*& Form select_pal_nos
select pallet numbers for search help
FORM select_pal_nos.
DATA: BEGIN OF t_palno OCCURS 0,
zpallet_no LIKE zpallettr-zpallet_no,
END OF t_palno.
select all available pallet numbers
SELECT DISTINCT zpallet_no FROM zpallettr
INTO CORRESPONDING FIELDS OF TABLE t_palno.
LOOP AT t_palno.
get pallet id
SELECT SINGLE zpallet_id FROM zpallettr
INTO number_range-id
WHERE zpallet_no = t_palno-zpallet_no.
get pallet description
SELECT SINGLE zdesc FROM zpalletmd
INTO number_range-desc
WHERE zpallet_id = number_range-id.
number_range-num = t_palno-zpallet_no.
append to search help table
APPEND number_range.
ENDLOOP.
call pop up dialog box
CALL SCREEN 0100 STARTING AT 5 5.
ENDFORM. " select_pal_nos
*& Form select_van_nos
select van numbers for search help
FORM select_van_nos.
DATA: BEGIN OF t_vanno OCCURS 0,
zvan_no LIKE zvantr-zvan_no,
END OF t_vanno.
select available van numbers
SELECT DISTINCT zvan_no FROM zvantr
INTO CORRESPONDING FIELDS OF TABLE t_vanno.
LOOP AT t_vanno.
select van id
SELECT SINGLE zvan_id FROM zvantr
INTO number_range-id
WHERE zvan_no = t_vanno-zvan_no.
select van description (maintained in pallet tables)
SELECT SINGLE zdesc FROM zpalletmd
INTO number_range-desc
WHERE zpallet_id = number_range-id.
number_range-num = t_vanno-zvan_no.
append to search help table
APPEND number_range.
ENDLOOP.
call pop up dialog box
CALL SCREEN 0100 STARTING AT 5 5.
ENDFORM. " select_van_nos
*& Form select_data_down
select data if selecting from delivery down
FORM select_data_down.
select all deliveries from LIKP that fulfill selection criteria
Start SU01 optmization changes
SELECT vbeln vstel lgtor route wadat "RM050906
SELECT vbeln vstel lgtor route wadat
zzroute2lgtor zz2route zzexproute zzroute2 anzpk "MB01-+
FROM likp INTO CORRESPONDING FIELDS OF TABLE it_likp"MB01-+
WHERE vbeln IN s_vbeln
AND vstel IN p_vstel
AND lfart IN s_lfart
AND wadat IN s_wadat
AND lfdat IN s_lfdat "MB01+
AND
( lgtor IN s_lgtor OR zzroute2lgtor IN s_lgtor ) ."MB01+
IF sy-subrc NE 0.
no data found
MESSAGE i007.
EXIT.
ENDIF.
IF NOT t_likp[] IS INITIAL. "SUM
IF NOT it_likp[] IS INITIAL.
SORT it_likp BY vbeln. "SUM
select sales document headers from VBUK
SELECT vbeln wbstk kostk
FROM vbuk INTO TABLE it_vbuk
FOR ALL ENTRIES IN it_likp "SUM
WHERE vbeln EQ it_likp-vbeln. "SUM
SORT it_vbuk BY vbeln.
select all relevant delivery items from LIPS
SELECT vbeln posnr pstyv matnr charg
FROM lips INTO TABLE it_lips
FOR ALL ENTRIES IN it_likp
WHERE vbeln EQ it_likp-vbeln
AND pckpf NE 'B' "cannot be packed "AS05
AND pstyv NE 'ZPAC' "AS05
AND pstyv NE 'ZGDP' "TR02+ "AS05
AND lfimg GT 0. "TR01+
ENDIF.
IF NOT it_lips[] IS INITIAL.
select all sales document line items from VBUP
SORT it_lips BY vbeln posnr. "SUM
SELECT vbeln posnr lvsta
FROM vbup INTO TABLE it_vbup
FOR ALL ENTRIES IN it_lips
WHERE vbeln EQ it_lips-vbeln
AND posnr = it_lips-posnr.
SORT it_vbup BY vbeln posnr.
select corresponding handling unit ID's (venum)
TR03 Replace
start
select * from vepo appending corresponding fields of table t_vepo
for all entries in t_lips
where vbeln = t_lips-vbeln
and posnr = t_lips-posnr
and matnr = t_lips-matnr
and charg = t_lips-charg.
SELECT vepoVENUM vepoVEPOS vepovbeln vepoposnr
FROM vepo as vepo
INNER JOIN vekp as vekp ON vepovenum = vekpvenum
APPENDING corresponding fields of table it_vepo
FOR ALL ENTRIES IN it_lips
WHERE vepo~vbeln = it_lips-vbeln
AND vepo~posnr = it_lips-posnr
AND vepo~matnr = it_lips-matnr
AND vepo~charg = it_lips-charg
AND vekp~exidv IN s_exidv.
SELECT venum vepos vbeln posnr
FROM vepo INTO TABLE it_vepo2
FOR ALL ENTRIES IN it_lips
WHERE vbeln = it_lips-vbeln
AND posnr = it_lips-posnr
AND matnr = it_lips-matnr
AND charg = it_lips-charg.
SORT it_vepo2 BY venum vepos.
*{ INSERT UKMK900355 1
Ice-multis: replace lower-level HUs with highest level " AS01
PERFORM replace_highest_hu. " AS01
*} INSERT
Start of changes by ANV SR#11523
MB01 - extract shipment header as well to populate leg indicator
Therefore, join vttp with vttk
Limit as well by transportation planning point
SELECT vttptknum vttptpnum vttpvbeln vttklaufk
FROM vttp INNER JOIN vttk
ON vttptknum = vttktknum
INTO TABLE it_vttp
FOR ALL ENTRIES IN it_lips
WHERE vttp~vbeln = it_lips-vbeln
AND vttk~tplst IN s_tplst.
MB01 - END
End of changes by ANV SR#11523
IF NOT it_vepo2[] IS INITIAL.
SELECT venum exidv
FROM vekp INTO TABLE it_vepo1
FOR ALL ENTRIES IN it_vepo2
WHERE venum = it_vepo2-venum
AND exidv IN s_exidv.
ENDIF.
SORT it_vepo1 BY venum.
CLEAR: w_vepo, it_vepo.
LOOP AT it_vepo1.
READ TABLE it_vepo2 WITH KEY venum = it_vepo1-venum.
IF sy-subrc = 0.
it_vepo2-exidv = it_vepo1-exidv.
MODIFY it_vepo2 TRANSPORTING exidv
WHERE venum = it_vepo1-venum .
ENDIF.
ENDLOOP.
DELETE it_vepo2 WHERE exidv IS initial.
it_vepo[] = it_vepo2[].
TR03 Replace end
ENDIF.
build process table
PERFORM move_to_table.
ENDFORM. "select_data_down
*& Form select_data_up
select data if selecting from van/pallet up
FORM select_data_up.
IF NOT s_vanno IS INITIAL.
if van then select van numbers and hence pallet numbers
SELECT * FROM zvantr INTO TABLE t_vantr
WHERE zvan_no IN s_vanno.
and vstel eq p_vstel."TR01-
IF NOT t_vantr[] IS INITIAL.
SORT t_vantr BY zvan_id zvan_no vstel zpallet_no. "SUM
SELECT * FROM zpallettr INTO TABLE t_pallettr
FOR ALL ENTRIES IN t_vantr
WHERE zpallet_no EQ t_vantr-zpallet_no
AND zdep_point IN s_deppnt. "Jvdm01
and vstel eq p_vstel."TR01-
ENDIF.
ELSE.
otherwise can get pallet numbers directly
SELECT * FROM zpallettr INTO TABLE t_pallettr
WHERE zpallet_no IN s_palno
AND zdep_point IN s_deppnt. "Jvdm01
and vstel eq p_vstel."TR01-
ENDIF.
IF NOT t_pallettr[] IS INITIAL.
from the pallet nos. we can select the handling units
SORT t_pallettr BY zpallet_id zpallet_no vstel exidv. "SUM
SELECT * FROM vekp INTO TABLE t_vekp
FOR ALL ENTRIES IN t_pallettr
WHERE exidv EQ t_pallettr-exidv
AND exidv NE space
AND exidv IN s_exidv "TR03+
AND ( exida = 'E' "TR01+
OR exida = 'F' ). "TR01+
ENDIF.
SORT t_vekp BY venum. "SUM
IF NOT t_vekp[] IS INITIAL.
build vbeln range from t_vekp.
LOOP AT t_vekp.
r_del-sign = 'I'.
r_del-option = 'EQ'.
r_del-low = t_vekp-vpobjkey.
APPEND r_del.
ENDLOOP.
select all deliveries from LIKP that correspond to HU's
SELECT * FROM likp INTO TABLE t_likp
WHERE vbeln IN r_del
AND wadat IN s_wadat
AND lfart IN s_lfart.
ENDIF.
MB01- START
SELECT vbeln lgtor route wadat
FROM likp INTO TABLE it_likp
WHERE vbeln IN r_del
AND wadat IN s_wadat
AND lfart IN s_lfart.
SELECT vbeln vstel lgtor route wadat
zzroute2lgtor zz2route zzexproute zzroute2 anzpk "MB01-+
FROM likp INTO CORRESPONDING FIELDS OF TABLE it_likp
WHERE vbeln IN r_del
AND lfart IN s_lfart
AND wadat IN s_wadat "MB01-+
AND lfdat IN s_lfdat. "MB01+
MB01- END
ENDIF.
IF NOT it_likp[] IS INITIAL.
SORT it_likp BY vbeln . "SUM
select sales document headers from VBUK
SELECT * FROM vbuk INTO TABLE t_vbuk
FOR ALL ENTRIES IN t_likp
WHERE vbeln EQ t_likp-vbeln.
SELECT vbeln wbstk kostk
FROM vbuk INTO TABLE it_vbuk
FOR ALL ENTRIES IN it_likp
WHERE vbeln EQ it_likp-vbeln.
SORT it_vbuk BY vbeln. "SUM
select all relevant delivery items from LIPS
SELECT * FROM lips INTO TABLE t_lips
FOR ALL ENTRIES IN t_likp
WHERE vbeln EQ t_likp-vbeln
AND pstyv NE 'ZPAC'
AND pstyv NE 'ZGDP' "TR02+
AND lfimg GT 0. "TR01+
SELECT vbeln posnr pstyv matnr charg
FROM lips INTO TABLE it_lips
FOR ALL ENTRIES IN it_likp
WHERE vbeln EQ it_likp-vbeln
AND pckpf NE 'B' "cannot be packed "AS05
AND pstyv NE 'ZPAC' "AS05
AND pstyv NE 'ZGDP' "TR02+ "AS05
AND lfimg GT 0. "TR01+
ENDIF.
IF NOT it_lips[] IS INITIAL.
SORT it_lips BY vbeln posnr. "SUM
select all sales document line items from VBUP
SELECT * FROM vbup INTO TABLE t_vbup
FOR ALL ENTRIES IN t_lips
WHERE vbeln EQ t_lips-vbeln
AND posnr = t_lips-posnr.
Start of changes by ANV SR#11523
MB01 - START
join vttp with vttk to obtain leg indicator
SELECT tknum tpnum vbeln
FROM vttp INTO TABLE it_vttp
FOR ALL ENTRIES IN it_lips
WHERE vbeln = it_lips-vbeln.
SELECT vttptknum vttptpnum vttpvbeln vttklaufk
FROM vttp INNER JOIN vttk
ON vttptknum = vttktknum
INTO TABLE it_vttp
FOR ALL ENTRIES IN it_lips
WHERE vttp~vbeln = it_lips-vbeln
AND vttk~tplst IN s_tplst.
MB01 - END
End of changes by ANV SR#11523
SELECT vbeln posnr lvsta
FROM vbup INTO TABLE it_vbup
FOR ALL ENTRIES IN it_lips
WHERE vbeln EQ it_lips-vbeln
AND posnr = it_lips-posnr.
SORT t_vbup BY vbeln posnr. "SUM
select corresponding handling unit ID's (venum)
SELECT * FROM vepo APPENDING CORRESPONDING FIELDS OF TABLE t_vepo
FOR ALL ENTRIES IN t_lips
WHERE vbeln = t_lips-vbeln
AND posnr = t_lips-posnr
AND matnr = t_lips-matnr
AND charg = t_lips-charg.
SELECT venum vepos vbeln posnr
FROM vepo APPENDING CORRESPONDING FIELDS OF TABLE it_vepo
FOR ALL ENTRIES IN it_lips
WHERE vbeln = it_lips-vbeln
AND posnr = it_lips-posnr
AND matnr = it_lips-matnr
AND charg = it_lips-charg.
*{ INSERT UKMK900355 1
it_vepo2[] = it_vepo[]. " DS01
PERFORM replace_highest_hu. " DS01
it_vepo[] = it_vepo2[]. " DS01
*} INSERT
ENDIF.
build process table
PERFORM move_to_table.
ENDFORM. "select_data_up
*& Form move_to_table
move data to processing table
FORM move_to_table.
LOOP AT it_vepo.
CLEAR t_data_tab.
delivery lines.
CLEAR w_lips.
READ TABLE it_lips WITH KEY vbeln = it_vepo-vbeln
posnr = it_vepo-posnr
INTO w_lips BINARY SEARCH. "SUM
MOVE-CORRESPONDING w_lips TO t_data_tab.
sales document line items
CLEAR w_vbup.
READ TABLE it_vbup WITH KEY vbeln = it_vepo-vbeln
posnr = it_vepo-posnr
INTO w_vbup BINARY SEARCH. "SUM
if w_vbup-kosta = space. "TR01-
not relevant for picking
delete t_vepo. "TR01-
continue. "TR01-
else. "TR01-
MOVE-CORRESPONDING w_vbup TO t_data_tab.
endif. "TR01-
sales doc header
CLEAR w_vbuk.
READ TABLE it_vbuk WITH KEY vbeln = it_vepo-vbeln
INTO w_vbuk BINARY SEARCH. "SUM
MOVE-CORRESPONDING w_vbuk TO t_data_tab.
delivery header
CLEAR w_likp.
READ TABLE it_likp WITH KEY vbeln = it_vepo-vbeln
INTO w_likp BINARY SEARCH. "SUM
MOVE-CORRESPONDING w_likp TO t_data_tab.
MB01 - START
DATA: w_routetype TYPE i. "0=non-global,1=1st route,2=2nd
route,3=both
At this point move DOOR2 if it falls within the global route scenario
and the door2 is satisfies the selection criteria for door
1. Does delivery fall within global route scenario
CLEAR w_routetype.
IF w_likp-zz2route = 'Y' .
1.a. First route - does door1 satisfy the selection criteria
IF w_likp-lgtor IN s_lgtor.
w_routetype = 1.
MOVE w_likp-zzexproute TO t_data_tab-route.
1.b. Second route - does door2 satisfy the selection criteria
ELSEIF w_likp-zzroute2lgtor IN s_lgtor.
here we need to move door2 to lgtor
w_routetype = 2.
MOVE w_likp-zzroute2lgtor TO t_data_tab-lgtor.
MOVE w_likp-zzroute2 TO t_data_tab-route.
ENDIF.
If both routes satsify the criteria, append for 2nd leg ***REVISIT!
IF w_likp-lgtor IN s_lgtor AND w_likp-zzroute2lgtor IN s_lgtor.
w_routetype = 3.
ENDIF.
ENDIF.
MB01 - END
Start of changes by ANV SR#11523
MB01 - If the delivery falls within the global route scenario... need
to select either preliminary shipment leg OR subsequent leg
when laufk= 1 (prelim) and linked to route1, if laufk = 2 (subseq) &
linked to route2
Shipment Number
SORT it_vttp BY vbeln laufk.
CLEAR w_vttp.
CASE w_routetype.
WHEN 0.
READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
INTO w_vttp BINARY SEARCH.
WHEN 1.
READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
laufk = '1'
INTO w_vttp BINARY SEARCH.
WHEN 2.
READ TABLE it_vttp WITH KEY vbeln = it_vepo-vbeln
laufk = '3'
INTO w_vttp BINARY SEARCH.
WHEN 3. "REVISIT
ENDCASE.
MOVE w_vttp-tknum TO t_data_tab-tknum.
MB01 - END
End of changes by ANV SR#11523
select handling unit info using vepo entry
CLEAR w_vekp.
IF t_vekp[] IS INITIAL.
SELECT SINGLE * FROM vekp INTO w_vekp
WHERE venum = it_vepo-venum.
ELSE.
READ TABLE t_vekp WITH KEY venum = it_vepo-venum
INTO w_vekp BINARY SEARCH. "SUM
IF sy-subrc NE 0.
SELECT SINGLE * FROM vekp INTO w_vekp
WHERE venum = t_vepo-venum.
ENDIF.
ENDIF.
MOVE-CORRESPONDING w_vekp TO t_data_tab.
*{ INSERT UKMK900355 2
WM status for HU "AS03
SELECT SINGLE * FROM zhu_to_link WHERE lgnum EQ w_vekp-lgnum"AS03
AND exidv EQ w_vekp-exidv."AS03
IF sy-subrc EQ 0. "AS03
IF zhu_to_link-zpick_comp EQ space. "AS03
t_data_tab-lvsta = 'B'. "AS03
ELSE. "AS03
t_data_tab-lvsta = 'C'. "AS03
ENDIF. "AS03
ENDIF. "AS03
*} INSERT
select pallet / van load information "Jvdm01-
SELECT SINGLE zpallet_no zcount_check FROM zpallettr "Jvdm01-
INTO (t_data_tab-zpallet_no, "Jvdm01-
t_data_tab-zcount_check) "Jvdm01-
WHERE exidv EQ w_vekp-exidv. "Jvdm01-
PERFORM read_pallet. "MB01+
SELECT SINGLE zpallet_no zcount_check zdep_point "Jvdm01+
FROM zpallettr "Jvdm01+
INTO (t_data_tab-zpallet_no, "Jvdm01+
t_data_tab-zcount_check, "Jvdm01+
t_data_tab-zdep_point) "Jvdm01+
WHERE exidv EQ w_vekp-exidv. "Jvdm01+
WHERE exidv EQ w_vekp-exidv "MB -
Toolbar buttons in ALV column tree
Dear Experts,
Currently a report is being displayed using 2 custom container and class CL_GUI_ALV_COLUMN_TREE in a single screen Screen 100.
Funtions like Select all, Deselect All, Expand All, Colapse all are in the GUI status of this Screen 100.
<b>Q1</b>. Is it possible to have buttons on the container itself (instead of having it in the GUI status of Scr. 100) and have the above funtions work for ALV column tree .
<b>Q2.</b> There exists a check box in each row of the node in both the containers which is meant for comparing data between two containers.
e.g the user Checks one row of the first container (ALV tree output) and another in 2nd container and press Compare button which is present in Scr 100 GUI status.
When the ckeck box is selected the rows are being selected, this is done in CheckBoX Change event of CL_GUI_ALV_COLUMN_TREE. Now when the Deselect ALL button is clicked rows are getting deselected but check marks are not getting cleared from the check box.
How can the check box be cleared when we press Deselect All button which is in GUI Status of Scr 100.?
Thanks n RegardsHello Mahesh
Assuming that you are dealing with class
CL_GUI_ALV_TREE (because I cannot find class CL_GUI_ALV_COLUMN_TREE) sample report BCALV_TREE_04 shows how to add a button to the toolbar.
The crucial points can be found in routine CHANGE_TOOLBAR:
form change_toolbar.
* §1.Get toolbar instance of your ALV Tree.
* When you instantiate an instance of CL_GUI_ALV_TREE the constructor
* of the base class (CL_ALV_TREE_BASE) creates a toolbar.
* Fetch its reference with the following method if you want to
* modify it:
call method g_alv_tree->get_toolbar_object
importing
er_toolbar = g_toolbar.
check not g_toolbar is initial. "could happen if you do not use the
"standard toolbar
* §2.Modify toolbar with methods of CL_GUI_TOOLBAR:
* add seperator to toolbar
call method g_toolbar->add_button
exporting
fcode = ''
icon = ''
butn_type = cntb_btype_sep.
* add Standard Button to toolbar (for Delete Subtree)
call method g_toolbar->add_button
exporting
fcode = 'DELETE'
icon = '@11@'
butn_type = cntb_btype_button
text = ''
quickinfo = text-901. "Delete subtree
endform.
Regards
Uwe -
Editable fields in Hierarchical ALV output
Hi Experts,
I have developed a report using hierarchical ALV display. I wanted to make some of the fields(in a particular column) editable in the output of Hierarchical ALV. Please provide your suggestions with examples.
Regards,
RajeshI am not getting what u mean,.
Coz I have done the editable property in my hierarcical ALV only...
I have header line and correspodning item lines.
In all header line I will make the 3rd column as editable...
CHECK below
*& Report ZFIR_WRITE_OFF
REPORT zfir_write_off
NO STANDARD PAGE HEADING
MESSAGE-ID zles.
TYPE-POOLS
TYPE-POOLS:slis.
TABLES
TABLES: kna1, t001, zdunning_data, bsid, t052.
INTERNAL TABLES
To check for bukrs in selection screen
DATA: BEGIN OF t_t001 OCCURS 0,
bukrs TYPE t001-bukrs,
END OF t_t001.
To check for the customer in selection screen
DATA: BEGIN OF t_kna1 OCCURS 0,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
END OF t_kna1.
*Data from BSID table
DATA: BEGIN OF t_bsid OCCURS 0,
bukrs LIKE bsid-bukrs,
budat LIKE bsid-budat,
kunnr LIKE bsid-kunnr,
belnr LIKE bsid-belnr,
zfbdt LIKE bsid-zfbdt,
zterm LIKE bsid-zterm,
dmbtr LIKE bsid-dmbtr,
waers LIKE bsid-waers,
vbeln LIKE bsid-vbeln,
END OF t_bsid.
*Data from ZDunning_data
DATA: BEGIN OF t_zdunning OCCURS 0,
belnr LIKE zdunning_data-belnr,
kunnr LIKE zdunning_data-kunnr,
zdef_notice_flg LIKE zdunning_data-zdef_notice_flg,
zterm_notice_flg LIKE zdunning_data-zterm_notice_flg,
END OF t_zdunning.
*Data from t052 for base line days
DATA: BEGIN OF t_t052 OCCURS 0,
zterm LIKE t052-zterm,
ztag1 LIKE t052-ztag1,
END OF t_t052.
*with duedate and date for write off calculation
DATA: BEGIN OF t_data OCCURS 0,
belnr LIKE bsid-belnr,
kunnr LIKE bsid-kunnr,
zterm LIKE bsid-zterm,
zfbdt LIKE bsid-zfbdt,
ztag1 LIKE t052-ztag1,
duedate LIKE bsid-zfbdt,
wdate LIKE bsid-zfbdt,
vbeln LIKE bsid-vbeln,
dmbtr LIKE bsid-dmbtr,
waers LIKE bsid-waers,
budat LIKE bsid-budat,
vbelv like vbfa-vbelv,
Name1 like kna1-name1,
END OF t_data.
*Output display in ALV report
DATA: BEGIN OF t_output OCCURS 0,
Flag type C,
bukrs LIKE bsid-bukrs,
kunnr LIKE bsid-kunnr,
vbeln LIKE bsid-vbeln, "Invoice
posnv like vbfa-posnv,
wdate LIKE bsid-zfbdt,
belnr LIKE bsid-belnr,
dmbtr LIKE bsid-dmbtr,
waers LIKE bsid-waers,
budat LIKE bsid-budat,
vbelv like vbfa-vbelv, "Contract
name1 like kna1-name1,
duedate like bsid-zfbdt,
END OF t_output.
To get contract number for the billing document number
DATA: BEGIN OF t_vbfa OCCURS 0,
vbelv LIKE vbfa-vbelv,
vbeln LIKE vbfa-vbeln,
POSNV like vbfa-POSNV,
END OF t_vbfa.
data: begin of t_cust occurs 0,
KUNNR like kna1-kunnr,
name1 like kna1-name1,
end of t_cust.
data: begin of t_head occurs 0,
VBELv like vbfa-vbelv,
posnv like vbfa-posnv,
VKUEGRU type ZLIST_WO_RCANCEL,
end of t_head.
data: begin of it_veda occurs 0,
VBELn LIKE Veda-VBELN,
POSNR LIKE Veda-VPOSN,
VKUEGRU LIKE Veda-VKUEGRU,
end of it_veda.
VARIABLE DECLARATION
DATA: l_duedate LIKE bsid-zfbdt,
l_wdate LIKE bsid-zfbdt.
VARIABLE FOR ALV DISPLAY
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA: t_fieldcat1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
wa_fieldcat1 TYPE slis_fieldcat_alv.
DATA: t_layout TYPE slis_layout_alv.
DATA: g_repid LIKE sy-repid.
SELECTION-SCREEN
*Selection Screen Parameters for user input
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
*Company Code
p_bukrs LIKE t001-bukrs OBLIGATORY.
SELECT-OPTIONS:
*Customer Number
s_kunnr FOR kna1-kunnr OBLIGATORY DEFAULT '0' TO 'ZZZZZZZZZZ'.
PARAMETERS:
*Write Off Date
p_wodate TYPE sy-datum OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
AT SELECTION-SCREEN
*Selection Screen validation for Company code
AT SELECTION-SCREEN ON p_bukrs.
SELECT SINGLE bukrs FROM t001 "#EC *
INTO t_t001
WHERE bukrs = p_bukrs.
IF sy-subrc NE 0.
*Error message for Invalid Company Code
MESSAGE e000 WITH text-002.
ENDIF.
*Selection Screen Validation for Customer
AT SELECTION-SCREEN ON s_kunnr.
IF NOT s_kunnr IS INITIAL.
SELECT SINGLE kunnr name1
FROM kna1 "#EC *
INTO t_kna1
WHERE kunnr IN s_kunnr.
IF sy-subrc NE 0.
*Error message for Invalid Customer Number
MESSAGE e000 WITH text-003.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON p_wodate.
IF p_wodate IS INITIAL.
p_wodate = sy-datum.
ENDIF.
INITIALIZATION
INITIALIZATION.
PERFORM clear_data.
START-OF-SELECTION
START-OF-SELECTION.
*Get the Accounting Document Number and base line date from BSID
SELECT bukrs kunnr belnr budat zfbdt zterm dmbtr waers vbeln
FROM bsid
INTO corresponding fields of TABLE t_bsid
WHERE kunnr IN s_kunnr AND
bukrs = p_bukrs.
IF NOT t_bsid[] IS INITIAL.
*Get the Dunning data based on the Accounting Document Number from BSID
SELECT belnr kunnr zdef_notice_flg zterm_notice_flg
FROM zdunning_data
INTO TABLE t_zdunning
FOR ALL ENTRIES IN t_bsid
WHERE kunnr = t_bsid-kunnr AND
belnr = t_bsid-belnr AND
zdef_notice_flg = 'Y' AND
zterm_notice_flg = 'Y'.
*Get the base line days from t052 table based on BSID data
SELECT zterm ztag1
FROM t052
INTO TABLE t_t052
FOR ALL ENTRIES IN t_bsid
WHERE zterm = t_bsid-zterm.
*Calculate the due date(bse line date BSID-ZFBDT + base line days
*T052-ZTAG )
IF NOT t_zdunning[] IS INITIAL.
Get the customer name
Select KUNNR NAME1 from KNA1
INTO table t_cust
for all entries in t_zdunning
where kunnr = t_zdunning-kunnr.
LOOP AT t_zdunning.
LOOP AT t_bsid.
CLEAR t_zdunning.
READ TABLE t_zdunning WITH KEY belnr = t_bsid-belnr
kunnr = t_bsid-kunnr.
CHECK sy-subrc = 0.
CLEAR t_t052.
READ TABLE t_t052 WITH KEY zterm = t_bsid-zterm.
IF sy-subrc = 0 .
t_data-belnr = t_zdunning-belnr.
t_data-kunnr = t_zdunning-kunnr.
Clear t_cust.
read table t_cust with key kunnr = t_zdunning-kunnr.
if sy-subrc = 0.
t_data-name1 = t_cust-name1.
endif.
t_data-zterm = t_bsid-zterm.
t_data-zfbdt = t_bsid-zfbdt.
t_data-ztag1 = t_t052-ztag1.
t_data-vbeln = t_bsid-vbeln.
t_data-dmbtr = t_bsid-dmbtr.
t_data-waers = t_bsid-waers.
t_data-budat = t_bsid-budat.
*calculate duedate
CLEAR l_duedate.
l_duedate = t_bsid-zfbdt + t_t052-ztag1.
t_data-duedate = l_duedate.
*calculate date for write off
CLEAR l_wdate.
l_wdate = l_duedate + 180.
t_data-wdate = l_wdate.
APPEND t_data.
CLEAR l_wdate.
CLEAR l_duedate.
ENDIF.
ENDLOOP.
ELSE.
MESSAGE s000 WITH text-005.
ENDIF.
*Check the wdate with write off date in the selection screen value.
*If this calculated date is Greater than value enetred in selection
*screen, display the corresponding data in ALV report.
IF NOT t_data[] IS INITIAL.
SELECT vbelv vbeln
POSNV
FROM vbfa
INTO TABLE t_vbfa
FOR ALL ENTRIES IN t_data
WHERE vbeln = t_data-vbeln.
and
VBTYP_V = 'G'.
*If reason for cancelation is there, no writeoff.
Select VBELn VPOSN VKUEGRU from Veda
into table it_veda
for all entries in t_vbfa
where vbeln = t_vbfa-vbelv.
SELECT vbelv
POSNV
FROM vbfa
INTO TABLE t_Head
FOR ALL ENTRIES IN t_data
WHERE vbeln = t_data-vbeln
and
VBTYP_V = 'G'.
loop at t_head.
clear it_veda.
Read table it_veda with key vbeln = t_head-vbelv
posnr = t_head-posnv.
if not it_veda-VKUEGRU is initial.
Delete t_head where vbelv = it_veda-vbeln and
posnv = it_veda-posnr.
endif.
endloop.
LOOP AT t_data.
IF t_data-wdate LE p_wodate.
t_output-bukrs = p_bukrs.
t_output-kunnr = t_data-kunnr.
CLEAR t_vbfa.
READ TABLE t_vbfa WITH KEY vbeln = t_data-vbeln.
read table t_head with key vbelv = t_vbfa-vbelv
posnv = t_vbfa-posnv.
if sy-subrc = 0.
t_output-vbelv = t_vbfa-vbelv.
t_output-posnv = t_vbfa-posnv.
t_output-name1 = t_data-name1.
t_output-wdate = t_data-wdate.
t_output-belnr = t_data-belnr.
t_output-dmbtr = t_data-dmbtr.
t_output-waers = t_data-waers.
t_output-budat = t_data-budat.
t_output-vbeln = t_data-vbeln.
t_output-duedate = t_data-duedate .
APPEND t_output.
ENDIF.
clear t_output.
ENDIF.
ENDLOOP.
ELSE.
MESSAGE s000 WITH text-006.
ENDIF.
*ALV display for the output records
IF NOT t_output[] IS INITIAL.
PERFORM alv_display.
ELSE.
MESSAGE s000 WITH text-006.
ENDIF.
ELSE.
MESSAGE s000 WITH text-004.
ENDIF.
*& Form clear_data
text
--> p1 text
<-- p2 text
FORM clear_data .
CLEAR:t_t001,
t_kna1,
t_bsid,
t_zdunning,
t_t052,
t_data,
t_output,
wa_fieldcat,
t_layout,
t_fieldcat,
t_vbfa.
REFRESH:t_t001,
t_kna1,
t_bsid,
t_zdunning,
t_t052,
t_data,
t_output,
t_fieldcat,
t_vbfa.
clear:t_head,
it_veda.
Refresh:t_head,
it_veda.
Clear T_cust.
Refresh t_data.
ENDFORM. " clear_data
*& Form alv_display
text
--> p1 text
<-- p2 text
FORM alv_display .
*To build the field catalogue
PERFORM build_fieldcatalog1.
PERFORM build_fieldcatalog.
*To build the ALV layout
PERFORM build_layout.
*To displayt the data in ALV report
PERFORM display_alv_report.
ENDFORM. " alv_display
*& Form build_fieldcatalog
text
--> p1 text
<-- p2 text
FORM build_fieldcatalog1 .
REFRESH t_fieldcat1.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-fieldname = 'VBELV'.
wa_fieldcat-tabname = 'T_HEAD'.
wa_fieldcat-seltext_l = 'Contract Number'.
wa_fieldcat-Checkbox = 'X'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-no_out = 'X'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-fieldname = 'POSNV'.
wa_fieldcat-tabname = 'T_HEAD'.
wa_fieldcat-seltext_l = 'Item Number'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-fieldname = 'VKUEGRU'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-input = 'X'.
wa_fieldcat-tabname = 'T_HEAD'.
wa_fieldcat-drdn_hndl = '1'.
wa_fieldcat-seltext_l = 'Reason for Cancel'.
wa_fieldcat-outputlen = '25'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
endform.
FORM build_fieldcatalog .
REFRESH t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Customer Number'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Customer Name'.
wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-fieldname = 'VBELV'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Contract Number'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Invoice No.'.
wa_fieldcat-outputlen = '10'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-fieldname = 'BELNR'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Acc doc Number'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '9'.
wa_fieldcat-fieldname = 'WAERS'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Currency'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '10'.
wa_fieldcat-fieldname = 'DMBTR'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-do_sum = 'X'. "SUM UPON DISPLAY
wa_fieldcat-datatype = 'CURR'.
wa_fieldcat-seltext_l = 'Amount'.
wa_fieldcat-outputlen = '15'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '11'.
wa_fieldcat-fieldname = 'DUEDATE'.
wa_fieldcat-tabname = 'T_OUTPUT'.
wa_fieldcat-seltext_l = 'Due Date'.
wa_fieldcat-outputlen = '20'.
APPEND wa_fieldcat TO t_fieldcat.
data: lt_dropdown type lvc_t_drop,
ls_dropdown type lvc_s_drop.
First listbox (handle '1').
ls_dropdown-handle = '1'.
ls_dropdown-value = 'KG'.
append ls_dropdown to lt_dropdown.
ls_dropdown-handle = '1'.
ls_dropdown-value = 'G'.
append ls_dropdown to lt_dropdown.
call method g_grid->set_drop_down_table
exporting it_drop_down = lt_dropdown.
ENDFORM. " build_fieldcatalog
*& Form build_layout
text
--> p1 text
<-- p2 text
FORM build_layout .
t_layout-no_input = 'X'.
t_layout-colwidth_optimize = 'X'.
ENDFORM. " build_layout
*& Form display_alv_report
text
--> p1 text
<-- p2 text
FORM display_alv_report .
g_repid = sy-repid.
data g_keyinfo type SLIS_KEYINFO_ALV.
g_keyinfo-HEADER01 = 'VBELV'.
g_keyinfo-ITEM01 = 'VBELV'.
g_keyinfo-HEADER02 = 'POSNV'.
g_keyinfo-ITEM02 = 'POSNV'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_interface_check = 'I'
i_callback_program = g_repid
i_callback_pf_status_set = 'SET_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = t_fieldcat[]
i_default = ' '
i_save = 'A'
i_tabname_header = 'T_HEAD'
i_tabname_item = 'T_OUTPUT'
i_structure_name_header = v_headers_table
i_structure_name_item = v_items_table
is_keyinfo = g_keyinfo
i_bypassing_buffer = 'X'
TABLES
t_outtab_header = t_head[]
t_outtab_item = i_result
t_outtab_item = t_output[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
REFRESH: t_fieldcat[].
refresh t_fieldcat1[].
ENDFORM. " display_alv_report
form SET_STATUS using extab TYPE slis_t_extab.
SET PF-STATUS 'ZEO_S1' .
endform.
*& Form Top_Of_Page
Top_Of_Page event in ALV
FORM top_of_page .
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
Title
wa_header-typ = 'H'.
wa_header-info = ' Write Off Worklist'.
APPEND wa_header TO t_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. "Top_Of_Page
*User Command for the button
form user_command using r_ucomm type syucomm
ls_selfield type SLIS_SELFIELD.
Break-point.
case r_ucomm.
when 'EXEC'.
data: begin of lt_cancel occurs 0.
include structure ZCANCEL.
data end of lt_cancel.
Clear lt_cancel.
Refresh lt_cancel.
Data: ref1 type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = ref1.
call method ref1->check_changed_data.
loop at t_Head where VKUEGRU is not initial.
if ( t_HEAD-VKUEGRU NE '1' ) or
( t_Head-VKUEGRU NE '2' ) or
( t_head-VKUEGRU NE '3' ).
Clear t_head-vkuegru.
message e000 with text-110.
endif.
lt_cancel-vbeln = t_head-vbelv.
lt_cancel-posnr = t_head-posnv.
lt_cancel-VKUEGRU = t_head-VKUEGRU.
Append lt_cancel.
Clear lt_cancel.
Endloop.
CALL FUNCTION 'ZSD_CNTR_CANCEL'
TABLES
zcancel = lt_cancel.
message s000 .
endcase.
endform. -
Switching between Hierarchical ALV and List/Grid ALV
Hello!
I was checking out the List of GR/IR Balances report (tcode MB5S), which uses Hierarchical ALV. I noticed that there's a button in the output toolbar that enables you to switch from Hierarchical ALV to Grid ALV. Is there a specific setting in the ALV that you need to define in order to use this feature?
Thanks in advance.Hi,
there is no need of any specific settings.
those properties will came when u use the related function module.all the code for this will exist in the function module u r using for creating the hierarchial display.
regards,
bharat. -
Web dynpro for abap how to create a customize search help in alv column
hi:
Web dynpro for abap how to create a customize search help in alv column and put search help value into alv column?
Are there specific examples ?
thanks!!HI:
I want to created a freely programed help which include date&time,and put help value to alv column.
I have created a freely programed help in web dynpro for abpa application,I refer:
**************** - WebDynpro for ABAP
but have a problem!
If you focus on the the input field in the first row, you get the value help
However if I go to the second row and focus on the same input field in this column, I don't get the value help:
What is a good way to solve similar problems?
thanks -
Problem while exporting ALV column header to excel sheet.
Hi,
I am able to export an ALV grid details to an excel sheet. But the ALV column headers when exported to excel sheet are getting truncated.
For eg: if my column header in ALV grid is displayed as 'Material' then the column header in excel sheet is 'Mater' only. Remaining portion is getting truncated.
How can I view the entire column header text?
Kindly assist.
Thanks.I have the same problem with you, when user export to excel. I fixed it by using
w_layo-colwidth_optimize = 'X'. <<<<<<<<<<<<This
perform generate_fcat_reftab
using 'PRUEFLOS' 'T_INPUT' '' '' 'Inspection Lot' 0.
form generate_fcat_reftab using p_fieldname
p_tabname
p_ref_tabname
p_ref_fieldname
p_output_text
p_output_lenght.
clear w_fcat.
w_fcat-fieldname = p_fieldname.
w_fcat-tabname = p_tabname.
w_fcat-ref_fieldname = p_ref_fieldname.
w_fcat-ref_tabname = p_ref_tabname.
w_fcat-seltext_s = p_output_text.
w_fcat-seltext_m = p_output_text.
w_fcat-seltext_l = p_output_text.
w_fcat-outputlen = p_output_lenght.
w_fcat-ddictxt = 'L'. <<<<<<<<<<<<<<<<<<This
append w_fcat to t_fcat.
endform. -
Get the header in centre,make bold, change font in hierarchical alv list
Hi all
I need to get the following header in the centre for hierarchical alv list:
ex:
General Ledger -
want it to be bold
July 2009 -
want to change font to be less than 1st line
Please help me to achieve this.
I have got the header in the middle using write statements in top of page.
But am not able to get it bold and change the font.
Thanking in advance.Hi all
I need to get the following header in the centre for hierarchical alv list:
ex:
General Ledger ( want it to be bold)
July 2009 (want to change font to be less than 1st line )
Please help me to achieve this.
I have got the header in the middle using write statements in top of page.
But am not able to get it bold and change the font.
Thanking in advance. -
Show image in Web Dynpro ALV column
Hello everybody,
I have a WD component with an ALV table bound to a context node. Works very fine so far.
Now in the first column of the node I have put an image source (MIME object in my WD component).
I configured the first ALV column as Link To Action and now would like to link it to the image source. My problem is that the image is not loaded in the ALV.
This is my coding (INIT method of my view):
METHOD wddoinit .
DATA: lo_alv_cmp TYPE REF TO if_wd_component_usage,
lo_alv_if TYPE REF TO iwci_salv_wd_table,
lo_alv_config TYPE REF TO cl_salv_wd_config_table,
lo_column_settings TYPE REF TO if_salv_wd_column_settings,
lo_column TYPE REF TO cl_salv_wd_column,
lo_link_to_action TYPE REF TO cl_salv_wd_uie_link_to_action.
get instance of ALV component
lo_alv_cmp = wd_this->wd_cpuse_alv( ).
IF lo_alv_cmp->has_active_component( ) IS INITIAL.
lo_alv_cmp->create_component( ).
ENDIF.
get instance of ALV Interface Controller
lo_alv_if = wd_this->wd_cpifc_alv( ).
configure ALV
lo_alv_config = lo_alv_if->get_model( ).
lo_column_settings ?= lo_alv_config.
lo_column = lo_column_settings->get_column( 'IMAGE' ).
CREATE OBJECT lo_link_to_action.
fix settings for test purpose (how must I change it to get the information from the context node??)
lo_link_to_action->set_image_height( '50px' ).
lo_link_to_action->set_image_width( '50px' ).
lo_link_to_action->set_image_source( 'ICE Flottenportal.jpg' ).
lo_column->set_cell_editor( lo_link_to_action ).
ENDMETHOD.
Thanx a lot in advance for any help!!Thanks a lot for your helpful advice.
I now found that method cl_wdr_utilities=>get_mime_path is the best way to get the path.
But one question is still open:
How can I retrieve my image source from the context? Do I have to read the context and then write it to the image_source attribute? Or ist there a more elegant solution?
Thank you for any help! -
How to Display Formatted Text IN ALV Column?
HI experts ,
I am displaying ALV with Multiple Column's , One of the Column is TEXT(Fomatted text).
When ALV is Displayed TEXT Column Comes as Continues TEXT . and is Not Formatted .
Now when i want to edit this text i am Calling another View which contains text edit . This Text edit will display correct Formatted Text . but when i save it and Come back to ALV again i do see continues text .
Is there any way where in i can display the Formatted text in ALV Column ?
Any body have any clue with this ...
Thanks in Advance
Patil
Edited by: Badarinarayan Patil on Feb 22, 2008 3:45 PMHi Juergen,
I found Your blog and found it really interesting... though I was not able to use it: I (like Jun Li is asking, I guess) need to use a dynamic text, containing formatting informations (according the xhtml syntax).
I tried to pass it to the form by an ABAP-dictionary based interface and by means of the context (in a webdynpro page), but both tries failed.
Some suggestion will be greatly appreciated.
Thankyou
Simone -
How to create space between Header text of Hierarchical ALV List.
hi,
I am display data using Hierarchical ALV List.
In Perform of field catalog, I am writing this code:
PERFORM fill_catalogue USING :
'CHKBX' 'T_HEADER' 20 'Sess Decision Box'(t19) 'X',
'SESS_NO' 'T_HEADER' 11 'Session'(t20) ' ' ,
'SESS_STAT' 'T_HEADER' 4 'Status'(t39) ' ',
'HOLD_STAT' 'T_HEADER' 4 'HOLD'(t52) ' ',
'ICON' 'T_HEADER' 9 'Tracking'(t21) ' ' ,
'CREATE_DT' 'T_HEADER' 10 'Archiving Date'(t22) ' ' ,
'AGING' 'T_HEADER' 50 'Aging'(t23) ' ',
'OBJECT' 'T_HEADER' 12 'Archive Obj'(t24) ' ',
'HOLD_INFO' 'T_HEADER' 100 'Hold Reason' ' ' ,
'YFY_DATA' 'T_HEADER' 4 'Data Fiscal Year'(t48) ' ' ,
'COMMENTS' 'T_HEADER' 50 'Session Notes'(t26) ' ' ,
'DATATYPE' 'T_HEADER' 50 'Archive Object Description'(t25) ' ',
'APPR_STAT' 'T_ITEM' 16 'Approval Status'(t29) ' ',
'DESTR_DT_REV' 'T_ITEM' 10 'New Date'(t30) ' ',
'REJCT_REASON' 'T_ITEM' 60 'Rejection Reason'(t31) ' ' .
At output of this program , there are two rows in HEADER details.
I want text 'Session notes' of 2nd row under 'Archiving Date' of 1st row.
For this i have to create space between 'Data Fiscal Year' & 'Session notes' text.
How i can do this.
Regards,
MamtaHi,
You can use TOP-OF-PAGE event and pass this event to Hierarchical ALV FM.
Thanks,
Kartavya Kaushik.
Maybe you are looking for
-
Photo gallery not showing up in internet explorer
Hi, I have created a site with multiple photo pages. On my mac using safari it all appears correctly, but using my laptop and internet explorer none of the photos appear, and it states "done with errrors on page". Any ideas? thansk
-
Adobe Media Encoder Fails Midway Through Encode, But Says File Was Successfully Encoded
When I send a sequence from Premiere Pro to the AME queue and then start the queue, the encode runs through about a third to half of the sequence and then fails. However, AME says the encode is complete, and gives it a green check mark in the list. T
-
ITunes Error 7 (Windows Error 127). I can't get iTunes to open!?
I recently downloaded iTunes 10.5 on my Windows 7 64 bit...Now, when I click on iTunes, a notice pops up that says "The procedure entry point AQOfflineMixerNew could not be located in the dynamic link library CoreAudioToolbox.dll." Then another that
-
I know this is not a "new" error message, but I have never gotten it on any previous version of Illustrator. I just upgraded to CS 4 and now get it on virtually every file when I try to nudge an object in any direction. Not that it should matter, but
-
Differences in shopping cart status
Hi, There is a difference coming in shoppin cart status depending on how one is accept's changes of rejected of SC, like if you log on the portal and accept the changes, the description reads rejected, which is correct but if you accpet the changes u