Mehr und mehr existiert der Wunsch eine angezeigte Liste (GridControl) mit einem einfachen GuiXT Script 1:1 in einer Exceldatei zu speichern. Dazu habe ich basierend auf dem Beispiel der Synactive Generate Excel file with several worksheets
ein eigenes Beispiel aufgebaut. In meinem Beispiel nehme ich die Daten aus einem GridControl und fülle damit eine Excel. Wobei der Header entsprechend im Excel noch eingefügt wird. Als Delimiter verwende ich einen Tabulator anstatt dem Semikolon.
IW39 als GridControl
Als gespeicherte Excelsheet:
Script Worksheet.txt
// IH-Aufträge anzeigen: Liste Aufträge Screen SAPLSLVC_FULLSCREEN.0500 callvbasync guinet.GridControl.CopyText textname:="header" header:="X" delimiter:=" " Set V[timestamp] "&V[today_d.m.y.h.m.s]" // Sprachabhängige Titel in speziellem Loop einfangen Set V[i] 1 Clear V[header_t] Label Fill_Header_T callvb title_t = guinet.gridcontrol.getcolumntitle colno:="&[i]" if V[title_t] Set V[header_t] "&V[header_t]&V[title_t] " // mit angehängtem TAB set V[i] &[i] + 1 goto Fill_Header_T endif Enter Screen SAPLSLVC_FULLSCREEN.0500 CopyText fromText="header" toString="header" Line="1" Set V[header] "&V[header]" -lowercase CreateStructure V[iw39_Zeile] &V[header] CreateTable V[iw39] Include=V[iw39_Zeile] callvbasync guinet.GridControl.GridToTable tablename:="iw39" Enter Screen SAPLSLVC_FULLSCREEN.0500 Set Text[header_t] "&V[header_t]" CopyText fromText="header_t" toStructure=V[iw39_Zeile] delimiter=" " Insertrow V[iw39_Zeile] table=V[iw39] index=1 CopyText fromtable=V[iw39] toText="temp" delimiter=" " CopyText fromText="temp" toFile="&%[TMP]\Textfile_&V[timestamp].txt" -utf8 calljs XL_start calljs XL_copy_textfile "&%[TMP]\Textfile_&V[timestamp].txt" "IW39" calljs XL_save "&%[TMP]\Excelfile_&V[timestamp].xlsx" calljs XL_close Start "&%[TMP]\Excelfile_&V[timestamp].xlsx" Enter
Zugehörige Scripte zu downloaden: Worksheet.zip
Hallo,
Wie bekomme ich eine bestimmte Variante per guixt ausgewählt, gerade bei der IW39?
Vielen Dank
Ja das geht mit der neuen Nativen Schnittstelle.
Dazu kann man folgenden Befehl verwenden:
// Gérald Koehn / Koehn Consulting / http://www.guixt.ch
Parameter Variante
// Bestandsübersicht: Buchungskreis/Werk/Lager/Charge
Screen RMMMBESTN.1000
Enter „/17″ // Holen…
// ABAP: Variantenkatalog des Programms RMMMBESTN
Screen SAPLSVAR.0600
CallVBAsync guinet.gridcontrol.SelectRowByValue value:=“&U[Variante]“ _
Column:=“VARIANT“
Enter
// Bestandsübersicht: Buchungskreis/Werk/Lager/Charge
Screen RMMMBESTN.1000
Enter „/8“ // Ausführen