Purpose
Query selected grid rows

Solution
Use the predefined VB function
   guinet.GridControl.
GetSelectedRows

It returns the selected row numbers as a comma-separated list of row numbers, e.g. "408,412,589". In addition,  two GuiXT text variables are filled:

  • text[_grid_selected_rows] also contains the selected row numbers, one text line for one row number.
  • text[_grid_selected_values] is filled with the content of the cells of the selected rows, one text line for each row, where the content of all columns specified with colids:= is copied. The cell values are separated from each other by a comma or, if specified, by the given string delimiter:=


Example

In transaction IW37N we add a button "Lock selected orders". Before locking the orders we display a warning message which contains the order numbers and the short text for each order selected.


IW37N, warning message before locking the selected orders


GuiXT Script

Pushbutton (toolbar) "Lock selected orders" process="lock_orders.txt"

InputScript  "lock_orders.txt" 

// -----------------------------
// lock selected orders in IW37N
// ------------------------------

Screen saplslvc_fullscreen.0500

  // collect selected rows
  CallVBAsync selrows = guinet.GridControl.GetSelectedRows _
     colids:="AUFNR,KTEXT" delimiter:=
" "

  Enter

Screen saplslvc_fullscreen.0500

 // any rows selected? else no action
  if not V[selrows]
    Message "W: No rows selected" -statusline
   
Enter
    Leave
  endif

  Set text[msg] "Do you want to lock the following orders:\n\n"
  CopyText fromText="_grid_selected_values" toText="msg" -appendLine

 // display warning message
  Message "&text[msg]" -yesno title="Lock orders"

 // continue? else no action
  if not Q[ok]
    Enter
    Leave
  endif

 // Process detail screen for each order
  Enter "=IOBJ"

label next_order
Screen saplcoih.3000

 // display title during processing
  Title "Please wait... Locking order &F[CAUFVD-AUFNR.2] &F[CAUFVD-KTEXT]"

 // lock the order
  Enter "=SPER"

 goto next_order

Components
InputAssistant + Controls