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)