Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: macom111 am 08.08.05 - 17:52:46

Titel: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 08.08.05 - 17:52:46
Hallo zusammen,

habe in meiner DB-Maske ein Datum/Zeit-Feld "WiederVL". Wenn in diesem Feld ein Datum steht, soll dies in der Ansicht durch ein ICON angezeigt werden.
Formel in der Spalte der Ansicht: @If (WiederVL != ""; 63; "")

Hat ja bis jetzt immer funktioniert. Nachdem ein Fehler aufgetreten ist, fehlen in der Anicht in einigen Zeilen die ICON´s. Jetzt brauche in einen Agent, der mir nochmal alle Doks durchläuft und die ICON´s wieder ersetzt.

Vielleicht stehe ich ja nur auf dem Schlauch, aber ich muß doch dem Agent vermutlich auch sagen, in welcher Ansicht er das bewerkstelligen soll.
Vermutlich kann ich ja die Formel @If (WiederVL != ""; 63; "") in etwa so übernehmen, nur der Ansichtsname muß noch rein. Wo steht dazu bitte was in der Hilfe? Ich finde einfach nichts.  :-:

Vielen Dank für Eure Tipps.

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 08.08.05 - 17:58:33
Moment mal, Siggi - das hat doch mit Deinen Dokumenten überhaupt nichts zu tun, wenn Du das Icon über eine Spaltenformel generierst:
@If (WiederVL != ""; 63; "") (besser wäre übrigens: @If (@IsTime (WiederVL); 63; "")

Warum willst Du deswegen jetzt also in den Dokumenten etwas ändern ?

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: Axel am 08.08.05 - 18:45:57
Moment mal, Siggi - das hat doch mit Deinen Dokumenten überhaupt nichts zu tun, wenn Du das Icon über eine Spaltenformel generierst: ...

Hi,

wenn die Icons nur in bestimmten Zeilen, also Dokumenten fehlen, liegt es doch an den Dokumenten. Das Symbol wird zwar in der Spalte ermittelt, aber Ausgangspunkt ist sehr wohl das Dokument. Wahrscheinlich ist das Feld  WiederVL in den entsprechenden Dokumenten nicht richtig belegt.

So wie die Spaltenformel aussieht, fehlt in den Dokumenten das Wiedervorlage-Datum. Am besten du erstellst dir einen Agenten, der auf ausgewählte Dokumente zielt und setzt mit Formelbefehlen oder mit Script das entsprechende Datum.

Axel

Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 08.08.05 - 19:43:46
@If (WiederVL != ""; 63; "") (besser wäre übrigens: @If (@IsTime (WiederVL); 63; "")

Hallo Bernhard,

danke für den Hinweis!

So wie die Spaltenformel aussieht, fehlt in den Dokumenten das Wiedervorlage-Datum. Am besten du erstellst dir einen Agenten, der auf ausgewählte Dokumente zielt und setzt mit Formelbefehlen oder mit Script das entsprechende Datum.

Hallo Axel,

das Datum fehlt definitiv nicht! Also brauche in doch einen Agent, der mir die ICON´s wieder ersetzt? Geht das dann überhaupt?

Da die Stückzahl der Doks überschaubar ist, könnte ich ich jedes Dok nochmal bearbeiten - sprich: Datum Löschen, Speichern, Datum wieder setzen und Speichern. Dann ist das Icon auch wieder da.
Aber dann würde ich als letzter Bearbeiter des Doks drinstehen und das möchte ich vermeiden.

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 08.08.05 - 19:48:24
Bei der angegebenen Formel und wenn das Datumsfeld wirklich gefüllt ist, dann sieht mir das aber eher danach aus, dass die Ansicht (besser gesagt, der Ansichtsindex) einen Schlag weg hat. Bau doch sicherheitshalber den Ansichtsindex nochmal neu auf.

Du sprachst von einem "Fehler, der aufgetreten ist". Was ist denn da passiert ? Vielleicht hilft uns ja auch diese Information weiter.

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 08.08.05 - 20:27:44
Du sprachst von einem "Fehler, der aufgetreten ist". Was ist denn da passiert ? Vielleicht hilft uns ja auch diese Information weiter.

Tja, wenn ich das wüßte.  :-: Die Icon´s waren einfach weg.
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 08.08.05 - 20:47:38
Hast Du den Ansichtsindex schon neu aufgebaut ? Wie sieht die Ansicht im Designer aus, wenn Du sie Dir dort mit Dokumenten anzeigen lässt ? Gab es eventuell doch Änderungen an der Ansicht ?

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 08.08.05 - 21:53:18
Hab´s gerade von hier Zuhause versucht. Irgendwas funktioniert nicht. Das LOG sagt immer "Datei nicht vorhanden". Ist natürlich Quatsch. Hab´ es mit einer andern DB versucht - einwandfrei.

Vielleicht liegt´s ja am 6.5.4 Client mit Domio Administrat. und Desig., den ich mir vorgestern zum Testen bei mir Zuhause install. habe. In der Fa. läuft alles noch unter 5.09.
Ich versuch´s Morgen noch mal in der Fa.
Habe aber gesehen, daß die letzte Indexaktualis. heute Nachmittag lief.

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 08.08.05 - 22:12:24
Ooops ... Wenn ich mich recht erinnere, ist einer 6er Admin Client und ein 5er Server unter Umständen eine verheerende Kombination. Dazu mögen sich aber bitte die Admin-Spezialisten  äussern.

Was aber auch aus einem 6er (Designer-)Client gefahrlos klappt, ist der Neuaufbau der Ansichten mit Strg-Umsch-F9 bzw. eine kleine Änderung in der Ansicht im Designer, die den Ansicht ebenfalls zwingend neu aufbaut.

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: Semeaphoros am 08.08.05 - 22:22:30
Nöö, ich hab nie irgendwelche Probleme gehabt, 5er Server mit dem 6er Client zu administrieren. Logisch, dass nicht alles gemacht werden kann, was man mit dem 6er Admin kann, aber das liegt ja auf der Hand ....... (auch wenn ich es dort nicht sehe ....  ;D .... ich meine auf meiner Hand)
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 08.08.05 - 23:40:57
Ich habe auch absolut gar nichts dagegen, wenn mich meine Erinnerung da täuscht oder ich einer Fehlinterpretation aufgesessen bin. Auch wenn IBM die Kombination 5er Server und 6er Client (welcher auch immer) nicht empfiehlt - funktionieren sollte es ja  ;)

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: scipio am 09.08.05 - 08:27:16
Ich hatte dieses Problem auch mal (N 5.0.11). Meine Ansicht war so aufgebaut:

Spalte#1  Spalte#2  SpalteMitIcons Spalte#4 Spalte#5

Plötzlich wurden die Icons nicht mehr oder nicht richtig angezeigt. In den Dokumenten war alles ok. Nachdem ich zu diesem Thema nix gefunden habe, habe ich die Spalte gelöscht und hinter Spalte#5 eingefügt (warum auch immer) und siehe da: Die Icons wurden wieder richtig angezeigt.
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: wflamme am 09.08.05 - 12:50:25
Ev. das:

Beim Kopieren von Spalten ist Aufmerksamkeit geboten, der Spalten-Alias ('Programmatic use', letzter Tab in den Spalteneigenschaften) wird nicht unter allen Umständen eindeutig gehalten. Da kann irrtümlich schonmal ein Ergebnis aus einer anderen Spalte angezogen werden...
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 11.08.05 - 18:11:39
@All,

danke erstmal für Eure Tips. Hab´s leider noch nicht hinbekommen. Aber irgendwie fängt die DB zu Spinnen an.

Folgendes:
1Datumsfeld (AbgeschlDatum),
1 Kontollkästchen (RekAbJa) / Verborgen, Auswahl = x, (nur ein Kontrollfeld!)
1 Button (Reklam. Abgeschlossen)


Hinter dem Button steht folgende Formel:

REM "Überprüfen, ob Reklamation abgeschlossen ist und das Abgeschlossen-Datum gesetzt ist";


FIELD RekAbJa := RekAbJa;

@Command ([FileSave]);
@SetField ("RekAbJa"; "x"); "";
@If (AbgeschlDatum = ""; @Return (@Prompt ([OK]; "Info"; "Bitte geben Sie ein Datum ein"));
@PostedCommand([FileCloseWindow]))


Jetzt ist mir aufgefallen, daß bei mehreren Dok´s und allen neuen Doks im Feld "RekAbJa" das x nicht mehr gesetzt wird.

Jetz habe ich folgenden Agent drüberlaufen lassen:

@If (@IsTime(AbgeschlDatum); RekAbJa = "x"; "");SELECT @All
bzw.
@If (AbgeschlDatum != ""; RekAbJa = "x"; "");SELECT @All

Das Protokoll sagt bei beiden:

Agent 'RekAbJa' wurde am 11.08.2005 08:00:23 gestartet
Bearbeitet alle Dokumente in der Datenbank: insgesamt 103
103 Dokumente gefunden, die die Suchkriterien erfüllen
103 Dokument(e) wurden durch die Formel geändert
Agent 'RekAbJa' wurde am 11.08.2005 08:00:23 beendet

Das x wird aber trotdem nicht gesetzt. Warum?  >:( ???

Bis jetzt hat alles tadellos funktioniert !

Den Ansichtsindex habe ich neu Aufgebaut, sämtliche Reparaturfunkt. laufen lassen - nichts hilft.

Kann mir jemand weiterhelfen?

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 11.08.05 - 18:21:08
Auf jeden Fall ist diese Zeile falsch:
@If (AbgeschlDatum = ""; @Return (@Prompt ([OK]; "Info"; "Bitte geben Sie ein Datum ein"));

Hier fehlt der Else-Zweig.

Bernhard

PS: Das FileSave sollte auch am Ende vor dem CloseWindow stehen ...
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 11.08.05 - 22:02:03
Ich wiederspreche Dir wirklich ungern  ;), da ich weiß, das Du der Profi bist. Aber wie kann es dann sein, daß das ganze von Anfang an einwandfrei lief? Ca. 2/3 der Doks sind alle korrekt. Selbst wenn die Zeile falsch wäre, müßte doch der Agent die x auf jedenfall setzten -oder? ???

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: TMC am 11.08.05 - 22:22:31
Siggi,
bitte eins nach dem anderen, irgendwie ist Deine Frage jetzt etwas erweitert/anders, wenn man die Ausgangsfrage ansieht.

1. Nimm doch noch Stellung zu wflamme's Beitrag, hast Du das beachtet?

2.
Code
@If (@IsTime(AbgeschlDatum); RekAbJa = "x"; "");SELECT @All
Was soll hier Deiner Meinung nach passieren? Ins Feld "RekAbJa" ein x gesetzt werden?
Tatsächlich ist das ein Vergleich was Du mit [RekAbJa = "x"] machst, typischerweise als Einleitung in @If. Eine Zuordnung müsste mit := erfolgen, aber das wäre eine Variablenzuordnung, und AFAIK geht das in @If nur mit @Set.

D.h. Du solltest hier mit @SetField arbeiten:
@SetField("RekAbJa";"x"), siehe Designerhilfe.
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 11.08.05 - 23:50:56
Hi Matthias,

1. Nimm doch noch Stellung zu wflamme's Beitrag, hast Du das beachtet?

Ja. Hab´s auch versucht, hat aber nichts gebracht.

Code
@If (@IsTime(AbgeschlDatum); RekAbJa = "x"; "");SELECT @All
Was soll hier Deiner Meinung nach passieren? Ins Feld "RekAbJa" ein x gesetzt werden?
Tatsächlich ist das ein Vergleich was Du mit [RekAbJa = "x"] machst, typischerweise als Einleitung in @If.

Ich habe mir in der Hilfe @If nochmal durchgelesen:

Natürlich ist das ein Vergleich - ich hab´s zumindest so verstanden.
Also ist mein Gedanke:
Wenn im Feld AbgeschlDatum ein Datum steht, dann setze in RekAbJa ein x, ansonsten mach nichts.
Ich verstehe aber nicht, warum das im Agent nicht funktioniert. Wo ist mein Denkfehler ???

D.h. Du solltest hier mit @SetField arbeiten:
@SetField("RekAbJa";"x"), siehe Designerhilfe.

Danke. Da hätte ich auch noch selbst drauf kommen können. Verwende den Befehl ja schon im Button ::)

Hat übrigens funktioniert. Das x wurde in den entsprechenden Doks gesetzt.

Gruß Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: TMC am 12.08.05 - 00:24:50
Ich verstehe aber nicht, warum das im Agent nicht funktioniert. Wo ist mein Denkfehler ???

Du hast diese Frage darunter ja schon beantwortet:
Danke. Da hätte ich auch noch selbst drauf kommen können. Verwende den Befehl ja schon im Button ::)
Hat übrigens funktioniert. Das x wurde in den entsprechenden Doks gesetzt.

Oder ist jetzt noch was offen? Das erschließt sich mir nämlich jetzt nicht aus dem Posting.
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 12.08.05 - 00:47:35
@If (@IsTime(AbgeschlDatum); RekAbJa = "x"; "");SELECT @All
Ich habe mir in der Hilfe @If nochmal durchgelesen:
Natürlich ist das ein Vergleich - ich hab´s zumindest so verstanden.
Also ist mein Gedanke:
Wenn im Feld AbgeschlDatum ein Datum steht, dann setze in RekAbJa ein x, ansonsten mach nichts.
Ich verstehe aber nicht, warum das im Agent nicht funktioniert. Wo ist mein Denkfehler ???

Ein Vergleich ist das wohl, nur was danach kommt ...
In unsere menschliche Sprache übersetzt würde es heissen:
Wenn AbgeschlDatum ein Datum ist, dann nehme das Ergebnis des Vergleiches zwischen dem Inhalt von RekAbJa und "x" (da kommt dann @True oder @False heraus - je nachdem ...), sonst nehme einen Leerstring.
Eine Feldzuweisung ist auf diese Art mit @functions niemals möglich.
Korrekt wäre:

FIELD RekAbJa := @IsTime (AbgeschlDatum); "x"; "");

Das steht aber alles in der DesignerHelp, die man immer wieder zu Rate ziehen sollte.

Bernhard
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 12.08.05 - 22:45:21
@Bernhard,

danke für die Erklärung. Die war besser als in der Designer-Hilfe.
Ich denke, jetzt hab´s auch ich verstanden :D

@Matthias,

leider ist noch was offen.

Ich habe in der Ansicht eine Spalte "Erledigt". D.h., wenn die Bearbeitung des Doks abgeschlossen ist, wird dies in "Erledigt" durch das Symbol 83 angezeigt. Aber auch diese Symbole sind nicht mehr da.

Spaltenformel: @If (RekAbJa = "x"; "83"; "")

Hab´s auch mit : @If (AbgeschlDatum != ""; 83; "") versucht - hilft auch nicht.
Gibt´s die Möglichkeit, auch hier mit einem Agent die Symbole wieder zu setzen? Wenn ja, muß ich mich ja vermutlich in dem Agent auf die Ansicht beziehen. Ich finde dazu aber nichts in der Hilfe, bzgl. eines Beispiels. Wo muß ich suchen?

Gruß Siggi

Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: TMC am 12.08.05 - 22:58:48
Das ist ja mal eine konkrete Ansage, Siggi  :D

Die Spaltensymbole müssen ohne Anführunszeichen "" referenziert werden werden, also:
@If (RekAbJa = "x"; 83; "") (also *nicht* 83 in Anführungszeichen "83").

Weiter ist es wichtig, dass der programmatische Name für jede Spalte verschieden ist, wie schon von wflamme in Antwort #12 erwähnt.
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: macom111 am 12.08.05 - 23:16:26
Das ist ja mal eine konkrete Ansage, Siggi  :D
Und ich dachte, meine Beschreibungen sind immer recht ausführlich ??? :)


Die Spaltensymbole müssen ohne Anführunszeichen "" referenziert werden werden, also:
@If (RekAbJa = "x"; 83; "") (also *nicht* 83 in Anführungszeichen "83").

Oh mann, bin ich blöd. Ich habe mir die Formel jetzt bestimmt schon 10x angesehen und hab´s nicht bemerkt. Obwohl ich auch mit anderen Spaltenformeln, die ebenfalls Symbole anzeigen verglichen habe.  ??? Ich glaub´ ich brauch´ Urlaub.
Vielen Dank für den Hinweis. Jetzt funktioniert wieder alles.

Gruß und ein schönes Wochenende

Siggi
Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: TMC am 12.08.05 - 23:28:47
Und ich dachte, meine Beschreibungen sind immer recht ausführlich ??? :)
Sind sie auch, nur hier waren für mich als Thread-Quereinsteiger mehrere Dinge durcheinandergewürfelt bzw. hatte nicht alles Bezug zur ursprünglichen Frage.

Ich glaub´ ich brauch´ Urlaub.

He he, das ist eine "faule" Argumentation  ;D Ich hab das nur so schnell erkannt, weil mir exakt dasselbe auch schon mehrmals passierte  ;) :P

Jedenfalls schön dass es jetzt klappt.


Titel: Re: Agent in Ansicht laufen lassen
Beitrag von: koehlerbv am 13.08.05 - 00:28:02
Hallo Siggi,

von wegen "dummes Zeug verzapfen" und "urlaubsreif": Das geht nicht nur Dir so. Ich habe heute fast eine Stunde an einer Hide-when-Formel herum gebastelt, die (okay, sie war schon komplex) nicht so wollte, wie sie sollte. Und dann stelle ich letztendlich fest, was die Ursache war: Der Haken bei "Absatz verbergen, wenn Formel wahr ist" fehlte schlicht ...

Mach' Dir also nix daraus. Ich hoffe, Du hast auch bald Urlaub. Ich muss auch nur noch eine Woche durchhalten  ;D

Ein schönes Wochenende wünscht
Bernhard