Montag, 5. Mai 2008

So bekommen wir einen Cursor in die Zwischenablage / How to get a cursor into clipboard

Um Textinformationen in die Zwischenablage zu kopieren wird üblicherweise die Systemvariable _CLIPTEXT genutzt.

cMyVar = [Hallo Welt]
_cliptext = cMyVar

Mit einer Tabelle (oder einem Cursor) funktioniert dies allerdings nicht.

Um eine Datenmenge, unabhängig davon ob sie als Tabelle oder als Cursor vorliegt, in die Zwischenablage zu bekommen könnte man nun meinen, dass mühevoll per Schleifenverarbeitung jedes einzelne Feld per TRANSFORM in einen String kopiert werden muss. Dem ist jedoch nicht so.

Visual Foxpro verfügt über ein Applikationobjekt, das auf die aktuelle VFP Ínstanz verweist. Ansprechbar ist es über die Systemvariable _VFP. Geben wir bspw. im Befehlsfenster _VFP. ein, so erhalten wir über Intellisense eine Übersicht der verfügbaren Eigenschaften und Methoden. Eine davon lautet DataToClip. Um nun unsere Daten in die Zwischenablage zu kopieren genügt der folgende Code:

* Felder getrennt durch Leerzeichen
_VFP.DataToClip([myCursor],RECCOUNT([myCursor]),1)

* Felder getrennt durch Tabulatoren
_VFP.DataToClip([myCursor],RECCOUNT([myCursor]),3)


Hierbei stehen in der ersten Zeile des in die Zwischenablage kopierten Textes die Feldnamen. Im Anschluss folgen mit je einer Zeile pro Datensatz die Feldinhalte.

Keine Kommentare:

Kommentar veröffentlichen