Lotus Notes / Domino Sonstiges > Help-Desk Applikation !!Help!!

[Fixed] Lx client: "Zuweisen" -> Fehler

<< < (2/4) > >>

Dr.Domino:
Funktioniert einwandfrei ... jetzt müßte man in der Lib.appl.NotesAPI
nur noch irgendwie nach OS des Clients das Eine oder das Andere
schalten ...

eknori (retired):

--- Zitat ---Funktioniert einwandfrei
--- Ende Zitat ---
Prima  :D


--- Zitat ---jetzt müßte man in der Lib.appl.NotesAPI
nur noch irgendwie nach OS des Clients das Eine oder das Andere
schalten ...
--- Ende Zitat ---

Das ist kein Problem; bin schon dabei, das zu coden ...

eknori (retired):
ok, dann ersetze mal den bestehenden Code durch folgenden


--- Code: ---'Lib.appl.NotesAPI:

'lib.appl.NotesAPI:

Option Public

Const NULLHANDLE = 0
Const NO_ERROR = 0
Const ERR_FORMULA_COMPILATION = &h500 + 1

' ================================================================================
' CheckSelectionFormulaValid - This function uses the Lotus C API to check thesyntax of a Notes formula.
'
' Return Value: Variant - A 3 elements array containing:
' Index 0 - The compilation error code or NO_ERROR (0) if valid
' Index 1 - The compilation error offset in formula or NO_ERROR if valid
' Index 2 - The compilation error length or NO_ERROR if valid
'
' Note: The compilation error code at Index 0 can then be passed to GetAPIError () to get more info about the error.
' ================================================================================
' ================================================================================
' GetAPIError - This function uses the Lotus C API to return a Notes error's text message.
'
' Return Value: String - The text associated with the Notes API error code.
' ================================================================================



Declare Function NSFFormulaCompile Lib "nnotes.dll" ( _
Byval FormulaName As Long, _
Byval FormulaNameLength As Integer, _
Byval FormulaText As Lmbcs String, _
Byval FormulaTextLength As Integer, _
rethFormula As Long, _
retFormulaLength As Integer, _
retCompileError As Integer, _
retCompileErrorLine As Integer, _
retCompileErrorColumn As Integer, _
retCompileErrorOffset As Integer, _
retCompileErrorLength As Integer _
) As Integer
Declare Sub OSMemFree Lib "nnotes.dll" (Byval hHandle As Long)
Declare Function OSLoadString Lib "nnotes.dll" ( _
Byval hmodule As Long, _
Byval status As Integer, _
Byval s As String, _
Byval slen As Integer _
) As Integer

Declare Function LX_NSFFormulaCompile Lib "libnotes.so" Alias "NSFFormulaCompile" ( _
Byval FormulaName As Long, _
Byval FormulaNameLength As Integer, _
Byval FormulaText As Lmbcs String, _
Byval FormulaTextLength As Integer, _
rethFormula As Long, _
retFormulaLength As Integer, _
retCompileError As Integer, _
retCompileErrorLine As Integer, _
retCompileErrorColumn As Integer, _
retCompileErrorOffset As Integer, _
retCompileErrorLength As Integer _
) As Integer

Declare Sub LX_OSMemFree Lib "libnotes.so" Alias "OSMemFree" (Byval hHandle As Long)

Declare Function LX_OSLoadString Lib "libnotes.so" Alias "OSLoadString" ( _
Byval hmodule As Long, _
Byval status As Integer, _
Byval s As String, _
Byval slen As Integer _
) As Integer

Sub Initialize

End Sub
Function CheckSelectionFormulaValid(sFormula) As Variant

Dim iError As Integer
Dim hFormula As Long
Dim wFormulaLen As Integer
Dim iCompileError As Integer
Dim iCompileErrorLine As Integer
Dim iCompileErrorColumn As Integer
Dim iCompileErrorOffset As Integer
Dim iCompileErrorLength As Integer
Dim iArray(2) As Integer

If get_platform = "w32" Then
iError = NSFFormulaCompile(0, 0, _
sFormula, _
Len(sFormula), _
hFormula, _
wFormulaLen, _
iCompileError, _
iCompileErrorLine, _
iCompileErrorColumn, _
iCompileErrorOffset, _
iCompileErrorLength)

Else

iError = LX_NSFFormulaCompile(0, 0, _
sFormula, _
Len(sFormula), _
hFormula, _
wFormulaLen, _
iCompileError, _
iCompileErrorLine, _
iCompileErrorColumn, _
iCompileErrorOffset, _
iCompileErrorLength)

End If

If hFormula <> NULLHANDLE Then
If get_platform = "w32" Then
Call OSMemFree(hFormula)
Else
Call LX_OSMemFree(hFormula)
End If
End If

If iError = ERR_FORMULA_COMPILATION Then
iArray(0) = iCompileError
iArray(1) = iCompileErrorOffset
iArray(2) = iCompileErrorLength
CheckSelectionFormulaValid = iArray
Else
iArray(0) = NO_ERROR
iArray(1) = NO_ERROR
iArray(2) = NO_ERROR
CheckSelectionFormulaValid = iArray
End If

End Function
Function GetAPIError(iErrorCode As Integer) As String

Dim iRetVal As Integer
Dim sError As String * 1024

sError = String(1024, 0)

iRetVal = OSLoadString(0&, iErrorCode, sError, 1023)

If iRetval <> 0 Then
GetApiError = Left$(sError, iRetVal)
End If

End Function
Function get_platform () As String

Dim tmp_platform As Variant
Dim lower_platform As String
tmp_platform = Evaluate(|@Implode(@Platform([Specific]);" ")|)

lower_platform = Lcase(Cstr(tmp_platform(0)))

REM Messagebox Cstr(tmp_platform(0))

If (Instr (lower_platform, "aix")) Then
get_platform = "aix"
Elseif (Instr (lower_platform, "solaris")) Then
get_platform = "solaris"
Elseif (Instr (lower_platform, "linux")) Then
get_platform = "linux"
Elseif (Instr (lower_platform, "win")) Then
get_platform = "w32"
Elseif (Instr (lower_platform, "mac")) Then
get_platform = "mac"
Else
Messagebox "Unsupported Platform : >" + lower_platform + "<"
get_platform = ""
End If
End Function


--- Ende Code ---

Dr.Domino:
Super - jetzt funktionieren beide Welten ... ääh, die ersten
beiden - fehlen noch die Tester für MacOS, AIX, Solaris ...

 ;D

eknori (retired):
wenn das gewünscht wird ... kein Problem

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln