Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 30. 8. 2011 12:20:40

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

OLE a volání funkcí - problém s parametry

Dobrý den, mám další dotaz týjakící se OOBasicu a volání funkcí pomocí OLE (pro přístup k systému ABRA).
Volání OLE funkce mi nevrací hodnoty v určených proměnných. Konkrétně je uvedená funkce FindByPart definována takto:
function FindByPart(const TextField: WideString; var Text: WideString; out ID: WideString): WordBool;
tedy v druhém a třetím parametru funkce vrací nějaké hodnoty, první je konstantní.
Takto to také pracuje bez problémů v MS Excelu. Bohužel v OOo to nefunguje. OOo posune parametry a přepíše parametr 1 výsledkem par2 a  parametr 2 přepíše výsledkem 3, do třetího parametru neuloží nic.
.
Fragment kódu:
.
  Dim mID As String

  mKarta = "DRC 12-24 PA"
  mTextField = "CODE"
 
  Set G3 = CreateObject("AbraOLE.Application")

  Set mRoll = G3.GetRoll("S3WZQKDB5FDL342M01C0CX3FCC", 0)

  If mRoll.FindByPart(mTextField, mKarta, mID) Then
   .....
.


Pracuje vůbec v OOo správně zapouzdření (automation bridge) volání OLE funkcí?
Nebo mám chybu někde v definici proměnných? Basic je dost prasácký jazyk, můžete přepisovat všechno vším a je tak v proměnných nepořádek.

Dík za radu

Editoval imcon (30. 8. 2011 12:28:51)

Offline

#2 30. 8. 2011 13:03:56

imcon
Člen
Místo Brno
Registrace: 16. 5. 2007
Příspěvků: 224

Re: OLE a volání funkcí - problém s parametry

Ještě upřesňuji:
stačí abych kód před, či za FindByPArt nějak změnil, a hodnoty parametrů se zase úplně přeházejí, tedy jsou vráceny někam jinam...
Toto tedy nechápu.

Offline

Zápatí