Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: help am 07.12.11 - 09:06:08
-
Hallo
1.Ich habe eine combobox aus der ein wert z.B. blau steht diesen möchte ich nun in das andere Feld Farbe setzten.
2.Ich habe ein Feld Preis und ein feld neuer preis nun soll das feld preis mit dem feld neuer preis ersetzt werden.
das soll aber noch in dem Dokument geschehen
Wer kann mir hier mal helfen
-
1. Mach das 2. Feld berechnet und schreib den Namen des 1. Feldes in den Script bereich des Feldes und lass das Dokument nach ändern eines Feldes aktualisieren.
2. Wo kommt der "neue Preis" her? Ist der im selben Dokument? Wann soll der Preis gewecheselt werden? Über den Klick auf einen Button?
Gruß Chris
-
Hallo
also ich fülle ein formular aus und schrebe den preis xy nun bekommt ein anderer das Schreiben und schreibt in das feld neuer Preis kostet weniger als xy und dann soll das preis feld mit dem preis xy durch den neuen ersetz werden
-
Wenn ich das 2te Feld berechnet mache kann ich da nichts mehr hineinschreiben
-
Könntest Du Dir beim Schreiben bitte etwas mehr Mühe geben? Wir sind hier nicht in einem Teenie-Forum!
Bernhard
-
Das 2. Feld wird doch automatisch befüllt mit "Blaun". Da muss man nichts eintragen können.
zum Preis beim speichern:
Wenn(Preis!=NeuerPreis;SetztFeldPreis=NeuerPreis;Preis)
-
Wenn ich das 2te Feld berechnet mache kann ich da nichts mehr hineinschreiben
Also möchtest Du in der Combobox etwas auswählen, das dann in das zweite Feld übernommen wird, und dort willst Du es überschreiben können?
Kann man alles machen, wird aber etwas komplizierter. Die Frage nach dem Warum dürfte erlaubt sein.
-
Hallo Bernhard,
ich bin auch nicht davon ausgegangen das, dass hier ein Teenie-Forum! ist.
Andersrum denke ich je genauer man sein Anliegen beschreibt, desto eindeutiger ist es für den Leser.:-)
-
Hallo Peter
es werden beide Felder nicht automatisch befüllt sondern die Preise werden von Hand eingetragen.
Preis=editierbar
Preisneu= editierbar
es ist nun so nur wenn ein neuer preis eingegeben wird soll der alte Preis durch den neuen ersetzt werden
-
Damit sind neuer Preis und alter Preis immer gleich? Außer man ändert den alten Preis manuell?
Ich muss jetzt erstmal was frühstücken, vielleicht verstehe ich es dann ... ;)
Du könntest das im Exiting des Feldes "neuer Preis" machen, es ist aber nicht sicher, dass Du das Feld wirklich verlässt (Feldinhalt ändern, und dann Dokument speichern und schließen -> kein Exiting).
Oder Du merkst Dir im PostOpen den aktuellen Wert, und stellst dann im Postrecalc und/oder Querysave fest, dass sich etwas geändert hat, und übernimmst dann den neuen Preis. Wenn aber danach der alte Preis manuell geändert wurde, musst Du das auch wieder abfangen. Wie gesagt, geht, aber ich verstehe es ehrlich gesagt nicht, wozu Du das brauchst.
-
Bitte trenn doch deine zwei Probleme genauer.
Ist das mit der Combobox über meinen beschriebenen Weg gelöst? :)
Das mit den Preisen ist auch kein Problem. Da gibt es sicher mehrere Lösungen.
Versuch doch mal bitte, genau zu erklären was du machen möchtest.
Denn Theoretisch gibts hier schon zwei Antworten auf deine zwei Fragen.
Andersrum denke ich je genauer man sein Anliegen beschreibt, desto eindeutiger ist es für den Leser.:-)
Und genau das wäre ein guter Anfang :)
Chris
-
Hallo Peter
dann wünsche ich erst einmal guten Appetitt:-)
Ich brauche das um nach einem Antrag nach der Prüfung einen, wenn vorhanden besseren Preis einzutragen,
es ist die Frage ob man den alten Preis sogar in der History speichern kann???
-
Hallo Klafu
erst einmal das Problem Preis
in meinem Dokument
es werden beide Felder nicht automatisch befüllt sondern die Preise werden von Hand eingetragen.
Preis=editierbar
Preisneu= editierbar
es ist nun so nur wenn ein neuer preis eingegeben wird soll der alte Preis durch den neuen ersetzt werden
-
Dann prüf einfach beim speichern, ob der Wert im Feld neuer Preis anders ist, als der Wert im Feld Preis
Wenn(Preis!=NeuerPreis;SetztFeldPreis=NeuerPreis;Preis)
Chris
-
@If(as_mis_price!="";@SetField( as_preis;as_mis_preis));
@If(as_mis_price!="");@SetField( as_preis;as_mis_preis)
bei beiden Formeln bekomme ich aber immer wieder eine Fehlermeldung ????
Fehler:Data not saved to due to script erro(s)
-
Das sind wieder zwei unterschiedliche Fehler:
1. Bitte die Syntax zu @SetField nachlesen.
2. Was steht im QuerySave der Maske?
Bernhard
-
... die Syntax zum @If stimmt auch nicht... ;)
Toni
-
Wofür brauchst Du überhaupt preisNeu?
Beide Felder sind editierbar.
PreisNeu soll auf Preis gesetzt werden, wenn preisNeu geändert wird.
Warum einfach nicht EIN PREIS - Feld und ein Historie-Feld für Preiswechsel.
Nicht bös gemeint, aber so erinnert mich das stark an:
http://www.youtube.com/watch?v=46btEgKmCTo ;D
-
Um das fortzuspinnen: Was, wenn ein User gleich den alten Preis ändert? Wozu sollte er überhaupt an Preis_Neu drehen?
Weiters: @SetField braucht es überhaupt nicht ...
Bernhard
-
Hallo Pitiyankee
Des Menschenwunsch ist ein Himmelreich voraalen wenn er mehr zu sagen hat :-) dafür brauche ich das
-
Hallo
Ich versteh nur noch Bahnhof
Toni was ist falsch an @ If und Bernhard wenn ich @setField nicht brauche wie kommt dann der neue Wert in das Feld ????
:)
-
Bitte die Designer-Hilfe benutzen - wir können hier nicht alles vorkauen.
Bernhard
-
Beim @If fehlt Dir ein Parameter (Sonst)
@If (Bedingung; Dann; Sonst)
Aufgrund der Fehlermeldung vermute ich, dass Du die Formeln als Script eingetragen hast.
Nochmal zur Frage der Logik, die muss erst beantwortet werden, sonst sind alle Hilfen hier sinnlos.
Die einzige vernünftige Logik scheint mir zu sein, dass, wenn ein neuer Preis eingetragen wird, in das Feld mit dem alten Preis der Preis eingetragen werden soll, der VORHER in neuer Preis gestanden hat.
Ist es so?
-
Hallo Pitiyankee
Warum einfach nicht EIN PREIS - Feld und ein Historie-Feld für Preiswechsel.
wie setze ich dann den alten preis in die Historie
-
Hallo Peter
ja genau so ist es
-
Muss es in Formelsprache sein, oder darf es auch LotusScript sein?
-
Hallo Peter wenn es geht in der Lotus script da es ja in die Querysaved rein muss richtig
-
Des Menschenwunsch ist ein Himmelreich voraalen wenn er mehr zu sagen hat :-) dafür brauche ich das
... sprach der Goldman Sachs Angestellte, als er im Jahre 2008 griechischen Staatsanleihen dann doch Triple A Rating gab.
Warum erwartet deine Organisation eigentlich, dass dir IT-fachliche Experten gratis helfen, wenn für deine Organisation Fachlichkeit keinen Wert hat? Wenn sogar das Design einzelner Felder angeblich von jemanden micro-management-mässig festgelegt werden, der dazu ganz offensichtlich keine Qualifikation besitzt.
Ich halts für zynisch, sich unter diesen Voraussetzungen überhaupt an ein Fach-Forum zu wenden. Reine Zeitverschwendung.
-
Hi Beatrix,
das kann man umstellen.
Wenn ich mir den Fragenkatalog anschaue, mache ich mir gerade so meine Gedanken...
-
So würde ich das machen, wenn es meine Aufgabe wäre:
Ein bearbeitbares Preisfeld
Ein nicht bearbeitbares Feld für die Preishistorie (deckt sich mit dem Beitrag von Pitiyankee)
Im Postopen in einer globalen Variablen den Preis merken
Im Querysave prüfen, ob der gemerkte Preis vom aktuellen Inhalt des bearbeitbaren Preisfeldes abweicht, wenn ja, in das Feld Preishistorie den gemerkten Preis eintragen (wenn schon ein Wert vorhanden ist, dann eventuell ein neues Element anhängen, um alle alten Preise zu sehen). Natürlich noch den jetzt aktuellen Preis in die Merk-Variable schreiben. Idealerweise sollte noch ein Datum und evtl. ein Benutzer mit eingetragen werden.
-
Toni was ist falsch an @ If
@If(as_mis_price!="";@SetField( as_preis;as_mis_preis));
@If(as_mis_price!="");@SetField( as_preis;as_mis_preis)
@If([Wenn];[Dann];[Ansonsten]) braucht immer mindestens 3 Parameter, aber immer ungerade
@SetField("Feldname" ; "Wert") hat 2 Parameter
Der Name des Feldes kommt aus dem Feld as_Preis - du musst den den Feldnamen in Hochkommas setzen... ;)
-
Hallo Peter
vielen vielen danke nun komm ich auch weiter. :)
Danke ata
Hallo Andre
ich weiß das man das umstellen kann, aber in der Querysaved steht schon was in Lotus scipt geschrieben
von einem Vorgänger und das Dokument greift auch darauf zu. Deswegen denke ich das es das beste wäre die Abfrage da
unter zu bringen.
-
Hallo Peter
ich habe es erst einmal auf deinen vorschlag umgestellt.
nun muss die If abfrage in Lotus Script geschrieben werden, denn wenn ich es auf Fomular umstelle kommt die Meldung sie verlieren die anderen daten.
Wie schreibe ich eine If abfrage in Lotus script oder wo kann ich dieses nachlesen
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Not validator.run(Source) Then continue = False
If (_temp = "as_preis") Then as_preise= "as_preis"
Else
as_preis="as_historie"
as_preis= "_tem"
End If
End If
End Sub
geht es so ???
-
Hi Beatrix.
Wenn das der Ganze Code ist kommt beim speichern eine Fehlermeldung.
Da ist ein EndIf zuviel.
Du machst überall eine Stringzuweisung, das Besagen die Anführungszeichen.
Aber ehrlich gefragt, wieviel Ahnung hast Du von Programmierung?
Und die Designer Hilfe ist immer ein sehr guter Freund.
-
geht es so ???
Leider nicht.
Du hast da eine Datenbank geerbt, die nicht von Dir ist. Nun sollst Du daran Änderungen vornehmen. Da die relevanten Events schon mit Script belegt sind, muss es auch wieder Script sein, aber Du hast noch nie mit Script gearbeitet. Ich nehme an, dass meine Vermutung ziemlich genau zutrifft.
Das Forum hier hat nicht den Antritt, die komplette Aus- und Weiterbildung von Mitarbeitern durchzuführen, schließlich ist es ein kostenloses Forum, dass grundsätzlich ehrenamtlich betreut wird. Auch wenn man manchmal gerne mehr machen würde, ist das leider nicht darstellbar.
Du solltest Dich in LotusScript einarbeiten, idealerweise mittels einer Schulung. Falls Du keine Schulung bekommst, lies Dich ein, es gibt dazu Bücher (z.B. vom Herdt-Verlag, wurde hier öfters erwähnt) und natürlich die Designer-Hilfe in Notes. Dort solltest Du Dir vor allem die Beispielscripte anschauen, für Dich relevant sind für die aktuelle Aufgabenstellung die Klassen NotesUIWorkspace, NotesUIDocument und NotesDocument.
Wenn Du dann an einzelnen Stellen hängst, bekommst Du in der Regel hier schnelle und gute Hilfe. Aber eine kostenlose Komplettlösung ist hier nicht zu haben.
-
... ich kann Peter nur zustimmen. Mit reinem Copy&Paste Quick&Dirty kannst du das hier nicht unbedingt lösen. Saubere Strukturen, damit die Syntax sauber les- und validierbar ist gehört eben so dazu, wie das zurechtfinden in der Designer-Hilfe... ;)
Toni
-
Sorry... War zu spät...