Autor Thema: mal wieder Feldwerte übernehmen  (Gelesen 4514 mal)

Offline Daniel Weiß

  • Junior Mitglied
  • **
  • Beiträge: 96
  • Geschlecht: Männlich
mal wieder Feldwerte übernehmen
« am: 10.03.06 - 08:07:56 »
Hallo zusammen,

kurz vorm WE benötige ich nochmal Hife.
Kann ich aus einer Maske, wenn sie gespeichert wird, den Feldwert automatisch in eine andere maske (keine Antwortmaske) übertragen?

Also ich dachte irgendwie so: Maske wird ausgefüllt und beim speichern wird z.B. das Feld Thema in eine andere Maske übertragen und diese dann automatisch abgespeichert.


Geht das irgendwie??

Gruß Daniel

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: mal wieder Feldwerte übernehmen
« Antwort #1 am: 10.03.06 - 08:19:15 »
Sollte eigentlich ganz normal gehen, indem du den Feldnamen als Formel ind das Feld einträgst, in das der Wert übernommen werden soll

gruß
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

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: mal wieder Feldwerte übernehmen
« Antwort #2 am: 10.03.06 - 08:23:20 »
Geht das irgendwie??

Ganz pauschal, ja.

Der prinzipielle Ablauf ist der, dass im QuerySave-Event sich mit Backendfunktionen Zugriff auf das andere Dokument verschafft, das Feld/die Felder ändert und dann speichert.

Um genaueres sagen zu können, brauchen wir mehr Infos. Zum Beispiel handelt es sich um ein neues Dokument oder einbestehendes? Wenn es sich um ein bestehendes Dokument handelt, wie kann man es eindeutig identifizieren?.

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

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #3 am: 10.03.06 - 08:25:28 »
Ich denke auch dass da noch einiges an Info fehlt. Wenn du zb die zweite Maske die ja eigentlich ein doc ist per script erstellst dann ist es garkein Problem. Wenn du aber das zweite doc irgendwann und von irgendwo erstellt hast dann schon.

robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Daniel Weiß

  • Junior Mitglied
  • **
  • Beiträge: 96
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #4 am: 10.03.06 - 09:47:46 »
Also, ich wollte ja mal eine Ansicht erstellen in der man nur die Beaschreibung sehen kann, aber nicht durch doppelklick auf das Thema in die Maske gelangt. (Mein Beitrag vom 24.02. In Ansicht nur Beschreibung anzeigen). Jetzt dachte ich mir dann erstelle ich halt eine neue Maske die den Feldwert der Hauptmaske übernimmt und erstelle darauf die Ansicht.

Es soll so sein: Ich erstelle über die Hauptmaske ein Dokument. Wenn dieses gespeichrt wird, soll die Themabeschreibung in eine neue Maske übertragen werden und die neue Maske dann den Eintrag speichern. Dann kann man über die Ansicht nur das Thema sehen und wenn man einen doppelklick drauf macht kommt man in die Maske und nicht mit der das Dokument erstellt wurde.

Hoffe das ist einigermassen verständlich geschrieben

klaussal

  • Gast
Re: mal wieder Feldwerte übernehmen
« Antwort #5 am: 10.03.06 - 10:02:11 »
Wenn ich doch in der Ansicht das Thema sehen kann, was bringt mir dann das Ansehen des Docs, wenn ich da auch nur das Thema sehe ?

Den rudimentären Infos nach zu urteilen, würde ich sagen: was soll das Ganze. ?  :-:

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: mal wieder Feldwerte übernehmen
« Antwort #6 am: 10.03.06 - 10:06:23 »
Ich denke ein kleiner Blick hier in die vorgeschichte könnte helfen

http://atnotes.de/index.php?topic=29023.0
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

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: mal wieder Feldwerte übernehmen
« Antwort #7 am: 10.03.06 - 10:14:43 »
Nicht's einfacher als das. Das sind Grundlagen der ersten Programmierstunde. ;)

Im QuerySave-Event:

...
Set db = session.CurrentDatabase
Set newdoc = New NotesDocument(db)
newdoc.Form = "Name der Maske"
newdoc.Feldname = Source.FieldGetText("Feldname mit Thema")
Call newdoc.Save(True,False)
...


Die Sache hat allerdings einen entscheidenden Haken. Was passiert, wenn das Thema eines bestehenden Dokumentes geändert wird? Im vorliegenden Fall wird bei jedem Speichern ein neues Dokument angelegt.

 
Axel
« Letzte Änderung: 10.03.06 - 10:17:16 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

klaussal

  • Gast
Re: mal wieder Feldwerte übernehmen
« Antwort #8 am: 10.03.06 - 10:23:47 »
Deshalb habe ich ja nach dem tieferen Sinn gefragt.
Irgendwie scheint mir das Konzept nicht ganz zu Ende gedacht zu sein.

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: mal wieder Feldwerte übernehmen
« Antwort #9 am: 10.03.06 - 10:54:58 »
Deshalb habe ich ja nach dem tieferen Sinn gefragt.
Irgendwie scheint mir das Konzept nicht ganz zu Ende gedacht zu sein.

Sehe ich auch so.

Soweit ich das Ganze bis jetzt verstanden habe, geht es darum das bestimmte User nur das Thema sehen dürfen und keine anderen Informationen, die in dem Dokument noch enthalten sind.

Ein durchgängigeres Konzept wäre es die Infos innerhalb des Dokumentes zu verbergen. Allerdings sollte dann auch die Gestaltung der DB verborgen werden, damit die Feldinhalte nicht über die Dokumenteigenschaften lesbar sind.

Ganz wasserdicht ist die Lösung aber nicht. Findige User kommen dennoch an die Infos ran.

Wasserdicht wäre nur die Lösung über Leserfelder. Dann braucht's aber eine zweite Maske, die mit der ersten in irgendeiner Art und Weise verlinkt sein muss.

Schaun mer mal was der Fragesteller zu dem Thema zu sagen hat.

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

klaussal

  • Gast
Re: mal wieder Feldwerte übernehmen
« Antwort #10 am: 10.03.06 - 11:04:20 »
Ich würde das ja über berechnete Teilmasken machen, wo dann die geheimen Informationen drinne stehen bzw. eine leere Teilmaske für den Rest der Welt.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: mal wieder Feldwerte übernehmen
« Antwort #11 am: 10.03.06 - 16:06:57 »
@Klauss
und was ist mit den Dokumenteneigenschaften? Dort können die Felder ja weiterhin eingesehen werden...
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Masterkrueger

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #12 am: 30.12.06 - 19:45:41 »
Hi, ich habe ein ähnliches/gleiches? Problem und wollte nicht noch ein Thread aufmachen ;)
also hier mein Problem. Ich habe eine Hauptmaske und erstelle Antwortdokumente daraus. Bedeutet das unter Extras der Antwortmaske "Felder übernehmen Werte aus gewähltem Dokument" angehakt ist. Wenn ich jetzt in einer Ansicht vom Hauptdokument auf Aktion erstelle Antwortdokument gehe werden alle Werte die ich angegeben habe mit übernommen.
Problem: es handelt sich jetzt um einen Workflow den ich einbaue und erstelle neue Dokumente, setz das Form-feld und lass die Maske drübervalidieren. Schön und gut, aber so werden die Werte nicht übernommen und ich wollte ungerne alle Felder im Code nochmal angeben (also wenn es nicht möglich oder nur sehr schwer durchführbar ist mache ich es so, aber es muss doch eine elegante Lösung geben aus der Ansicht heraus über eine Aktion das Hauptdokument zu schnappen und das Antwortdokument generieren zu lassen.

Vielen Dank im Vorraus

Stefan

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #13 am: 31.12.06 - 00:10:45 »
Puh, am Wochenende hat meine Kristallkugel immer frei  ;D Das einzige, was ich erahne, ist, dass da was im Backend laufen soll, und dort scheitern natürlich Vererbungsmethoden aus dem Frontend.
Ich ahne auch, dass ich Möglichkeiten benennen könnte, wie man hier trotzdem mit wenig Aufwand aus der Sache herauskommt. Eine Ahnung ist mir aber zu wenig, um mich dafür anzustrengen.
Ergo: Mehr Input, mehr Output. Mit einer sauberen Beschreibung der Aufgabe kommen wir bestimmt weiter.

Bernhard

Offline Masterkrueger

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #14 am: 31.12.06 - 15:19:27 »
puh, also eine exakte Beschreibung meines Problems. Ich versuchs mal  ::) Ich habe ein Hauptdokument (kurz HD), nein ich geh noch weiter zurück, ich habe natürlich ein Formular, dieses nennt sich Hauptmaske und erstellt die oben genannten Dokumente. Ein zweites Formular, die Antwortmaske (also die Dokumente die daraus entdtehen Antwortdokumente kurz AD). Ich kann jetzt, wie kann es auch anders sein, nur von einer Ansicht aus ein HD wählen und über den Menüpunkt Erstellen/Antwortmaske ein AD erzeugen. Die Werte werden dabei wie gewünscht vom HD in das neue AD übernommen. Da ich nun aber ein Workflow erstellen will, bzw bereits teilweise getan habe, muss das Ganze automatisch vonstatten gehen. Mein Ziel ist es in einem HD eine Aktion über die Aktionsleiste aufzurufen, wonach n-Antwortdokumente erstellt und gespeichert werden. Vielleicht sollte ich einfach mal den Code posten (das ist die ganze Aktion im HD):
Code
	Dim ws As New NotesUIWorkspace
	Dim s As New NotesSession
	Dim uidoc As NotesUIDocument
	Set uidoc = ws.CurrentDocument
	Call uidoc.Save()
	Dim hddoc As NotesDocument
	Set hddoc = uidoc.Document	
	Dim db As NotesDatabase
	Set db = s.CurrentDatabase
	Dim addoc As NotesDocument
	'Anzahl der zu erstellenden Antwortdokumente ermitteln
	'und in der Schleife erstellen	
	Dim flag As Boolean	
	Dim tempIDsAD As NotesItem
	Set tempIDsAD = hddoc.GetFirstItem("IDsAD")
	Forall lElements In hddoc.ZugeordnetePersonen
		Set addoc = db.CreateDocument
		addoc.Form = "Antwortmaske"
		flag = addoc.Save(False,False)	
		flag = addoc.ComputeWithForm(False,False)
		If flag = False Then
			Print "Fehler beim ComputeWithForm der Maske"
		Else
			Print "ComputeWithForm ok"
		End If	
		'IDsAD im HD anhängen	
		tempIDsAD.AppendToTextList(addoc.NoteID)
		Call hddoc.Save(False,False)
		
		'Neues Dokument zum Antwortdokument machen
		Call addoc.save(False,True)
	End Forall
	Call hddoc.Save(False,False)

So, können Werte hier im LS-Code ebenso leicht übernommen werden, wie über die Aktion?
z.B. HD -> Feld Berichtsname = "Bericht2007" das geht in das AD Feld Berichtsname = Berichtsname

Ich hoffe, das ist alles einigermassen verständlich  ;D

p.s. ganz kurze Frage noch, wie starte ich @Formeln aus LS heraus? Ich weiss das es geht, finde die Seite aber nicht wieder :(

Vielen Dank

Stefan

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: mal wieder Feldwerte übernehmen
« Antwort #15 am: 31.12.06 - 15:35:20 »
p.s. ganz kurze Frage noch, wie starte ich @Formeln aus LS heraus? Ich weiss das es geht, finde die Seite aber nicht wieder :(

Das geht mit Evaluate. Dazu gibt es auch einen BestPractice-Artikel, denn nicht alle Formeln funktionieren mit Evaluate.

EDIT: Der Artikel ist hier.

EDIT2:

Wenn du per Script die Werte übernehmen willst, geht das relativ einfach analog zu addoc.Form = "Antwortmaske". Und zwar kannst du per
addoc.Berichtsname = hddoc.Berichtsname einfach die Werte übernehmen.
« Letzte Änderung: 31.12.06 - 15:51:29 von MadMetzger »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #16 am: 31.12.06 - 16:07:37 »
Es geht also wirklich um eine Backend-Aktion. Wie schon gesagt: Du kannst dort den Vererbungsmechanismus des Frontends nicht verwenden und musst alles "zu Fuss" erledigen.

By the way:
  'Neues Dokument zum Antwortdokument machen
  Call addoc.save(False,True)
erzeugt Dir kein Antwortdokument, hierfür brauchst Du Call addoc.MakeResponse (hddoc).

Du musst jetzt entscheiden, ob Du mehr Items aus hddoc in addoc übernehmen willst oder eher weniger. Im Fall 1: Da lohnt sich das Kopieren der Items von hddoc nach addoc und danach unbenötigte wieder entfernen, im Fall 2 müssten die Items einzeln übernommen werden.

Bei der ganzen Party kannst Du ja auch mit einem Array der zu kopierenden Itemnamen operieren und dieses zum Kopieren der Items verwenden.

Auf jeden Fall ist Handarbeit angesagt  ;D

Bernhard

Offline Masterkrueger

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #17 am: 31.12.06 - 16:30:30 »
Ok ;) dann weiss ich ja was zu tun ist.
Ich hatte zuerst MakeResponse benutzt, aber dann gesehen das notesDocument.Save( force, createResponse [, markRead ] ) also in meinem Falle false,true doch ein Antwortdokument erzeugt (tut es wirklich :)

HAAAALT :)) ich nehme alles zurück!!! es fehlt das $REF Feld, also hatten Sie recht, nur mit MakeResponse wird es eingefügt ;) sry
« Letzte Änderung: 31.12.06 - 17:00:46 von Masterkrueger »

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: mal wieder Feldwerte übernehmen
« Antwort #18 am: 31.12.06 - 17:14:10 »
Oder du arbeitest mit einer List(die ja eigentlich eine Art Map ist), die sogar ermöglichen würde, dass Feldnamen in andere umgesetzt werden.

Offline Masterkrueger

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
Re: mal wieder Feldwerte übernehmen
« Antwort #19 am: 31.12.06 - 18:54:58 »
stimmt, mit den Feldnamen als Index hmmmm ich glaube das mache ich noch, danke.
Ich habe jetzt die n00b-Variante gewählt ;)
AntwortDoc.Feldname = HauptDoc.FeldValue
naja aber es läuft :)

thx4all

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz