Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 24.04.04 - 19:33:56

Titel: @GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 19:33:56
Hi,

der undokumentierte Formula-Befehl
Code
@GetMembers(Liste;Position[;Anzahl])
liefert ja aus einer Liste ein oder mehrere Einträge ab der angegebenen Position.

Hat schonmal wer sowas in Lotus Script erstellt?

Ich bräuchte genau sowas in Script und will jetzt nicht das Rad neu erfinden.

Also eine Function die z.B. so aussieht:

Zitat
Function Getmembers (strList As Variant, iPosition As Integer, iQuantity as Integer) As Variant



Titel: Re:@GetMembers in Script gesucht
Beitrag von: animate am 24.04.04 - 19:50:55
was hast du denn in Script? ein Array?
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 19:52:24
Ein Array möchte er gerne haben, aber darauf kann er sich nicht verlassen ...
Ich sitze gerade an der Überarbeitung von ein paar Routinen - einen kleinen Moment noch also  ;D

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 19:53:38
Jo, ein Array würde ich gerne in die Function reinkippen  ;)
Titel: Re:@GetMembers in Script gesucht
Beitrag von: animate am 24.04.04 - 19:55:54
na ja, dann reichts doch, in einer For/Next - Schleife (von iPosition bis (iPosition+iQuantity)) ein neues Array zu erstellen mit den entsprechden Einträgen aus dem anderen.
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 19:58:35
Hmm, ja, klar.

Danke, trotzdem bin ich von Natur aus faul, ich dachte es hätte vielleicht jemand sowas schon mal gemacht  ;)
Ansonsten mache ich es selber und stell es dann hier rein.
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 21:01:44
Hallo, Matthias,

ich bin mir noch nicht sicher, ob ich jetzt alle Fälle abgedeckt habe ... Auf jeden Fall ist der Funktion der Datentyp (relativ) egal, zurückgegeben wird auf jeden Fall ein Array (EMPTY, falls kein Result oder ein Fehler aufgetreten ist oder falsche Parameter übergeben wurden).

HTH,
Bernhard

PS: Die Routine "ErrorHandler" muss man sich natürlich nach eigenen Bedürfnissen selber schreiben ...

Code
Function ArrayGetMembers (vValues As Variant, iStartPos As Integer, iMembers As Integer)
     ' Purpose:      Retrieve from position iPosition iMembers from the given array
     ' Arguments:
   '               vValues - the given array
   '               iPosition - the first element to retrieve (0 is the index of the first element)
   '               iMembers - the numbers of elements from the array to retrieve
     ' Returns:      The array without the given value to remove, empty, if there is no value to return !
     ' Created by:     Bernhard Koehler on 24.04.2004            Modified by: 

   
   Dim vResult () As Variant            'The resulting array
   Dim vEmpty As Variant            'In case of errors / wrong parameters: An empty array
   Dim iLoop As Integer
   Dim iLastPos As Integer            'The real number of elements to retrieve
   
   On Error Goto ErrorRoutine
   
   ArrayGetMembers = vEmpty         'The default result (an empty variant)
   
   If Isempty (vValues) Then
      ArrayGetMembers = vEmpty
      Exit Function
   End If
   
   If Isscalar (vValues) Then
      If iStartPos = 0 Then
         Redim vResult (0 To 0)
         vResult (0) = vValues
         ArrayGetMembers = vResult
         Exit Function
      Else
         ArrayGetmembers = vEmpty
         Exit Function
      End If 'of "iPosition = 0"
   End If 'of "Isscalar (vValues)"
   
   If iStartPos > Ubound (vValues) Then
      ArrayGetMembers = vEmpty
      Exit Function
   End If
   
   If (iStartPos + iMembers) - 1 > Ubound (vValues) Then
      iLastPos = Ubound (vValues) - iStartPos
   Else
      iLastPos = iMembers - 1
   End If
   
   Redim vResult (0 To iLastPos)
   
   For iLoop = 0 To iLastPos
      vResult (iLoop) = vValues (iStartPos + iLoop)
   Next
   
   ArrayGetMembers = vResult
   
   Exit Function
   
ErrorRoutine:
   Call ErrorHandler ("ArrayGetMembers")
   Exit Function
   
End Function
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 21:47:03
Hi Bernhard,

cool, vielen Dank !!

Ich habe
a) Deinen Code erfolgreich getestet
b) die function auch so nochmal durchgesehen

Fazit: Es sollten so alle Fälle abgebildet sein die auftauchen könnten. Es gibt also nix verbesserungswürdiges :-) (höchstens - nice to have - die Function-Beschreibung, da würde ich noch @getmembers reinbringen).

Ist eine tolle Umsetzung!

Many thanks,
Matthias
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 21:52:00
Very gern geschehen ;-)
Wenn Du noch was findest (hier gibt es ja jede Menge Möglichkeiten, was die Parameter und die Datentypen angeht), lass es mich bitte wissen.

Was die Funktions-Beschreibung angeht und en Verweis auf @GetMembers: Da habe ich mich jetzt etwas schwer getan - die @function ist ja undokumentiert  ;D

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 22:10:44
Was die Funktions-Beschreibung angeht und en Verweis auf @GetMembers: Da habe ich mich jetzt etwas schwer getan - die @function ist ja undokumentiert  ;D

 ;D
Yoo, Du hast Recht :-)
Erst habe ich auch überlegt, das gleich über Evaluate zu lösen, aber da undokumentiert ziehe ich eine Script-Lösung vor :-)
Egal, ich würde das @getmembers trotzdem reinbringen - ist aber mehr "Geschmacksfrage", die Function selbst funktioniert ja prima  :D
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 22:18:27
und da ich schon bei Verbesserungsvorschlägen bin:

Am Script selbst gibt es ja nun überhaupt nix zu meckern  :)

Nur die Striche "------" zerlegen jeden Thread. Ich habe zwar einen 21"-Monitor mit 1280er Auflösung, aber trotzdem muss ich scrollen. Da wär es schön, dass man die "------" etwas kürzt.

Diese coolen 5000*3000 Pixel (oder so) - an die Wand - häng - Flät - Monitore kann ich mir noch nicht leisten :-)
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 22:27:55
Wenn es nur die Striche sind ...  ;)

Ich habe nur einen 17 Zöller CRT und ein 14-Zoll-Display am Notenbuch. Ich bin also noch sparsamer als der Du ;-) Bei beiden Displays habe ich keinerlei Probleme weder hier im Thread noch in der Designer-IDE (da füllen die Striche knapp eine Bildschirmbreite). Mystisch also (für mich zumindest, da ich Dein Problem nicht nachvollziehen kann).

Wegen der Kommentierung und @GetMembers: Dem steht doch nix entgegen ;-)

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 22:35:55
Mystisch also (für mich zumindest, da ich Dein Problem nicht nachvollziehen kann).

Ich habe mal einen Screenshot gezogen.

So sieht das bei mir aus. Um den ganzen Text lesen zu können, muss man nach rechts scrollen.
Soll aber bitte kein Vorwurf sein, mehr eine Anregung......
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 22:42:59
Nö, nö - als Vorwurf habe ich das auch nicht aufgefasst  ;)
Seitdem Du Deinen Schirmschuss gepostet hast, muss ich jetzt auch scrollen.
Ob das mit dem Firefox zusammenhängt ? Ich nutze (Schande über mich ?) den IE ...

Wie sieht denn der Source-Code bei Dir im Designer aus ? Da dürfte es doch keine Probleme geben, oder ? (Dafür war der Code ja auch eher geschrieben  ;D

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 24.04.04 - 23:02:39
Wie sieht denn der Source-Code bei Dir im Designer aus ? Da dürfte es doch keine Probleme geben, oder ? (Dafür war der Code ja auch eher geschrieben  ;D

Ganz "normal"   :)

D.h. wenn man im Designer das Ende der "----" sehen will, muss man halt ganz nach rechts scrollen.

Der IE "zerlegt" übrigens den Thread bei mir genaus so (war schon vor dem Posten des anderen Screenshots so).

Egal, vergiss es, ich denke wir haben alle ganz andere Probleme.
Außer Du bist ein Großbild-Monitor-Verkäufer, da hättest Du jetzt natürlich tolle Argumente :-)
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 24.04.04 - 23:30:43
Zitat
D.h. wenn man im Designer das Ende der "----" sehen will, muss man halt ganz nach rechts scrollen.
Komisch. Mein 17-Zoll CRT bei 1024 * 768 zeigt das in einer Zeile ...

Aber wie Du schon sagst - wir haben ja eigentlich ganz andere Aufgaben ;-) Und Handelsware verkaufe ich prinzipiell nicht, meine Stärken sehe ich eher "kopfbetont" ;-)

Aber vielleicht weiss ja jemand anderes im Forum, was man tun muss, um solche "amoklaufenden Postings" (sicherlich abhängig vom Browser) vermeiden kann. Wir haben das ja auch manchmal mit URLs ...

Ciao, schönen Sonntag wünscht

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: Semeaphoros am 25.04.04 - 06:56:19
Bernhard: Die Lösung wäre ganz einfach: Lass die rechte Hälfte der einfachen Kommentarstriche weg,
der Browser sieht einfach keine Möglichkeit, in diesen Kommentarzeilen '-------------- einen Umbruch zu machen, da kein "Whitespace" zur Verfügung steht.
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 25.04.04 - 13:42:02
Das komische ist aber: Bei mir im Browser war alles in Ordnung - bis der Schirmschuss von Matthias kam. Das Ganze muss also durchaus mit dem Browser zusammenhängen ...
Titel: Re:@GetMembers in Script gesucht
Beitrag von: Semeaphoros am 25.04.04 - 14:23:39
Das ist bestimmt so, es wäre aber trotzdem sehr sympathisch von Dir, wenn Du Dein Posting anpassen würdest. Browserdifferenzen ist eine uralte Tradition, da braucht man jetzt wirklich keine Geschichte darum herum zu machen, und die Korrektur wäre in diesem Falle wirklich sehr einfach.
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 25.04.04 - 16:32:25
Jetzt hat Matthias den embedded screen shot wieder entfernt, und jetzt passt der ganze Thread wieder bei mir ins Browser-Fenster. Wie sieht das denn jetzt bei Euch aus (bevor ich die dann die Linien kürze) ?

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: Semeaphoros am 25.04.04 - 17:04:02
Schlecht, die Linien stören
Titel: Re:@GetMembers in Script gesucht
Beitrag von: koehlerbv am 25.04.04 - 17:11:24
Ich hab' jetzt alle Linien 'rausgekippt.

Ob da wohl noch ein paar Browser dazulernen müssen ?  ;)

Bernhard
Titel: Re:@GetMembers in Script gesucht
Beitrag von: TMC am 25.04.04 - 17:23:19
Ob da wohl noch ein paar Browser dazulernen müssen ?  ;)

Das Verhalten erscheint mir als gewünscht, zumindest sieht der Page-Source so aus (da mit variabler Breite gearbeitet wird).

Gerade der IE ist leider bekannt dafür, dass er bei CSS-Seiten Probleme verursacht - weil er vom Standard abweicht - in diesem Fall einfach einen Seitenumbruch erzwingt - obwohl so nicht vom Seitenersteller vorgesehen.

Webmaster müssen sich oft Workarounds gerade für den IE einfallen lassen.