You are on page 1of 20

Financial Statement Analysis by using Report Painter

I am writing my first blog on SDN keeping in view financial reporting requirements of client.
Report painter is an excellent reporting tool that is equipped with useful features which can help us
in designing analytical reports quickly without ABAP help.Financial reporting requirement varies
as per local accounting practices and GAAPS. In order to cope up with these requirements report
painter let us design reports like

1. Profit & Loss Accounts


2. Balance Sheet
3. Cash Flow Statements
4. Ratio Analysis
5. Sources & Application of Working Capital
6. Consolidated Financial statements

In order to make the user familiar with this reporting tool i would restrict this blog to Ratio
Analysis. While designing ratio analysis for ratios based on profit and loss figures and balance sheet
, one thing has to kept in mind that profit and loss figures are period based and balance sheet figures
are taken on To Date basis. Hence we need to handle this behavior while designing ratio analysis
report in report painter. I will use start with designing the form and the setting necessary parameters
for a classified report output.

Step 1: Transaction Code FGI4 (create form)/ FGI6 (view/edit form)

In next screen you will see an unstructured form with four rows and four columns.My
recommendation here is to have such a report that is meaningful at a glance & provides a
comparative view of ratios for all months in the fiscal year. Here i will make 13 columns, 1st
columns will be for Year to Date and rest of 12 will be for respective posting periods. Text of any
row or column can be edited using shortcut key SHIFT + F1 or from menu.

Now in next step you need to set the columns. Since most of the ratios are based on Balance sheet figures i will
recommend to make use of key figure “Accumulated balance” KUMSL for every column you add. Following images
will show the Year to date column for report.
Now the process for month columns will be a bit different than year to date column. Double click the Column 2 and
then key figure with characteristics.Key figure will always be Accumulated Balance for every column. Fiscal year
setting will be same as of year to date column.Do not select variable button against posting period and hard code 1 in
TO to FROM . 1 will stand here as first posting period which may differ if your fiscal year is not calendar year
dependent. I will take Jan to December as fiscal year. Hence here January is fist posting period as shown in the coming
snap

Repeat the same process for next 11 , do not forget to change the posting period for every period column i-e for
February it should be 2 , for March 3 and so on..Now columns for your report have designed. You can copy the column
created by selecting it pressing F9 and then F7. A new column will be added next to old the one.
Step2 : Define General Data Selection

This is very important step . In this step you select parameters that will govern your report’s data . Like Financial
statement version & Chart of accounts used. Ideally financial statement version for ratio analysis should be the one
which is assigned to financial statements. However you can create your own using OB59.

Step3: Define Rows

In this step you assign the FS items or accounts to the rows so that once report is executed their output can be displayed
in the columns. I will first start with liquidity ratios which are based on balance sheet figures. First is current ratio which
is current asset times current liabilities. I will first insert a blank line from Menu–edit—rows to name Liquidity ratios as
shown in following snap
Now i will start assigning FS nodes for current assets and current liabilities to the rows..Double click on Row 1 and
select characteristics. In next screen perform the action as indicated in following snap
You can see in the following screen shot that current assets node has been created, you need to repeat the same process
for current liabilities node. Double click the next row..select characteristics and select the FS item for current liabilities
by expanding hierarchy and confirm it.
Next we will set formula for current ratio , follows the process as shown in the coming screen shot
Now your current ratio has been computed. In order to make current ratio row distinguished form other you can select
color for it. Select the row and in menu go to formatting..color settings…choose any you want.

Now your form is completed for one ratio, you can repeat the same process for calculating other ratios. Next we will
now develop report.

Step 4: Define Report ( T code FGI1)

Our next step is to develop report based on the form we have created. You can create report from t code FGI1 as well as
from form as well. In the form you can see the Report button, click it. In next screen you will see that form is
automatically assigned and you can give name to your report.Press create button. In new screen characteristics tab ,
fetch the FS Items and assign it financial statement version.In variable tab you can set ledger 0L as default.In Output tab
select classic drill down and then basic list:detail. Save and run the report. Cheers 🙂
Correction:

Please note that there is a little mistake in number 6 screen shot. Variables like 1PF,1PT can be configured using FGIV
not the FGIR.

Useful Tips:

1. To hide any row or column , just click on it and go to menu …edit…rows..hide..You can display the hidden
rows from the same path by selecting hidden rows and setting them display.
2. When you try to edit name of any element , you have thee names, Short text, medium text and long text. You
can set which one to display in report from menu…formatting…all rows..text length.
3. Column width can be changed from menu..formatting..column width.
4. You can import forms created in other client sharing the same instance number using FGIR.
5. Forms can be deleted using FGIZ.
6. Forms can be transported from development to live server using FGIP.
7. Report can imported from one client to another client using FGIQ provided that client shares
the same instance number.
8. Reports can be transported to live server using FGIO.
9. FGIX will let you delete report data.

Hello

Process Flow

Selecting and maintaining a library for your report.

As the transfer structure to Report Painter you use a report table, which is defaulted by SAP and can
not be maintained. This table contains characteristics, key figures and predefined columns. In a
library, you collect the characteristics, key figures, and predefined columns from the report table,
which you need for your Report Painter reports.

When you define a Report Painter report, you assign it to a library. Reports assigned to one library
can only use the characteristics, key figures, and predefined columns selected for that library.

When you create or maintain a library, the Position field determines the sequence in which the
characteristics, key figures or (predefined) key figures appear in the Report Painter selection lists
when you define a report. This allows you to position the objects that you use regularly in your
reports at the beginning of the selection lists. If you do not make an entry in the Position field, you
will not be able to use this object in Report Painter reports.

You can use either the standard SAP libraries for your reports or define your own.

Selecting or maintaining a standard layout for your report.

Standard layouts determine report layout features and the format of your report data.

If the SAP standard layouts do not meet your reporting requirements, you can create a new standard
layout or change an existing one.
Defining row and column models.

A model is a one-dimensional, predefined reporting structure that you can insert in either the rows
or columns of your report.

If you often use the same or similar row or column definitions in your reports, it is recommended
that you create row or column models.

You must define the row and/or column models that you want to include in your report definition
before you define the report.

You can also use the standard column models supplied by SAP.

Defining the report.

Defining a Report Painter report involves the following steps.

Define the report columns

You define the report columns using the characteristics, key figures, and predefined columns
selected for the library that the report uses. Alternatively, you can use a column model for column
definition. Column models are predefined column structures which you insert into your entire
column definition, instead of defining each individual column.

Define the report rows.

You define the report rows using the characteristics selected for the library selected for the report.

Alternatively, you can use a row model for your row definition. Row models serve the same
purpose as column models, but are used to define a report row.

Edit and format the report rows and columns in line with your requirements. (For example, you can
hide rows or columns, define the column width or define colors for your report rows).

Define general data selection criteria for the selection of your report data.

Selection criteria are the characteristics used to select data for the entire report. You cannot enter
characteristics as data selection criteria if they are already being used in the report rows or columns.

Assigning the report to a report group.

Once you have defined a report, you must assign it to a report group. A report group can contain
one or more reports from the same library. However, reports that share the same data will select
data more quickly and improve processing time.

You can assign a Report Painter report to a report group containing Report Painter and Report
Writer reports.

Generating the report group.


During this step, the system generates the programs necessary for processing the reports.

When you generate a report group, Report Painter reports are converted to Report Writer format.
However, you can only change or display Report Painter reports using the Report Painter tool.

Executing the report group.

Report execution involves the selection and output of all the database records used in the report.

Once the system selects records according to the online selection criteria, it outputs the report data
in the format defined for the report in question.

Regards
Display the values in Docment Currency in Report Painter-FDI4
https://archive.sap.com/discussions/thread/1884481

Hi,

Am new to report painter. i created report painter in FDI4. this report is to display the due amount.

when i click on table cell, which is amount field . Am chosen cell type as 'Select with Key figure'
option .

After then i try to select key figure for that cell (Popup:Element definition).

In F4 selection there is only one Key figure which is Amount in LC.

I need to display the field value as Amount in Document currency.

How to bring Amount in Docment curreny in that F4. Is it possible.

I didnt get any thread related to my requirement in SDN.

pl help.

Solved by myself..

very difficult to found out tis.

Two steps to be taken to bring Amount in Doc. currency as a key figure(F4 help).

1. Added new field 'WRSHB' , data element for this field WRSHB_D (Used Append Structure) in
RFRRD20 structure. FDI4 used this structure only.

2. create new entries in TKAF table under application class Account receivable FBRD. field value
WRSHB ,data element value WRSHB_D, and others field value are as same as DMSHB record.

After these steps, now u check in FDI4 tcode. U can get Amt in doc. currency as key figure.

refer this also.

SAP Note : 454509


Change PS Report S_ALR_87013558

Provare anche FSI3


Try this program.

REPORT ztemp_estructura_balance MESSAGE-ID fe.

TYPE-POOLS:

fibs.

TABLES: t011, rfgbst.

TYPES:

t_flag TYPE c,

t_bs_node_id TYPE fibs_bs_node_id,

t_bs_node_tab TYPE t_bs_node_id OCCURS 50,

t_bs_type TYPE i.

TYPES:

BEGIN OF t_bs_info,

 info about BS given out to clients

ktopl LIKE t011-ktopl,

xauto LIKE t011-xauto,

type TYPE t_bs_type,

END OF t_bs_info.

CONSTANTS:

true TYPE t_flag VALUE 'X',

false TYPE t_flag VALUE ' '.

DATA: versn LIKE t011-versn VALUE 'CTIY'.

DATA: node_tab LIKE snodetext OCCURS 0 WITH HEADER LINE.

DATA: bs_info TYPE t_bs_info.

SELECT SINGLE * FROM t011

WHERE versn = versn.

 Load the structure from DB


PERFORM load_versn

USING versn.

 Create the node table for the function module displaying the tree

PERFORM create_node_tab

TABLES node_tab.

WRITE 'Hello'.

&----

 Load the version (again) *

----

FORM load_versn

USING versn.

 Load the version

CALL FUNCTION 'FI_BS_LOAD'

EXPORTING

version = versn

IMPORTING

bs_info = bs_info.

 Load the texts

PERFORM load_versn_text.

ENDFORM. " LOAD_VERSN

&----

*& Form LOAD_VERSN_TEXT

&----
 Load the texts of the version *

----

FORM load_versn_text.

DATA:

flg_langu_maint TYPE t_flag VALUE false,

flg_sylangu_not_found TYPE t_flag,

maint_langu LIKE sy-langu.

CALL FUNCTION 'FI_BS_LOAD_LANGU'

EXPORTING

flg_langu_maint = flg_langu_maint

IMPORTING

flg_sylangu_not_found = flg_sylangu_not_found

maint_langu = maint_langu

EXCEPTIONS

OTHERS = 1.

 if maintenance language was loaded, because sy-langu was not found

IF flg_sylangu_not_found = true.

MESSAGE s741 WITH sy-langu maint_langu.

ENDIF.

 if maintenance language is wanted, but is different from SY-LANGU


 tell him

IF flg_langu_maint = true AND

maint_langu sy-langu.

MESSAGE s742 WITH maint_langu versn.


ENDIF.

ENDFORM. " LOAD_VERSN_TEXT

&----

*& Form CREATE_NODE_TAB

&----

 text *

----

FORM create_node_tab

TABLES node_tab STRUCTURE node_tab.

REFRESH node_tab.

DATA:

root_id TYPE t_bs_node_id.

 Get the root

CALL FUNCTION 'FI_BS_GET_ROOT'

IMPORTING

root_id = root_id

EXCEPTIONS

not_found = 01.

 Recursively add nodes

PERFORM add_node_with_subtree

TABLES node_tab

USING 1

root_id.
ENDFORM. " CREATE_NODE_TAB

&----

*& Form ADD_NODE_WITH_SUBTREE

&----

 Recursively add a node with its subtree *

----

FORM add_node_with_subtree

TABLES node_tab STRUCTURE node_tab

USING value(level) TYPE i

value(node_id) TYPE t_bs_node_id.

DATA:

children_node_tab TYPE t_bs_node_tab WITH HEADER LINE.

 Get the display info

CALL FUNCTION 'FI_BS_NODE_GET_SNODETEXT'

EXPORTING

node_id = node_id

with_gl_accounts = rfgbst-glac_on

IMPORTING

attr = node_tab

EXCEPTIONS

node_not_found = 01.

node_tab-tlevel = level.

APPEND node_tab.
 And do the same for its children

level = level + 1.

CALL FUNCTION 'FI_BS_NODE_GET_CHILDREN'

EXPORTING

node = node_id

with_gl_accounts = rfgbst-glac_on

TABLES

children_node_tab = children_node_tab

EXCEPTIONS

node_not_found = 01.

LOOP AT children_node_tab.

PERFORM add_node_with_subtree

TABLES node_tab

USING level

children_node_tab.

ENDLOOP.

ENDFORM. " ADD_NODE_WITH_SUBTREE

You might also like