Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raimund am 13.09.02 - 08:12:59
-
Hi Entwickler,
folgendes Problem:
Habe eine Ein- und Ausgabe-Maske.
In der Eingabe-Maske habe ich Felder: _Abbildung("") und _ColWidth (Werte = no picture;original;100x100)
Im Feld _ColWidth ist als Vorgabewert "no picture".
Wenn ich im Feld _Abbildung ein Bild wähle, so soll im Feld _ColWidth die Optionsschaltfläche nicht mehr auf ""no picture" sondern "original" springen.
Habe schon einiges ausprobiert, leider ohne erfolg.
Hat jemand eine Idee?
Vielen Dank im Voraus
Gruß
Raimund
-
Hi,
wie wählst du denn das Bild aus ? Wenn du es über eine Schaltfläche machst kannst du eventuelle den Code dort unterbringen.
Axel
-
Hi,
die _Abbildung Schaltfläche ist eine Dialogliste mit der Funktion:
@DbColumn("":"NoCache"; ""; "vwFiles"; 1)
+ "|" +
@DbColumn("":"NoCache"; ""; "vwFiles"; 5)
und kein Vorgabewert.
Gruß
Raimund
-
Hi,
versuch doch mal folgendes:
Setze im Feld _Abbildung die Option "Felder bei Schlüsselwortänderung aktualisieren".
Im PostRecalc-Event der Maske fügt du folgenden Code ein:
If source.document._colwidth(0) <> "no picture" Then
source.document._colwidth = "original"
End if
Ist allerdings nur eine Idee.
Andere Alternative ist, das Feld _colwidth im Exiting - Event des Feldes _Abbildung zusetzen.
Eine Alternative, die auf jeden Fall funktionieren sollte, ist den Feldwert von _colwidth im QuerySave-Event der Maske entsprechend zu setzen.
Axel
-
Hi Axel,
vielen Dank für die Antwort.
Habe das Problem im PostRecalc-Event der Maske
so gelöst:
Sub Postrecalc(Source As Notesuidocument)
If source.document.Abbildung(0) = "" Then
source.document.colwidth = "no picture"
Else
source.document.colwidth = "original"
End If
End Sub
Dabei ist es dann nicht möglich die Optionsschaltfläche auf "100x100" oder "original" zu setzen, wenn das Feld "Abbildung" leer ist
Ach ja. Die Felder dürfen dann aber nicht mit einem Unterstrich anfangen, z.B.: _Abbildung
Gruß
Raimund
-
Hi,
Dabei ist es dann nicht möglich die Optionsschaltfläche auf "100x100" oder "original" zu setzen, wenn das Feld "Abbildung" leer ist
Ist, denke ich mal ein angenehmer Nebeneffekt. Denn was macht es für einen Sinn die Auflösung (das soll doch das Feld beinhalten) einzutragen, wenn kein Bild gewählt ist.
Ach ja. Die Felder dürfen dann aber nicht mit einem Unterstrich anfangen, z.B.: _Abbildung
Irgendwo hab ich mal gelesen, dass man solche Felder (und auch die mit einem $) so ansprechen kann :
doc.~_Abbildung
Was auf jedenfall geht ist das: doc.GetItemValue("_Abbildung")
Axel
-
Allerdings sehe ich beim besten Willen keine Grund, sich das Leben unnötig kompliziert zu machen und Feldnamen mit Unterstrichen beginnen zu lassen. Dasselbe gilt übrgens meiner nichtwürdigen Einschätzung nach für alle Unterstriche in Feldnamen.
In Notes 5 gilt immer noch die Beschränkung der Unique Keyfile Table auf 64 kB. Alle Feldnamen zusammen dürfen nicht größer sein. Und es gibt Datenbanken, bei denen man an diese Grenze kommen kann. Jeder Unterstrich ist da einfach nur ein überflüssiges Zeichen.
Das ist schon fast so schlimm wie Feldnamen mit Punkten. Alles schon gesehen (und man kann das sogar speichern und benutzen), aber Heulen und Zähneklappern ist vorprogrammiert.
--E<:|
-
Hi,
habe auch die Feldnamen geändert.
Funktioniert aber noch nicht ganz.
Zwar wird das Feld auf "original" gesetzt, wenn ein Bild ausgewählt wurde, aber es ist dann nicht mehr möglich das Format 100x100 zu aktivieren.
Eine Idee??
Gruß
Raimund
-
Was ist denn colwidth für ein Feldtyp und wie wird er gefüllt?
Ich denke, die einfachste Lösung für das Problem wäre einfach ein JavaScript, dass im onChange Event von Abbildung abläuft, und im colwidth die entsprechende Option selektiert. Ohne es ausprobiert zu haben ....
--E<:|
-
Hi,
ColWidth ist eine Optionsschaltfläche mit den Werten:
no picture
original
100x100
Vorgabewert ist:"no picture"
Die Abfrage im PostRecalc-Event der Maske:
Sub Postrecalc(Source As Notesuidocument)
If source.document.Abbildung(0) = "" Then
source.document.colwidth = "no picture"
Else
source.document.colwidth = "original"
End If
End Sub
Habe es so versucht:
If source.document.Abbildung(0) = "" Then
source.document.colwidth = "no picture"
Elseif source.document.Abbildung(0) <> "" Then
source.document.colwidth = "100x100"
Else
source.document.colwidth = "original"
End If
aber ohne Erfolg
Gruß
Raimund
-
@harkpabst_meliantrop
Sehe ich genauso.
@Raimund
Versuchs mal so:
If source.document.Abbildung(0) = "" Then
source.document.colwidth = "no picture"
Else
If source.document.colwidth(0) = "no picture" Then
source.document.colwidth = "original"
End If
End If
Müsste eigentlich funktionieren,
Axel
-
Hi,
habe es ausprobiert.
Und ... es funktioniert :)
Vielen dank
Gruß
Raimund