Autor Thema: wie erstelle ich einen Counter in LS?  (Gelesen 1647 mal)

Offline JanHoener

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
  • auf der Suche...
wie erstelle ich einen Counter in LS?
« am: 22.02.05 - 14:54:37 »
schon wieder ich. :-)
ich habe mir jetzt vier Aktionen gebastelt, die jeweils eine Redundanzart aufdecken.
Mein Code für "doppelte Daten" lautet z.B.:
Sub Click(Source As Button)
   Dim ws As New NotesUIWorkspace
   
   
   Set uiView = ws.CurrentView
   
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim vec As NotesViewEntryCollection
   Dim ve, oldVe As NotesViewEntry
   Dim newDoc As NotesDocument
   Dim oldDoc As NotesDocument
   
   
   
   Set db = s.CurrentDatabase
   Set view = db.GetView("Kontakte")
   Set vec= view.AllEntries
   
   'Ersten Eintrag im View holen
   Set ve = vec.GetFirstEntry()
   
   While Not ve Is Nothing
      
      'Wert der ersten Spalte holen
      oldValue = ve.ColumnValues(0)
      oldValue1 = ve.ColumnValues(1)
      oldValue2 = ve.ColumnValues(2)
      oldValue3 = ve.ColumnValues(3)
      oldValue4 = ve.ColumnValues(4)
      oldValue5 = ve.ColumnValues(5)
      oldValue6 = ve.ColumnValues(6)
      oldValue7 = ve.ColumnValues(7)
      oldValue8 = ve.ColumnValues(8)
      
      'Nächsten eintrag im View holen
      Set ve = vec.GetNextEntry(ve)
      'Wenn es einen nächsten Eintrag gibt
      If Not ve Is Nothing Then
         newValue = ve.ColumnValues(0)
         newValue1 = ve.ColumnValues(1)
         newValue2 = ve.ColumnValues(2)
         newValue3 = ve.ColumnValues(3)
         newValue4 = ve.ColumnValues(4)
         newValue5 = ve.ColumnValues(5)
         newValue6 = ve.ColumnValues(6)
         newValue7 = ve.ColumnValues(7)
         newValue8 = ve.ColumnValues(8)
         
         If newValue = oldValue And newValue1 = oldValue1 And newValue2 = oldValue2 And newValue3 = oldValue3 And newValue4 = oldValue4 And newValue5 = oldValue5 And newValue6 = oldValue6 And newValue7 = oldValue7 Then
            Set oldDoc = vec.GetPrevEntry(ve).Document
            Set newDoc = ve.Document
            
            Dim tmpDoc As New NotesDocument(db)
            Dim item As New NotesItem(tmpDoc,"DUIDS","")
            Call item.AppendToTextList(oldDoc.UniversalID)
            Call item.AppendToTextList(newDoc.UniversalID)
            flag =  ws.DialogBox("dialoge_compareTwoDocs_doppelt",True,True,False,False,False,False,"doppelte Daten",tmpDoc,True,False,True)
            
            If flag Then
               newDoc.Strasse=tmpDoc.f1
               newDoc.PLZ=tmpDoc.PLZ
               newDoc.Ort=tmpDoc.Ort
               newDoc.Telefon=tmpDoc.Telefon
               newDoc.Handy=tmpDoc.Handy
               newDoc.WWW=tmpDoc.WWW
               newDoc.Geburtstag=tmpDoc.Geburtstag
               Call newDoc.Save(True,True)
               
               Call oldDoc.Remove(True)
            End If
            
            
         End If
         
      End If
      
   Wend
   
   Call ws.ViewRefresh
End Sub


Jetzt möchte ich eine neue Aktion basteln, die mir dann z.B. sagt: "In der Ansicht befinden sich x doppelte Dokumente".

Kann mir da jemand weiterhelfen?

Vielen Dank...
« Letzte Änderung: 22.02.05 - 19:01:05 von JanHoener »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: wieder ein Problem
« Antwort #1 am: 22.02.05 - 17:06:02 »
1. "Wieder ein Problem" ist KEIN Aussagekräftiges Thema

2. Kaum jemand wird Lust haben, sich durch diesen ewig langen Code zu quälen.
Reduzier Ihn auf das notwendige, oder lass ihn ganz weg

3. Wenn Du diesen Code gebastelt hast... wo liegt dann das Problem anstelle / nach der Dialogbox einfach einen Zähler mitlaufen zu lassen, den Du dann über Messagebox am Ende ausgibst ?

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline JanHoener

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
  • auf der Suche...
Re: wie erstelle ich einen Counter in LS?
« Antwort #2 am: 22.02.05 - 19:04:03 »
hi, zwar keine nette Antwort, aber immerhin!  :-\

Überschrift habe ich geändert, Script als Hilfe dringelassen.

Ich habe das Grundgerüst von einem Kumpel übernommen und verschiedene Sachen dazugepackt. Ich kenne mich nicht so riesig aus mit LS! Deswegen weiss ich auch nicht, wie man einen Counter hier zu packt. Zudem soll dieser Counter ja auch nicht hier laufen, sondern in einer anderen Aktion. Geht das überhaupt? Oder muss ich für die Aktion dann den kompletten Code übernehmen?

Vielen Dank...

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re: wie erstelle ich einen Counter in LS?
« Antwort #3 am: 22.02.05 - 19:16:24 »
Hmm... Counter... wirklich Basics -  und wenn ich das schon kenne, dann sind das wirklich unterste Basics...

in nen Agenten packen zum testen:

Option Public
Option Declare

Sub Initialize
   Dim counter As Integer
   counter = 0
   Do While Counter < 10
      counter = counter + 1
      Messagebox(counter)
   Loop
   Messagebox "Fertig"
End Sub

oder, auf dein Beispiel gemünzt:
Oben irgendwo dein Beispiel das OPTION DECLARE, dann oben irgendwo den Counter "nullen" und in der Schleife den Counter jeweils um 1 erhöhen lassen... Zum Schluß den Counter ausgeben, und "Habe Fertig!"

PS: Designer-Hilfe: Do Loop, Do While....
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Marinero Atlántico

  • Gast
Re: wie erstelle ich einen Counter in LS?
« Antwort #4 am: 22.02.05 - 19:20:08 »
Jan,

ich würde das
1. in mehrere Funktionen verteilen.
2. Was ist mit Schleifen. Sowas wie
Code
newValue = ve.ColumnValues(0)
         newValue1 = ve.ColumnValues(1)
         newValue2 = ve.ColumnValues(2)
         newValue3 = ve.ColumnValues(3)
         newValue4 = ve.ColumnValues(4)
         newValue5 = ve.ColumnValues(5)
         newValue6 = ve.ColumnValues(6)
         newValue7 = ve.ColumnValues(7)
         newValue8 = ve.ColumnValues(Cool
lässt sich wirklich immer besser mit Schleifen und Arrays behandeln.

Axel


Offline JanHoener

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
  • auf der Suche...
Re: wie erstelle ich einen Counter in LS?
« Antwort #5 am: 22.02.05 - 19:43:36 »
tja, wie gesagt, bin absoluter Anfänger, was LS angeht. Hab dewegen auch "dumm" programmiert. :-)

Werde mal versuchen, den Counter einzubauen.

Marinero Atlántico

  • Gast
Re: wie erstelle ich einen Counter in LS?
« Antwort #6 am: 23.02.05 - 08:41:33 »
studierst du Wirtschaftsinformatik?

Offline JanHoener

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Männlich
  • auf der Suche...
Re: wie erstelle ich einen Counter in LS?
« Antwort #7 am: 23.02.05 - 15:49:35 »
ja, warum?

Marinero Atlántico

  • Gast
Re: wie erstelle ich einen Counter in LS?
« Antwort #8 am: 23.02.05 - 16:26:59 »
hab einfach mal so gefragt. keine arroganten, hämischen, neidischen, bösartigen, umstürzlerischen, niedermachenden oder sonstwie negativen Hintergedanken.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz