Autor Thema: Durch Dialogliste andere Felder füllen  (Gelesen 5850 mal)

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Durch Dialogliste andere Felder füllen
« am: 13.08.05 - 17:29:29 »
Hallo,

ich versuche mich gerade mal wieder an einer Datenbank und stehe jetzt an einem für mich nicht überwindbarem Problem.

Ich habe eine Maske in dem Daten eingegeben werden.

In einer zweiten Maske würde ich gerne über eine Dialogliste einen gespeicherten Vorgang auswählen und danach verschiedene Felder automatisch füllen lassen. (z. B. ich suche die Seriennummer und lasse danach die Felder des Herstellers und der Gerätebezeichnung füllen).

Ich habe inzwischen herausbekommen, dass das ganze nur über LS zu realisieren geht. Leider kann ich noch kein LS.

Könnte mir da jemand ein wenig behilflich sein. Bin absolut lernbereit! Also am besten mit ein paar erklärungen, damit ich dann mein nächstes Problemchen selbst lösen kann  ;D
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #1 am: 13.08.05 - 18:27:36 »
Wieso sollte das nur mit LS gehen ? Wenn Dein Schlüssel eindeutig ist, den Du ja sowieso zunächst auswählen musst, kannst Du - wenn die richtige Ansicht vorhanden ist - mit @dbLookup von dort weitere Werte auslesen und in Dein Zieldokument schreiben.

Du müsstest eventuell detaillierter aufschreiben, wo Dein Problem liegt.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #2 am: 13.08.05 - 18:39:36 »
Zitat
wenn die richtige Ansicht vorhanden ist
Da hat Bernhard Recht; und dann solltest du die erste Spalte dieser Ansicht selbstredend sortieren. Die zweite Spalte baust du dann so auf: Feld1+"~"+Feld2+"~"+ ...
Dann brauchst du, nachdem dir der @DBLookUp hoffentlich einen Wert zurückliefert nur noch mit @Word den String wieder aufzudröseln ( Trennzeichen ~ ) und in die Felder schreiben ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #3 am: 13.08.05 - 19:24:43 »
Bei euch hört sich das sooo einfach an!!!  ;)

Mit @dblookup hab ich noch nichts gemacht.

Ich habe jetzt eine Ansicht, in der alle Felder enthalten sind, welche ich gerne automatisch füllen lassen würde.

Diese Ansicht rufe ich in meiner Make über ein Dialogliste auf.

Die zu füllenden Felder habe ich als Berechnendes Textfeld deklariert.

Sind meine ersten Schritte soweit richtig, oder muss ich die Felder anders deklarieren?
Muss die Formel dann bei der Eingabevalidierung eingetragen werden?

Ich hab mir jetzt folgende Formel gebastet:

_ansicht := abgang;
_Schlüssel := Seriennumemer

@DbLookup(""; "" : "" ; _ansicht ; _Schlüssel ; 2)

Aber leider will er mir die nicht in der Eingabevalidierung annhemen!?
Ansonsten auf dem richtigen Weg  ???
Michael

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #4 am: 13.08.05 - 20:02:06 »
Zitat
Aber leider will er mir die nicht in der Eingabevalidierung annhemen!?

wenn du mehrere Felder auf diese Weise füllen willst, dann nicht ...

Seriennumemer ? Ist das nur ein Tippfehler ?

Und wenn die Werte beim Aufruf des Docs angezeigt werden sollen, gehört die Formel nicht in die Validierung sondern in den Vorgabewert ( das Feld ist dann berechnet zur Anzeige )

Und wenn die mehrere Werte auf diese Art anzeigen möchtest, dann musst du das gaaaanz anders aufbauen.

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #5 am: 13.08.05 - 20:27:51 »
Ja, es war ein Tippfehler.

Und es sind insgesammt 5 Felder die ich füllen möchte. Aber nicht bei dem Aufrufen eines Dokuments, sondern ich erstelle ein neues und möchte nur eine Eingabe machen und dadurch die restlichen 5 Felder füllen lassen (die Daten habe ich in der Datenbank schonmal eingegeben).

Wie muss ich das dann aufbauen??

Manchmal könnt ich anfangen Notes zu hassen!!!  >:D
Michael

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #6 am: 13.08.05 - 22:01:06 »
Durch ein wenig probieren, habe ich jetzt eine Möglichkeit gefunden:

_view := "auswahlabgang";
_field := Seriennummer;

@SetField("Modell";@DbLookup("": "";"":""; _view; _field ; 2));
@SetField("MA";@DbLookup("": "";"":""; _view; _field ; 3));
@SetField("BS";@DbLookup("": "";"":""; _view; _field ; 4));
@SetField("Inventarnummer";@DbLookup("": "";"":""; _view; _field ; 5));

@Command([FileSave]);
@Command([CloseWindow])

Das wird erst beim Speichern der Maske ausgeführt. Es wär schön, wenn das direkt nach dem auswählen der Seriennummer passieren würde. Außerdem wird mir hinter jedem Feld jetzt ein "," angezeigt. Aber auch nur, wenn ich das ganze nicht speichere. Sobald ich speicher, verschwinden alle automatischen eingaben.  >:(
Michael

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Durch Dialogliste andere Felder füllen
« Antwort #7 am: 14.08.05 - 11:24:46 »
Hi,

wie wählst du denn die Seriennummer aus? Wo hast du denn den Formelcode eingegeben und wie sehen denn die WErteformeln der Textfelder aus, die du über die Formel füllst?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #8 am: 14.08.05 - 12:08:01 »
Hallo,

Die Seriennummer wähl ich durch eine Dialogliste aus, welche auf eine Ansicht mit allen erforderlichen Feldern verweist (Seriennummer,Modell, MA, BS, Inventar). Wobei nur die Seriennummer sichtbar ist.

Den Code den ich gepostet habe, habe ich in den Senden-Button eingetragen.

Die Werte der Textfelder ist einfach nur "".

Das mit dem verschwinden habe ich hinbekommen. Hatte Berechnete Textfelder gehabt.

Das mit den Kommas hinter den automatisch gefüllten Feldern tritt heute seltsamer weise nichtmehr auf. Notes hatte gestern scheinbar keine Lust mehr  ;)

Jetzt wär nurnoch der Wunsch, dass die Felder sich füllen sobald die Auswahl getroffen wurde.
Michael

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Durch Dialogliste andere Felder füllen
« Antwort #9 am: 15.08.05 - 08:14:04 »
Hi,

zum automatischen Füllen der Felder würde ich folgenden Weg vorschlagen:

1. Setze die @DbLookups in die Werteformel der entsprechenden berechneten Felder.
2. Beim Dialogfeld mit der Auswahl der Seriennummer musst du die Option "Felder bei Schlüsselwortänderung aktualisieren" setzen.

Damit sollte es eigentlich funktionieren.


Axel

 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #10 am: 16.08.05 - 20:06:09 »
Hallo Axel,

wenn die die @DbLookups in die Werteformel eines Berechneten Feldes setze und die Schlüsselwortänderung aktiviere erhalte ich beim öffnen der Maske immer die Fehlermeldung, dass der Index nicht vorhanden ist oder nicht aufgebaut wurde.

Wenn ich es so lasse, dass erst nach klicken des Buttons und anschließenden Speicher und Schließen der Maske, dann werden mit den gleichen Formeln alle Felder entsprechend gefüllt und ich bekomme niergends eine Fehlermeldung.
Michael

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #11 am: 16.08.05 - 20:12:36 »
Zitat
wenn die die @DbLookups in die Werteformel eines Berechneten Feldes setze und die Schlüsselwortänderung aktiviere erhalte ich beim öffnen der Maske immer die Fehlermeldung, dass der Index nicht vorhanden ist oder nicht aufgebaut wurde.


kann es sein, daß die erste Spalte in der Ansicht nicht sortiert ist, auf die dein @DBLookup zugreift ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #12 am: 16.08.05 - 20:18:04 »
Die ist auf jeden Fall sortiert. Schon tausend mal geprüft. Das seltsame ist ja, dass es mit dem Button einwandfrei funktioniert, aber nicht mit Berechneten Feldern.  ???
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #13 am: 16.08.05 - 20:53:01 »
An Notes liegt das 100pro nicht - das ist eindeutig Dein Fehler.

Wenn Du berechnete Felder verwendest (was ja üblich ist): Wie stellst Du derzeit sicher, dass die Berechnung nur ausgeführt wird, wenn auch ein Schlüssel für dbLookup zur Verfügung steht ?

Welche Literatur hast Du ?
Welche Kurse hast Du besucht / wirst Du demnächst besuchen ?

Bernhard

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #14 am: 16.08.05 - 21:17:27 »
Ich hab auch bei weitem nicht gelaubt, dass das ein Notesfehler ist.

Ich habe (momentan leider auf der Arbeit) für Entwicklung und Administraton jeweils das Buch von Addison-Wesley.

Kurse habe ich leider noch keine Besucht. (sind alle Ausgefallen) Werde aber (wenn er nicht schon wieder ausfällt) im September auf den ersten von drei Adminkursen gehen (Sparkassenakademie). Die nächsten beiden sind im Dez + Jan. Denke dass ich auch dort ohne Probleme hingehen kann.

Ab März fangen dann die Entwicklerkurse an. Werde mich dann aber erst nächstes Jahr bei meinem Chef erkundigen, dass ich auch dort auf die 3 Kurse kann.

Ich arbeite mit Notes jetzt fast 1 Jahr und habe mit der Programmierung (mit ein paar Pausen) erst anfang des Jahres angefangen.

Wie stell ich sicher, dass es einen Schlüssel für dbLookup gibt? Seite vom Addison-Wesley-Buch reicht, dann mach ich mich selber schlau  ;)

Will ja auch was lernen!
Michael

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #15 am: 16.08.05 - 21:21:16 »
Wenn wir schon dabei sind herauszufinden, dass ich dringend einen Kurs brauch:  :P

Warum stürtz mir Notes immer mit diesem blöden roten Fenster bei folgender Formel ab?

Zitat
@If(Monitor != "";
      @If(@DbLookup("": "";"":""; "Help/Bildschirm";Monitor ; 3) != 1;
            @Do(@SetField("link_monitor";@DbLookup("": "";"":""; "Help/Bildschirm";Monitor ; 2));
                  @SetDocField(link_monitor; "zugeordnet"; 1);
                  @SetDocField(link_monitor; "Computer"; Seriennummer));
            @Do(@Prompt([Ok];"Fehler";"Dieser Monitor wurde bereits einem anderen PC zugewiesen.");
                  @SetField("Monitor"; ""))
      );
@Success);

@If(Drucker != "";
      @If(@DbLookup("": "";"":""; "Help/Drucker";Drucker ; 3) != 1;
            @Do(@SetField("link_drucker";@DbLookup("": "";"":""; "Help/Drucker";Drucker ; 2));
                  @SetDocField(link_drucker; "zugeordnet"; 1);
                  @SetDocField(link_drucker; "Computer"; Seriennummer));
            @Do(@Prompt([Ok];"Fehler";"Dieser Drucker wurde bereits einem anderen PC zugewiesen.");
                  @SetField("Monitor"; ""))
      );
@Success);

@Command([FileSave]);
@Command([CloseWindow])

Wenn ich das CloseWindow weglasse, dann stürzt Notes nicht ab. Auch wenn ich hinterher das Fenster per Hand schließe stürzt Notes nicht ab. Aber sobald ich das ganze "automatisieren" will, ist es aus.
Michael

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Durch Dialogliste andere Felder füllen
« Antwort #16 am: 16.08.05 - 21:35:14 »
Warum stürtz mir Notes immer mit diesem blöden roten Fenster bei folgender Formel ab?

Welche Notes-Version verwendest Du?
Ansonsten: je mehr Details, desto besser (wo steht die Formel, von wo aus wird aufgerufen, etc.).

Dieses "Fenster" heißt übrigens RBOD (red box of death), und trifft einen meist sehr unerwartet.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #17 am: 16.08.05 - 21:58:37 »
Ich verwende 6.5.2 (geht nicht höher, da auf der Arbeit auch so)

Die Formel steht hinter einer Aktion in der Aktionsleiste (natürlich als Click-Event).

Das Dokument ist bereits vorhanden und ich füge eine Information hinzu (welcher Bildschirm und Drucker zu dem PC gehört). Danach drück ich einfach auf die Aktion und es passiert das bereits beschriebene. Entweder mit CloseWindow = RBOD; ohne CloseWindow = keine RBOD, muss aber manuell schließen und nochmals bestätigen zum speichern.

Die Felder die ich fülle sind Dialoglisten, welche man durch eine View mit Leben füllen kann.

Sonst noch was? Glaube das war alles was es zu dieser Maske zu sagen gibt.
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Durch Dialogliste andere Felder füllen
« Antwort #18 am: 16.08.05 - 22:17:01 »
Dass Du 6.5.2 auch für die Entwicklung einsetzt, wenn das Eure Produktivumgebung ist: Sehr gut. Anders geht es dann eben wirklich nicht.
Die RBOD ist niemals Dein Fehler (solange Du keine API-Routinen (falsch) verwendest  ;D)
Hast Du statt @Command schon @PostedCommand (für FileClose Window) probiert ? Könnte bei älteren Versionen helfen.

Wie herausbekommen, ob der Schlüssel überhaupt vorhanden bzw. dann gültig ist:
- Vorhanden: If <KEY> = ""; <mache nichts>; <mache weiter>
- Gültig: If @IsError (@dbLookup (...); <mache nichts>; <endgültiges dbLookup>
Das Ergebnis von dbLookup kann man natürlich auch anders (Überprüfung des Ergebnisses in einer temp. Variablen) prüfen.

Bernhard

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #19 am: 17.08.05 - 18:32:07 »
Jetzt habe ich das mit dem @PostedCommand eingetragen. Immerhin kommt jetzt kein RBOD mehr, aber ich bekomme die Meldung, ob ich speichern möchte.

Aber eine Zeile oben drüber habe ich doch gespeichert! Ich verstehe es nicht.

OK, habe jetzt den Part mit FileSave auch noch als PostedCommand gemacht und jetzt klappts wie erwartet.  ;D

Das mit dem Schlüssel hab ich noch nicht getestet.
« Letzte Änderung: 17.08.05 - 18:34:31 von TazDevil20 »
Michael

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz