Drag and Drop aus Lotus Notes

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Drag and Drop aus Lotus Notes

Beitrag von georg »

Hallo,


derzeit stehe ich vor einem extrem blöden Problem ... Ich erhalte per Lotus Notes eine Excel-Datei, die von einem Xbase++ Programm weiterverarbeitet werden soll. Theoretisch kann ich die Datei per Drag and Drop auf das Programm ziehen, es wird das entsprechende Event ausgelöst ... nur :getData() liefert kein Ergebnis (oder, um genau zu sein, NIL).

Ich habe mittels oData:queryGetFormat() im Debugger alle in der Xbp.ch definierten Formate geprüft, aber es kommt jedesmal nur ein .F. zurück, was darauf hindeutet, dass das von Notes gelieferte Format etwas unbekannt ist?

Hat einer von Euch eine geniale Idee, oder das Problem sogar schon gelöst?


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Drag and Drop aus Lotus Notes

Beitrag von Tom »

Ich hatte dasselbe Problem im Frühjahr, aber, verdammtnocheins!, ich weiß nicht mehr, wo genau - und wie ich es gelöst habe. Bin auf der Suche. :-k
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop aus Lotus Notes

Beitrag von AUGE_OHR »

georg hat geschrieben:Theoretisch kann ich die Datei per Drag and Drop auf das Programm ziehen, es wird das entsprechende Event ausgelöst ... nur :getData() liefert kein Ergebnis (oder, um genau zu sein, NIL).
du willst also aus eine "laufenden" Notes Anwendung den "Inhalt" einer Tabelle per DragDrop in eine "laufende" Xbase++ Application "übertragen" ?
georg hat geschrieben:Ich habe mittels oData:queryGetFormat() im Debugger alle in der Xbp.ch definierten Formate geprüft, aber es kommt jedesmal nur ein .F. zurück, was darauf hindeutet, dass das von Notes gelieferte Format etwas unbekannt ist?
Xbase "kennt" nur "simple" DragDrop Stand WFW 3.1 mit DROPFILES*** Structure und den Typen
*** http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Code: Alles auswählen

  XBPCLPBRD_TEXT      Daten im ASCII-Textformat    
  XBPCLPBRD_BITMAP    Grafik im Bitmap-Format      
  XBPCLPBRD_METAFILE  Grafik im Metafile-Format    
  XBPCLPBRD_FILELIST  Liste mit Dateien
welche man im Clipboard "sehen" kann.

du kannst nur den "Inhalt" einer "Cell" copy/paste nicht die Cell selbst.
du kannst den Dateinamen als "FileList" übergeben

hier ein Beispiel was Windows mit "simple" Dragdrop macht

Code: Alles auswählen

#include "ot4xb.ch"
#include "winuser_constants.ch"
//----------------------------------------------------------------
proc main
local hWnd := SetAppWindow():GetHWnd()

ot4xb_subclasswindow(hWnd,MyHandler(),NIL,"Drop_wndproc")
delegated_eval( {||@shell32:DragAcceptFiles(hWnd,1)} )

while inkey(0) != 27
end

return
//----------------------------------------------------------------
CLASS MyHandler
EXPORTED:
INLINE CLASS METHOD Drop_wndproc(hWnd,nMsg,wp,lp)
local p,cb,aFiles,n,nn
if nMsg == WM_DROPFILES
   nn := @shell32:DragQueryFileA(wp,-1,0,0)
   if nn > 0
      aFiles := Array(nn)
      p := _xgrab(260)
      for n := 1 to nn
         cb := @shell32:DragQueryFileA(wp,n-1,p,260)
         aFiles[n] := PeekStr(p,,cb)
      next
      _xfree(p)
      ? aFiles
      // or PostAppEvent(custom_event, aFiles,, oXbp)
   end
   return NIL
end
return NIL
ENDCLASS
wenn du aber von einer "anderen" Application ( ausser Explorer ) was per DragDrop "einfügen" willst must du OLE DragDrop über das IDataObject Interface benutzten.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Drag and Drop aus Lotus Notes

Beitrag von georg »

Hallo, Jimmy -


etwas ausführlicher geschildert:

ich erhalte per Lotus Notes (= Company Mail-Client) eine Email mit einer Excel-Datei als Anhang. Diese Excel-Datei will ich direkt aus Lotus Notes auf mein Xbase++ Programm ziehen und dort verarbeiten.

Dieser Ansatz schlägt fehl, ich muss immer den Umweg gehen, Drag-and-Drop in ein Verzeichnis (oder Desktop), und dann von dort in die Xbase++ Anwendung. Das ist mir bei ca. 40 Dateien am Tag ein wenig aufwändig.

Ich werde aber gleich mal Dein Beispiel ausprobieren.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Drag and Drop aus Lotus Notes

Beitrag von AUGE_OHR »

georg hat geschrieben:Dieser Ansatz schlägt fehl, ich muss immer den Umweg gehen, Drag-and-Drop in ein Verzeichnis (oder Desktop), und dann von dort in die Xbase++ Anwendung. Das ist mir bei ca. 40 Dateien am Tag ein wenig aufwändig.
das geht ja dann über den Explorer und deshalb geht es dann auch wieder.
gruss by OHR
Jimmy
Antworten