Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: zhermann am 15.11.04 - 07:08:40

Titel: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 07:08:40
Hallo Leute,
habe mal wieder in Problemchen.
Ich möchte aus einer Listbox Daten in Felder eintragen lassen, wenn der User einen Eintrag auswählt. Ich versuche das über eine Formel in einen zweiten versteckten Feld zu schaffen. (Siehe Beispiel: Lotus Notes ... Bible Seite 211).

Irgendwie mache ich aber was falsch. Hier mal der Code:

vorname := @Trim(@Replace(@Word(F_APartner; "~"; 1);"#"; ""));
nachname := @Trim(@Replace(@Word(F_APartner; "~"; 2);"#"; ""));
telefon := @Trim(@Replace(@Word(F_APartner; "~"; 3);"#"; " "));
fax := @Trim(@Replace(@Word(F_APartner; "~"; 4);"#"; ""));
anrede := @Trim(@Replace(@Word(F_APartner; "~"; 5);"#"; ""));
suffix := @Trim(@Replace(@Word(F_APartner; "~"; 6);"#"; ""));
mail := @Trim(@Replace(@Word(F_APartner; "~"; 7);"#"; ""));
mobil := @Trim(@Replace(@Word(F_APartner; "~"; 8 );"#"; ""));
vertretung := @Trim(@Replace(@Word(F_APartner; "~"; 9);"#"; ""));
position := @Trim(@Replace(@Word(F_APartner; "~"; 10);"#"; ""));
info1 := @Trim(@Replace(@Word(F_APartner; "~"; 11);"#"; ""));
info2 := @Trim(@Replace(@Word(F_APartner; "~"; 12);"#"; ""));
info3 := @Trim(@Replace(@Word(F_APartner; "~"; 13);"#"; ""));

BIS HIER IST ALLES OK ! ;D
??? ::)
@If(F_APartner = ""; @Return("");
     @Do(
            @SetField("P_Vorname"; vorname);
            @SetField("P_Nachname"; nachname);
            @SetField("P_Telefon"; telefon);
            @SetField("P_fax"; fax);
            @SetField("P_Anrede"; anrede);
            @SetField("P_Suffix"; suffix);
            @SetField("P_Mail"; mail);
            @SetField("P_Mobil"; mobil);
            @SetField("P_Vertretung"; vertretung);
            @SetField("P_Position"; position);
            @SetField("P_Info1"; info1);
            @SetField("P_Info2"; info2);
            @SetField("P_Info3"; info3)
    )
);

??? ::)
AB HIER IST AUCH WIEDER ALLES OK ! ;D

vorname + "~" + nachname  + "~" + telefon + "~" + fax + "~" + anrede + "~" + suffix + "~" + mail + "~" + mobil + "~" + vertretung + "~" + position + "~" + info1 + "~" + info2 + "~" + info3

F_APartner ist die Listbox aus den die Werte gelesen werden. Ich denke es liegt irgend wie am @Do. Sieht einer von Euch den Fehler???

Gruß

Zsolt Hermann 
Titel: Re: Probleme mit @Do
Beitrag von: Jenson am 15.11.04 - 07:37:44
Also wenn ich das Script hier bei mir einfüge und evaluiere, dann bekomme ich keinen Fehler. Allerdings habe ich auch Deine ganzen Felder etc nicht angelegt.

Was genau geht nicht?

Jenson
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 07:44:42
Moin,

sorry habe ich vergessen.

@SetFiled.... wird anscheinend nicht ausgeführt. Die Felder werden nicht ausgefüllt.
Komischerweise werden Sie aber beim öffnen des Doc einmalig gefüllt.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 09:03:42
Hi,

bevor du @SetField anwenden kannst musst du die Variablen deklarieren.

so z.B.

FIELD P_Vorname := P_Vorname;
...
@SetField("P_Vorname"; vorname);

Da musst du mit allen Feldern machen. Dann sollte das gehen.


Axel
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 09:18:35
Hallo Axel,

warum sollte ich das tun?

Die Felder sind in dem Doc vorhanden und werden ja beim öffnen des Doc einmalig richtig gefüllt. Wenn ich dann aber einen anderen Eintrag aus der Listbox auswähle passiert eben nix.

Ein versuch ist es aber mal wert.

Gruß

Zsolt

NACHTRAG: habe es mal mit einem Feld versucht: Es passiert nix.
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 09:23:29
Hi,

hier ein Auszug aus der Designer-Hilfe:

Zitat
...
Bevor Sie @SetField in Ihre Formel aufnehmen, muß das Feld, dem ein Wert zugewiesen wird, bereits in derselben Formel deklariert worden sein. Dazu können Sie das Feld wie folgt am Anfang der Formel deklarieren:
FIELD Feldname:=Feldname;
...


Axel
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 09:29:09
Hi,

hast du auch mal versucht das Dokument zu aktualisieren?
Ich hab nämlich das Gefühl, dass das ein Aktualisierungsproblem ist.

Axel
Titel: Re: Probleme mit @Do
Beitrag von: Glombi am 15.11.04 - 09:35:46
Unter R6 muss man das Feld nicht mehr vorher initialisieren.
Zitat
With Release 6, you no longer need to declare the field receiving the assignment prior to setting its value with @SetField. For R5 or earlier clients, declare the field at the beginning of the formula, as follows:
FIELD Fieldname:=Fieldname;
The field that @SetField creates and assigns the specified value to if the specified field does not exist in the document is not visible to the user.  You can remove a field added to a form this way using the @DeleteField function.

Es muss also an etwas anderem liegen bzw. der Code wird unter Notes 5 ausgeführt.

Andreas
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 09:43:28
Hallo Glombi,

Notes 5 - Nein.

Server Version: Lotus Domino (r) Server (Release 6.5 for Windows/32)
Client Version: Lotus Notes 6.5.2
Beides: English

Das Beispiel welches ich am Anfang erwähnt habe funktioniert ohne Probleme bei mir. Einzigster Unterschied ist, das die DB lokal liegt und nicht auf dem Server.
Habe auch die Problem-DB schon lokal gereplt. Geht auch nicht.  :-\

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 10:24:19
Nochmal Ich,

habe die @If Abfrage mal soweit abgeändert:

@If(F_APartner = ""; @Return(""); @SetField("P_Vorname"; vorname));

Das gleiche Problem. Der Feldwert wird nicht geändert.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 10:45:20
Hi,

wo hast du den die Formel eingetragen? Du hast oben geschrieben in einem versteckten Feld. Was ist den das für ein Feld?

Versuch doch mal die ganze Formel in einen Hotspot zu packen, ob's dann funktioniert.


Axel
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 10:53:16
Hi,

die Formel versteckt sich in einen versteckten berechneten Feld.
Habe das Feldt auch schon sichtbar gemacht. Dort werden die Werte richtig eingetragen (vorname + "~" + nachname  + "~" ...).

Mit einen Hotspot funktioniert es wunder bar.

Habe mal die Beispiel DB aus der Notes Bible (5.02. Keyword Table Example | Keyword Table) angehängt. Das Prinzip welches ich benutzen möchte ist das selbe. Nur funktioniert es bei mir nicht.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Driri am 15.11.04 - 11:05:08
@SetField kann man IMO so nicht verwenden. Das funktioniert nur in Agents, Aktionen, SmartIcons, etc.
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 11:05:53
Hi,

hast du in deiner DB beim Listenfeld die Optionen zur Dokumentenaktualisierung gesetzt?

Hauptsächlich betrifft es die Option: Felder bei Schlüsselwortänderung aktualisieren.


Axel
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 11:06:35
@SetField kann man IMO so nicht verwenden. Das funktioniert nur in Agents, Aktionen, SmartIcons, etc.

Doch es funktioniert. Ich hab's gerade getestet.


Axel
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 11:10:44
Hi Axel,

jo ist gesetzt. Habe auch dem Form gesagt, daß es automatisch aktualisieren soll.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 11:24:36
Hi,

aus der Ferne fällt mir jetzt nix mehr ein. Kannst du die DB hier mal reinhängen?
Vielleicht findet man dann das Haar in der Suppe (bzw. Datenbank).


Axel
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 11:50:38
Sorry Axel,

geht nicht, da Chefe auf sowas mit sofortiger Kündigung reagiert. Hatte mal einen Kollegen dem es so ergangen ist. Von wegen Firmeneigentum usw.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 15.11.04 - 12:01:54
Schade.

Irgendwie muss das an der Aktualisierung liegen. Aber ohne die DB vor Augen wird's schwierig.

Mal 'ne ganz blöde Frage. Das Dokument befindet sich doch im Editmodus, oder?


Axel



 
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 12:19:15
Hi Axel,

jo,

Habe mal die blöde Formel in das Event "QueryRecalc" eingefügt. Dort funzt es.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: umi am 15.11.04 - 13:36:30
schon mal am schluss der formel ein @command([ViewRefreshFields]) probiert?
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 15.11.04 - 13:43:10
Jo,

kommt aber das diese Aktion in diesem Kontext nicht erlaubt ist.
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 23.11.04 - 11:34:13
Hallo Leute,

nochmal zum @Do.

Habe rausbekommen, daß das @Do ausgeführt wird, aber nicht die aktualisierung der Felder (@Setfield....).
Die Felder werden aber beim öffnen des Forms aktualisiert. Habe jetzt versucht im Query- und/oder Postrecalc Event
               @Command([Refreshwindow]) oder
               @Command([ReloadWindow]) oder
               @Command([RefreshHiddenFormulas]) oder
               @Command([ViewRefreshFields])
auszuführen, aber ohne Auswirkung auf das ganze.

Ich habe keine Idee mehr. Hat einer von Euch noch eine Idee??
Warum funktioniert es in der Beispiel-DB und nicht bei mir?  >:(

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 25.11.04 - 08:48:08
Hallo Leute,

habe immer noch das Problem. Habe mir mal schnell eine andere DB zusammen geschoben. In der tritt das gleiche Problem auf.

Vielleicht sieht doch einer von Euch meinen Fehler.

Gruß

Zsolt
Titel: Re: Probleme mit @Do
Beitrag von: Axel am 25.11.04 - 09:39:04
Hi,

ich hab's mal probiert und beide DBs miteinander verglichen. Ich finde keinen Haken warum deine DB sich nicht wie gewünscht verhält.

Im Moment bin ich da auch überfragt. Aber es ist eindeutig, in der Beispiel-DB funktioniert's.   :-\


Axel
Titel: Re: Probleme mit @Do
Beitrag von: Tode am 26.11.04 - 11:56:10
hmmm... lass mich raten:
Du programmierst noch nicht lange Notes, und Dir ist NICHT bekannt, dass Notes von OBEN NACH UNTEN und von LINKS NACH RECHTS berechnet....

In Der Test- Datenbank bedeutet das ganz einfach:

Setze Feld5 VOR Feld2 und Feld3, dann klappt's auch mit der Berechnung. Ansonsten siehst Du halt die Ergebnisse der @SetField erst, wenn Du das DOkument erneut refreshst.

HTH
Tode
Titel: Re: Probleme mit @Do
Beitrag von: zhermann am 26.11.04 - 12:13:09
Hallo Tode,

genau das ist es H U R R A !!!! ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D
Jetzt geht es. Wenn man das nicht beachtet, kommt amn auch nicht dahinter!!!!!


Aller herzlichsten Dank.


Gruß

Zsolt

Titel: Re: Probleme mit @Do
Beitrag von: Axel am 26.11.04 - 12:16:59
[VordenKopfschlagundSchäm]

Auweia! die Bearbeitungsreihenfolge ist mir doch bekannt. Hätt' ich eigentlich sehen müssen. Aber auf das Einfachste kommt man nicht.
 :-[ :-[ :'(

[/VordenKopfschlagundSchäm]


Axel