Fonction SAP BARC_GRAPHIC_PAI - Analyze data returned by the graphic (PAI)

Paramètre Reférence Type Long. Valeur par déf. Facultatif Description
ACTIVATE_HELP C C 0 'X' X WinHelp active
AT_CONTROL_DESTROY C C 0 X Clean-up when control deleted
CONTROL_HANDLE CNTL_HANDLE 0 X Control handle
EVENT_STRING C C 0 X Event string
INSTANCE REF TO CL_GUI_BARCHART 0 X Bar chart object

Paramètre Reférence Type Long. Description
GRAPH_CMD NET_GRAPH-GR_MES C 12 User command
GRAPH_CMD_INFO BCCMDINFO u 124 Info structure for user command
GR_SEL_FIELD NET_GRAPH-SEL_FIELD C 1 Selected graphics object field
LAYER_TYPE TBCL-LAYER_TYPE C 1 Layer type
SETTINGS BARC_SET u 119 Settings
SYMBOLTYPE TBCL-SYMBOLTYPE N 2 Symbol type, for symbolic layers

Paramètre Reférence Long. Facultatif Description
BOXES BCBOXES 20 X Graphics object in table area
BOX_VALS BCVALS 88 X Attributes of graphic objects in table area
CHARTS BCCHART 20 X Charts
COLUMNS BCCOLUMN 8 X Columns
CURVES BCCURVE 12 X Curves
CURVE_VALS BCCURVVALS 244 X Curve attributes
DELETIONS BCDELETE 12 X Objects to be deleted
LINKS BCLINKS 24 X Links
LINK_VALS BCNVALS 92 X Link attributes
NODES BCNODES 16 X Graphic objects in graph area
NODE_VALS BCNVALS 92 X Attributes of graphic objects in table area
POSITIONS BCPOSITION 16 X Positions
SEGMENTS BCSEGMENTS 12 X Segments

Exception Description
INV_WINID Incorrect window ID

Notes
See parameter documentation.
Code for the user reaction taken in the graphics.
(Constants are provided in the Include 'LBARCCON' for this purpose.)
The following user reactions can be reported back to ABAP:
In confirm mode (see 'BARC_GRAPHIC_PBO' parameter 'CONFIRM'):
'ABACK' (BC_CONST-ASK_FOR_BACK)
The F15 key was pressed.
'ACON' (BC_CONST-ASK_FOR_CONNECT)
A link was inserted in the graphic.
Data about it can be found in table LINKS.
'ADEL' (BC_CONST-ASK_FOR_DELETE)
Objects should be deleted.
Data about it can be found in table DELETIONS.
'ADUP' (BC_CONST-ASK-FOR_DUPLICATE)
One or more objects should be duplicated.
Data about it can be found in tables BOXES, NODES, POSITIONS.
'AEXIT' (BC_CONST-ASK_FOR_EXIT)
The F3 key was pressed.
'AINS' (BC_CONST-ASK_FOR_INSERT)
An object should be inserted.
Data can be found in tables BOXES, NODES, NODE_VALS, POSITIONS.
'AMOD' (BC_CONST-ASK_FOR_MODIFY)
An object should be modified.
Data can be found in tables BOX_VALS, NODE_VALS.
'AMOVEBOX' (BC_CONST-ASK_FOR_MOVEBOX)
A box should be shifted.
Data can be found in table POSITIONS.
'AMOVELAYER' (BC_CONST-ASK_FOR_MOVELAYER)
A layer should be shifted.
Data can be found in table NODE_VALS.
'AMOVEMULTI' (BC_CONST-ASK_FOR_MOVEMULTI)
Several nodes should be shifted within a chart.
Data can be found in tables NODE_VALS, POSITIONS.
Several nodes should be shifted beyond chart limits.
Data can be found in tables NODES, NODE_VALS, POSITIONS, and
DELETIONS.
'AMOVENODE' (BC_CONST-ASK_FOR_MOVENODE)
A node should be shifted within a chart.
Data can be found in tables NODE_VALS, POSITIONS.
A node should be shifted past chart limits.
Data can be found in tables NODES, NODE_VALS, POSITIONS, and
DELETIONS.
'AMOVETABCOL' (BC_CONST-MOVETABCOL)
Columns should be shifted in the table part. Data can be
determined via the routine GET_FOR_ATTRIB.
'AMOVECURVE' (BC_CONST-ASK_FOR_MOVECURVE)
A curve point should be moved. See CURVE_VALS for the
relevant data.
'AQUIT' (BC_CONST-ASK_FOR_QUIT)
The F12 key was pressed.
'ASCALELEFT' (BC_CONST-ASK_FOR_SCALELEFT)
A layer should be scaled to the left.
Data can be found in table NODE_VALS.
'ASCALERIGHT' (BC_CONST-ASK_FOR_SCALERIGHT)
A layer should be scaled right.
Data can be found in table NODE_VALS.
Independent values:
'DBCL' (BC_CONST-DOUBLE_CLICK)
There was a double click on an object.
Data can be found in tables: BOXES, NODES, LINKS, CURVES,
CURVE_VALS or parameter GRAPH_CMD_INFO.
Furthermore, if there is a double click on a field of a box,
field GR_SEL_FIELD is filled with its field name.
'SEL' (BC_CONST-GET_SELECTION)
When ABAP_CMD = 'SEL' (function module BARC-GRAPHIC_PBO),
the current object selection was queried.
Data can be found in tables BOXES, NODES, LINKS, CHARTS,
CURVES, CURVE_VALS. The IDs of the selected objects are returned
in the object tables BOXES, NODES, LINKS, CHARTS, CURVES. In
CURVE_VALS the indexes and dates of selected supporting points
in the curve.
'CUSTOM' (BC_CONST-GET_SETTINGS)
When ABAP_CMD = 'CUSTOM' (function module BARC_GRAPHIC_PBO),
the current settings were queried.
Data can be found in exporting parameter SETTINGS.
'OVERLAP' (BC_CONST-GET_OVERLAP)
When ABAP_CMD = 'OVERLAP' (function module BARC_GRAPHIC_PBO),
the lines with overlapping nodes were queried.
Data can be found in table POSITIONS
'U' (BC_CONST-TIMER)
A timer event was reached (see timer field in customizing of
the options).
'ALIVE' (BC_CONST-ALIVE)
The graphic confirms according to the value set as the
confirmation interval in the options.
'BREAK' (BC_CONST-BREAK)
CRTL-B was pressed in the graphic (for debugging purposes).
'STARTCON' (BC_CONST-STARTCON)
The link icon was pressed. ABAP was informed that the link mode
was activated.
'GRANULAT' (BC-CONST-GRANULAT)
Granularity was changed. The new value is returned in
SETTINGS-GRANULAT.
'SNDDZIOFAC' (BC_CONST-SNDDZIOFAC)
The diagram area is adjusted, function code 'DZIO'.
The factor with which you zoomed is returned in
GRAPH_CMD_INFO-INFO.
'PARTLOAD' (BC_CONST-PARTLOAD)
An area that was not yet marked as 'filled' is now visible
(by scrolling, zooming, ..) in the graphic (see LBARCF03,
SET_SEGMENT_STATUS). This area is returned in table SEGMENTS
until it is marked as 'filled'.
'VIEWLIMIT' (BC_CONST-VIEWLIMIT)
The beginning of the current section is returned in parameter
GRAPH_CMD_INFO in START and the end of this section is returned
in END after scrolling or changing the currently visible
section.
'CREORG' (BC_CONST-REORG)
Width of a column changed in the table area.
'HREORG' (BC_COBST-HREORG)
The width of the table area was changed by moving the
separator between the table area and the chart area.
'VREORG' (BC_CONST-VREORG)
The height of a chart was changed by moving the separator.
'HOTSPOT' (BC_CONST-HOTSPOT)
A hotspot was activated. The corresponding values were
returned in the table BOX_VALS.
'VIEWRANGE' (BC_CONST-GET_VIEWRANGE)
Returns the date values of the display. The corresponding
values can be taken from GRAPH_CMD_IMFO.
'FCODE' (BC_CONST-F1_F4)
Returns the box ID in BOX_VALS, with FL = 'field name' and
VAL = 'function key'.
A double-click on a header, table header or time scale returns thecorresponding object and chart here.
The following objects are possible:
BC_CONST-TITLEBOX "Chart header
BC_CONST-TIMESCALE "Time scale
BC_CONST-TABLETITLE "Table header
After adjusting the graph area, function code 'DZ10', GRAPH_CMD =BC_CONST-SNDDZIOFAC, the zoom factor is returned in INFO.
After changing the visible section, in BC_CONST-VIEWLIMIT the start andend of the current section are returned in START and END respectively.
When you select a menu option in a column-specific dialog box (dialogbox on the center mouse button in the table title), the chart isreturned in CHART_ID and the column number of the dialog box in INFO.
After you have changed the column width, double-click to display thechart ID and the type of change (manual or optimized).
If there was a double click on a field of a box, the field name is setin this field.
Example:
Given a box with the format [$a/$b]
If there is now a double click on field "a" in the graphics,
the table BOXES is filled and field
GR_SEL_FIELD is set to "a".
Layer type used when inserting a layer in the bar chart.
Possible values:
---------------
Value|Meaning |Constants in LBARCCON
-----+----------+------------------------------------------------------
'R' |Rectangle |(BC_CONST-RECTANGLE_LAYER)
'L' |Line |(BC_CONST-SYMBOL_LAYER)
'S' |Symbol |(BC_CONST-LINE_LAYER)
(The above-mentioned constants are provided in the Include 'LBARCCON').
Settings in the options profile as returned from the graphics in thefield string SETTINGS
Option name |Possible values|Meaning (constant in LBARCCON)
------------+---------------+---------------------------------
LAYER_TYPE |R |Rectangle
|S |Symbol
|L |Line
SYMBOLTYPE |01 - 21 |See description of SYMBOLTYPE
NUMERR |000-100 |Number of errors permitted
NUMHSBS |1 |One horizontal scrollbar
|2 |Two horizontal scrollbars
|3 |Three horizontal scrollbars
COLWIDTH |0050 - 0600 |Wide table part in 1/10 mm
INFOTEXTS |X/' ' |Switch on/off infotext
TIMER |000000 - 003600|Time interval in seconds
DBCLICK |X/' ' |Switch on/off double click
GRANULAT |1 |Year (BC_CONST-YEAR_UNIT)
|2 |Quarter (BC_CONST-QUATER_UNIT)
|3 |Month (BC_CONST-MONTH_UNIT)
|4 |Week (BC_CONST-WEEK_UNIT)
|5 |Day (BC_CONST-DAY_UNIT)
|6 |Hour (BC_CONST-HOUR_UNIT)
|7 |Minute (BC_CONST-MINUTE_UNIT)
|8 |Second (BC_CONST-SECOND_UNIT)
MARKTYPE | |Type of marking for table objectcomponents
|0 |Frames
|1 |Inverted
|2 |Pick marking
|3 |Color marking
SELTYPE |0 |No objects
|1 |Objects in graphic area (nodes)
|2 |Objects in table area (boxes)
|3 |Objects in table and graphic areas
|4 |Graphic elements
AUTOSCROLL |000-033 Pixel |Step-by-step to automatic scrolling
BORDERLINE |X/' ' |Switch on/off vert.lines in graphic part
TERMINATE |X/' ' |Display end/start date for extension
CREORG |X/' ' |Switch on/off area change
CSELECT |X/' ' |Switch on/off selection function
CMOVE |X/' ' |Switch on/off shift function
HORLINE |00-99 |Display interval of separator in graphics
EDITINLINE |X/' ' |Switch on/off maintain mode
OPMODE |0 |Selection mode
|1 |Modification mode
|2 |Connection mode
OBJMARK | |Type of marking for graph. obj. components
|0 |Frames
|1 |Inverted
|2 |Pick marking
|3 |Color marking
MARKCOL |All colors |Color for color marking
|of TWCOL |
The symbol type determines the symbol to be displayed if the layerinserted in the bar chart is a symbol layer.
All the possible input values and their meaning as well as theconstants in the Include file LBARCCON are listed below.
Type|Meaning
|(Constant in LBARCCON)
----+------------------------------------------------------------------
1 |Filled in arrow pointing downwards
|(BC_CONST-VC_POINTER_DOWN)
2 |Equilateral filled in triangle pointing downwards
|(BC_CONST-VC_TRIANGLE_DOWN)
3 |Arrow to right (in form of a greater than sign)
|(BC_CONST-VC_GREATER_SIGN)
4 |Slim triangle pointing upwards
|(BC_CONST-VC_SLIM_TRIANGLE_UP)
5 |Slim triangle pointing to the right
|(BC_CONST-VC_TRIANGLE_RIGHT)
6 |Slim triangle pointing to the left
|(BC_CONST-VC_TRIANGLE_LEFT)
7 |Rhombus
|(BC_CONST-VC_RHOMB)
8 |Two triangles pointing to each other (Fly/lying hourglass)
|(BC_CONST-VC_DOUBLE_TRIANGLE)
9 |Slim triangle pointing downwards
|(BC_CONST-VC_SLIM_TRIANGLE_DOWN)
10 |Square
|(BC_CONST-VC_SQUARE)
11 |Circle
|(BC_CONST-VC_CIRCLE)
12 |Filled in arrow pointing downwards in circle
|(BC_CONST-VC_POINTER_DOWN_IC)
13 |Equilateral triangle pointing downwards in circle
|(BC_CONST-VC_TRIANGLE_DOWN_IC)
14 |Arrow to right (in form of a greater than sign) in circle
|(BC_CONST-VC_GREATER_SIGN_IC)
15 |Slim triangle pointing upwards in circle
|(BC_CONST-VC_SLIM_TRIANGLE_UP_IC)
16 |Slim triangle pointing to right in circle
|(BC_CONST-VC_TRIANGLE_RIGHT_IC)
17 |Slim triangle pointing to left in circle
|(BC_CONST-VC_TRIANGLE_LEFT_IC)
18 |Rhombus in circle
|(BC_CONST-VC_RHOMB_IC)
19 |Two triangles pointing to each other in circle
|(BC_CONST-VC_DOUBLE_TRIANGLE_IC)
20 |Slim triangle pointing downwards in circle
|(BC_CONST-VC_SLIM_TRIANGLE_DOWN_IC)
21 |Square in circle
|(BC_CONST-VC_SQUARE_IC)

Description
Set this parameter before deleting the control with CONTROL_DESTROY toclean up internal management for the current control.

Description
When specifying a control handle the data combined with the usercommand is determined via the control.

Description
After 'CONTROL_REGISTER_EVENT' with EVENT = 2 and 'CONTROL_CALL_METHOD'with method = 'DataWriteActive'. Can the command and its correspondingdata be received as RETURN with 'CONTROL_GET_EVENT_PARAM'. Thisparameter can be sent here for direct processing.
Information about Boxes (see GRAPH_CMD)
The fields of table BOXES, which are set depending on GRAPH_CMD, are
listed below.
GRAPH_CMD = ADUP (Duplicate):
Fields: BOXES-ID of the duplicated box
BOXES-CHART_ID containing the duplicated box.
GRAPH_CMD = AINS (Insert):
Fields: BOXES-CHART_ID containing the inserted box.
GRAPH_CMD = DBCL (Double click)
Fields: BOXES-CHART_ID containing the box at which the double
click was made
BOXES-ID at which the double click was made.
Furthermore, field GR_SEL_FIELD with the name of the field
of the box at which the double click was made is filled
Information about attributes of the boxes (see GRAPH_CMD).
The fields of table 'BOX_VALS', which are set depending on
GRAPH_CMD, are listed below.
GRAPH_CMD = AMOD (Modify the contents of a box column):
Fields: BOX_VALS-ID -> ID of the modified box
BOX_VALS-FL -> Field name of the column whose contents were
modified. The field name defined in customizing
is used.
BOX_VALS-VAL -> New box contents of the modified column.
GRAPH_CMD = 'HOTSPOT' (hotspot activated):
Fields: BOX_VALS-ID -> ID of the box that contains the hotspot
BOX_VALS-FL -> Field name of the column that contains the
hotspot
BOX_VALS-VAL -> Symbol of the hotspot
Chart specifications (see GRAPH_CMD).
For GRAPH_CMD = BC_CONST-GET_SELECTION the ID of the selected charts isreturned here.
Return selected columns. Only for function codes that start with 'SL'.
After double-clicking, the ID and the chart of the curve are returnedhere.
After double-clicking, the test index and the date of the supportingpoint of the curve closest to the double-click are returned here.
After a curve point has been moved, the new data is returned here.
Information about objects to be deleted (see GRAPH_CMD)
The fields of the table DELETIONS, which are set depending onGRAPH_CMD, are listed below.
GRAPH_CMD = ADEL (Delete objects):
Fields: DELETIONS-CHART_ID -> Chart containing the object to bedeleted.
DELETIONS-OBJ_TYPE -> Object type to be deleted.
DELETIONS-OBJ_ID -> ID of the object to be deleted.
GRAPH_CMD = AMOV (Object deletion):
Shifting objects in the table area (box) or in the chart area (node)past the chart limits corresponds to deletion and insertion of thecorresponding object.
Fields: DELETIONS-CHART_ID -> Chart containing the object to bedeleted.
DELETIONS-OBJ_TYPE -> Object type to be deleted.
DELETIONS-OBJ_ID -> ID of the object to be deleted.
All the possible object types which can be deleted with the table
DELETIONS are listed below.
OBJ_TYPE|Meaning |Constants in LBARCCON
--------+-------------------------------------+-----------------------
'B' |Graphic obj. in table area (boxes) |BC_CONST-BOX_OBJECT
'C' |Chart |BC_CONST-CHART_OBJECT
'D' |Date line |BC_CONST-DATELINE_OBJECT
'G' |Grid |BC_CONST-GRID_OBJECT
'N' |Graphic obj. in chart area (node) |BC_CONST-NODE_OBJECT
'R' |Ribbon |BC_CONST-RIBBON_OBJECT
'K' |Links |BC_CONST-LINK_OBJECT
Constants are provided in Include 'LBARCCON' for all object types(OBJ_TYPE).
Information about nodes (see GRAPH_CMD).
The fields of table LINKS, which are set depending on GRAPH_CMD, arelisted below.
GRAPH_CMD = ACON (Link two nodes with a link):
Fields: LINKS-CHART_ID -> Chart in which the link is to be inserted.
LINKS-NODEPRE_ID -> ID of the predecessor object of the link
LINKS-NODESUC_ID -> ID of the successor object of the link
LINKS-AOB -> Type of relationship, possible values:
AA -> Start-start relationship
AE -> Start-end relationship (SF rel.)
EA -> End-start relationship (FS rel.)
EE -> End-end relationship
The type of relationship is converted to the corresponding ports in thefunction module: BARC_GRAPHIC_PBO (See docu for function module:BARC_GRAPHIC_PBO Table: LINK_VALS)
GRAPH_CMD = DBCL (double click on a link)
Fields: LINKS-CHART_ID -> Chart containing the link
LINKS-ID -> ID of the link
GRAPH_CMD = SEL (selected links)
Fields: LINKS-CHART_ID -> Chart containing the link
LINKS-ID -> ID of the link
Information about nodes (see GRAPH_CMD).
The fields of table NODES, which are set depending on
GRAPH_CMD, are listed below.
GRAPH_CMD = ADUP (Duplicate):
Fields: NODES-ID of the node to be duplicated
NODES-CHART_ID containing the node to be duplicated.
GRAPH_CMD = AINS (Insert a new node):
Fields: NODES-CHART_ID containing the inserted node.
GRAPH_CMD = AMOVENODE (Shift a node if there was a chart change)
Fields: NODES-ID of the node to be shifted
NODES-CHART_ID of the chart in which the node was shifted.
If there was a chart change, the node is deleted from the original
chart and inserted in the new chart. The tables DELETIONS and NODES
are given input in addition to the tables NODE_VALS and POSITION.
Information about node attributes (see GRAPH_CMD).
The fields of table NODE_VALS, which are set depending on
GRAPH_CMD, are listed below.
GRAPH_CMD = AINS (Insert nodes)
Fields: NODE_VALS-CHART_ID -> In the 1st and 2nd line of the table
NODE_VALS-VAL -> Starting date in the 1st line of thetable
End date in the 2nd line of the table
GRAPH_CMD = AINS (Insert layers for nodes which already exist)
Fields: NODE_VALS-ID -> ID of the node to which the layer was
added in the 1st and 2nd table lines.
NODE_VALS-CHART_ID -> Chart in which the layer was positioned
in the 1st and 2nd table lines.
NODE_VALS-VAL -> Starting date in the 1st table line
End date in the 2nd table line
GRAPH_CMD = AMOD (Modify the layer inscription -> not yet possible)
Fields: NODE_VALS-ID -> ID of the node which was modified.
NODE_VALS-FL -> Field name of the column whose contents were
changed. This is the field name defined in
customizing.
NODE_VALS-VAL -> Modified field contents
'AMOVELAYER' (Shift layer)
Fields: NODE_VALS-ID -> ID of the node whose layer was shifted
in the 1st and 2nd table lines.
NODE_VALS-CHART_ID -> Chart containing the layer in the
1st and 2nd table lines.
NODE_VALS-FL -> Text index of the starting date in the1st table line
Text index of the end date in the
2nd table line
NODE_VALS-VAL -> Starting date in the 1st table line
End date in the 2nd table line
'AMOVENODE' (Shift node)
Fields: NODE_VALS-ID -> ID of the node to be shifted
in the 1st and 2nd table lines.
NODE_VALS-CHART_ID -> Chart containing the node
in the 1st and 2nd table lines.
NODE_VALS-FL -> Text index of the starting date in the
1st table line
Text index of the end date in the
2nd table line
NODE_VALS-VAL -> Starting date in the 1st table line
End date in the 2nd table line
'ASCALELEFT' (Change starting time of the layer)
Fields: NODE_VALS-ID -> ID of the node whose layer wasmanipulated
in the starting date.
NODE_VALS-CHART_ID -> Chart containing the node.
NODE_VALS-FL -> Text index of the starting date.
NODE_VALS-VAL -> New end date
'ASCALERIGHT' (Change end time of the layer)
Fields: NODE_VALS-ID -> ID of the node whose layer wasmanipulated
in the end date.
NODE_VALS-CHART_ID -> Chart containing the node.
NODE_VALS-FL -> Text index of the end date .
NODE_VALS-VAL -> New end date
Information about positions (see GRAPH_CMD).
The fields of the DELETIONS table, which are set depending onGRAPH_CMD, are listed below.
GRAPH_CMD = ADUP (Duplicate an object)
Fields: POSITIONS-CHART_ID -> Chart containing the object to be
duplicated.
POSITIONS-OBJ_TYPE -> Object type:
POSITIONS-OBJ_ID -> ID of the object to be duplicated
GRAPH_CMD = AINS (Insert an object )
Felder: POSITIONS-CHART_ID -> Chart in which to position the
object to be inserted.
POSITIONS-OBJ_TYPE -> Object type:
POSITIONS-ROW_NUMBER -> Line in which to position the object
to be inserted.
GRAPH_CMD = MOVEBOX (Shift a box)
Felder: POSITIONS-CHART_ID -> Target chart of the box
POSITIONS-OBJ_TYPE -> Object type:
POSITIONS-OBJ_ID -> ID of the box to be shifted
POSITIONS-ROW_NUMBER -> Line in which to shift the box.
GRAPH_CMD = MOVENODE (Shift a node)
Fields: POSITIONS-CHART_ID -> Target chart of the node
POSITIONS-OBJ_TYPE -> Object type:
POSITIONS-OBJ_ID -> ID of the node to be shifted
POSITIONS-ROW_NUMBER -> Line in which to shift the node
All the possible values for the field OBJ_TYPE, its meaning as well asthe constants provided in the Include file LBARCCON are listed below.
OBJ_TYPE |Meaning |Constant in LBARCCON
---------+----------------------------------+--------------------------
B |Graphic object in table part and |BC_CONST-BOX_OBJECT
|in chart title |
N |Graphic object in diagram part |BC_CONST-NODE_OBJECT
Feedback table for areas that are not yet marked as 'filled'. The areasare interpreted here as the intersection of the horizontal and verticalsegments.
The feedback continues until the area is marked as 'filled', seeLBARCF03, SET_SEGMENT_STATUS.