Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  ENOVIA SmarTeam
  SCREXT_ObjectForInterface

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  SCREXT_ObjectForInterface (1909 mal gelesen)
NeObEnDeR
Mitglied


Sehen Sie sich das Profil von NeObEnDeR an!   Senden Sie eine Private Message an NeObEnDeR  Schreiben Sie einen Gästebucheintrag für NeObEnDeR

Beiträge: 4
Registriert: 30.10.2004

erstellt am: 01. Dez. 2004 17:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Weis jemand wie ich diese Funktion "SCREXT_ObjectForInterface" die das AppHndl in eine SmSession umwandelt extern aufrufen kann z.b. von Visual Basic aus?

Bei der Konvertierungsfunktion "CONV_RecListToComRecordList" weis ich das Sie in der "SmTdm32.dll" und diese Funktion lässt sich einfach Deklarieren.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 01. Dez. 2004 19:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeObEnDeR 10 Unities + Antwort hilfreich

Hi,

was willst Du denn damit machen ?

CONV_RecListToComRecordList brauchst Du nur, wenn du im Script bist und von der alten Prozeduralen Schnittstelle zum Script hin die Infos umwandelst. Sobald Du in VB programmierst arbeitest Du doch nur noch im COM Model.

Wenn Du aus dem Skript heraus eine VB Com Dll aufrufen willst, ist der Richtige Weg zuerst Reclist1 .. 3 über den Aufruf zu erzeugen, das SmSession Object zu erstellen und diese 4 Objecte dann an Deine DLL zu übergeben.
Anschließend kommst Du aus Deiner DLL wieder zurück und wandelst die
Reclist1..3 wieder um und übergibst den Returncode.

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KleinerMuck
Mitglied



Sehen Sie sich das Profil von KleinerMuck an!   Senden Sie eine Private Message an KleinerMuck  Schreiben Sie einen Gästebucheintrag für KleinerMuck

Beiträge: 111
Registriert: 12.08.2002

erstellt am: 01. Dez. 2004 19:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeObEnDeR 10 Unities + Antwort hilfreich

Hallo NeObEnDeR,


diese Funktion wird nur benötigt, wenn ein code geschreiben wird, der durch SMARTEAM aufgerufen wird. Solltest Du eine eigene SMARTEAM Applikation schreiben wollen, ist dieser Aufruf nicht nötig.

Um aber code von SMARTEAM aus aufzurufen, musst Du ohnehin über eine Script-Datei gehen, welche in der Script Maintenance bekannt gemacht wird. Insofern würde ich Dir empfehlen, diesen Aufruf (mit ein paar anderen Standard-Aufrufen als Einsprungmarke in eine zentrale Script-Datei aufzunehmen und von dort aus mit den richtigen Objekten den Code aus Visual Basic aufzurufen.

Somit steht in der .bs bspw. folgendes:

Function myFunction(ApplHndl As Long,Sstr As String,FirstPar As Long,SecondPar As Long,ThirdPar As Long ) As Integer

Dim SmSession As ISmSession
Dim FirstRec  As Object
Dim oDLL As Object
Dim iReturn As Integer

    CONV_RecListToComRecordList FirstPar,FirstRec

  Set SmSession = SCREXT_ObjectForInterface(ApplHndl)
  Set oDLL = CreateObject("Project1.clsModule")
  iReturn = oDLL.ImportDataFromExcel(SmSession, FirstRec)

  If iReturn <> 0 Then
myFunction = Err_Gen
  End If

End Function


In der dll kannst Du dann direkt auf die Session und das Objekt zurgreifen:

Function ImportDataFromExcelAs SmApplic.SmSession, FirstRec As SmRecList.SmRecordList) As Integer

    Dim SmObject            As SmApplic.ISmObject
    Set SmObject = SmSession.ObjectStore.ObjectFromData(FirstRec.GetRecord(0), True)
    ...

End Function

Grüße
KleinerMuck

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NeObEnDeR
Mitglied


Sehen Sie sich das Profil von NeObEnDeR an!   Senden Sie eine Private Message an NeObEnDeR  Schreiben Sie einen Gästebucheintrag für NeObEnDeR

Beiträge: 4
Registriert: 30.10.2004

erstellt am: 02. Dez. 2004 11:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Grund warum ich das mache ist der Zeitfaktor, denn eine Session aufzubauen und einen Useranzumelden nimmt zuviel Zeit in anspruch zum anderen möchte ich die selbe Session nutzen die SmarTeam auch hat.

Eine DLL fällt in meinem Fall aus da ich eine Standanlone Anwendung schreiben möchte, um den unerwünschten nebeneffekt zu umgehen, das SmarTeam schlichtweg stehenbleibt wenn ich in meiner DLL etwas mache (Formular anzeigen).

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 02. Dez. 2004 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NeObEnDeR 10 Unities + Antwort hilfreich

Hi,

wenn SMARTEAM schon läuft, probiers damit :

Set Smart = GetObject(, "SmarTeam.SmApplication")
Set SmEngineIntern = Smart.Engine
Set SmSessionIntern = SmEngineIntern.Sessions(0)

damit nimmst Du die Session und baust keine eigene auf.

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NeObEnDeR
Mitglied


Sehen Sie sich das Profil von NeObEnDeR an!   Senden Sie eine Private Message an NeObEnDeR  Schreiben Sie einen Gästebucheintrag für NeObEnDeR

Beiträge: 4
Registriert: 30.10.2004

erstellt am: 02. Dez. 2004 14:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Man man man das ich nicht selber drauf gekommen bin

vielen Dank ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz