Entwicklung einer Kontaktdatenverwaltung

  • ja die db is lokal angelegt.
    hab nen agenten angelegt und in den eigenschaften hab ich dann auslösen durch ereignis ausgewählt und dann "auswahl in der agentenliste ausgewählt"
    und als ziel dann alle dokumente in der datenbak ausgewählt weil ich "kein ziel" nicht auswählen konnte.
    und dann den quellcode eingefügt.
    er schmeißt den code dann in options und gibt dann den fehler
    "illegal executable code in Options"

    • Offizieller Beitrag

    der Code muss in "[d]Click[/d]" "Initialize"


    "Keins" findest Du unter "Alle Dokumente" (kannst Du nach unten scrollen).


    Gruß
    Dirk

  • hat nun geklappt.
    jetzt hab ich erstmal noch ein paar kleine fragen.
    die erste:
    wo find ich meine importierten daten?



    -------------------------------
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    Set xlApp = CreateObject ( "Excel.Application") ' Excel starten'
    xlApp.Visible = True ' Excel im UI anzeigen'
    xlApp.Workbooks.Open "c:\test123.xls" ' Datei in Excel öffenen'
    xlApp.Sheets("KHV").Select ' passenden Reiter/Tabelle auswählen'
    For Zeile = 1 To 1
    Set doc = New NotesDocument(db) ' Dokument erstellen'
    doc.Form = "MaskenName" ' Maske festlegen'
    doc.FeldA = xlApp.Cells(Zeile, 1).Value ' Zelle in Spalte A auslesen und in Feld FeldA schreiben'
    Next
    -------------------------------
    das ist der quelltext.
    ziel ist es ja alle 157 spalten und 2170 zeilen zu importieren.


    also müsste ich ja wie folgt den quellcode ändern.


    ----------------------------------------
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    Set xlApp = CreateObject ( "Excel.Application") ' Excel starten'
    xlApp.Visible = True ' Excel im UI anzeigen'
    xlApp.Workbooks.Open "c:\test123.xls" ' Datei in Excel öffenen'
    xlApp.Sheets("KHV").Select ' passenden Reiter/Tabelle auswählen'
    For Zeile = 1 To 2170
    Set doc = New NotesDocument(db) ' Dokument erstellen'
    doc.Form = "MaskenName" ' Maske festlegen'
    doc.FeldA = xlApp.Cells(Zeile, 1).Value ' Zelle in Spalte A auslesen und in Feld FeldA schreiben'
    .
    .
    .
    doc.FeldFA=xlApp.Cells(Zeile, 1).Value ' Zelle in Spalte A auslesen und in Feld FeldFA schreiben'


    Next
    ----------------------------------------



    lässt sich das nicht irgendwie abkürzen mit ner for schleife mit fester anzahl von durchläufen?
    Inwie weit lässt sich damit nun die "Eingabe" bzw "bearbeiten" Maske der Schablone "pernames.ntf" abändern weil ich manche Felder nicht brauche aber viele neue durch die vielen spalten dazu bekomme?


    Vielen Dank nochmal für die schnelle Hilfe


  • in den von dir erstellten Dokumenten(wenn du sie auch abgespeichert hast).


    Zitat


    chrischan83 schrieb:
    lässt sich das nicht irgendwie abkürzen mit ner for schleife mit fester anzahl von durchläufen?


    ja, zum Beispiel wie hier:
    For Zeile = 1 To 2170 .......


    ich glaube, ich verstehe an der Stelle dein Problem nicht.



    Zitat


    chrischan83 schrieb:
    Inwie weit lässt sich damit nun die "Eingabe" bzw "bearbeiten" Maske der Schablone "pernames.ntf" abändern weil ich manche Felder nicht brauche aber viele neue durch die vielen spalten dazu bekomme


    Damit gar nicht.
    Du musst die Maske im Designer abändern, wenn die Items in der Maske anzeigen willst.


    Grüsse


    Dau-in

    • Offizieller Beitrag

    neben der Maske solltest Du dann auch noch ggf. die Ansichten anpassen, weil die eventuell auf Felder zugreifen, die Du nicht mehr verwendest bzw. Felder die Du neu erstellt hast in der Ansicht nicht angezeigt werden.


    Gruß
    Dirk

  • in dem verzeichnis auf der festplatte?
    also c:\programme\lotus\notes\..
    da find ich es nicht und auch im domino designer hab ich schon im
    alles nach meinem datenimport durchsucht.
    ich finds nicht.


    und ja es ist alles gespeichert

    • Offizieller Beitrag

    mit
    doc.Form = "MaskenName" ' Maske festlegen'
    hast Du den Maskennamen festgelegt. In den Ansichten werden die Dokumente anhand der Form selektiert.


    Dort müsste
    doc.Form = "Person" ' Maske festlegen'
    stehen.
    Da ich am Anfang davon ausgegangen bin, dass Du eine neue Anwendung schreibst, habe ich da selbstsprechenden Text reingeschrieben.


    Gruß
    Dirk

  • ich hab das jetzt nochmal in "Person" umgeändert.
    und hab anschließend den agent nochmal gestartet.


    Ich finds leider immer noch nicht.
    hab zur suche mal einen screenshoot begefügt.


    Ich deiner Meinung nach ein Neuanfang schneller als das Persönliche Adressbuch umzuändern?

  • ich hab das jetzt nochmal in "Person" umgeändert.
    und hab anschließend den agent nochmal gestartet.


    Ich finds leider immer noch nicht.
    hab zur suche mal einen screenshoot begefügt.


    Ich deiner Meinung nach ein Neuanfang schneller als das Persönliche Adressbuch umzuändern?

    • Offizieller Beitrag

    ok bei Dir ist es die Maske People. Die richtige Maske hast Du schon markiert. Dann wird der Alias als Maskenname verwendet. Gibt es keinen Alias, wird der Name verwendet.


    Neu entwickeln würde ich dies nicht, das priv. Adressbuch hat wahrscheinlich alles was Du brauchst.


    Gruß
    Dirk

  • besteht jetzt hier die möglichkeit zu prüfen was alles importiert wurde.
    ich will ja noch den quellcode aus dem agent anpassen damit alle datensätze importiert werden und dazu will ich halt prüfen inwiefern das korrekt importiert wurde.
    bisher müsste ja nur die kopfzeile aus der exceltabelle importiert sein.

    • Offizieller Beitrag

    bau Dir eine Ansicht ohne Ansichtsauswahlformel. In der ersten Spalte lässt Du Dir kategorisiert das Feld Form anzeigen. In der 2. Spalte die Dokumente sortiert nach Änderungsdatum.


    In der Ansicht stellst Du die Markierung auf das entsprechende Dokument und schaust über die Eigenschaftbox nach, welche Felder erstellt wurden.


    Gruß
    Dirk

  • hab nun eine neue ansicht erstellt und dort bei den eigenschaften
    nicht auswahlformel ausgewählt.
    dann hat er mir ne ansicht geöffnet mit eine paar spalten wie name faxnummer usw..
    ich hab dann alle bis auf zwei gelöscht habe dann bei der ersten feld ausgewählt und anschließend auf Form geklickt.


    bei der zweiten spalte find ich aber nix mit "dokumente sortiert nach änderungsdatum"

  • Simple Function --> Last Modified und dann die Spalte auf sortiert stellen.


    für was machst du dieses Praktikum?


    Grüsse


    Dau-in

  • danke DAU-in


    hab ich gemacht aber wie kann ich nun meine datensätze dort anzeigen lassen?


    in welcher form sind die denn dort abgelegt?
    wie ist das dort gegliedert.
    kann ich die dann über den spaltennamen ansprechen und dann über nen index wie so ein array quasi?


    ich bin praktikant bei nen medizintechnik unternehmen und die arbeiten mit lotus und wollen ihre kundenliste als lotus notes anwendung.
    tja und das soll ich halt machen.

  • Praktikant für was?


    da du schon seit ein paar Tagen dran bist:
    Notes ist keine relationale Datenbank
    Notes ist eine nichtrelationale Datenbank oder verständlicher: eine Dokumentenbank.
    Eine Zeile einer Tabelle entspricht in etwa einem Dokument.
    In deiner Ansicht sollten also schon einmal die Dokumente erscheinen, sonst ist etwas falsch.
    Du erstellst jetzt weitere Spalten in der Ansicht und weisst sie jeweils einem Item zu, entweder über die Feldauswahl oder schreibst den Namen des Items direkt hin. Diese Inhalte in den entsprechenden Dokumenten werden dann angezeigt.

  • Praktikant für Medizininformatik und Biomedizintechnik.
    Das mit der Dokumentenbank war eins der ersten Sachen die ich über Notes gelesen habe.
    Ich mein ich hab zb bei c++ zeiger um zu wissen wo ich gerade bin und was mein letztes objekt ist.
    Da fällt mir das umdenken etwas schwerer.


    Leider zeigt er bei mir nix an.
    Vielleicht liegts ja am Code:
    das habe ich ins initialize des neu erstellten Agenten eingefügt.



    --------------------------
    Sub Initialize
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    Set xlApp = CreateObject ( "Excel.Application") ' Excel starten'
    xlApp.Visible = True ' Excel im UI anzeigen'
    xlApp.Workbooks.Open "c:\test123.xls" ' Datei in Excel öffenen'
    xlApp.Sheets("KHV").Select ' passenden Reiter/Tabelle auswählen'
    For Zeile = 1 To 1
    Set doc = New NotesDocument(db) ' Dokument erstellen'
    doc.Form = "Person" ' Maske festlegen'
    doc.FeldA = xlApp.Cells(Zeile, 1).Value ' Zelle in Spalte A auslesen und in Feld FeldA schreiben'
    Next
    End Sub
    -------------------------


    vom verständnis her müsste er ja ein dokument erstellen mit der ersten zelle der ersten Zeile oder?
    oder hab ich da jetzt nen fehler drin?

    • Offizieller Beitrag

    Zeiger gibt es im Notes auch, allerdings musst Du dich um dies nicht kümmern.


    Aber Du speicherst das Dokument nicht.

    Code
    ...
    For Zeile = 1 To 1
       Set doc = New NotesDocument(db) ' Dokument erstellen'
       doc.Form = "Person" ' Maske festlegen'
       doc.FeldA = xlApp.Cells(Zeile, 1).Value ' Zelle in Spalte A auslesen und in Feld FeldA schreiben'
       doc.Save True, true, true  ' Dokument speichern '
    Next
    ...


    Gruß
    Dirk

  • um alle zellen einer zeile einzulesen muss ich eine forschleife in der forschleife verschachten oder?
    mit der anzahl der spalten am besten würd ich sagen.


    wie geht er dann mit zellen um die leer sind?
    und wie kann ich mir den aufbau eines dieser dokumente vorstellen?