Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: adminnaddel am 11.10.02 - 13:11:41
-
wahrscheinlich das letztemal vor dem wochenende :D,
schon sehr oft wurde über das script zum datentransfer notes=>excel gesprochen und das script, welches auch schon veröffentlicht wurde, ist genial.
ich möchte aber das NICHT alle felder ausgelesen werden, sondern nur 4 oder 5 bestimmte, die mir den per agent exportiert werden!
hat jemand ne lösung, also ich da so an unsere script-experten!
hier nochmal das script for all:
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim sourceview As NotesView
Dim sourcedoc As NotesDocument
Dim dataview As NotesView
Dim datadoc As NotesDocument
Dim maxcols As Integer
Dim ws As New Notesuiworkspace
Dim uiview As notesuiview
Dim cols As Integer
Dim rows As Integer
Dim getfield As Variant
Set db = session.CurrentDatabase
Set uiview=ws.currentview
Set dataview = uiview.view
Dim xlApp As Variant
Dim xlsheet As Variant
Set xlApp = CreateObject("Excel.Application")
xlApp.StatusBar = "Import vorbereiten..."
xlApp.Visible = True
xlApp.Workbooks.Add
xlApp.ReferenceStyle = 3
Set xlsheet = xlApp.Workbooks(1).Worksheets(1)
xlsheet.Name = uiview.viewname
xlApp.StatusBar = "Die Überschriften werden erstellt..."
cols=1
Forall X In dataview.Columns
xlsheet.Cells(1,cols).Value =X.title
cols=cols+1
End Forall
xlApp.StatusBar = "Überschriften wurden erstellt...fertig!"
xlApp.StatusBar = "Der Import wird vorbereitet..."
xlApp.StatusBar = "Die Daten werden importiert..."
Set datadoc = dataview.getfirstdocument
cols=1
rows=2
maxcols= dataview.columncount
While Not (datadoc Is Nothing)
For cols=0 To maxcols-1
getfield = Cstr(datadoc.ColumnValues( cols ))
xlsheet.Cells(rows,cols+1).Value = getfield
Next
rows=rows+1
cols=0
Set datadoc = dataview.getnextdocument(datadoc)
Wend
xlApp.StatusBar = "Import beendet! ... Formatieren starten"
xlApp.Rows("1:1").Select
xlApp.Selection.Font.Bold = True
xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(1,maxcols)).Select
With xlApp.Selection.Interior
End With
xlApp.StatusBar = "Titel formatiert"
xlApp.Rows("1:1").Select 'Zeile 1 bis 1 ist
xlApp.Selection.Font.Bold = True ' Fett
xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(rows,maxcols)).Select
xlApp.Selection.Font.Name = "Arial" 'Schrift Art
xlApp.Selection.Font.Size = 10'Schriftgröße der Excel Tab
xlApp.Selection.Columns.AutoFit
xlApp.Selection.Rows.AutoFit
With xlApp.Worksheets(1)
.PageSetup.Orientation = 2
.PageSetup.centerheader = "Notes Export" ' Tabellen Überschrift
.Pagesetup.RightFooter = "Seite: &S" & Chr$(13) & "Datum: &D"
' Arbeiten Sie mit einer Englischen Excelversion müssen
'sie bei Seite: &P verwenden
.Pagesetup.CenterFooter = ""
End With
xlApp.ReferenceStyle = 1
'Wo möchten Sie den Courser hinsetzen hier A1
xlApp.Range("A1").Select
xlApp.StatusBar = "Fertig!"
End Sub
wäre echt toll, wenn jemand ne lösung hat.
mfg
-
dann nutzen wir doch mal die Upload funktion.
Hier eine Datenbank mit allen Designelementen
1x ScriptLib
4x Agenten
3 Masken,
die du nur in deine Datenbank zu kopieren brauchst. Dann noch die Konfiguration über "Aktionen - Konfiguration" ausführen und schon kannst die deine Exports frei definieren.
eknori
P.S.die Datei ist mit winrar 3.0 gepackt !!
-
;) ja dann sage ich zum upload danke und ich werde jetzt sofort sehen ob ich das schaffe :-\
mfg
-
wow....na ich denke, um sowas zu stricken sollte man länger als 5 monate mit lotus zusammen arbeiten, toll.
verbeugungen sind dir sicher.....danke!
ich hatte mir das zwar wesentlich kleiner mit weniger aufwand vorgestellt, aber das ist für mich privat zum lernen einfach genial.
nur leider brauche ich damit an der produktiven datenbank garnicht ankommen. ein script unter einer aktion, höchstens in einem agent, das wäre toll. ich glaube das erst-gepostete script ist doch auch von dir @eknori! gibt es hier die möglichkeit eine kleinigkeit zuändern, zB das feld "vorteil" und "nachteil" aus der form "dokument" sollenj ausgelesen werden und zu ms excel geschickt werden?
also, nochmals danke..........das wochenende ist gerettet, denn deinen export2excel werde ich zerflücken, um vom meister zu lernen.
denoch wäre ein weiterer vorschlag zum genannten thema echt prima
mfg
-
Also, im Laufe der Abarbeitung liegen die Spaltennamen nicht mehr im Klartext vor.
Du musst also vorher auszählen, an welcher Stelle "Vorteil" und Nachteil liegen
nehmen wir mal an, in Spalte 2 und 5
Dann kannst du das so lösen
in den Programmteil
...
For cols=0 To maxcols-1
getfield = Cstr(datadoc.ColumnValues( cols ))
xlsheet.Cells(rows,cols+1).Value = getfield
Next
...
fügst du folgendes ein
For cols=0 To maxcols-1
if cols = 1 OR Cols = 4 then
getfield = Cstr(datadoc.ColumnValues( cols ))
xlsheet.Cells(rows,cols+1).Value = getfield
end if
Next
dann exportiert das Script nur die Spalten 2 und 5 ( Zählung beginnt ja bei 0)
das sollte es tun.
zwar hast du noch alle überschriften, die überflüssigen Spalten kannst du ja dann aus dem ExcelSheet rauslöschen.
hoffe, das hilft
eknori
-
@ eknori
klappt genauso, wie ich es mir vorgestellt habe und dafür bin ich dir schon wieder dankbar und verspreche hoch und heilig:
"ich übernehme nicht nur, sondern schaue mir auch die beitrag an, um auch bald in die situation zu kommen im script zu helfen ;)
danke und an alle ein schönes wochenende
bis montag, oder vielleicht auch zum wochenende!!!
grüsse aus hamburg