Beiträge von Bernd99

    Hallo,


    erstmal vielen Dank für die schnelle Antwort.


    Ich habe aber noch ein Problem. Mein Doclink bleibt leer bzw er verweist auf ein nicht vorhandenes Dokument.


    Das Script läuft übrigen bei POSTsave ab.



    Hier noch mal mein Script:


    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim a As Variant, b As Variant, c As Variant

    Set uidoc = workspace.CurrentDocument

    If uidoc.FieldGetText( "NeinJa_30" )="JA" Then

    a= uidoc.FieldGetText("MocNr")
    b= uidoc.FieldGetText("MocBeschreibung")
    c= uidoc.FieldGetText("MoC_Betrieb")

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument

    Dim Mailan As Variant
    Dim rtitem As NotesRichTextitem

    Mailan="Bernd Diehm/"

    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    doc.Form = "Memo"
    doc.SendTo = Mailan
    doc.Subject = "Es wurde ein MoC mit USGQ- Relevanz erstellt. - MoC Nr.: " & a &" Titel : " & b

    Set rtitem = New notesrichtextitem (doc, "body")
    Call rtitem.appendtext("Bitte sehen Sie sich den MoC mit der Nr.: " & a &" Titel: " & b &" der Gruppe: "& c &" an.")
    Call rtitem.appenddoclink (doc, "")

    Call doc.Send( False )
    Messagebox ( "Es wurde eine Mail an US, AS und QM gesendet, da das MoC USGQ relevant ist. ")

    End If




    Ich weiß nicht wie ich hier auf das richtige Doc verweisen muß


    Call rtitem.appenddoclink (doc, "")


    Das doc in der Klammer ist wohl nicht das UIdoc auf welches ich verweisen möchte


    Was muß ich machen ? (einfach Uidoc eintragen geht nicht)


    Kann jemand mein Script entsprechend ergänzen ?


    Schon mal vielen Dank im Voraus für die Hilfe :sunclaus:

    Hallo zusammen,


    ich habe folgendes Script erzeugt welches eine Mail (erstmal an mich) verschickt.
    Soweit so gut. Ich versende die Dokument Nr die zum finden des Doks notwendig ist mit in Subjekt etc.


    Einfacher währe an dieser Stelle einen Doclink mit zu senden.



    Habt Ihr eine Idee ob und wie das geht ??



    Gruss


    Bernd99 :)




    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim a As Variant, b As Variant, c As Variant

    Set uidoc = workspace.CurrentDocument

    If uidoc.FieldGetText( "NeinJa_30" )="JA" Then

    a= uidoc.FieldGetText("MocNr")
    b= uidoc.FieldGetText("MocBeschreibung")
    c= uidoc.FieldGetText("MocBetrieb")



    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim Mailan As Variant

    Mailan="Bernd Diehm/"

    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    doc.Form = "Memo"
    doc.SendTo = Mailan
    doc.Subject = "Es wurde ein MoC mit USGQ- Relevanz erstellt. - MoC Nr." & a &" Titel :" & b
    doc.body = "Bitte sehen Sie in der MoC- DB den MoC mit der Nr.: " & a &" Titel: " & b &"der Gruppe: "& c
    Call doc.Send( False )
    Messagebox ( "Es wurde eine Mail an US, AS und QM gesendet, da das MoC USGQ relevant ist. ")

    End If

    Hi,


    hier hast Du denQuelltext:



    If ( source.FieldGetText( "Feldname" ) = "" ) Then
    Messagebox ( "Sie haben keine bla tragen !")
    Call source.GotoField( "Feldname" )
    continue = False
    Elseif ( source.FieldGetText( "Feldname2" ) = "" ) Then
    Messagebox ( "Sie haben keinen bla - eingetragen")
    Call source.GotoField( "Feldname2" )
    continue = False
    End If



    Gruss Bernd99 :D

    Hallo Diali,


    danke für Deine schnelle Antwort.
    Die Hochkommas fehlen nicht es funktioniert nicht mit Hochkommas. Habe den Grund leider vergessen ist aber OK.


    Leider funktioniert Dein Tipp bei mir nicht:


    SELECT ((Form = Mail | Form = S_Liste) & V_MoC_Betrieb="A") | ( Form = MOC & BearbeitungsStatus ="1" & V_MoC_Betrieb="A" )


    Ich hatte das auch schon so ähnlich ausprobiert.


    Trotzdem vielen Dank.


    Vielleicht liegt es daran das ich den Doks eine neue Maske mit:


    SELECT $TITLE="MOC";
    FIELD $TITLE:=@DeleteField;
    FIELD $INFO:=@DeleteField;
    FIELD $WINDOWTITLE:=@DeleteField;
    FIELD $BODY:=@DeleteField;
    FIELD $ACTIONS:=@DeleteField;
    FIELD Form:="MOC";


    untergeschoben habe.


    Ahhh ich habs die Hochkommas "" funktionieren nicht bei Masken die mit im Dokument gespeichert werden.


    Vielleicht liegt es auch daran ?



    Gruss


    Bernd99 :)

    Hallo zusammen,


    ich habe folgendes Problem:


    1. Ich habe eine Maske die heißt Moc in der Maske gibt es zwei Statusfelder:
    Mocabgeschlossen mit wert Ja oder Nein und
    Bearbeitungsstatus welcher die Textwerte 1,2 und 3 haben kann


    Dann habe ich noch zwei Masken die als Antwortdokumente in der Ansicht erscheinen sollen
    Antw.-Maske 1 = Schulungsliste alias S_Liste
    Antw.-Maske 2 = Mail


    In der Ansicht habe ich folgene Selectformel:


    Select (Form = Mail | Form = MOC | Form = S_Liste)&V_MoC_Betrieb="A"


    bis hier funktioniert alles einwandfrei, die Maske Moc erscheint und die Antwortdokumente stehen darunter. Das Feld V_MoC_Betrieb ist in allen drei Masken enthalten.


    Wenn ich jetzt:
    Select (Form = Mail | Form = MOC | Form = S_Liste)&V_MoC_Betrieb="A" & BearbeitungsStatus ="0"


    die Selectformel um & BearbeitungsStatus ="0" erweitere verschwinden die Antwortdokumente in der Ansicht.


    Ist mir schon klar das das Feld nicht in den Antwortdokumenten ist und sie deswegen verschwinden.


    Doch wie kann ich erreichen das die Antwortdokumente in der Ansicht bleiben.


    Wie muß ich dei Selectformel aufbauen ?


    Form = MOC &V_MoC_Betrieb="A" & BearbeitungsStatus ="0" plus die dazugehörigen Antwortdoks dargestellt werden ?


    Habe ich mich verständlich Ausgedrückt.


    Ich bin im Augenblick total ratlos :-?



    Vielleicht hat ja jemand einen Tipp.


    Gruss


    Bernd99 :)

    HAllo kurze korrektur für alle die ausprobieren möchten:


    Hallo,


    Zähler geht auch einfach:


    Zuersteine Maske erstellen:


    (System Zähler) alias System_Versuchsnummer


    mit folgenden Feldern:
    System_Versuchsnummer -- hier gehört auch der Startwert rein zB 1 oder 00001 etc (Textfeld bearbeitbar)


    Document_ID (Text berechnet beim anlegen) Wert = @Text(@DocumentUniqueID)
    System (Text berechnet) Wert = System_Versuchsnummer


    hiddenfield : $PublicAccess (Text berechnet beim anlegen)das brauchst Du damit immer eine Nr erzeugt wird (Autor)und nicht nur bei Editorrechten.


    +++++++++++++++++++++++++++++++++++++++
    so jetzt eine Ansicht erstellen:
    name:
    (system_Zähler) alias System_Versuchsnummer


    1. Spalte enthält das Feld : System
    1. muß sortiert sein damit dblookup funktioniert
    2. Spalte enthält das Feld : System_Versuchsnummer
    3. Spalte enthält das Feld : Dokument_ID


    Ansichtenauswahl lautet: SELECT(System = "System_Versuchsnummer" )


    Unter Ansicht - Eigenschaften der Reiter mit dem Schlüssel mußt Du noch einen Haken Unter "Verfügbar für Benutzer mit öffentlichem Zugriff " machen.


    +++++++++++++++++++++++++++++++++++
    jetzt bist Du bald fertig



    Jetzt legst Du in der Maske in der der Zähler sein soll ein Feld an, Name egal Wert =
    REM "aktuellen Zähler auslesen und inkrementieren";
    Counter := @DbLookup( "" : "NoCache" ; "" : "" ; "System_Versuchsnummer" ; "System_Versuchsnummer" ; 2);
    CounterPlus1 := @Right("000" + @Text( @TextToNumber(Counter) + 1); 4);


    REM "Inkrementierten Zähler zurückschreiben";
    DocID := @DbLookup( "" : "NoCache" ; "" : "" ; "System_Versuchsnummer" ; "System_Versuchsnummer" ; 3);
    @SetDocField(DocID ; "System_Versuchsnummer" ; CounterPlus1);


    REM "Feld Nummer zusammensetzen aus MoC + Zähler und ins Dokument schreiben";
    Nummer_Temp := Counter;
    @Return(Nummer_Temp)


    Unter Maske - Eigenschaften der Reiter mit dem Schlüssel mußt Du noch einen Haken Unter "Verfügbar für Benutzer mit öffentlichem Zugriff " machen.


    und schon bist Du fertig und hast einen Schönen Zähler.


    Ich willauch den Nachteil nicht verheimlichen. Jedesmal wenn Du ein neues Dok erzeugtst wird eine Nr vergeben auch wenn das Dok nicht gespeichert wird.


    Ich hoffe das hat Dir geholfen.


    Gruss
    Bernd99 :D

    LN4ever,


    hört sich ja gut an bin aber leider noch nicht soweit fortgeschritten das ich mir das alles selber erarbeiten könnte.


    Zeig uns doch mal den Quelltext vielleicht auch mit einer kleinen Anleitung.
    Ich würde Deine Programmierung gerne mal ausprobieren.


    Gruss


    Bernd99

    Hallo Zusammen,


    mir ist gerade noch eine Lösung eingefallen.


    Erst beim speichern eine neue Nummer erzeugen. Das sollte doch sicher sein. Ich hoffe dann halt, das nicht gerade zwei User in der gleichen Millisekunde speichern.


    Gruss


    Bernd 99 :D

    taurec


    Hallo Taurec,


    ich muß da leider wiedersprechen, es werden keine Nummern doppelt vergeben auch wenn das neue Dok noch nicht gespeichert ist.


    REM "Inkrementierten Zähler zurückschreiben";
    DocID := @DbLookup( "" : "NoCache" ; "" : "" ; "System_Versuchsnummer" ; "System_Versuchsnummer" ; 3);
    @SetDocField(DocID ; "System_Versuchsnummer" ; CounterPlus1);


    beim öffnen eines weitern Doks ist die erste Nummer schon zurückgeschrieben.


    Das einzige Problem ist halt das die Nummern von nicht gespeicherten Doks " verlorengehen.


    PS : Ich habe das so bei einigen DB's schon lange so in Benutzung.


    Gruss


    Bernd :)

    Hallo,


    Zähler geht auch einfach:


    Zuersteine Maske erstellen:


    (System Zähler) alias System_Versuchsnummer


    mit folgenden Feldern:
    System_Versuchsnummer -- hier gehört auch der Startwert rein zB 1 oder 00001 etc (Textfeld bearbeitbar)


    Document_ID (Text berechnet beim anlegen) Wert = @Text(@DocumentUniqueID)
    System (Text berechnet) Wert = System_Versuchsnummer


    hiddenfield : $PublicAcess (Text berechnet beim anlegen)das brauchst Du damit immer eine Nr erzeugt wird (Autor)und nicht nur bei Editorrechten.


    +++++++++++++++++++++++++++++++++++++++
    so jetzt eine Ansicht erstellen:
    name:
    (system_Zähler) alias System_Versuchsnummer


    1. Spalte enthält das Feld : System
    2. Spalte enthält das Feld : System_Versuchsnummer
    3. Spalte enthält das Feld : Dokument_ID



    Unter Ansicht - Eigenschaften der Reiter mit dem Schlüssel mußt Du noch einen Haken Unter "Verfügbar für Benutzer mit öffentlichem Zugriff " machen.


    +++++++++++++++++++++++++++++++++++
    jetzt bist Du bald fertig :D



    Jetzt legst Du in der Maske in der der Zähler sein soll ein Feld an, Name egal Wert =
    REM "aktuellen Zähler auslesen und inkrementieren";
    Counter := @DbLookup( "" : "NoCache" ; "" : "" ; "System_Versuchsnummer" ; "System_Versuchsnummer" ; 2);
    CounterPlus1 := @Right("000" + @Text( @TextToNumber(Counter) + 1); 4);


    REM "Inkrementierten Zähler zurückschreiben";
    DocID := @DbLookup( "" : "NoCache" ; "" : "" ; "System_Versuchsnummer" ; "System_Versuchsnummer" ; 3);
    @SetDocField(DocID ; "System_Versuchsnummer" ; CounterPlus1);


    REM "Feld Nummer zusammensetzen aus MoC + Zähler und ins Dokument schreiben";
    Nummer_Temp := Counter;
    @Return(Nummer_Temp)


    Unter Maske - Eigenschaften der Reiter mit dem Schlüssel mußt Du noch einen Haken Unter "Verfügbar für Benutzer mit öffentlichem Zugriff " machen.


    und schon bist Du fertig und hast einen Schönen Zähler.


    Ich willauch den Nachteil nicht verheimlichen. Jedesmal wenn Du ein neues Dok erzeugtst wird eine Nr vergeben auch wenn das Dok nicht gespeichert wird. :)


    Ich hoffe das hat Dir geholfen.


    Gruss
    Bernd99

    Hallo Taurec,


    Deine Formel funktioniert doch man muß nur


    $Actions noch einbauen und löschen.


    SELECT $TITLE="Form Name";
    FIELD $TITLE:=@DeleteField;
    FIELD $INFO:=@DeleteField;
    FIELD $WINDOWTITLE:=@DeleteField;
    FIELD $BODY:=@DeleteField;


    FIELD $ACTIONS:=@DeleteField;



    FIELD FORM:="Form Name";



    Ich bin ja kein großer Freund der Notes Hilfe aber ich habe nach langem herumsuchen doch noch etwas gefunden.


    Vielen Dank nochmal für Deine schnelle Hilfe die hat mich auf den richtigen Weg gebracht.


    Gruss


    Bernd99 :D

    Hallo,


    erstmal danke für die schnelle Antwort. Ich werde das gleichmal mit einem Agenten ausprobieren.


    Hallo Taurec,


    den Formnamen auszutauschen ist ja erstmal ok doch was ist mit den alten Inhalten einer Form ? z.B bei Querysave habe ich einwenig Script reingeschrieben.


    Der neue Formname ist übrigens der alte Formname ich habe lediglich einiges in der Programmierung (querysave, postopen) geändert.


    Ich hatte das mit dem "Form in Dok speichern" eigentlich so verstanden , das alle Form Infos mit in dem Dok landen.


    Und die müßte ich doch nun in dem Dok überschreiben oder löschen ???


    Ich werde erstmal Deine Formel testen und mich dann nochmals melden.


    Gruss
    Bernd99

    Hallo zusammen,


    ich habe da mal wieder ein kleines Problem. Ich habe in meiner Db die Haupteingabemaske im Dokument mit abgespeichert.


    Ich war da einwenig voreilig. Ich habe jetzt noch einige Änderungen an der Eingabemaske gemacht die auch den "alten" Dokumenten in der DB zugute kommen sollen.


    Wie kann ich allen Dokumenten in der DB die neue Makse zuweisen? (bzw in Ihnen abspeichern ?)



    Schon mal vielen Dank im Voraus. :)


    Bernd99

    Erst mal Danke an Tomthecat,


    ich habe mir das meiste aus Deinem Script geklaut und dann wie folgt benutz- für die diees interressiert. :D


    Ich habe einen Button benutzt wie man sieht.


    Sub Click(Source As Button)


    Dim GetMembersinGroup As Variant
    Dim GroupName As Variant
    Dim session As New NotesSession
    Dim db As New NotesDatabase("NotesServerName", "Names.NSF")
    Dim doc As NotesDocument
    Dim view As NotesView
    Dim x As Variant
    Dim gn As Variant

    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim item As NotesItem
    Set uidoc = workspace.CurrentDocument
    Call uidoc.Refresh
    Set note = uidoc.Document
    Set uidoc = workspace.CurrentDocument


    gn = uidoc.FieldGetText( "VerteilerSchulungsliste" )

    ###im Feld "VerteilerSchulungsliste" steht der Verteiler den ich auslesen möchte und dessen Namen(Notesadressen) ich in die Felder: S_Name_0, S_Name_1 usw. eintragen möchte.####


    Set view=Db.GetView("($VIMGroups)")
    Set doc=View.GetDocumentByKey(GN)


    If Not(doc Is Nothing) Then

    GetMembersinGroup= Doc.GetItemValue("Members")



    End If

    GroupLowerBound1= Lbound(GetMembersinGroup)
    GroupUpperBound1= Ubound(GetMembersinGroup)

    Dim text As String
    text = "S_Name_"


    For i =GroupLowerBound1 To GroupUpperBound1
    text = text & i
    Set item=note.ReplaceItemValue(text,GetMembersinGroup(i))
    text="S_Name_"
    Next i


    End Sub




    Nochmals Danke an alle :)


    Gruss


    Bernd

    Erst mal Danke an Tomthecat,


    ich habe mir das meiste aus Deinem Script geklaut und dann wie folgt benutz- für die diees interressiert. :D


    Ich habe einen Button benutzt wie man sieht.


    Sub Click(Source As Button)


    Dim GetMembersinGroup As Variant
    Dim GroupName As Variant
    Dim session As New NotesSession
    Dim db As New NotesDatabase("NotesServerName", "Names.NSF")
    Dim doc As NotesDocument
    Dim view As NotesView
    Dim x As Variant
    Dim gn As Variant

    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim item As NotesItem
    Set uidoc = workspace.CurrentDocument
    Call uidoc.Refresh
    Set note = uidoc.Document
    Set uidoc = workspace.CurrentDocument


    gn = uidoc.FieldGetText( "VerteilerSchulungsliste" )

    ###im Feld "VerteilerSchulungsliste" steht der Verteiler den ich auslesen möchte und dessen Namen(Notesadressen) ich in die Felder: S_Name_0, S_Name_1 usw. eintragen möchte.####


    Set view=Db.GetView("($VIMGroups)")
    Set doc=View.GetDocumentByKey(GN)


    If Not(doc Is Nothing) Then

    GetMembersinGroup= Doc.GetItemValue("Members")



    End If

    GroupLowerBound1= Lbound(GetMembersinGroup)
    GroupUpperBound1= Ubound(GetMembersinGroup)

    Dim text As String
    text = "S_Name_"


    For i =GroupLowerBound1 To GroupUpperBound1
    text = text & i
    Set item=note.ReplaceItemValue(text,GetMembersinGroup(i))
    text="S_Name_"
    Next i


    End Sub




    Nochmals Danke an alle :)


    Gruss


    Bernd