Lotus Notes / Domino Sonstiges > Tools & Downloads

Find , Replace in Felder

<< < (2/4) > >>

koehlerbv:
Klaus, @ReplaceSubstring wird aber lustig  ;D Wenn da jemand 'ne "01" in der Rufnummer hat (soll ja vorkommen ...), dann kannste den nicht mehr anrufen - es sei denn, Du hast die Nummer im Kopf  ;)

Pascal: Sind die Telefonnummern denn überhaupt normiert ? Steht da nicht mal sowas wie +41 (0) 3257490157 und mal 01/349 56-001 ?
Beachte bitte: In beiden Telefonnummern kommt die 01 auch an Stellen vor, die bestimmt nicht ausgetauscht werden sollen.
Wenn das nicht normiert ist, kann auch kein Tool Dir beim Austausch helfen - dafür muss ein spezialisierter Parser geschrieben werden. Wenn es aber normiert ist, reicht ein Mini-Ädschentileinichen.

Bernhard

Pascal:
Hallo Bernhard

es ist, die ++41 oder was auch immer für eine internationale Vorwahl verwende ich nur für die Handynummern oder eine Private Tel. nummer ist wirklich im Ausland, was aber bei uns ändert , ist nur die " 01" und dies sind immer die ersten zwei Zeichen links im Feld PrivatPhon.
Weisst du, wenn ich die Formel in deutsch programmieren könnte, dass würde wunderbar funktionieren, nur bin ich mir nicht sicher ob Notes das verstehen würde ;-)

Gruss
Pascal

Semeaphoros:
... und dann kannst Du auch gleich dahinter und alle "++" durch "+" ersetzen, seit rund 15 Jahren gibt es eine ISO-Norm, die aussagt, dass internationale Telefonnummern mit EINEM Plus zu notieren sind (deshalb funktioniert die Nummernschreibweise mit + und Ländercode auch international zuverlässig in allen Ländern :) )

Christopher:
Erstell Dir einen Agenten mit folgenden Code Anschließend Dokumente auswählen und den Agenten starten:


Sub Initialize
   Dim savecount%, tempstring$, itemstring$
   Dim flag As Integer
   Dim workspace As New Notesuiworkspace
   Dim session As New Notessession
   Dim thisdb As Notesdatabase
   Dim collection As Notesdocumentcollection
   Dim doc As Notesdocument
   Dim dialogdoc As Notesdocument
   Dim newdoc As Notesdocument
   Dim tempitem As Notesitem
   Dim dialogformname As String
   Dim dialogform As NotesForm
   Dim totalcount As Integer
   Dim savedcount As Integer
   Set thisdb = session.currentdatabase
   Set collection = thisdb.unprocesseddocuments
   totalcount = collection.count
   Set dialogdoc = thisdb.createdocument
   Set newdoc = thisdb.createdocument
   Set doc = collection.GetFirstDocument
   doc.ParentView.autoupdate = False
' Show copy of first selected document in dialog box
   Call doc.CopyAllItems( dialogdoc )
'Get form name
   Set tempitem = dialogdoc.GetFirstItem("Form")
   If tempitem Is Nothing Then
      dialogformname = ""
   Else
' If Notesitem.Text property is empty or null (or anything but text), useempty string
      Select Case Datatype(tempitem.text)
      Case 8: dialogformname = tempitem.text
      Case Else: dialogformname = ""
      End Select
   End If
   Do
      If dialogformname = "" Then
         dialogformname = Inputbox( "Geben Sie einen Maskennamen für die Dokumentenbearbeitung ein, oder CANCEL zum Beenden." , "Maske nicht gefunden" )
         If dialogformname = "" Then
            Print "Sie haben keinen Maskennamen eingegeben, es wurden keine Änderungen vorgenommen."
            Exit Sub
         End If
      End If
      Set dialogform = thisdb.GetForm( dialogformname )
      If dialogform Is Nothing Then dialogformname = ""
   Loop Until dialogformname <> ""
   flag = Workspace.DialogBox( dialogformname ,True,True,False,False,False,False,"Wenn Sie mit OK bestätigen, werden die Änderungen in allen ausgewählten Dokumenten übernommen !", dialogdoc,True,False)
   If flag = False Then
      Print "Der Dialog wurde abgebrochen, es wurden keine Änderungen vorgenommen."
      Exit Sub
   End If
   
   Forall item In dialogdoc.items
      
      If Datatype(item.text) = 8 Then
         itemstring$ = item.text
      Else
         itemstring$ = ""
      End If
      Set tempitem = doc.GetFirstItem(item.name)
      If tempitem Is Nothing Then
         tempstring$ = ""
      Elseif Datatype(tempitem.text) = 8 Then
         tempstring$ = tempitem.text
      Else
         tempstring$ = ""
      End If
      If itemstring$ <> tempstring$ Then
         Call item.copyitemtodocument(newdoc, "")
      End If
   End Forall
   While Not doc Is Nothing
      Call newdoc.CopyAllItems( doc, True )
      savecount = savecount + 1
      Print totalcount & " Dokumente gewählt, " & savecount & " Dokumente geändert"
      Call doc.save(True, True, True)
      Set doc = collection.GetNextDocument(doc)
   Wend   
End Sub

koehlerbv:
Der gepostete Agent ist nicht geeignet, die Zürcher Vorwahl zu verändern !

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln