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

Offline Ayhan

  • Aktives Mitglied
  • ***
  • Beiträge: 102
  • Geschlecht: Männlich
  • Geht immer!
    • fabrique d' images ebusiness GmbH
Re: Durch Dialogliste andere Felder füllen
« Antwort #20 am: 17.08.05 - 19:10:51 »
Hallo TazDevil,

ich habe ergänzend zu Eknoris Vorschlag

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 ...

folgende Idee, jedoch ohne @DBLookup.

1. Erstelle in deiner Ansicht eine versteckte (am besten letzte) Spalte; Die Formel für diese Spalte sollte so aussehen: feld1+"~~"+feld2+"~~"+feld3+"~~"+feld4+"~~"+feld5;
2. Merke dir die Spaltennummer.
3. Erstelle eine Aktion/Schaltfläche in deiner Maske (von wo aus du eben einen Eintrag auswählen möchtest) und paste folgenden Formel-Code in die Aktion/Schaltfläche ein:

REM {Deklaration der Felder};
_felder:= "feld1":"feld2":"feld3":"feld4":"feld5";

REM {Sonstige Deklarationen; Die 6 ist die Spaltennummer, in der deine zusammengesetzte Formel steht};
_view:= "Ansichtsname";
_rueckgabe:=@PickList([Custom] : [Single] ; "" : "" ; _view ; "Fenstertitel" ; "Bitte einen Wert auswählen:";6);


REM {Parsen des Rückgabewertes};
_werte:= @Explode(_rueckgabe;"~~");

REM {Setzen der Felder};
@For(i:=1;i <= @Elements(_felder);i:= i + 1;
@SetField(_felder;_werte)
);


Dabei werden gleich beim Auswählen eines Dokuments die Felder gesetzt. Ohne Lookups.

Nachteil: Es kann vorkommen, dass du veraltete Daten in den Feldern stehen hast (wenn z. B. sich ein Sourcedokument mal ändern sollte).

Um sicher zu gehen, dass du ohne Schlüssel einen Lookup machst,
@If(Schluesselfeld="";"";@DBLookup(...)) usw... Sehe dir dazu am besten die Domino-Designer-Hilfe an.

Ansonsten könnte ich dir bei deiner bisherigen Lösung empfehlen, nach dem Setzen der Felder den Befehl @Command( [RefreshWindow] ) auszuführen.

« Letzte Änderung: 17.08.05 - 19:38:55 von Ayhan »
Ayhan

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #21 am: 21.08.05 - 19:53:55 »
Habe das mit dem Ausfüllen der restlichen Felder mit einem Button gemacht. Wenn ich mal mehr Erfahrung habe, werd ich das noch ändern.

Stehe jetzt aber schon wieder vor einem Problem!!  :P

Zitat
@If(Monitor != "";
      @If(@DbLookup("": "";"":""; "Help/Bildschirm";Monitor ; 4) = "";
            @Do(@SetField("link_monitor";@DbLookup("": "";"":""; "Help/Bildschirm";Monitor ; 2));
                  @SetDocField(link_monitor; "zugeordnet"; 1);
                  @SetDocField(link_monitor; "Computer"; Seriennummer);
                  @SetDocField(link_monitor; "link_pc"; @Text(@DocumentUniqueID))
            );
            @Do(@Prompt([Ok]; "Fehler"; "Dieser Monitor wurde bereits einem anderen PC zugeordnet!");
                  @Return("")
            )
      );
      ""
);

@SetField("Zu_Created_by"; @Name([CN]; @UserName));
@SetField("Zu_created"; @Now);
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow])

Ich überprüfe, ob der Monitor bereits einem PC zugeordnet wurde. Dabei ist es egal ob ich es so wie hier über das Feld "Seriennummer" oder über das Feld "zugeordnet" versuche, ich kann den Monitor immer an mehr als einen PC vergeben. Ich versuche es immer direkt hintereinander. Kann es sein, dass die View nicht schnell genug aktualisiert wird? Habe mir den Wert mal ausgeben lassen, und habe dabei festgestellt, dass wirklich nicht der aktuelle Wert zurückgegeben wird.

Was mache ich falsch?? Hoffentlich bekomme ich irgendwann mal noch alle meine Probleme in den Griff  :D
Michael

ascom40

  • Gast
Re: Durch Dialogliste andere Felder füllen
« Antwort #22 am: 21.08.05 - 20:59:10 »
Hallo TazDevil20  ???

Zitat
Wenn ich mal mehr Erfahrung habe, werd ich das noch ändern.
spätestens dann hast du keine Zeit mehr dafür  ;)

Zu deinem Problem: @DBLookup ohne die [NoCache]-Option liest immer die Werte aus der DB, die beim Öffnen der DB gültig waren. Spätere Änderungen "in der Ansicht" kannst du so nicht greifen. Füge den Parameter [NoCache] ein, dann wird der jeweils aktuelle, von dir evtl. vorher geänderte Wert aus der Ansicht geholt.

Jo <- das ist übrigens MEIN Name  ;D

Offline TazDevil20

  • Frischling
  • *
  • Beiträge: 37
Re: Durch Dialogliste andere Felder füllen
« Antwort #23 am: 21.08.05 - 21:22:20 »
Vielen Dank! Jetzt habe ich das Prob endlich gelöst

Michael <-- Das ist MEIN Name O0
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 #24 am: 22.08.05 - 08:42:36 »
Vielen Dank! Jetzt habe ich das Prob endlich gelöst


Lässt du uns an deiner Lösung teilhaben?


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 #25 am: 22.08.05 - 09:53:20 »
Na klar lass ich euch die Lösung wissen. In diesem speziellen Fall habe ich einfach nur das NoCache in jede @dblookup-Formel eingebaut.

Wenn ich meine Datenbank fertig habe, kann ich die gerne hier mal einstellen. Das ganze dauert aber noch ein wenig, da ich noch ein paar sachen auf meiner ToDo stehen hab.  ;D

Soll ja schließlich auch annähernd perfekt sein.  ;D
Michael

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz