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