sapgui_apogrid_get_cell_data
| APO Grid Functions |
Gets the data from a specific APO grid cell.
int sapgui_apogrid_get_cell_data( const char *description, const char *gridID, const char *row, const char *column, const char *outParamName, [args,] LAST ) ;
| description | User entered text to aid in understanding script |
| gridID | Object ID string |
| row | Grid row number. The first row is numbered zero (0). |
| column | Grid column identifier. The first column is numbered zero (0). |
| outParamName | The name of the parameter in which to store the data in the cell. |
| args | Optional Arguments |
| LAST | A marker indicating the end of the argument list. Not required if Optional Arguments are used. |
sapgui_apogrid_get_cell_data assigns the data in a cell of an APO grid to parameter outParamName. Data is always saved as a string.
Return Values
This function returns -1 on success or 0 on failure.
Parameterization
You can parameterize all string (char type) arguments.
Mill Demo Example
This example requires that the Mill Demo be available when the action starts to run. To navigate to this point, use the Sample vuser_init section for loading the Mill Demo.
Select()
{
/* To make the example more readable,
we use a variable to pass the Grid ID */
char gridID[]= "usr/subSUB_MAIN:/SAPAPO/SAPLMSDP_SDP:0027"
"/cntlSDP_CUSTOM_CONTROL/shellcont/shell/"
"shellcont[0]/shell/shellcont[0]/shell" ;
int rc;
int row;
char sRow[10];
/*Select entire grid*/
sapgui_apogrid_select_all("Select entire grid", gridID, LAST );
/*Deselect grid*/
sapgui_apogrid_clear_selection("Deselect entire grid", gridID, LAST );
/* Scrolling to a row does not select it */
sapgui_apogrid_scroll_to_row("Scroll one above to Forecast",
gridID, "11", LAST );
/* Select a row */
sapgui_apogrid_select_row("(Forecast)",
gridID,
"12",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1035",
END_OPTIONAL);
/* Deselect it*/
sapgui_apogrid_deselect_row("Deselect Forecast)",
gridID,
"12",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1035",
END_OPTIONAL);
// Are labels changeable?
rc = sapgui_apogrid_is_cell_changeable("Check top corner with labels",
gridID,
"0", "0", LAST );
lr_message("Corner cell changeable = %d", rc);
/* Double click on the label row */
sapgui_apogrid_double_click("(0, Customers Forecast)",
gridID,
"0",
"38",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1050",
END_OPTIONAL);
/* Get the message resulting from the double click */
sapgui_status_bar_get_text("paramStatusBarText",
BEGIN_OPTIONAL,
"Recorded status bar text: Key figure of the row cannot be fixed",
END_OPTIONAL);
// Get the format and tool tip for the row handle
sapgui_apogrid_get_cell_format("Row handle format",
gridID,
"12", "0",
"cellAttrib",
LAST );
lr_message("Row handle format is %s",
lr_eval_string("{cellAttrib}"));
/* Get the tool tip */
sapgui_apogrid_get_cell_tooltip("Row handle tool tip",
gridID,
"12", "0",
"cellAttrib",
LAST );
lr_message("Row handle tool tip is %s",
lr_eval_string("{cellAttrib}"));
/* Get the current value of the cell */
sapgui_apogrid_get_cell_data("Get data in cell", gridID,
"12",
"38",
"cellData",
LAST );
lr_message("Initial data in 12, 38 is %s",
lr_eval_string("{cellData}"));
/* For illustrative purposes, find an editable cell.
Of course, in a real script, you know what you
need to edit */
rc = 0;
for (row = 1; rc == 0; row++)
{
sprintf(sRow,"%d", row);
// Is data cell changeable?
rc = sapgui_apogrid_is_cell_changeable("Check a data cell",
gridID,
sRow, "38", LAST );
}
row--;
lr_message("Data cell (%s, 38 )changeable = %d", sRow, rc);
/* Clear existing selections and select a cell */
sapgui_apogrid_clear_selection("Deselect entire grid", gridID, LAST );
sapgui_apogrid_select_cell("( M 11.2003, Forecast)",
gridID,
sRow,
"38",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1039",
END_OPTIONAL);
/* Enter data in the cell */
sapgui_apogrid_set_cell_data("( M 11.2003, Forecast)",
gridID,
sRow,
"38",
"12300",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1040",
END_OPTIONAL);
/* Press the Enter key. */
sapgui_apogrid_press_ENTER("shell",
gridID,
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1041",
END_OPTIONAL);
/* Confirm that the data was entered */
sapgui_apogrid_get_cell_data("Get data in cell", gridID,
sRow,
"38",
"cellData",
LAST );
lr_message("After set_cell_data, data in %d, 38 is %s",
row,
lr_eval_string("{cellData}"));
/* Remove focus from cell */
sapgui_apogrid_deselect_cell("Deselect M 11.2003, Forecast)",
gridID,
sRow,
"38",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1039",
END_OPTIONAL);
/* Scrolling to a column does not select it */
sapgui_apogrid_scroll_to_column("Scroll to 39",
gridID,
"39",
LAST );
/* Select a column */
sapgui_apogrid_select_column("Select Col 40",
gridID,
"40",
LAST );
/* Deselect it */
sapgui_apogrid_deselect_column("deselect Col 40",
gridID,
"40",
LAST );
/*Right click Row 5: Last Years Quantity, Column m11.2003
and choose "fix" from context menu*/
sapgui_apogrid_open_cell_context_menu("( M 11.2003, Last Years Quantity)",
gridID,
"5",
"38",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1074",
END_OPTIONAL);
sapgui_apogrid_select_context_menu_item("shell",
gridID,
"MAGC_LOCK_CELLS",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1077",
END_OPTIONAL);
return 0;
}
Sample vuser_init section for loading the Mill Demo
The following is a sample vuser_init section for loading the Mill Demo.
vuser_init()
{
sapgui_open_connection_ex(" /SAP_CODEPAGE=1100 /FULLMENU accent 00 /3",
"APO - Demo Server",
"con[0]");
sapgui_select_active_connection("con[0]");
sapgui_select_active_session("ses[0]");
sapgui_select_active_window("wnd[0]");
sapgui_window_maximize(
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui104",
END_OPTIONAL);
sapgui_logon("MILL_DEMO",
"demo-password",
"720",
"EN",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1017",
END_OPTIONAL);
/* Get the APO grid */
sapgui_tree_set_selected_node("/SAPAPO/SDP94 - Demand Planning -> Planning -> Interactive Demand Planni",
"usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell",
"F00004",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1018",
END_OPTIONAL);
sapgui_tree_double_click_node("/SAPAPO/SDP94 - Demand Planning -> Planning -> Interactive Demand Planni",
"usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell",
"F00004",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1019",
END_OPTIONAL);
sapgui_tree_set_hierarchy_header_width("352",
"shellcont/shell/shellcont[2]/shell/shellcont[1]/shell",
"352",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1022",
END_OPTIONAL);
sapgui_tree_set_hierarchy_header_width("335",
"shellcont/shell/shellcont[0]/shell/shellcont[1]/shell/shellcont[1]/shell",
"335",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1023",
END_OPTIONAL);
sapgui_tree_select_item("SALES MM EU, COLUMN_SELID",
"shellcont/shell/shellcont[0]/shell/shellcont[1]/shell/shellcont[1]/shell",
" 2",
"COLUMN_SELID",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1024",
END_OPTIONAL);
sapgui_tree_scroll_to_item("SALES MM EU, COLUMN_SELID",
"shellcont/shell/shellcont[0]/shell/shellcont[1]/shell/shellcont[1]/shell",
" 2",
"COLUMN_SELID",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1025",
END_OPTIONAL);
sapgui_tree_double_click_item("SALES MM EU, COLUMN_SELID",
"shellcont/shell/shellcont[0]/shell/shellcont[1]/shell/shellcont[1]/shell",
" 2",
"COLUMN_SELID",
BEGIN_OPTIONAL,
"AdditionalInfo=sapgui1026",
END_OPTIONAL);
return 0;
}

