Autor Thema: Dokumente in Ansicht zählen und in ein Maskenfeld übernehmen  (Gelesen 5918 mal)

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Leute,

ich möchte in einer bestimmten Ansicht per Lotus Script die Anzahl der Dokumente zählen und das Ergebnis in ein Feld einer Maske übertragen.
Ich bin seit Tagen am suchen....keine Lösung. Könnt Ihr mir bitte helfen?

Danke Henning
Gruß Henning

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... wie hast du gesucht?

Spaß beiseite - hier mit einer Schleife alle Docs zählen:

Dim ws As New NotesUIWorkspace
Dim docThis As NotesDocument
Dim dbThis As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim counter As Long

Set docThis = ws.CurrentDocument.Document
Set dbThis = docThis.ParentDatabase
Set view = dbThis.GetView( "DerAnsichtsName" )
counter = 0

If not view Is Nothing Then
   Set doc = View.GetFirstDocument
   While Not doc Is Nothing
       counter = counter + 1
       Set doc = view.GetNextDocument(doc)
   Wend
End If
docThis.Dein_FeldName_Zur_Aufnahme_Der_Nummer = counter

... sollte ins aktuell geöffnete Dokument die Anzahl der Doc's aus der Ansicht in ein Feld schreiben...


ata
Grüßle Toni :)

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Ata,

danke für den Tipp, das Script werd ich einbauen und mal schauen, was passiert...

Wie ich gesucht Habe? Designer Hilfe, Programming Guide, AT-Notes (Entwicklung).....


Gruß Henning
Gruß Henning

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Ata,

vielen Dank, es klappt.......


Gruß Henning
Gruß Henning

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
geht zur Not auch mit einer Formel

@Prompt([OK];"Number of Elements";@Text(@Elements(@DbColumn( "" : "NoCache" ; "ServerName" : "Datenbnk.nsf" ; "Ansicht" ; 1 ))))

 ;D
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
wobei man die Formel auch in Script darstellen kann...

Sub Click(Source As Button)
   Dim dummy As Variant
   dummy =    DbColumn ( "" ,  "NoCache" , "Servername" ,  "DevIdea.nsf" , "Alpha" ,  2 )
   NumOfDocsInView% =   Ubound ( dummy )  + 1
   Msgbox NumOfDocsInView%
End Sub



Function DBColumn(strClass As String, strNoCache As String, strServer As String, strDatabase As String, strView As String, numCol As Integer) As Variant
   quotes = Chr(34)
   strFormula = "@Left(@Trim( @DbColumn(" & quotes & strClass & quotes & ":" & quotes & strNoCache & quotes & ";" & quotes & strServer & quotes & ":" & quotes & strDatabase & quotes & ";" & quotes & strView & quotes & ";"  & numCol & "));1)"
   DbColumn = Evaluate( strFormula )
End Function
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
@Eknori

... deine DBColumn-Funktion ist pfiffig - wie sieht es im Vergleich zur Schleife mit der Performance aus - hast du Erfahrungswerte...

ata
Grüßle Toni :)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
habe ich in diese Richtung nie getestet. Bei DBColumn gibt es aber eine Beschränkung, was die Anzahl der Daten (64 k ? )betrifft. Eignet sich daher nicht für Ansichten, die etliche Datensätze haben.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Ata, hallo Eknori,

Ihr beiden seid echt klasse. Hätte nie gedacht, solche Ergebnisse auf meine Anfrage zu bekommen. Nochmals vielen Dank.

Gruß Henning
Gruß Henning

Glombi

  • Gast
Hi,
ich hätt auch noch einen, wenn's auch mit Verspätung ist  ;)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.GetView("Name der Ansicht)
Set vc = view.AllEntries
Messagebox vc.Count

Die Formel arbeitet allerdings mit der ViewEntry bzw. Collection Klassen. Mitunter erlebt man dabei die tollsten Dinge!
Besser ist, wenn die Ansicht nicht kategorisiert ist.
Die Formel müsste aber von der Performance her besser sein, wenn viele Dokumente in der View sind, da nicht iteriert wird.
Die 64 K Grenze sollte auch nicht gelten.

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz