Sie wollen mittels GuiXT ein SAP Query auslesen und zum Beispiel das Resultat in einem Im SAPGUI integriereten TableControl anzeigen.
Dazu empfiehlt es sich den RFC fähigen Baustein RSAQ_REMOTE_QUERY_CALL aufzurufen.
Mit untenstehendem Script wird das SAP Query TEST der Usergrppe TEST ausgelesen.
Der Baustein liefert die Daten in einem eigenartigen Format zurück (SAP Memory).
Durch den zweiten Teil im ImputScript werden die GuiXT Variablen so gefüllt, dass sie direkt in einem TableControl verwendet werden können.
Query_lesen.txt
Set Text[selection] ""
Set Text[ldata] ""
set Text[listdesc] ""
// Füllen der Selektion
Set V[selection] ""
Clear V[selection](RSPARAMS)
//set V[selection](RSPARAMS-SELNAME) "MATNR"
set V[selection](RSPARAMS-SELNAME) "SP$00002"
Set V[selection](RSPARAMS-KIND) "S"
set V[selection](RSPARAMS-SIGN) "I"
set V[selection](RSPARAMS-OPTION) "CP"
set V[selection](RSPARAMS-LOW) "M-*"
Copytext Fromstring="selection" toText="selection"
call "RSAQ_REMOTE_QUERY_CALL" in.WORKSPACE="G" in.QUERY="TEST" in.USERGROUP="TEST" in.SKIP_SELCREEN="X" In.DATA_TO_MEMORY="X" Table.SELECTION_TABLE="selection" Table.LDATA(width:12000)="ldata" Table.LISTDESC="listdesc"
// Daten für Anzeige in TableControl aufbereiten
set V[i] 1
set Text[all] ""
set Text[zeile] ""
Set V[Tabelle.*] ""
Label Daten_in_Text
CopyText fromText="ldata" toString="string" Line="&[i]"
if Q[ok]
CopyText fromString="string" toText="all" -append
set V[i] &[i] + 1
goto Daten_in_Text
endif
// Jetzt auslesen der ganz breiten Zeile
set V[row] 1
set V[col] 1
Label Zeile_lesen
CopyText fromText="all" toString="all" Line="&[row]" delimiter=";"
if Q[ok]
CopyText fromString="all" toText="zeile"
Label Werte_lesen
CopyText fromText="zeile" toString="zeile" Line="&[col]" delimiter=","
if Q[ok]
set V[Tabelle.cell.&[col].&[row]] "&[zeile](5-768)"
set V[col] &[col] + 1
goto Werte_lesen
endif
Set V[col] 1
set V[row] &[row] + 1
goto Zeile_lesen
endif
// Setzen der Titel der Spalten
Set V[i] 1
Label Spaltentitel
CopyText fromText="listdesc" toString="spalte" Line="&[i]"
if Q[ok]
Set V[Column_&[i]] "&V[spalte](RSAQLDESC-FDESC)"
Set V[i] &[i] + 1
Goto Spaltentitel
endif
Set V[rowcount] "&[row]" - 1
Enter "?"
GuiXT Script
Table (7,14) (28,94) title="Resultat Query (Anz. Einträge = &V[rowcount] )" name="Tabelle" rows="&V[rowcount]" Column "&V[Column_1]" size=4 name="1" -readonly Column "&V[Column_2]" size=18 name="2" -readonly Column "&V[Column_3]" size=4 name="3" -readonly Column "&V[Column_4]" size=30 name="4" -readonly

