Andressformular

  • Ich habe 2 Adressfomulare.
    Aus dem einen kann ich die Variablen aus dem Adressarchiv auslesen, mit dem anderen kann ich Adressdaten anlegen.

    Mein Problem ist:
    Ich will Daten auslesen und die vorhandenen Adressen ändern beziehungsweise löschen.

    Dazu habe ich keinen Befehl im David gefunden.

    Kennt einer eine Lösung für diese Problem?

  • Hi,

    wenn du die Adressen auslesen kannst ist es dann nicht möglich ein neues DFML Formular anzulegen wo diese Sachen drinstehen und dann solltest du diese doch ändern können oder????

    Gruß Braintee

  • Gerade das ist mein Problem.

    Ich habe die Daten ausgelesen danach übernehme ich alle Variablen in ein anderes Formular.

    Das Problem bei Tobit ist das bei den Adressen redundanzen zugelassen sind. d.h. wenn ich die Adresse nach dem auslesen speichere wird ein 2 Datensatz unter dem selben Namen gespeichert.

    also brauche ich entweder einen Befehl auf dem Button der mir das ändern von bereits vorhandenen Datensätzen erlaubt oder das löschen der Datensätze genehmigt.

    Alles andere funktioniert nicht!!!

  • Hi Nachtigal,

    sorry, jetzt muss ich passen. Meine Programmierkünste halten sich dann mit David wirklich in Grenzen.

    Gruß Braintee

    PS: Sollte ich allerdings von einer Lösung hören sage ich dir Bescheid.

  • So, im folgenden habe ich den Quellcode für die Auslesung des Adresseintrags:

    <DFML name=search_for_nn option=noclose option=nosend>
    ##SCRIPT ID=clientEventHandlersJS LANGUAGE=JavaScript##
    SearchLastName();

    function SearchLastName()
    {
    var DvDFML = document.parentWindow.external;
    var DFMLTag = DvDFML.ExecutingDFMLTag;
    var DFMLform = DvDFML.forms[0];
    var LastName = DFMLTag.Variables("nn").value;
    var FirstName = DFMLTag.Variables("vn").value;
    if (LastName == "")
    {
    alert("Bitte das Feld Zuname ausfuellen" );
    return;
    }
    if (FirstName == "")
    {
    alert("Bitte das Feld Vorname ausfuellen" );
    return;
    }
    var s = DvDFML.DavidRoot + "ARCHIVE\\ADDRESS\\1\\";

    var arch = DvDFML.GetArchive(s,"DosPath");
    ntem = arch.SearchItem("Address", "LastName", DvDFML.AnsiToOem(LastName));
    arch = "";
    if (ntem.IsValid == false)
    {
    alert("Es gibt keinen Eintrag fuer diesen Nachnamen!" );
    return;
    }
    var arch = DvDFML.GetArchive(s,"DosPath");
    ntem = arch.SearchItem("Address", "LastName", DvDFML.AnsiToOem(LastName));
    arch = "";
    if (ntem.IsValid == false)
    {
    alert("Es gibt keinen Eintrag fuer diesen Nachnamen und Vornamen!" );
    return;
    }
    document.adresse.strasse.value = DvDFML.OemToAnsi(ntem.Street);
    document.adresse.plz.value = ntem.ZipCode;
    document.adresse.email.value = DvDFML.OemToAnsi(ntem.Email);
    document.adresse.telefon.value = ntem.OfficePhone;
    document.adresse.fax.value = ntem.FaxNumber;
    document.adresse.vn.value = DvDFML.OemToAnsi(ntem.FirstName);
    document.adresse.nn.value = DvDFML.OemToAnsi(ntem.LastName);
    document.adresse.Ort.value = DvDFML.OemToAnsi(ntem.City);
    document.adresse.land.value = DvDFML.OemToAnsi(ntem.Country);
    document.adresse.webseite.value = DvDFML.OemToAnsi(ntem.website);
    document.adresse.mobil.value = ntem.MobilePhone;
    document.adresse.firma.value = DvDFML.OemToAnsi(ntem.Company);
    document.adresse.kommentar.value = DvDFML.OemToAnsi(ntem.Notes);
    }
    ##/SCRIPT##
    </DFML>


    und hier ist der mir zugeteile Codeteil mit dem man Adresseinträge speichern kann:

    <DFML name=speichern>


    ##SCRIPT ID=clientEventHandlersJS LANGUAGE=JavaScript##


    DvDFML=document.parentWindow.external;
    var oAddress=GetAddress(nSelection);


    oAddress.FirstName=DvDFML.AnsiToOem(document.forms[0].vn.value);
    oAddress.LastName=DvDFML.AnsiToOem(document.forms[0].nn.value);
    oAddress.Street=DvDFML.AnsiToOem(document.forms[0].strasse.value);
    oAddress.ZipCode=DvDFML.AnsiToOem(document.forms[0].plz.value);
    oAddress.Email=DvDFML.AnsiToOem(document.forms[0].email.value);
    oAddress.OfficePhone=DvDFML.AnsiToOem(document.forms[0].telefon.value);
    oAddress.FaxNumber=DvDFML.AnsiToOem(document.forms[0].fax.value);
    oAddress.City=DvDFML.AnsiToOem(document.forms[0].Ort.value);
    oAddress.Country=DvDFML.AnsiToOem(document.forms[0].land.value);
    oAddress.website=DvDFML.AnsiToOem(document.forms[0].webseite.value);
    oAddress.MobilePhone=DvDFML.AnsiToOem(document.forms[0]..mobil.value);
    oAddress.Company=DvDFML.AnsiToOem(document.forms[0].firma.value);
    oAddress.Notes=DvDFML.AnsiToOem(document.forms[0].kommentar.value);


    oAddress.Save();

    ##/SCRIPT##
    </dfml>

    Der Wert nSelection ist meiner Meinung nach der Wert der den adresseintrag identifiziert. Wie muss ich das Script abändern um es zum laufen zu bringen?

    Ich hoffe mir kann geholfen werden ( obwohl ich glaube das mir schon lange nicht mehr zu helfen ist ;( )

    Vielen Dank im Voraus.

  • Hallo zusammen,
    größtenteils stammt dieser Quelltext von dem orignial DFML-Formular "Adressliste" oder?

    Wie gehst du vor, wenn in deiner Adressdatenbank zweimal "Müller" vorkommt?
    Kannst du da zwischen den beiden unterschiedlichen Müllers blättern?

    Am liebsten möchte ich die Adressausgaben anderweitig gelöst haben. Diese o.g. Lösung zu ungenau.

    Bisher habe einen Button für die Adressdatenbank - der Code sieht wie folgt aus:

    Bisher trägt er mir automatisch die eMail Adresse in das Feld ein. Ich möchte aber alle DAten wie zum Bsp. Fax-Nr. usw. ausgetragen bekommen.

    Wie ist das möglich?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!