A question about ALV subtotal
Hello Expert,
I have a question about ALV subtotal
In my ALV output, there are three columns: SalesOrder, Item, Sales Volumn. Suppose there are following data in the ALV output
SalesOrder Item Volumn
123 10 100.00
123 20 300.00
456 10 200.00
456 20 500.00
What I want in the ALV outpu is as below:
SalesOrder Item Volumn
123 10 100.00
123 20 300.00
subtotal 400.00
456 10 200.00
456 20 500.00
Subtotal 700.00
Total 1100.00
Is this possible, and how can I achieve that result?
Thanks & Regards, Johnny
You can use sortinfo structure of ALV.
Data:GT_SORT TYPE slis_t_sortinfo_alv.
GTT_SORT-FIELDNAME = 'VBELN'.
GTT_SORT-UP = 'X'.
GTT_SORT-SUBTOT = 'X'.
APPEND GTT_SORT TO GT_SORT.
Similar Messages
-
Questions about ALV object model
Hi,
for a new report i´m planing to use the "new" ALV object model to create the ALV list. Now I´ve got two questions concerning this topic:
- is it possible to switch the ALV into the edit mode like it´s possible if the "old" CL_GUI_ALV_GRID class
is used?
- how I can encolor specific cells?
I couldn´t find any hints or demo programms for these questions
Regards,
Andyit is not possible to Edit the ALV using Object Model.
For coloring...check this code.
DATA: alv TYPE REF TO cl_salv_table.
TYPES: BEGIN OF ty_tab,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
color TYPE lvc_t_scol,
END OF ty_tab.
DATA: wt_color TYPE lvc_t_scol,
wa_color TYPE lvc_s_scol,
w_color TYPE lvc_s_colo.
DATA: wa_flight TYPE ty_tab.
DATA: column_tab TYPE REF TO cl_salv_columns_table,
column TYPE REF TO cl_salv_column_table.
DATA: column_ref TYPE salv_t_column_ref,
wa LIKE LINE OF column_ref.
DATA: it_flight TYPE STANDARD TABLE OF ty_tab.
SELECT carrid connid FROM sflight
INTO CORRESPONDING FIELDS OF TABLE it_flight
UP TO 10 ROWS.
w_color-col = 4.
w_color-int = 0.
w_color-inv = 0.
LOOP AT it_flight INTO wa_flight.
w_color-col = 4.
wa_color-fname = 'CARRID'.
wa_color-color = w_color.
APPEND wa_color TO wt_color.
w_color-col = 6.
wa_color-fname = 'CONNID'.
wa_color-color = w_color.
APPEND wa_color TO wt_color.
wa_flight-color = wt_color.
MODIFY it_flight FROM wa_flight.
ENDLOOP.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = it_flight
"get all the columns
column_tab = alv->get_columns( ).
column_tab->set_color_column( value = 'COLOR' ).
column_ref = column_tab->get( ).
"loop each column
LOOP AT column_ref INTO wa.
"Conditionally set the column type as key or non key
IF wa-columnname = 'CARRID'.
column ?= wa-r_column.
column->set_key( abap_true ).
ENDIF.
ENDLOOP.
alv->display( ). -
Hi,
I need to add a custom button to the alv grid menu and i couldnt able to see the screen when i execute this program. Will u please tell me how to add a new button to the existing application toolbar of the ALV grid. I had tried this code but couldnt succeeded.
Here is my code.
REPORT ZZZZ .
*& Report ZZZZ
type-pools: slis.
Data to be displayed
data: gt_wrkpool type table of zte_wrkpool.
data: gs_wrkpool type zte_wrkpool.
data: gs_layout type slis_layout_alv.
DATA:G_REPID TYPE SY-REPID.
Selection
select * from zte_wrkpool into corresponding fields of table gt_wrkpool.
Eingabebereit
gs_layout-edit = 'X'.
G_REPID = SY-REPID.
Call ABAP List Viewer (ALV)
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_CALLBACK_PROGRAM = g_repid
I_CALLBACK_USER_COMMAND = 'ACTION'
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
i_structure_name = 'zte_wrkpool'
is_layout = gs_layout
IT_SORT = SORT[]
IT_EVENTS = events[]
tables
t_outtab = gt_wrkpool.
FORM pf_status_set USING gt_extab TYPE slis_t_extab.
SET PF-STATUS <ZSTANDARD>.
ENDFORM.
Create another subroutine:
*& Form user_command
Takes the User command and acts accordingly
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
call function 'sAP_WI_FORWARD'
endform.Hi vicky,
1. The important things are :
a) New PF-STATUS is required , say 'ABCD'.
b) Handle user_commmand
2. First of all, from Function group SALV,
copy the STANDARD gui status to your program,
from SE80, by right clicking.
3. come to your program.
start-of-selection.
SET PF-STATUS 'ABCD'.
4. Double click ABCD and activate the gui status.
6. AT USER-COMMAND.
IF sy-ucomm = 'MYFCODE'.
ENDIF.
regards,
amit m. -
Simple question about ALV sorting
I retrieve data from SFLIGHT table and display it in ALV by using cl_salv_table class. I added a sorting column PRICE as follows:
data r_salv_sort type ref to cl_salv_sorts.
r_salv_sort = r_salv_table->get_sorts( ).
r_salv_sort->add_sort('PRICE').
and got exception message:
Subtotals cannot be calculated on aggregatable columns
it is fine when I change from PRICE column to CONNID column.
What could be the reason for that? I just want to sort the Price column. Thanks!We can do the sorting on the Quantity or Amount column once it ALV is displayed. Because now the control is no more with the SALV model. It is with the ALV framework.
SALV model doesn't allow the sorting on the columns on which you can perform the Agreegation.
You can save the default layout variant and then start the ALV with that variant.
Regards,
Naimesh Patel -
Hi, everybody.
I'm developing a dynpro which showing a table on screen.
I use a CL_GUI_ALV_GRID to realize the table.
But now, I meet a problem, we want to keep some rows uneditable, and still allow other rows be editable.
I know how to set a column (un)editable in ALV, but how to do with a row case?
Any suggestion and solution is welcome.
Thanks a lot.Hello,
In order to make individual Cells (i. e. rows, not whole columns) editable, you need to
1) Add a field of type LVC_T_STYL to the structure of your table (in this example, lets say you have named the table variable it_list). The type LVC_T_STYL is a table type, so this way you will add an "inner table" to your table. For this example, I will call this inner table "CELLSTYLES".
2) In this inner table you can add individual styles for each cell of the current line. To make single cells editable, you utilize code like this:
data: wa_cellstyle type lvc_t_styl.
loop at it_list into wa_list.
if <place conditional logic here>.
wa_cellstyle-fieldname = '<Name of editable cell>'.
wa_cellstyle-style = cl_gui_alv_grid=>mc_style_enabled.
insert wa_cellstyle into wa_list-cellstyles.
endif.
modify it_list from wa_list.
endloop.
I have put together this "from scratch", as I dont have acces to a system right now, so you might have to make some changes, but the general outline of it should be clear...
Hope this helps,
Joerg
Message was edited by: Joerg Loosen -
What's it all about ALV?
Dear All
This fine day I have had a fair few questions about the ALV land on my
doorstep, asking what articles were around. I have never found any good
ones. The online help ranges from patchy and confusing to non-existant, and
keeps bursting into German. I started off with the example in the "reporting
made easy" book which scratches the surface, and then have progressed by
trial and error.
The chances of there being any meaningful documentation for an SAP function
module tend to be inversely proportional to how useful it is. One trick I
have found is that when it tells you "Documentation not available in
language EN", log off and log back on in German. Go back to the function
module and look again. Sometimes the documentation appears - in English. But
more often than not it's not there at all.
Anyway, back to the ALV:-
The things I have discovered were how to
change the name of fields
add extra buttons to the toolbar at the top
get a box with the users selections to appear when the report is
printed
have traffic lights say if a record is OK or not
allow the user to enter the initial display variant on the front
screen
have the user name and date appear at the top of the report
Here is a "Frankenstien's Monster" containing extracts of code from several
reports, and re-arranged into a logical order. this doesn't do anything, but
contains examples of how to do all sorts.
report z-alv_a_sixpence.
include z_alv_include.
Internal Tables
Selection Screen
Parameter for the user to choose how the initial screen will be (vital
for running big reports in background)
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK blk3.
At Selection-Screen have a word with the display variant
AT SELECTION-SCREEN.
PERFORM check_variant.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
START-OF-SELECTION.
END-OF-SELECTION.
Build Field Catalogs (Begin)**************************
PERFORM resetvalues.
fieldcat_ln-key = 'X'.
fieldcat_ln-hotspot = 'X'.
PERFORM addfield USING '2' 'LIKP' 'WERKS'. "Plant
PERFORM build_sortcat.
******Build Field Catalogs (End)*****************************
******Build Event Catalog (Begin)****************************
PERFORM build_eventcat.
PERFORM build_layout.
********Add a header at the top of the report *******
PERFORM set_report_header USING w_list_top_of_page[].
********Start List Viewer
PERFORM start_list_viewer.
******Start List Viewer (End)********************************
*******Process Call Back Events (Begin)**************************
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE ucomm.
WHEN '&IC1'.
READ TABLE irepo INDEX selfield-tabindex.
CHECK sy-subrc = 0.1. your listed programm below has an include (z_alv_include) which you
didn't supply.
2. have a look at the developement class 'SLIS' which contains manyexamples
for ALV-programs.
3. In BC405 one chapter is about reports with ALV. -
Can somebody give me a sample about alv oo?
hi experts ,can you give me a sample about alv using oo method,
i have tried
data GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
data lt_fieldcat TYPE slis_t_fieldcat_alv.
call method alv_grid->set_table_for_first_display
exporting is_layout = gs_layout
changing it_outtab = itab_data
it_fieldcatalog = lt_fieldcat.
but the code cann't be compiled, and says "lt_fieldcat is not type-compatible with formal parameter it_fieldcatalog.",and so is the gs_layout.
can you give me a sample for using alv oo ,and use the fieldcat to set table for first display, not to use i_structure_name.
Message was edited by:
liu shaochangHi,
Please take a look at my code below. Just create a custom control in screen painter and PF-status and title as well. Hope it helps...
P.S. Please award points if it helps...
[code]
*& Report ZFI_CASH_PROOF_SHEET
*& PROGRAM TYPE : Report
*& RICEF ID : R-149
*& TITLE : ZFI_CASH_PROOF_SHEET
*& SAP Module : FI
*& CREATION DATE : 11/06/2007
*& AUTHOR : Aris Hidalgo
*& DESIGNER : Aris Hidalgo
*& DESCRIPTION :
$*********************************************************************
*$ CHANGE HISTORY
*$----
*$ DATE | T-Num | Description | Reference
| | |
$*********************************************************************
REPORT zfi_cash_proof_sheet
NO STANDARD PAGE HEADING
MESSAGE-ID zfi.
Data Dictionary Table/s *
TABLES: t012k.
CLASS lcl_event_receiver DEFINITION DEFERRED.
Global Data/s *
DATA: gt_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF gt_fieldcat,
ok_code TYPE syst-ucomm,
save_ok TYPE syst-ucomm,
g_repid TYPE syst-repid,
gs_layout TYPE lvc_s_layo,
gv_container TYPE scrfname VALUE 'CUSTOM_CONTROL',
lcl_grid1 TYPE REF TO cl_gui_alv_grid,
lcl_custom_container TYPE REF TO cl_gui_custom_container,
gs_disvariant TYPE disvariant,
lcl_event_receiver TYPE REF TO lcl_event_receiver,
gt_sort TYPE lvc_t_sort,
gs_sort TYPE lvc_s_sort.
Global Structure/s *
TYPES: BEGIN OF t_output,
bukrs TYPE bsis-bukrs,
hbkid TYPE t012k-hbkid,
hktid TYPE t012k-hktid,
cash_in_bank TYPE bsis-dmbtr,
one_day TYPE bsis-dmbtr,
two_days TYPE bsis-dmbtr,
more_than_two_days TYPE bsis-dmbtr,
misc_collection TYPE bsis-dmbtr,
outs_rel_checks TYPE bsis-dmbtr,
treas_transactions TYPE bsis-dmbtr,
tot_cash_bal TYPE bsis-dmbtr,
outs_unrel_checks TYPE bsis-dmbtr,
imp_docs_due TYPE bsis-dmbtr,
est_cash_balance TYPE bsis-dmbtr,
END OF t_output.
DATA: gt_output TYPE STANDARD TABLE OF t_output,
wa_output LIKE LINE OF gt_output.
SELECTION-SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_bukrs FOR t012k-bukrs OBLIGATORY,
s_hbkid FOR t012k-hbkid,
s_hktid FOR t012k-hktid.
PARAMETERS: p_budat TYPE bsak-budat OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
*/ CLASS DEFINITION/S */
CLASS lcl_data_def DEFINITION
CLASS lcl_data_def DEFINITION ABSTRACT.
PUBLIC SECTION.
TYPES: BEGIN OF t_t012k,
bukrs TYPE t012k-bukrs,
hbkid TYPE t012k-hbkid,
hktid TYPE t012k-hktid,
hkont TYPE t012k-hkont,
END OF t_t012k.
TYPES: BEGIN OF t_bsis_bsas,
bukrs TYPE bsis-bukrs,
hkont TYPE bsis-hkont,
belnr TYPE bsis-belnr,
buzei TYPE bsis-buzei,
gjahr TYPE bsis-gjahr,
budat TYPE bsis-budat,
blart TYPE bsis-blart,
dmbtr TYPE bsis-dmbtr,
shkzg TYPE bsis-shkzg,
END OF t_bsis_bsas.
TYPES: BEGIN OF t_bsid_bsad,
bukrs TYPE bsid-bukrs,
belnr TYPE bsid-belnr,
gjahr TYPE bsid-gjahr,
blart TYPE bsid-blart,
buzei TYPE bsid-buzei,
budat TYPE bsid-budat,
dmbtr TYPE bsid-dmbtr,
shkzg TYPE bsid-shkzg,
bschl TYPE bsid-bschl,
END OF t_bsid_bsad.
TYPES: BEGIN OF t_cash_in_bank,
bukrs TYPE bsis-bukrs,
hkont TYPE bsis-hkont,
dmbtr TYPE bsis-dmbtr,
END OF t_cash_in_bank.
TYPES: BEGIN OF t_outs_trade_coll,
bukrs TYPE bsis-bukrs,
hkont TYPE bsis-hkont,
one_day TYPE bsis-dmbtr,
two_days TYPE bsis-dmbtr,
more_than_two_days TYPE bsis-dmbtr,
END OF t_outs_trade_coll.
TYPES: BEGIN OF t_zcheck_monitor,
zzbukr TYPE zcheck_monitor-zzbukr,
zhbkid TYPE zcheck_monitor-zhbkid,
zhktid TYPE zcheck_monitor-zhktid,
zubhkt TYPE zcheck_monitor-zubhkt,
zrwbtr TYPE zcheck_monitor-zrwbtr,
zrlsvd TYPE zcheck_monitor-zrlsvd,
zrlsdt TYPE zcheck_monitor-zrlsdt,
END OF t_zcheck_monitor.
TYPES: BEGIN OF t_zcheck_monitor_collect,
zzbukr TYPE zcheck_monitor-zzbukr,
zubhkt TYPE zcheck_monitor-zubhkt,
zrwbtr TYPE zcheck_monitor-zrwbtr,
END OF t_zcheck_monitor_collect.
TYPES: BEGIN OF t_company,
bukrs TYPE t001-bukrs,
butxt TYPE t001-butxt,
END OF t_company.
TYPES: BEGIN OF t_header,
bukrs TYPE t001-bukrs,
butxt TYPE t001-butxt,
hbkid TYPE t012k-hbkid,
hktid TYPE t012k-hktid,
expand(1) TYPE c,
END OF t_header.
DATA: gt_t012k TYPE HASHED TABLE OF t_t012k
WITH UNIQUE KEY bukrs hbkid hktid,
gt_bsis TYPE STANDARD TABLE OF t_bsis_bsas,
wa_bsis LIKE LINE OF gt_bsis,
gt_bsas LIKE gt_bsis,
gt_bsis_bsas LIKE gt_bsas,
gt_bsid_bsad TYPE STANDARD TABLE OF t_bsid_bsad
WITH NON-UNIQUE KEY bukrs belnr gjahr blart,
gt_bsid LIKE gt_bsid_bsad,
gt_bsad LIKE gt_bsid_bsad,
gt_bsik LIKE gt_bsid_bsad,
gt_bsak LIKE gt_bsid_bsad,
gt_cash_in_bank TYPE HASHED TABLE OF t_cash_in_bank
WITH UNIQUE KEY bukrs hkont,
gt_misc_collection LIKE gt_cash_in_bank,
wa_misc_collection LIKE LINE OF gt_misc_collection,
gt_importation_docs_due LIKE gt_cash_in_bank,
wa_importation_docs_due LIKE LINE OF gt_importation_docs_due,
wa_cash_in_bank LIKE LINE OF gt_cash_in_bank,
gt_outs_trade_coll TYPE HASHED TABLE OF t_outs_trade_coll
WITH UNIQUE KEY bukrs hkont,
wa_outs_trade_coll LIKE LINE OF gt_outs_trade_coll,
gt_zcheck_monitor TYPE STANDARD TABLE OF t_zcheck_monitor,
gt_zcheck_monitor_collect TYPE HASHED TABLE OF t_zcheck_monitor_collect
WITH UNIQUE KEY zzbukr zubhkt,
wa_zcheck_monitor_collect LIKE LINE OF gt_zcheck_monitor_collect,
gt_outs_rel_checks LIKE gt_cash_in_bank,
wa_outs_rel_checks LIKE LINE OF gt_outs_rel_checks,
gt_outs_unrel_checks LIKE gt_cash_in_bank,
wa_outs_unrel_checks LIKE LINE OF gt_outs_unrel_checks,
gt_company TYPE HASHED TABLE OF t_company
WITH UNIQUE KEY bukrs,
wa_company LIKE LINE OF gt_company,
gt_header TYPE STANDARD TABLE OF t_header,
wa_header LIKE LINE OF gt_header.
ENDCLASS. "lcl_data_def DEFINITION
CLASS lcl_get_data DEFINITION
CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.
PUBLIC SECTION.
METHODS: get_bank_details,
get_gl_balances,
get_cust_items,
get_vend_items,
sum_gl_accounts,
monday_routines
IMPORTING
im_date TYPE bsis-budat
im_bukrs TYPE bsis-bukrs
im_hkont TYPE bsis-hkont
im_budat TYPE bsis-budat
im_dmbtr TYPE bsis-dmbtr,
sunday_routines
IMPORTING
im_date TYPE bsis-budat
im_bukrs TYPE bsis-bukrs
im_hkont TYPE bsis-hkont
im_budat TYPE bsis-budat
im_dmbtr TYPE bsis-dmbtr,
tuesday_routines
IMPORTING
im_date TYPE bsis-budat
im_bukrs TYPE bsis-bukrs
im_hkont TYPE bsis-hkont
im_budat TYPE bsis-budat
im_dmbtr TYPE bsis-dmbtr,
other_days_routines
IMPORTING
im_date TYPE bsis-budat
im_bukrs TYPE bsis-bukrs
im_hkont TYPE bsis-hkont
im_budat TYPE bsis-budat
im_dmbtr TYPE bsis-dmbtr,
difference_in_days
IMPORTING
im_date TYPE bsis-budat
im_budat TYPE bsis-budat
EXPORTING
ex_diff TYPE vtbbewe-atage,
outs_check_released,
process_data.
PRIVATE SECTION.
CONSTANTS: lc_credit TYPE bsis-shkzg VALUE 'H',
lc_debit TYPE bsis-shkzg VALUE 'S',
lc_nt TYPE bsis-blart VALUE 'NT',
lc_nc TYPE bsis-blart VALUE 'NC',
lc_gl_zero TYPE bsis-hkont VALUE '+++++++++0',
lc_gl_one TYPE bsis-hkont VALUE '+++++++++1',
lc_gl_three TYPE bsis-hkont VALUE '+++++++++3',
lc_monday TYPE dtresr-weekday VALUE 'Monday',"#EC NOTEXT
lc_tuesday TYPE dtresr-weekday VALUE 'Tuesday',"#EC NOTEXT
lc_sunday TYPE dtresr-weekday VALUE 'Sunday'."#EC NOTEXT
CONSTANTS: lc_k3 TYPE bsik-blart VALUE 'K3',
lc_k4 TYPE bsik-blart VALUE 'K4',
lc_k5 TYPE bsik-blart VALUE 'K5',
lc_k6 TYPE bsik-blart VALUE 'K6',
lc_k7 TYPE bsik-blart VALUE 'K7',
lc_kb TYPE bsik-blart VALUE 'KB',
lc_kd TYPE bsik-blart VALUE 'KD',
lc_31 TYPE bsid-blart VALUE '31',
lc_001 TYPE bsid-buzei VALUE '001'.
DATA: lv_hkont TYPE bsis-hkont,
lr_hkont TYPE RANGE OF bsis-hkont,
wa_hkont LIKE LINE OF lr_hkont,
lr_blart TYPE RANGE OF bsik-blart,
wa_blart LIKE LINE OF lr_blart,
lv_hkont_new TYPE bsis-hkont,
lv_hkont_old TYPE bsis-hkont,
lv_date TYPE vtbbewe-atage,
lv_budat TYPE bsis-budat,
lv_day TYPE dtresr-weekday.
ENDCLASS. "lcl_get_data DEFINITION
CLASS lcl_alv_routines DEFINITION
CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_data_def.
PUBLIC SECTION.
METHODS: build_fieldcat FINAL,
sort_alv_display FINAL.
ENDCLASS. "lcl_alv_routines DEFINITION
CLASS lcl_event_receiver DEFINITION
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING
er_data_changed,
handle_top_of_page FOR EVENT print_top_of_page OF cl_gui_alv_grid,
handle_top_of_list FOR EVENT print_top_of_list OF cl_gui_alv_grid.
PRIVATE SECTION.
DATA: ls_good TYPE lvc_s_modi,
lv_treas_transactions TYPE t_output-tot_cash_bal,
lv_tot_cash_bal TYPE t_output-tot_cash_bal,
lv_outs_unrel_checks TYPE t_output-outs_unrel_checks,
lv_imp_docs_due TYPE t_output-imp_docs_due,
lv_est_cash_balance TYPE t_output-est_cash_balance.
ENDCLASS. "lcl_event_receiver DEFINITION
*/ CLASS IMPLEMENTATION/S */
CLASS lcl_get_data IMPLEMENTATION
CLASS lcl_get_data IMPLEMENTATION.
METHOD get_bank_details
METHOD get_bank_details.
FIELD-SYMBOLS: <fs_t012k> LIKE LINE OF gt_t012k.
Get bank account/s and their corresponding G/L account/s
SELECT bukrs hbkid
hktid hkont
FROM t012k
INTO TABLE gt_t012k
WHERE bukrs IN s_bukrs
AND hbkid IN s_hbkid
AND hktid IN s_hktid.
IF NOT gt_t012k[] IS INITIAL.
SORT gt_t012k BY bukrs hbkid hktid hkont.
Get company name
SELECT bukrs butxt
FROM t001
INTO TABLE gt_company
FOR ALL ENTRIES IN gt_t012k
WHERE bukrs = gt_t012k-bukrs.
LOOP AT gt_t012k ASSIGNING <fs_t012k>.
wa_hkont-sign = 'I'.
wa_hkont-option = 'EQ'.
wa_hkont-low = <fs_t012k>-hkont.
SHIFT wa_hkont-low LEFT DELETING LEADING space.
APPEND wa_hkont TO lr_hkont.
CLEAR wa_hkont.
lv_hkont_new = <fs_t012k>-hkont.
IF lv_hkont_new <> lv_hkont_old.
CLEAR lv_hkont.
lv_hkont = <fs_t012k>-hkont.
DO 4 TIMES.
ADD 1 TO lv_hkont.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_hkont
IMPORTING
output = lv_hkont.
wa_hkont-sign = 'I'.
wa_hkont-option = 'EQ'.
wa_hkont-low = lv_hkont.
SHIFT wa_hkont-low LEFT DELETING LEADING space.
APPEND wa_hkont TO lr_hkont.
CLEAR wa_hkont.
ENDDO.
ENDIF.
lv_hkont_old = lv_hkont_new.
ENDLOOP.
CALL METHOD me->get_gl_balances.
ENDIF.
ENDMETHOD. "get_bank_details
METHOD get_gl_balances
METHOD get_gl_balances.
Get G/L line items(Open items)
SELECT bukrs hkont belnr
buzei gjahr budat
blart dmbtr shkzg
FROM bsis
INTO TABLE gt_bsis
FOR ALL ENTRIES IN gt_t012k
WHERE bukrs = gt_t012k-bukrs
AND hkont IN lr_hkont
AND budat <= p_budat.
Get G/L line items(Cleared items)
SELECT bukrs hkont belnr
buzei gjahr budat
blart dmbtr shkzg
FROM bsas
INTO TABLE gt_bsas
FOR ALL ENTRIES IN gt_t012k
WHERE bukrs = gt_t012k-bukrs
AND hkont IN lr_hkont
AND budat <= p_budat.
APPEND LINES OF gt_bsis TO gt_bsis_bsas.
APPEND LINES OF gt_bsas TO gt_bsis_bsas.
IF NOT gt_bsis_bsas[] IS INITIAL.
CALL METHOD me->get_cust_items.
CALL METHOD me->get_vend_items.
CALL METHOD me->sum_gl_accounts.
ENDIF.
ENDMETHOD. "get_gl_balances
METHOD get_cust_items
METHOD get_cust_items.
Get customer line items(Open items)
SELECT bukrs belnr gjahr blart
buzei budat dmbtr shkzg
bschl
FROM bsid
INTO TABLE gt_bsid
FOR ALL ENTRIES IN gt_bsis_bsas
WHERE bukrs = gt_bsis_bsas-bukrs
AND gjahr = gt_bsis_bsas-gjahr
AND belnr = gt_bsis_bsas-belnr.
Get customer line items(Cleared items)
SELECT bukrs belnr gjahr blart
buzei budat dmbtr shkzg
bschl
FROM bsad
INTO TABLE gt_bsad
FOR ALL ENTRIES IN gt_bsis_bsas
WHERE bukrs = gt_bsis_bsas-bukrs
AND gjahr = gt_bsis_bsas-gjahr
AND belnr = gt_bsis_bsas-belnr.
APPEND LINES OF gt_bsid TO gt_bsid_bsad.
APPEND LINES OF gt_bsad TO gt_bsid_bsad.
ENDMETHOD. "get_cust_items
METHOD get_vend_items
METHOD get_vend_items.
Get vendor line items(Open items)
SELECT bukrs belnr gjahr blart
buzei budat dmbtr shkzg
bschl
FROM bsik
INTO TABLE gt_bsik
FOR ALL ENTRIES IN gt_bsis_bsas
WHERE bukrs = gt_bsis_bsas-bukrs
AND gjahr = gt_bsis_bsas-gjahr
AND belnr = gt_bsis_bsas-belnr.
DEFINE m_blart.
wa_blart-sign = 'I'.
wa_blart-option = 'EQ'.
wa_blart-low = &1.
append wa_blart to lr_blart.
clear wa_blart.
END-OF-DEFINITION.
m_blart lc_k3.
m_blart lc_k4.
m_blart lc_k5.
m_blart lc_k6.
m_blart lc_k7.
m_blart lc_kb.
m_blart lc_kd.
IF NOT gt_bsik[] IS INITIAL AND NOT lr_blart[] IS INITIAL.
DELETE gt_bsik WHERE blart NOT IN lr_blart[].
DELETE gt_bsik WHERE bschl <> lc_31.
ENDIF.
ENDMETHOD. "get_vend_items
METHOD sum_gl_accounts
METHOD sum_gl_accounts.
FIELD-SYMBOLS: <fs_bsis_bsas> LIKE LINE OF gt_bsis_bsas,
<fs_bsis> LIKE LINE OF gt_bsis,
<fs_bsid_bsad> LIKE LINE OF gt_bsid_bsad,
<fs_bsik> LIKE LINE OF gt_bsik,
<fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks,
<fs_outs_unrel_checks> LIKE LINE OF gt_outs_unrel_checks.
SORT gt_bsis_bsas BY bukrs hkont belnr.
LOOP AT gt_bsis_bsas ASSIGNING <fs_bsis_bsas>.
IF <fs_bsis_bsas>-shkzg = lc_credit. "H
MULTIPLY <fs_bsis_bsas>-dmbtr BY -1.
ENDIF.
*/Routine for cash in bank
IF <fs_bsis_bsas>-hkont CP lc_gl_zero.
MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_cash_in_bank.
COLLECT wa_cash_in_bank INTO gt_cash_in_bank.
CLEAR wa_cash_in_bank.
ENDIF.
*/Routine for miscellaneous collection
IF <fs_bsis_bsas>-blart = lc_nt OR
<fs_bsis_bsas>-blart = lc_nc AND
<fs_bsis_bsas>-shkzg = lc_debit AND
<fs_bsis_bsas>-hkont CP lc_gl_one.
READ TABLE gt_bsid_bsad ASSIGNING <fs_bsid_bsad> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
belnr = <fs_bsis_bsas>-belnr
gjahr = <fs_bsis_bsas>-gjahr
blart = <fs_bsis_bsas>-blart.
IF sy-subrc = 0.
MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_misc_collection.
COLLECT wa_misc_collection INTO gt_misc_collection.
CLEAR wa_misc_collection.
ENDIF.
ENDIF.
*/Routine for importation docs.due
IF <fs_bsis_bsas>-shkzg = lc_credit.
READ TABLE gt_bsik ASSIGNING <fs_bsik> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
belnr = <fs_bsis_bsas>-belnr
gjahr = <fs_bsis_bsas>-gjahr
blart = <fs_bsis_bsas>-blart.
IF sy-subrc = 0.
MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_importation_docs_due.
COLLECT wa_importation_docs_due INTO gt_importation_docs_due.
CLEAR gt_importation_docs_due.
ENDIF.
ENDIF.
ENDLOOP.
IF NOT gt_bsis[] IS INITIAL.
IF NOT gt_bsis[] IS INITIAL.
lv_budat = p_budat.
CALL FUNCTION 'DATE_TO_DAY'
EXPORTING
date = lv_budat
IMPORTING
weekday = lv_day.
LOOP AT gt_bsis ASSIGNING <fs_bsis>.
*/Routine for outstanding trade collection
IF <fs_bsis>-shkzg = lc_debit AND <fs_bsis>-blart <> lc_nt.
IF lv_day = lc_monday.
CALL METHOD me->monday_routines
EXPORTING
im_date = p_budat
im_bukrs = <fs_bsis>-bukrs
im_hkont = <fs_bsis>-hkont
im_budat = <fs_bsis>-budat
im_dmbtr = <fs_bsis>-dmbtr.
ELSEIF lv_day = lc_sunday.
CALL METHOD me->sunday_routines
EXPORTING
im_date = p_budat
im_bukrs = <fs_bsis>-bukrs
im_hkont = <fs_bsis>-hkont
im_budat = <fs_bsis>-budat
im_dmbtr = <fs_bsis>-dmbtr.
ELSEIF lv_day = lc_tuesday.
CALL METHOD me->tuesday_routines
EXPORTING
im_date = p_budat
im_bukrs = <fs_bsis>-bukrs
im_hkont = <fs_bsis>-hkont
im_budat = <fs_bsis>-budat
im_dmbtr = <fs_bsis>-dmbtr.
ELSE.
CALL METHOD me->other_days_routines
EXPORTING
im_date = p_budat
im_bukrs = <fs_bsis>-bukrs
im_hkont = <fs_bsis>-hkont
im_budat = <fs_bsis>-budat
im_dmbtr = <fs_bsis>-dmbtr.
ENDIF.
ENDIF.
*/Routine for outstanding released checks
IF <fs_bsis>-hkont CP lc_gl_three AND <fs_bsis>-shkzg = lc_debit.
MOVE-CORRESPONDING <fs_bsis> TO wa_outs_rel_checks.
COLLECT wa_outs_rel_checks INTO gt_outs_rel_checks.
CLEAR wa_outs_rel_checks.
*/Routine for outstanding unreleased checks
ELSEIF <fs_bsis>-hkont CP lc_gl_three AND <fs_bsis>-shkzg = lc_credit.
MOVE-CORRESPONDING <fs_bsis> TO wa_outs_unrel_checks.
COLLECT wa_outs_unrel_checks INTO gt_outs_unrel_checks.
CLEAR wa_outs_unrel_checks.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
*/Routine for outstanding released check/s
*/this routine will get all records from custom table zcheck_monitor
*/where status is released to vendor
CALL METHOD me->outs_check_released.
IF NOT gt_outs_rel_checks[] IS INITIAL.
Subtract debit line items from ZFE002
LOOP AT gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>.
CLEAR wa_zcheck_monitor_collect.
READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
WITH TABLE KEY zzbukr = <fs_outs_rel_checks>-bukrs
zubhkt = <fs_outs_rel_checks>-hkont.
IF sy-subrc = 0.
<fs_outs_rel_checks>-dmbtr = wa_zcheck_monitor_collect-zrwbtr -
<fs_outs_rel_checks>-dmbtr.
ELSE.
<fs_outs_rel_checks>-dmbtr = 0 - <fs_outs_rel_checks>-dmbtr.
ENDIF.
ENDLOOP.
ENDIF.
IF NOT gt_outs_unrel_checks[] IS INITIAL.
Subtract ZFE002 records from credit line items
LOOP AT gt_outs_unrel_checks ASSIGNING <fs_outs_unrel_checks>.
CLEAR wa_zcheck_monitor_collect.
READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
WITH TABLE KEY zzbukr = <fs_outs_unrel_checks>-bukrs
zubhkt = <fs_outs_unrel_checks>-hkont.
IF sy-subrc = 0.
<fs_outs_unrel_checks>-dmbtr = ABS( <fs_outs_unrel_checks>-dmbtr ) -
ABS( wa_zcheck_monitor_collect-zrwbtr ).
ENDIF.
ENDLOOP.
ENDIF.
Move records to output table
CALL METHOD me->process_data.
ENDMETHOD. "sum_gl_accounts
METHOD monday_routines
METHOD monday_routines.
wa_outs_trade_coll-bukrs = im_bukrs.
wa_outs_trade_coll-hkont = im_hkont.
CLEAR lv_date.
CALL METHOD me->difference_in_days
EXPORTING
im_date = im_date
im_budat = im_budat
IMPORTING
ex_diff = lv_date.
One day
IF lv_date = 3.
wa_outs_trade_coll-one_day = im_dmbtr.
Two days
ELSEIF lv_date = 4.
wa_outs_trade_coll-two_days = im_dmbtr.
More than two days
ELSEIF lv_date > 4.
wa_outs_trade_coll-more_than_two_days = im_dmbtr.
ENDIF.
COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
CLEAR wa_outs_trade_coll.
ENDMETHOD. "monday_routines
METHOD sunday_routines
METHOD sunday_routines.
wa_outs_trade_coll-bukrs = im_bukrs.
wa_outs_trade_coll-hkont = im_hkont.
CLEAR lv_date.
CALL METHOD me->difference_in_days
EXPORTING
im_date = im_date
im_budat = im_budat
IMPORTING
ex_diff = lv_date.
One day
IF lv_date = 2.
wa_outs_trade_coll-one_day = im_dmbtr.
Two days
ELSEIF lv_date = 3.
wa_outs_trade_coll-two_days = im_dmbtr.
More than two days
ELSEIF lv_date > 3.
wa_outs_trade_coll-more_than_two_days = im_dmbtr.
ENDIF.
COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
CLEAR wa_outs_trade_coll.
ENDMETHOD. "sunday_routines
METHOD tuesday_routines
METHOD tuesday_routines.
wa_outs_trade_coll-bukrs = im_bukrs.
wa_outs_trade_coll-hkont = im_hkont.
CLEAR lv_date.
CALL METHOD me->difference_in_days
EXPORTING
im_date = im_date
im_budat = im_budat
IMPORTING
ex_diff = lv_date.
One day
IF lv_date = 1.
wa_outs_trade_coll-one_day = im_dmbtr.
Two days
ELSEIF lv_date = 4.
wa_outs_trade_coll-two_days = im_dmbtr.
More than two days
ELSEIF lv_date > 4.
wa_outs_trade_coll-more_than_two_days = im_dmbtr.
ENDIF.
COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
CLEAR wa_outs_trade_coll.
ENDMETHOD. "tuesday_routines
METHOD other_days_routines
METHOD other_days_routines.
wa_outs_trade_coll-bukrs = im_bukrs.
wa_outs_trade_coll-hkont = im_hkont.
CLEAR lv_date.
CALL METHOD me->difference_in_days
EXPORTING
im_date = im_date
im_budat = im_budat
IMPORTING
ex_diff = lv_date.
One day
IF lv_date = 1.
wa_outs_trade_coll-one_day = im_dmbtr.
Two days
ELSEIF lv_date = 2.
wa_outs_trade_coll-two_days = im_dmbtr.
More than two days
ELSEIF lv_date > 3.
wa_outs_trade_coll-more_than_two_days = im_dmbtr.
ENDIF.
COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
CLEAR wa_outs_trade_coll.
ENDMETHOD. "other_days_routines
METHOD difference_in_days
METHOD difference_in_days.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
i_date_from = im_budat
I_KEY_DAY_FROM =
i_date_to = im_date
I_KEY_DAY_TO =
I_FLG_SEPARATE = ' '
IMPORTING
e_days = ex_diff.
E_MONTHS =
E_YEARS =
ENDMETHOD. "difference_in_days
METHOD outs_check_released
METHOD outs_check_released.
FIELD-SYMBOLS: <fs_zcheck_monitor> LIKE LINE OF gt_zcheck_monitor.
SELECT zzbukr zhbkid zhktid
zubhkt zrwbtr zrlsvd
zrlsdt
FROM zcheck_monitor
INTO TABLE gt_zcheck_monitor
WHERE zrlsvd <> space.
IF NOT gt_zcheck_monitor[] IS INITIAL.
LOOP AT gt_zcheck_monitor ASSIGNING <fs_zcheck_monitor>.
MOVE-CORRESPONDING <fs_zcheck_monitor> TO wa_zcheck_monitor_collect.
COLLECT wa_zcheck_monitor_collect INTO gt_zcheck_monitor_collect.
CLEAR wa_zcheck_monitor_collect.
ENDLOOP.
ENDIF.
ENDMETHOD. "outs_check_released
METHOD process_data
METHOD process_data.
FIELD-SYMBOLS: <fs_t012k> LIKE LINE OF gt_t012k,
<fs_company> LIKE LINE OF gt_company,
<fs_cash_in_bank> LIKE LINE OF gt_cash_in_bank,
<fs_outs_trade_coll> LIKE LINE OF gt_outs_trade_coll,
<fs_misc_collection> LIKE LINE OF gt_misc_collection,
<fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks,
<fs_outs_unrel_checks> LIKE LINE OF gt_outs_unrel_checks.
SORT gt_t012k BY bukrs hbkid.
LOOP AT gt_t012k ASSIGNING <fs_t012k>.
AT NEW hbkid.
READ TABLE gt_company ASSIGNING <fs_company>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs.
IF sy-subrc = 0.
wa_header-bukrs = <fs_company>-bukrs.
wa_header-butxt = <fs_company>-butxt.
wa_header-hbkid = <fs_t012k>-hbkid.
wa_header-hktid = <fs_t012k>-hktid.
APPEND wa_header TO gt_header.
CLEAR wa_header.
ENDIF.
ENDAT.
wa_output-bukrs = <fs_t012k>-bukrs.
wa_output-hbkid = <fs_t012k>-hbkid.
wa_output-hktid = <fs_t012k>-hktid.
Move cash in bank
READ TABLE gt_cash_in_bank ASSIGNING <fs_cash_in_bank>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = <fs_t012k>-hkont.
IF sy-subrc = 0.
wa_output-cash_in_bank = <fs_cash_in_bank>-dmbtr.
ADD wa_output-cash_in_bank TO wa_output-tot_cash_bal.
ENDIF.
CLEAR lv_hkont.
lv_hkont = <fs_t012k>-hkont.
ADD 1 TO lv_hkont.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_hkont
IMPORTING
output = lv_hkont.
Move outstanding trade collection(Deposit in transit)
READ TABLE gt_outs_trade_coll ASSIGNING <fs_outs_trade_coll>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = lv_hkont.
IF sy-subrc = 0.
wa_output-one_day = <fs_outs_trade_coll>-one_day.
ADD wa_output-one_day TO wa_output-tot_cash_bal.
wa_output-two_days = <fs_outs_trade_coll>-two_days.
ADD wa_output-two_days TO wa_output-tot_cash_bal.
wa_output-more_than_two_days = <fs_outs_trade_coll>-more_than_two_days.
ADD wa_output-more_than_two_days TO wa_output-tot_cash_bal.
ENDIF.
Move miscellaneous collection
READ TABLE gt_misc_collection ASSIGNING <fs_misc_collection>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = lv_hkont.
IF sy-subrc = 0.
wa_output-misc_collection = <fs_misc_collection>-dmbtr.
ADD wa_output-misc_collection TO wa_output-tot_cash_bal.
ENDIF.
Move outstanding released checks
CLEAR lv_hkont.
lv_hkont = <fs_t012k>-hkont.
ADD 3 TO lv_hkont.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_hkont
IMPORTING
output = lv_hkont.
READ TABLE gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = lv_hkont.
IF sy-subrc = 0.
wa_output-outs_rel_checks = <fs_outs_rel_checks>-dmbtr.
IF wa_output-outs_rel_checks < 0.
ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.
ELSE.
SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.
ENDIF.
ELSE.
CLEAR wa_zcheck_monitor_collect.
READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
WITH TABLE KEY zzbukr = <fs_t012k>-bukrs
zubhkt = lv_hkont.
IF sy-subrc = 0.
wa_output-outs_rel_checks = wa_zcheck_monitor_collect-zrwbtr.
IF wa_output-outs_rel_checks < 0.
ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.
ELSE.
SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.
ENDIF.
ENDIF.
ENDIF.
Move outstanding unreleased checks
CLEAR lv_hkont.
lv_hkont = <fs_t012k>-hkont.
ADD 3 TO lv_hkont.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_hkont
IMPORTING
output = lv_hkont.
READ TABLE gt_outs_unrel_checks ASSIGNING <fs_outs_unrel_checks>
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = lv_hkont.
IF sy-subrc = 0.
wa_output-outs_unrel_checks = <fs_outs_unrel_checks>-dmbtr.
ENDIF.
Move importation docs. due
CLEAR wa_importation_docs_due.
READ TABLE gt_importation_docs_due INTO wa_importation_docs_due
WITH TABLE KEY bukrs = <fs_t012k>-bukrs
hkont = lv_hkont
TRANSPORTING dmbtr.
IF sy-subrc = 0.
wa_output-imp_docs_due = wa_importation_docs_due-dmbtr.
ENDIF.
wa_output-est_cash_balance = wa_output-tot_cash_bal - ( wa_output-outs_unrel_checks +
wa_output-imp_docs_due ).
APPEND wa_output TO gt_output.
CLEAR wa_output.
ENDLOOP.
ENDMETHOD. "process_data
ENDCLASS. "lcl_get_data IMPLEMENTATION
CLASS lcl_alv_routines IMPLEMENTATION
CLASS lcl_alv_routines IMPLEMENTATION.
METHOD build_fieldcat.
DEFINE m_fieldcat.
add 1 to wa_fieldcat-col_pos.
wa_fieldcat-fieldname = &1.
wa_fieldcat-tabname = &2.
wa_fieldcat-coltext = &3.
wa_fieldcat-outputlen = &4.
wa_fieldcat-key = &5.
wa_fieldcat-just = &6.
wa_fieldcat-do_sum = &7.
wa_fieldcat-emphasize = &8.
wa_fieldcat-edit = &9.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
END-OF-DEFINITION.
m_fieldcat 'BUKRS' 'GT_OUTPUT' text-a01 '12' 'X' '' '' '' ''.
m_fieldcat 'HBKID' 'GT_OUTPUT' text-a14 '10' 'X' '' '' '' ''.
m_fieldcat 'HKTID' 'GT_OUTPUT' text-a02 '10' 'X' '' '' '' ''.
m_fieldcat 'CASH_IN_BANK' 'GT_OUTPUT' text-a03 '12' '' 'R' 'X' '' ''.
m_fieldcat 'ONE_DAY' 'GT_OUTPUT' text-a04 '05' '' 'R' 'X' '' ''.
m_fieldcat 'TWO_DAYS' 'GT_OUTPUT' text-a05 '06' '' 'R' 'X' '' ''.
m_fieldcat 'MORE_THAN_TWO_DAYS' 'GT_OUTPUT' text-a06 '08' '' 'R' 'X' '' ''.
m_fieldcat 'MISC_COLLECTION' 'GT_OUTPUT' text-a07 '16' '' 'R' 'X' '' ''.
m_fieldcat 'OUTS_REL_CHECKS' 'GT_OUTPUT' text-a08 '21' '' 'R' 'X' '' ''.
m_fieldcat 'TREAS_TRANSACTIONS' 'GT_OUTPUT' text-a09 '19' '' 'R' 'X' '' 'X'.
m_fieldcat 'TOT_CASH_BAL' 'GT_OUTPUT' text-a10 '15' '' 'R' 'X' 'C300' ''.
m_fieldcat 'OUTS_UNREL_CHECKS' 'GT_OUTPUT' text-a11 '19' '' 'R' 'X' '' ''.
m_fieldcat 'IMP_DOCS_DUE' 'GT_OUTPUT' text-a12 '14' '' 'R' 'X' '' ''.
m_fieldcat 'EST_CASH_BALANCE' 'GT_OUTPUT' text-a13 '17' '' 'R' 'X' 'C300' ''.
ENDMETHOD. "build_fieldcat
METHOD sort_alv_display.
DEFINE m_sort.
clear gs_sort.
gs_sort-fieldname = &1.
gs_sort-spos = &2.
gs_sort-up = &3.
gs_sort-down = &4.
gs_sort-subtot = &5.
append gs_sort to gt_sort.
END-OF-DEFINITION.
m_sort 'BUKRS' '1' 'X' '' ''.
m_sort 'HBKID' '2' 'X' '' 'X'.
ENDMETHOD. "sort_alv_display
ENDCLASS. "lcl_alv_routines IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
LOOP AT er_data_changed->mt_mod_cells INTO ls_good.
CASE ls_good-fieldname.
WHEN 'TREAS_TRANSACTIONS'.
CLEAR lv_tot_cash_bal.
CALL METHOD er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'TOT_CASH_BAL'
IMPORTING
e_value = lv_tot_cash_bal.
IF ls_good-value CA 'ABCDEFGHIJKLMNOPQRSTUVWXYZ/'.
CALL METHOD er_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = text-e01
i_msgv2 = ls_good-value
i_msgv3 = text-e02
i_fieldname = ls_good-fieldname
i_row_id = ls_good-row_id.
EXIT.
ELSE.
CLEAR lv_treas_transactions.
lv_treas_transactions = ls_good-value.
ADD lv_tot_cash_bal TO lv_treas_transactions.
CALL METHOD er_data_changed->modify_cell
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'TOT_CASH_BAL'
i_value = lv_treas_transactions.
CLEAR lv_outs_unrel_checks.
CALL METHOD er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'OUTS_UNREL_CHECKS'
IMPORTING
e_value = lv_outs_unrel_checks.
CLEAR lv_imp_docs_due.
CALL METHOD er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'IMP_DOCS_DUE'
IMPORTING
e_value = lv_imp_docs_due.
lv_est_cash_balance = ls_good-value - ( lv_outs_unrel_checks +
lv_imp_docs_due ).
CALL METHOD er_data_changed->modify_cell
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'EST_CASH_BALANCE'
i_value = lv_est_cash_balance.
CLEAR lv_est_cash_balance.
ENDIF.
ENDCASE.
ENDLOOP.
ENDMETHOD. "handle_data_changed
METHOD handle_top_of_page.
WRITE: sy-repid.
ENDMETHOD. "handle_top_of_page
METHOD handle_top_of_list.
WRITE: sy-repid.
ENDMETHOD. "handle_top_of_list
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
START-OF- -
hi everyone:
I have a problem about ALV. The question is I want to show two headers in the gt_item .(Hierachy)
I want to use these in the event "change_fieldcatlog"
LOOP AT I_FIELDCAT.
CASE I_FIELDCAT-FIELDNAME
WHEN 'MESSWERT'.
I_FIELDCAT-ROW_POS = 1.
I_FIELDCAT-SEL_L = '1111'.
I_FIELDCAT-SEL_M = '1111'.
I_FIELDCAT-SEL_S = '1111'.
APPEND I_FIELDCAT.
so I want to add another label in the next row. but I write like this below , it doesn't work .
I_FIELDCAT-ROW_POS = 2
I_FIELDCAT-SEL_L = text-004.
I_FIELDCAT-SEL_M = text-004.
I_FIELDCAT-SEL_S = text-004.
APPEND I_FIELDCAT
ENDCASE.
ENDLOOP.
So who can help me ?
thank you in advacne .
Regards
NickHii Nick, in your program I found that you have created only one fieldcat structure, actually we need 2 structures one is for workarea and one for body.
like this
It_Fieldcat type SLIS_T_FIELDCAT_ALV
Is_Fieldcat type SLIS_FIELDCAT_ALV
now you can write the code
LOOP AT It_FIELDCAT into Is_Fieldcat.
CASE Is_FIELDCAT-FIELDNAME
WHEN 'MESSWERT'.
Is_FIELDCAT-ROW_POS = 1.
Is_FIELDCAT-SEL_L = '1111'.
Is_FIELDCAT-SEL_M = '1111'.
Is_FIELDCAT-SEL_S = '1111'.
APPEND Is_FIELDCAT to It_Fieldcat.
clear Is_Fieldcat.
Is_FIELDCAT-ROW_POS = 2
Is_FIELDCAT-SEL_L = text-004.
Is_FIELDCAT-SEL_M = text-004.
Is_FIELDCAT-SEL_S = text-004.
APPEND Is_FIELDCAT to It_Fieldcat.
Clear Is_Fieldcat.
Hope it will works.
Reward points if helpful. -
Question about Tax at Apple Store Online
Hello, sorry if this thread is in the wrong place, please direct me to the right part of the forum, since I do not know where this topic should go.
I'm a prospective switcher planning to get a 20' intel iMac very soon; I just have a small question about perchasing from Canadian online Apple store, since I can save most from my student discount:
When I view the price in the checkout process, why is it that the estimated tax is always $0.00, even if I use the regular store intead fo the educational one? I had correct infomation about my shipping location (Toronto, Ontario), will the regular tax be applied (which is 15% here) or is there something wrong there?
ThanksI checked my orders from the Apple Store (Canada) and the documentation prior to shipment says "Please note that your order subtotal does not include applicable sales tax or rebates. Sales tax, if applicable, will be added when your order is processed."
After they ship, they email an invoice that includes the tax and shipping, if applicable.
Hope this helps.
(And yes, you'll be charged the tax.) -
Questions about your new HP Products? HP Expert Day: January 14th, 2015
Thank you for coming to Expert Day! The event has now concluded.
To find out about future events, please visit this page.
On behalf of the Experts, I would like to thank you for coming to the Forum to connect with us. We hope you will return to the boards to share your experiences, both good and bad.
We will be holding more of these Expert Days on different topics in the months to come. We hope to see you then!
If you still have questions to ask, feel free to post them on the Forum – we always have experts online to help you out.
So, what is HP Expert Day?
Expert Day is an online event when HP employees join our Support Forums to answer questions about your HP products. And it’s FREE.
Ok, how do I get started?
It’s easy. Come out to the HP Support Forums, post your question, and wait for a response! We’ll have experts online covering our Notebook boards, Desktop boards, Tablet boards, and Printer and all-in-one boards.
We’ll also be covering the commercial products on the HP Enterprise Business Community. We’ll have experts online covering select boards on the Printing and Digital Imaging and Desktops and Workstations categories.
What if I need more information?
For more information and a complete schedule of previous events, check out this post on the forums.
Is Expert Day an English-only event?
No. This time we’ll have experts and volunteers online across the globe, answering questions on the English, Simplified Chinese, and Korean forums. Here’s the information:
Enterprise Business Forum: January 14th 7:00am to 12:00pm and 6:00pm to 11:00pm Pacific Time
Korean Forum: January 15th 10am to 6pm Korea Time
Simplified Chinese Forum: January 15th 10am to 6pm China Time
Looking forward to seeing you on January 14th!
I am an HP employee.My HP, purchased in June 2012, died on Saturday. I was working in recently installed Photoshop, walked away from my computer to answer the phone and when I came back the screen was blank. When I turned it on, I got a Windows Error Recovery message. The computer was locked and wouldn't let me move the arrow keys up or down and hitting f8 didn't do anything.
I'm not happy with HP. Any suggestions? -
Have questions about your Creative Cloud or Subscription Membership?
You can find answers to several questions regarding membership to our subscription services. Please see Membership troubleshooting | Creative Cloud - http://helpx.adobe.com/x-productkb/policy-pricing/membership-subscription-troubleshooting- creative-cloud.html for additional information. You can find information on such topics as:
I need help completeing my new purchase or upgrade.
I want to change the credit card on my account.
I have a question about my membership price or statement charges.
I want to change my membership: upgrade, renew, or restart.
I want to cancel my membership.
How do I access my account information or change update notifications?Branching to new discussion.
Christym16625842 you are welcome to utilize the process listed in Creative Cloud Help | Install, update, or uninstall apps to install and evaluate the applications included with a Creative Cloud Membership. The software is fully supported on recent Mac computers. You can find the system requirements for the Creative Cloud at System requirements | Creative Cloud. -
Questions about using the Voice Memos app
I'm currently an Android user, but will be getting an iPhone 6 soon. My most used app is the voice memos app on my Android phone. I have a couple questions about the iPhone's built-in voice memos app.
-Am I able to transfer my voice memos from my Android phone to my iPhone, so my recordings from my Android app will show up in the iPhone's voice memos app?
-When exporting voice memos from the iPhone to computer, are recordings in MP3 format? If not, what format are they in?
-In your opinion, how is the recording quality of the voice memos app?You cannot import your Android voice memos to your iPhone's voice memo app. You might be able to play the Android memos and have the iPhone pick up the audio and record it.
Here is the writeup about sending voice memos from the iPhone to your computer (from the iPhone User Guide):
App quality is excellent. -
Re: Question about the Satellite P300-18Z
Hello everyone,
I have a couple of questions about the Satellite P300-18Z.
What "video out" does this laptop have? (DVI, s-video or d-sub)
Can I link the laptop up to a LCD-TV and watch movies on a resolution of 1080p? (full-HD)
What is the warranty on this laptop?Hello
According the notebook specification Satellite P300-18Z has follow interfaces:
DVI - No DVI port available
HDMI - HDMI-out (HDMI out port available)
Headphone Jack - External Headphone Jack (Stereo) available
.link - iLink (Firewire) port available
Line in Jack - No Line in Jack port available
Line out Jack - No Line Out Jack available
Microphone Jack - External Micrphone Jack
TV-out - port available (S-Video port)
VGA - VGA (External monitor port RGB port)
Also you can connect it to your LCD TV using HDMI cable.
Warranty is country specific and clarifies this with your local dealer but I know that all Toshiba products have 1 year standard warranty and also 1 year international warranty. you can of course expand it. -
First of all, I would like to say that I am very impressed with how well Muse works and how easy it was to create a website that satisfies me. Before I started a daily updated website I thought I would encounter many problems I will not be able to solve. I have only had a few minor issues which I would like to share with you.
The most problems I have with a horizontal layouts (http://www.leftlane.pl/sty14/dig-t-r-3-cylindrowy-silnik-nissana-o-wadze-40-kg-i-mocy-400- km.html). Marking and copying of a text is possible only on the last (top) layer of a document. The same situation is with widgets or anything connected with rollover state - it does not work. In the above example it would be perfect to use a composition/tooltip widget on the first page. Unfortunately, you cannot even move the cursor into it.
It would be helpful to have an option of rolling a mouse to an anchor (like in here http://www.play.pl/super-smartfony/lg-nexus-5.html and here http://www.thepetedesign.com/demos/onepage_scroll_demo.html). I mean any action of a mouse wheel would make a move to another anchor/screen. It would make navigation of my site very easy.
Is it possible to create a widget with a function next anchor/previous anchor? Currently, in the menu every button must be connected to a different anchor for the menu to be functional.
A question about Adobe Muse. Is it possible to create panels in different columns? It would make it easier to go through all the sophisticated program functions.
The hits from Facebook have sometimes very long links, eg.
(http://www.leftlane.pl/sty14/mclaren-p1-nowy-krol-nurburgring.html?fb_action_ids=143235557 3667782&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=288381481237582). If such a link is activated, the anchors in the menu do not work on any page. I mean the backlight of an active state, which helps the user to find out where on page they currently are. The problem also occurs when in the name of a html file polish fonts exist. And sometimes the dots does not work without any reason, mostly in the main page, sometimes in the cooperation page either (http://www.leftlane.pl/wspolpraca/). In the first case (on main page), I do not know why. I have checked if they did not drop into a state button by accident, moved them among the layers, numbered them from scratch and it did not help. In the cooperation page, the first anchor does not work if it is in Y axle set at 0. If I move it right direction- everything is ok.
The text frame with background fill does not change text color in overlay state (http://www.leftlane.pl/sty14/nowe-mini-krolestwo-silnikow-3-cylindrowych.html). I mean a source button at the beginning of every text. I would like a dark text and a light layer in a rollover, but the text after export and moving cursor into it does not change color for some reason.
I was not sure whether to keep everything (whole website) in one Muse file (but I may be mistaken?). I have decided to divide it into months. Everyone is in a different Muse file. If something goes wrong, I will not have any trouble with an upload of a whole site, which is going to get bigger and bigger.
The problem is that every file has two master pages. Everything works well up to the moment when I realize how many times I have to make changes in upper menu when I need to add something there. I have already 5 files, every with 2 masters. Is there any way to solve this problem? Maybe something to do with Business Catalyst, where I could connect a menu to every subpage independently, deleting it from Muse file? Doing so I would be able to edit it everywhere from one place. It would make my work much easier, but I have no idea jendak how to do it.
The comments Disqus do not load, especially at horizontal layouts (http://www.leftlane.pl/sty14/2014-infiniti-q50-eau-rouge-concept.html). I have exchanged some mails and screenshots with Disqus help. I have sent them a screenshot where the comments are not loaded, because they almost never load. They have replied that it works at their place even with attached screenshot. I have a hard time to discuss it, because it does not work with me and with my friends either. Maybe you could fix it? I would not like to end up with awful facebook comments ;). The problem is with Firefox on PC and Mac. Chrome, Safari and Opera work ok.
YouTube movie level layouts do not work well with IE11 and Safari 7 (http://www.leftlane.pl/sty14/wypadki-drogowe--004.html). The background should roll left, but in the above mentioned browsers it jumps up. Moreover the scrolling with menu dots is not fluent on Firefox, but I guess it is due to Firefox issues? The same layout but in vertical version rolls fluently in Firefox (http://www.leftlane.pl/sty14/polskie-wypadki--005.html).
Now, viewing the website on new smartphones and tablets. I know it is not a mobile/tablet layout, but I tried to make it possible to be used on mobile hardware with HD (1280) display. I mean most of all horizontal layouts (http://www.leftlane.pl/sty14/2015-hyundai-genesis.html), where If we want to roll left, we need to roll down. Is there a way to make it possible to move the finger the direction in which the layout goes?
On Android phones (Nexus 4, Android 4.4.2, Chrome 32) the fade away background effect does not work, although I have spent a lot of time over it (http://www.leftlane.pl/lut14/koniec-produkcji-elektrycznego-renault-fluence-ze!.html). It is ok on PC, but on the phone it does not look good. A whole picture moves from a lower layer instead of an edge which spoils everything.
This layout does not look good on Android (http://www.leftlane.pl/sty14/nowe-mini-krolestwo-silnikow-3-cylindrowych.html#a07). The background does not fill the whole width of a page. There are also problems with a photo gallery, where full screen pictures should fill more of a screen.
Is it possible to make an option of scroll effects/motions for a fullscreen slideshow widget thumbnails (http://www.leftlane.pl/sty14/2014-chevrolet-ss%2c-rodzinny-sedan-z-415-konnym-v8.html#a06)? It would help me with designing layouts. Currently, it can go from a bottom of a page at x1 speed or emerge (like in this layout) by changing opacity. Something more will be needed, I suppose.
Sometimes the pictures from gallery (http://www.leftlane.pl/sty14/2014-chevrolet-ss%2c-rodzinny-sedan-z-415-konnym-v8.html#a06 download very slowly. The website is hosted at Business Catalyst. I cannot state when exactly it happens, most of the time it works ok.
I really like layouts like this (http://www.leftlane.pl/sty14/2014-chevrolet-ss%2c-rodzinny-sedan-z-415-konnym-v8.html#a03). On the top is a description and a main text, and the picture is a filled object with a hold set at the bottom edge. That is why there is a nice effect of a filling a whole screen- nevertheless the resolution that is set. It works perfect on PC, but on Android the picture goes beyond the screen. You can do something about it?
In horizontal layouts (http://www.leftlane.pl/sty14/dig-t-r-3-cylindrowy-silnik-nissana-o-wadze-40-kg-i-mocy-400- km.html) holding of a filling object does not work. Everything is always held to upper edge of a screen regardless the settings. Possibility of holding the picture to the bottom edge or center would make my work much easier.
According to UE regulations we have to inform about the cookies. I do not know how to do it in Muse. I mean, when the message shows up one time and is accepted, there would be no need to show it again and again during another visit on the website. Is there any way to do it? Is there any widget for it maybe?
The YouTube widget sometimes changes size just like that. It is so when the miniature of the movie does not load, and the widget is set to stroke (in our case 4 pixels, rounded to 1 pixel). As I remember ( in case of a load error) it extends for 8 pixels wide.
Last but not least - we use the cheapest hosting plan in Business Catalyst. The monthly bandwidth is enough, although we have a lot of pictures and we worried about it at first. Yet we are running out of the disk storage very quickly. We have used more than a half of a 1 GB after a month. We do not want to change BC for a different one, because we like the way it is connected with Muse. But we do not want to buy the most expensive package - but only this one has more disk space. We do not need any other of these functions and it would devastate our budget. Do we have any other option?
I’m using Adobe Muse 7.2 on OS X 10.9.1.
and I'm sending Muse file to <[email protected]>Unfortunatley, there is no way to get a code view in Muse. I know quite a few people requested it in the previous forum, but not really sure where that ended up. Also, you may not want to bring the html into DW unless you only have 1 or 2 small changes 2 make. Two reasons. First, it isnt backwards compatible, so if you are planning on updating that site in Muse, you will need to make those changes in DW everytime you update. Second, by all accounts the HTML that Muse puts out is not pretty or easy to work with. Unlike you, I am code averse, but there was a lenghty discussion on the previous forum on this topic. I know they were striving to make it better with every release, just not sure where it is at this point.
Dont think I am reading that second question right, but there was a ton of info on that old site. You may want to take a look there, people posted a ton of great unique solutions, so it worth a look.
Here is the link to the old forums- http://support.muse.adobe.com/muse -
hi just got my new apple ipod touch and to download apps it wants to add questions about myself for more sercurity information. i get up to question 3 and it wont let me select a question but it will let me write an answer so i just pressed done and then it says i cant carry on because ive mised out information when it wont let me do a question!
Welcome to the Apple community.
You might try to see if you can change your security questions. Start here, change your country if necessary and go to manage your account > Password and Security.
I'm able to do this, others say they need to input answers to their current security questions in order to make changes, I'm inclined to think its worth a try, you don't have anything to lose.
If that doesn't help you might try contacting Apple through Express Lane (select your country, navigate to iCloud help and enter the serial number of one of your devices)
Maybe you are looking for
-
How to get the "last changed by" for a set of function modules?
How to get the "last changed by" for a set of function modules? is there any table to get it??
-
Disk replacement on Satellite Pro A10 (30GB)
Hello I am after some guidance on which replacement disk to purchase for this Toshiba Satellite Pro A10 laptop, model PSA15E-03U7V-EN. It still has the original 30GB disk in it but it's been showing errors when checking the disk with the Windows XP t
-
SAP Crystal Reports 2011: Error INS00140 The Product keycode is not valid
I have followed all of the instructions in the previous thread but am still getting the error message. I am trying to install on a Windows 7 machine.
-
"Unsorted cuePoint" in flv video file
I hava an application which heavily uses cuepoints for al kinds of navigation and event purposes. To properly handle the cuepoints I use some sorting etc. of the cuepoints when the onMetaData fires. The video is played as a NetStream from a WOWZA rtm
-
I HAVE TAKE EXPORT BACKUP OF USER IN ORACLE 9i AND IMPORT IN 10G AFTER IMPORTING IN 10G SORTING ORDER OF MY ALL REPORTS ARE CHANGED IN 9i SORTING ORDER IS RIGHT IS THERE SOME PARAMETERS IN ORACLE AFTER CHANGING THAT MY SORTING ORDER WILL SET IN ORDER