Beiträge von Crashdow

    Guten Morgen,


    ich hatte gestern bei einem kleinen Test meiner Auktions-Datenbank einen totalen error, wenn zwei personen gleichzeitig eine Ansicht Refreshen (@command([toolsrefreshalldocuments]) )kommt es zum totalen Absturz von Notes.


    Daher möchte ich jetzt eine Ansicht so umbiegen das sie mir die Daten aus dem zweiten Dokument anzeigt (das Dokument in dem die Daten gespeichert sind ) aber die Dokumente, die ich für die Ansicht erstellt habe anzeigt.


    Ein bisschen habe ich schon, aber leider nicht sehr viel.


    Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim doc2 As NotesDocument
    Dim uidoc As NotesUIDocument
    Set db = session.CurrentDatabase
    Set view = db.GetView( "Angebote_Auktion" )
    Set doc = view.GetFirstDocument



    Ich bin mir hier nicht sicher ob ich damit auch das aktuelle Dokument bekomme, auf das ich doppelt geklickt habe um es zu öffnen.
    Dim docs As NotesDocumentCollection
    Set docs = Source.Documents
    Set doc2 = docs.GetFirstDocument[/i}



    [i]While Not( doc Is Nothing)
    If doc2.UniversalID = doc.Schlüssel Then
    Set uidoc2 = uiws.EditDocument(True, doc)
    End If

    Wend
    End Sub



    Gruß und Dank
    Christian

    Das Auslesen von Feldern ist aber möglich.




    Der Code ist soweit richtig, daran kann es nicht liegen. Den Agent startest du aus dem Dokument herraus?



    Gruß
    Christian

    Herzlichen Dank für eure Hilfe,


    [color=660000]v_Feld(0) = doc.käufer[/color] funktioniert nicht, da ist die [color=660000](0)[/color] zu viel.
    durch einlesen über [color=660000]v_Feld= doc.käufer[/color] klappt es aber einwandfrei.



    Gruß
    Christian

    Hi,


    Ich habe Feld mit Mehrfachwerten durch "Neue Zeile" getrennt und möchte es per Lotus Skript einlesen und über einen [color=000099]Arrayappend[/color] mit einem weiteren Wert füllen.
    Leider gibt er mir immer nur den ersten Wert wieder. Die anderen läßt Notes unter den Tisch fallen.


    Normal würde ich das über Length und eine for/while - Schleife lösen, aber auch die erkennt er nicht richtig.


    Kann mir jemand sagen wie ich das Feld so einlese das Notes es erkennt.



    Gruß und Dank
    Christian




    Anhang: der Code mit dem ich das Feld beschreibe
    Das Feld selber steht auf "Getrente werte anzeigen mit: Neue Zeile"


    Dim v_Feld As Variant
    Redim v_Feld(0)


    v_Feld(0) = doc.käufer(0)

    If (v_Feld(0) = "") Then


    v_Feld = session.UserName


    Else


    v_Feld = Arrayappend(v_Feld, session.UserName)
    End If

    If vorhanden > verkauft Then


    verkauft = verkauft + 1
    doc.Anzahl_Verkauft = Cstr(verkauft)
    doc.käufer = v_Feld
    doc.keys = schlüssel
    Call doc.Save( True, True )


    End If

    Du kannst über die Ausrichtung (sowohl unter Text als auch unter Feld) nur die Position des Inhaltes der Tabelle bzw. des Tabellenabschnitts bestimmen.


    Um einen Text rechtsbündig zu schreiben mußt du unter "Feld" den "Stiel" auf Notes stellen.
    Damit passt sich das Fenster der Menge an Zeichen an und der Text steht rechtsbündig



    Gruß
    Christian



    Edit: oh, da war ich zu langsam mit dem schreiben :D

    Hi,


    Ich soll Änderungen an einer Datenbank vornehmen. Unter anderem soll ich die Bereiche erweitern. Die Formel für die Bereichsauswahl lautet:


    [color=0000CC]@Unique(@GetProfileField("(Bereiche)";"Profilbereich"))[/color]


    mein Problem ist jetzt das ich das Profildokument nicht finden kann.


    Ein Profildokument muß es auf jedem Fall geben. Unter der Auswahl werden mehrere Kategorien angezeigt.


    Ich habe jetzt auch schon so einiges ausprobiert. Unter anderem habe ich eine Ansicht erstellt in dessen erster Spalte ich das Feld "Profilbereich" anzeigen lasse. [Select @All]
    Theoretisch müssten jetzt ganz viele Anzeigen sichtbar sein, die auf immer das gleiche Dokument verweisen. Leider passiert das nicht.


    Die Maske heißt (Bereiche), kann das daran liegen das sie Versteckt ist?
    Oder arbeiten Profildokumente anders als andere?

    So, ich habe mein Problem jetzt gelöst.


    Herzlichen Dank für eure Hilfe und Vorschläge.


    Für die die es interessiert:



    Ich habe den Edit-Mode komplett unterdrückt und dem User keine Möglichkeit zum speichern des Dokumentes gegeben.
    Des weiteren habe ich einen Button erstellt über den das Gebot und der Bieter in ein anderes Dokument (Schlüssel = UniversalID) gespeichert wird.
    Die Daten aus diesem Dokument zeige ich per "eingebettete Ansicht" wieder in der Maske an
    Über DBColumn oder DBLookup funktioniert es leider nicht, da ich, wenn ich das Dokument aktuell halten möchte entweder den Edit-Mode betreten und das Dokument speichern muß oder über die Ansicht mit einem [color=000066]@Command([ToolsRefreshAllDocs])[/color] - Befehl das ganze refreshen muß. Da ich das aktuelle Gebot aber direkt zur Verfügung haben möchte, ist diese Methode ausgeschlossen.
    Mit einem [color=330000]workspace.ViewRefresh[/color] aktuallisiere ich die angezeigten Daten, entwerder direkt nach dem Bieten oder über einen Refresh-Button.


    Die Zeit kann ich momentan leider nur über einen [color=000066]@Command([ToolsRefreshAllDocs])[/color] - Befehl von der Ansicht aus aktuallisieren, aber ich hoffe das kann ich noch ändern.


    Das ganze ist zwar nicht ganz so wie ich es mir vorgestellt habe, aber das beste was ich aus Notes herauskitzeln konnte.



    Gruß
    Christian

    Das Problem wird immer größer!!!!!


    Ich habe jetzt die Daten, die ich durchs bieten verändere ausgelagert und der Hauptmaske das speichern untersagt.


    Nun zeigt sie aber nicht mehr die aktuellen Daten an (auser im Edit-Mode).
    Im Lese-Modus wird nur der gespeicherte Wert gezeigt und da ich die Maske nicht speichern kann ist es somit der alte Wert.


    KRIESE!!!! :pint:



    EDIT:
    Ich habe mir das ganze noch mal genauer angesehen. Wenn ich mit einem weiteren Acc. speichere hat er ein Speicher-Problem fragt er mich jedes mal ob ich ein Konfliktdokument erstellen will. Drücke ich auf Nein bricht er ab. Die Daten jedoch hat er vorher alle noch brav gespeichert.


    Ich krieg nen Rappel!!!! :pint:

    Hm,


    die Idee mit der Ansicht finde ich gut, aber das könnte ich allerhöchstens als Zusatz einbauen da die Leute sich das Angebot ja auch ansehen möchten / sollten.



    Ich werde das jetzt über ein zweites Dokument lösen, auf das ich die "biet" - Daten speichere und die Hauptmaske (auf der das Angebot ist ) nur noch zum Ansicht nehmen.
    Wenn es neu ist können die Daten einmal eingestellt werden und danach gibt es nur noch die Möglichkeit zu bieten.


    Wird dieser Button gedrückt werden der Preis und die Anzahl der bisherigen Gebote in eine neu Datei gespeichert. (als Schlüssel zwischen den Dokumenten kann ich ja die UniversalID nehmen, glaube ich)
    Und die Daten die ich auslagere hole ich über ein DBColumn wieder in die Ansicht rein.


    Theoretisch muß ich ja nur vermeiden das der Benutzer die Hauptmaske, die er durchgehend sieht speichert da es sonst zu einem Konflikt mit den anderen Usern kommt.
    Das hätte ich durch die oben genannte Methode ja erreicht.



    Gruß
    Christian

    Ok, theoretisch könnte ich es ja einfach immer als neue Version speichern und die Daten des aktuellsten Dokumente per DBColumn abrufen.


    Dann muß ich mir nur was mit dem ´Löschen einfallen lassen, da die Datenbank sonst ganz schön schnell sehr groß werden kann.

    Hm,


    das ganze funzt noch nicht so ganz. Er spring in den Edit-Mode und die Messagebox popt auf. Danach meckert er dann aber das er nur im Edit-Mode Felder verändern kann und in einer weiteren Nachricht das der Dokumentbefehl nicht verfügbar ist.



    Gruß
    Christian



    PS: Das ganze soll eine kleine Auktionsdatenbank werden in der mehrere Benutzer das Dokument gleichzeitig sehen können und in kürzesten Abständen bieten.

    Hi,


    vielleicht kann mir das jemand erklären, ich habe ein Dokument im Lese-Modus und möchte nun erreichen das wenn ich auf einen Button klicke, das Dok. in den Edit-Mode wechselt, ein paar Felder füllt, speichert und wieder in den Lesemodus zurückfährt
    (Es soll ein Dokument werden auf das viele in kurzer Zeit zugreifen können. Daher darf das wechseln des Modus nur für eine kurze Zeit bestehen.



    Nun scheitert er aber schon an meinem UIdoc. Kann mir jemand sagen warum.
    Das Dokument befindet sich im Lese-Modus und ich klicke auf einen einfachen Button.



    Sub Click(Source As Button)

    Dim session As New NotesSession
    Dim uiws As [color=0000CC]NEW[/color] NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    [color=663333]Set uidoc = uiws.CurrentDocument[/color]

    Dim user As String
    Dim gebot As Integer
    Dim anzahl As Integer


    uidoc.EditMode = True

    var = Messagebox( "Wollen Sie Bieten?" , 33, "BIETEN?" )

    If var = 1 Then


    gebot = uidoc.FieldGetText( "TArtikel_Gebot" )
    anzahl = uidoc.FieldGetText( "TArtikel_AnzGeb" )
    gebot = gebot + 0.5
    anzahl = anzahl + 0.5
    Call uidoc.FieldSetText( "TArtikel_Gebot" , gebot )
    Call uidoc.FieldSetText( "TArtikel_Anzahl" , anzahl )
    user = session.UserName
    Call uidoc.FieldSetText( "TK_Höchstbietender" , user)
    Call uidoc.FieldSetText( "Speichern" , "speichern")
    Call uidoc.Save
    Call uidoc.FieldSetText( "Speichern" , Nothing)

    End If

    uidoc.EditMode = False

    End Sub


    Dank und Gruß
    Christian

    Falls jemand das gleiche Problem hat kommt hier mal meine Lösung.



    Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)

    Dim ws As New NotesUIWorkspace
    Dim uiview As NotesUIView
    Dim view As NotesView
    Set uiview = ws.CurrentView
    Set view = uiview.View
    Dim id As String
    id = view.UniversalID

    If id = "B8EA4CF555A31522C12570D70025DC11" Then
    Continue = False
    End If

    End Sub


    Ich habe das ganze jetzt einfach über die View-ID gelöst.



    Gruß
    Christian

    Hi,


    ich habe das Problem das ich eine Maske erstellt habe auf der ein Countdown Zähler läuft. Nun werde ich bei jedem schließen der Maske gefragt ob ich speichern möchte.
    Das geht mir tierisch auf den Senkel. Wie kann ich das unterdrücken? Es reicht leider nicht bei Queryclose ein "Save" einzufügen.



    Gruß und Dank
    Christian

    Ich kenne so keine.


    Du könntest allerhöchstens nach dem Wert einen weiteren Balken zaubern, der wieder in die Ursprungsfarbe geht. Das wird aber spätestens schwierig wenn du die Ansicht in zwei Farben aufgeteilt hast. (abwechselnde Reihenfarbe)



    Gruß
    Christian