import einer Datei mit Button im Navigator, optischer Hinweis

  • Hallo zusammen,
    zur info: Ich bin ein Neuling was notes Entwicklung angeht.


    Ich habe folgendes Problem:
    In die db sollen regelmäßig Daten (bestenfalls dbf, ansonsten csv) importiert werden und automatisch geprüft werden auf Vollständigkeit. Wie kann ich es hinkriegen per Button den Import durchzuführen und leere Felder der Importdatei in einer Ansicht bzw. Maske optisch hervorzuheben ?


    Ich habe eine Maske "Checkliste" in der die zu prüfenden Felder angezeigt werden, eine Ansicht "Alle" und möchte noch eine Ansicht "fehlerhaft" erzeugen, um auf einen Blick die unvollständigen Datensätze sehen zu können.


    Da ich den Importbutton noch nicht habe, führe ich das noch mit Datei->Import ->structured Text mithilfe einer .COL Datei durch. Die Datensätze werden auch importiert und die Werte angezeigt. Nur bei fehlenden Werten z.B. TelNr kriege ich es nicht hin einen optischen Hinweis zu geben.
    Ich habe probiert dem Feld TelNr in der Maske "Checkliste" die Eingabevalidierung @if(TelNr = "";TelNr := "fehlt";TelNr := TelNr) zu geben, aber ohne Erfolg. Wenn also in der Importdatei die TelNr leer ist, bekomme ich keinen Hinweis bzw. keinen Eintrag "fehlt" in der Maske. Ideal wäre ein kleiner Popup-Hinweis sobald man ein Dokument öffnet, wo ein Feld leer ist.


    Also nochmal in Stichworten:
    Import von dbf bzw. csv mittels Button im Navigator
    optisches Hervorheben, Hinweis bei leeren importierten Feldern


    Viele Worte, ich hoffe einigermaßen verständlich.


    Danke schonmal und Gruß
    Burkhard

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard

    • Offizieller Beitrag

    optischer Hinweis bei fehlerhaften Dokumenten würde ich mit einer Farbspalte oder Symbolspalte lösen.


    Zu Deiner Formel
    @if(TelNr = "";TelNr := "fehlt";TelNr := TelNr)
    Du musst die Felder mit @SetField setzen, also in etwa so:
    @if(TelNr = ""; @SetField("TelNr"; "fehlt"); @Success)


    Import würde ich per Script machen. Welche Voraussetzungen bringst Du mit (VB, VBA oder irgend eine andere Sprache)?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo Dirk,
    schonmal Danke für den Tipp.


    ich habe früher mit Borland C unter DOS programmiert, einiges unter OS/2 mit REXX und ein kleines bisschen mit Lotusscript (in Wordpro).
    Ich vermute mal das lotusscript die Sprache ist, die Du mir nahelegen willst :)


    Gibt es hier eine routine für dbf Import ?


    Gruss Burkhard

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard

    • Offizieller Beitrag

    ja natürlich meine ich LotusScript.


    Soll dies ein einmaliger Import werden oder soll der mehrmals bis periodisch laufen?


    Bei einem einmaligen Import würde ich zwar Script verwenden, aber ein Import der csv-Datei mit einer COL-Datei wäre da auch denkbar.


    Gruß
    Dirk

  • ....
    Du musst die Felder mit @SetField setzen, also in etwa so:
    @if(TelNr = ""; @SetField("TelNr"; "fehlt"); @Success)



    Klappt leider nicht. Nach dem import sind die leeren Felder immer noch leer, d.h. kein "fehlt".

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard

  • Ich hatte ja in der Anfrage beschrieben, das der Import regelmäßig durchgeführt werden soll. Ich denke einmal täglich, je nachdem ob eine neue Importdatei vorhanden ist oder nicht.
    Der Anwender soll beim Öffnen entscheiden, ob ein Import nötig ist oder nicht und entsprechend den Button klicken.

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard

    • Offizieller Beitrag
    Zitat

    Du musst die Felder mit @SetField setzen, also in etwa so:
    @if(TelNr = ""; @SetField("TelNr"; "fehlt"); @Success)


    Klappt leider nicht. Nach dem import sind die leeren Felder immer noch leer, d.h. kein "fehlt".


    Du machst dies in der COL-Datei, dann muss es anders aussehen
    Am Ende der Col-Datei können noch Berechnungen angestellt werden.

    Code
    FORMULASTART   FIELD TelNr := @if(TelNr = ""; "fehlt"); TelNr);FORMULAEND


    Code
    Ich hatte ja in der Anfrage beschrieben, ...

    Sorry hatte ich nicht mehr daran gedacht.


    Gruß
    Dirk

    • Offizieller Beitrag

    so jetzt mal zum LotusScript, da Du dies schon mal verwendet hast, sollte es nicht so schwierig sein.


    Im Designer soltest Du mal die Hilfe (F1) aufrufen und auf Index umschalten (Alt + 2).


    Dim session as New NotesSession ... neues Session-Objekt - Startpunkt
    dim db as NotesDatabase ... Deklaration eines Datenbank-Objektes
    set db = session.CurrentDatabase ... dem DB-Objekt ein Wert zuweisen



    Schau Dir mal folgendes an, insbesondere der Beispiele.
    Open ... öffnen einer Datei
    Line Input ... einlesen einer Zeile einer ASCII-Datei
    Close ... schließen einer Datei
    Split ... aufteilen einer Zeichenkette auf ein Array


    Set doc = New NotesDocument(NotesDatabase) ... neues Dokument anlegen
    doc.Form = "MaskenName" ... dem Dokument eine Form zuordnen (Feld beschreiben)


    Solltest Du noch hängen bleiben, dann melde Dich.



    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Ich pumpe auch jede nacht infos aus einer csv, hier mein code:


    (basiert auf einer setup maske wo man so einiges einstellen kann (pfad zur csv, wohin es importiert werden soll und welche felder)


    allerdings auch "LotusSkript anfänger Code" ;o)
    -> welcher nur möglich war durch die hilfe hier im forum ;)

  • Hallo Muesly,


    vielen Dank für den Script-Tipp. KAnn ich glaub ich gut gebrauchen,
    da ich so an einer Stelle den Code habe. Bislang prüfe ich einige Importfelder mit Hilfe der .COL Datei, doch die Auslagerung des Codes in diese Datei ist mir ein wenig unsympatisch.


    Gruss Burkhard

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard

  • Hallo Dirk,


    Danke für den Tipp mit der .COL Datei, es hat geklappt.


    Allerdings ist die FIELD Zuweisung so nicht korrekt, da hier ja die Returncodes der @if Abfrage in dem Feld landen und nicht der Import. Ich habe also nur mittels setfield gearbeitet und die Zuweisungen (FIELD TelNr:=) weggelassen.


    Ich werde aber jetzt versuchen den Import komplett mit script zu machen, da ich den Code lieber nur in der nsf haben möchte, da mir in der .COL Datei "jeder" rumbasteln kann.


    Gruss Burkhard

    Viele Grüße und tschüss bis neulich,
    longman aka Burkhard