Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raimund am 13.09.02 - 08:12:59

Titel: Validierung
Beitrag 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
Titel: Re: Validierung
Beitrag von: Axel am 13.09.02 - 08:18:34
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



Titel: Re: Validierung
Beitrag von: Raimund am 13.09.02 - 08:29:07
Hi,

die _Abbildung Schaltfläche ist eine Dialogliste mit der Funktion:

@DbColumn("":"NoCache"; ""; "vwFiles"; 1)
+ "|" +
@DbColumn("":"NoCache"; ""; "vwFiles"; 5)

und kein Vorgabewert.

Gruß
Raimund
Titel: Re: Validierung
Beitrag von: Axel am 13.09.02 - 08:56:25
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
Titel: Re: Validierung
Beitrag von: Raimund am 13.09.02 - 09:46:49
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
Titel: Re: Validierung
Beitrag von: Axel am 13.09.02 - 10:07:32
Hi,

Zitat
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.

Zitat

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

Titel: Re: Validierung
Beitrag von: harkpabst_meliantrop am 13.09.02 - 11:28:30
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<:|
Titel: Re: Validierung
Beitrag von: Raimund am 13.09.02 - 11:36:44
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
Titel: Re: Validierung
Beitrag von: harkpabst_meliantrop am 13.09.02 - 11:40:54
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<:|
Titel: Re: Validierung
Beitrag von: Raimund am 13.09.02 - 11:46:56
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
Titel: Re: Validierung
Beitrag von: Axel am 13.09.02 - 11:59:29
@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  
Titel: Re: Validierung
Beitrag von: Raimund am 13.09.02 - 12:06:47
Hi,

habe es ausprobiert.
Und ... es funktioniert :)

Vielen dank

Gruß
Raimund