Autor Thema: Komplette Ansicht incl Datensätze drucken  (Gelesen 7204 mal)

Offline Ming

  • Frischling
  • *
  • Beiträge: 15
  • Geschlecht: Männlich
  • Mein Luftkissenboot ist voller Aale!
    • IT-Sicherheit
Re: Komplette Ansicht incl Datensätze drucken
« Antwort #20 am: 08.11.04 - 12:18:08 »
Diese Möglichkeit kommt meinen Vorstellungen schon recht nahe.

Habe dazu eine neue Ansicht (Druckansicht) erstellt.

In der Menueleiste habe ich eine Schaltfläche mit dem u.a. LN-Script eingebunden.
Nach Aktivierung wird ein Auswahlfenster angezeigt, wo man die jeweilige Ansicht auswählen kann um dann die Dokumente aus der DB automatisch in eine Excel-Tabelle einzubinden. Die Excel-Zellen werden automatisch angepasst. Danach kann man nun einen vernünftigen Druckauftrag erstellen.

Einziger Manko: Ich hätte es gerne auf der Word-Plattform.

Wer kennt sich mit diesen Portierungen aus? :-(
Das Script ist nicht auf meinem Mist gewachsen.

Sub Click(Source As Button)
   Dim Session As New NotesSession ,db As NotesDatabase
   Dim sourceview As NotesView,sourcedoc As NotesDocument
   Dim dataview As NotesView, dc As NotesDocumentCollection
   Dim datadoc As NotesDocument, maxcols As Integer
   Dim WS As New Notesuiworkspace
   Dim ViewString As String, Scope As String, GetField As Variant
   Dim C As NotesViewColumn, FieldName As String, K As Integer,N As Integer
   Dim xlApp As Variant, xlsheet As Variant, rows As Integer, cols As Integer
   Dim nitem As NotesItem  , entry As NotesViewEntry, vwNav As NotesViewNavigator
   Dim ShowView()  As Variant, i As Integer, VList As Variant, ColVals As Variant
   
   Set db = session.CurrentDatabase   'link to current database
   
        'fetch then display a list of views in the database
   Vlist= db.views
   K=Ubound(Vlist)  'get size of list
   Redim Preserve ShowView(K)
   N=-1
   For i = 0 To K
      If Len(Vlist(i).Name) >0 Then 
         FieldName=Trim(Vlist(i).Name)
         If Mid(Fieldname,1,1) <>"(" Then  'do not show hidden views
            N=N+1                         
            ShowView(N) = FieldName
         End If
      End If 
   Next i 
   Redim Preserve ShowView(N)
     'now sort the list - by default views are listing in the order that they were created
   For i=0 To N
      For K=i To N
         If  ShowView(i) > ShowView(k) Then
            FieldName=ShowView(i) 
            ShowView(i) = ShowView(k)
            ShowView(k)=FieldName
         End If
      Next k
   Next i 
   
   viewstring= ws.Prompt(PROMPT_OKCANCELLIST,"Liste der Ansichten","Wählen Sie eine Ansicht","",ShowView )
   If Len(viewstring)=0 Then Exit Sub
        'ViewString ="Dan's View"
   
   Set dataview = db.getview(ViewString)  'get selected view
   
   Set vwnav= dataview.createViewnav()
   
   rows = 1
   cols = 1
   maxcols=dataview.ColumnCount  'how many columns?
   
   Set xlApp = CreateObject("Excel.Application")  'start Excel with OLE Automation
   xlApp.StatusBar = "Generiere Arbeitsblatt. Bitte warten..."
   xlApp.Visible = True
   xlApp.Workbooks.Add
   xlApp.ReferenceStyle = 2
   Set xlsheet = xlApp.Workbooks(1).Worksheets(1)   'select first worksheet
   
        'worksheet title
   xlsheet.Cells(rows,cols).Value ="Ansicht: " + ViewString + ", aus Datenbank: " +  db.title +",  Auszug vom: " +  Format(Now,"mm/dd/yyyy HH:MM")
   
   xlApp.StatusBar = "Generiere Überschriften. Bitte warten..."
   
   rows=2  'column headings starts in row 2
   For K=1 To maxcols
      Set c=dataview.columns(K-1)
      xlsheet.Cells(rows,cols).Value = c.title
      cols = cols + 1
   Next K
   
   Set entry=vwnav.GetFirstDocument
   rows=3   'data starts in third row
   Do While Not (entry Is Nothing)
      
      For cols=1 To maxcols 
         colvals=entry.ColumnValues(cols-1)      'subscript =0
         scope=Typename(colvals)
         Select Case scope
         Case "STRING"
            xlsheet.Cells(rows,cols).Value ="'" +  colvals
         Case Else     
            xlsheet.Cells(rows,cols).Value = colvals
         End Select                     
      Next cols             
      xlApp.StatusBar = "Importiere Daten  -    Dokument " & rows-1 '& " of " & dc.count & "." 
      rows=rows+1
      Set entry = vwnav.getnextdocument(entry)               
   Loop
   
   xlApp.Rows("1:1").Select
   xlApp.Selection.Font.Bold = True
   xlApp.Selection.Font.Underline = True
   xlApp.Range(xlsheet.Cells(2,1), xlsheet.Cells(rows,maxcols)).Select
   xlApp.Selection.Font.Name = "Arial"
   xlApp.Selection.Font.Size = 9
   xlApp.Selection.Columns.AutoFit
   With xlApp.Worksheets(1)
      .PageSetup.Orientation = 2
      
      .PageSetup.centerheader = " " 'Hier kann man eine Titel für den Ausdruck vorgeben
      '.Pagesetup.RightFooter = "Seite &P" & Chr$(13) & "Datum: &D"
      .Pagesetup.CenterFooter = ""
   End With
   xlApp.ReferenceStyle = 1
   xlApp.Range("A1").Select
   xlApp.StatusBar = "Import aus Lotus Notes abgeschlossen."
        'xlapp.ActiveWorkbook.saveas "c:VX" + Trim(Format(Now,"yyy"))   'save with generated name
   dataview.clear 
   
   Set xlapp=Nothing   'stop OLE
   Set db=Nothing
End Sub
H3W

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Komplette Ansicht incl Datensätze drucken
« Antwort #21 am: 08.11.04 - 12:35:23 »
Hi,

hier findest du generelle Hinweise wie man Notes-Daten nach Word bekommt.

Ausserdem gibt's hier im Forum eine ganze Menge Threads dazu. Bemüh' mal die Suche.
In der Sandkiste gibt's auch Beispiele zu em Thema. Auch da sollte was dabei sein.

Aber mal ganz dumm gefragt, was spricht denn gegen Excel?   ???


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Ming

  • Frischling
  • *
  • Beiträge: 15
  • Geschlecht: Männlich
  • Mein Luftkissenboot ist voller Aale!
    • IT-Sicherheit
Re: Komplette Ansicht incl Datensätze drucken
« Antwort #22 am: 08.11.04 - 13:08:53 »
Die Geschäftsführung! You know what i mean....
H3W

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Komplette Ansicht incl Datensätze drucken
« Antwort #23 am: 08.11.04 - 13:14:18 »
Hi,

I know what you mean, aber...

Wenn du in Word das Ganze auch in Tabellenform haben willst ist das aber aufwändiger als in Excel.

Auch eine Geschäftsleitung kann man überzeugen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz