Autor Thema: Radiobutton Feld mit numerischem Wert per LS abfragen  (Gelesen 4836 mal)

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Hallo Zusammen

Ich habe ein Radiobutton Feld, dass die Werte 1|super 2|weniger gut usw. enthält. Ich versuchte den num. Wert per "ratingValue= doc.FieldGetText("iq_RateIT")" abzufragen, jedoch Wurde immer ein Tex zurpckgegeben, also "gut" usw...
Wie kann ich per LS auf den Wert und nicht auf den Text zugreifen?

Grüsse
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #1 am: 21.10.04 - 11:07:11 »
Du musst das Ganze umgekehrt machen. So wie du es jetzt hast steht in dem Feld bei 1 dann super drin. Also so sollte es aussehen: super|1, dann sieht man den Wert super bei der Darstellung, aber beim Zugriff hat man die 1 zur Verfügung.

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: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #2 am: 21.10.04 - 11:23:28 »
Also so sollte es aussehen: super|1, dann sieht man den Wert super bei der Darstellung, aber beim Zugriff hat man die 1 zur Verfügung.

Hi,

richtig, aber die 1 ist Text und keine Zahl.


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

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #3 am: 21.10.04 - 11:24:51 »
Stimmt, habe ich nicht ganz daran gedacht...

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #4 am: 21.10.04 - 14:07:42 »
Hallo!
Sorry, ich meinte natürlich zuerst Text | Zahl. So siehts aus: ausgezeichnet | 100, sehr gut | 85, gut | 70, genügend | 50, suboptimal | 20

Wie kann ich mer Lotus Script nun auf die Zahl zugreifen? Wenn das Feld den Wert ausgezeichnet, also 100 hat, wird diese Zahl auch so in den Ansichten aufgeführt. Jedoch, wenn ich den Wert des Feldes Abfrage, erhalte ich "ausgezeichnet" und keine Zahl... Ich möchte jedoch mit Integers arbeiten  >:(

Habt ihr Tipps, wie ich mir LS die Bezeichnung des Wertes und Zahl abfragen kann? Eigentlich interessiert mich nur der Wert (Zahl)..., aber wie handelt das Notes?

Greez
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #5 am: 21.10.04 - 14:25:03 »
Kann es vielleicht an den Leerzeichen neben dem Pipe-Symbol liegen? Ich habe das eben noch mal ausprobiert, und es funktioniert genauso. Egal ob mit oder ohne Leerzeichen.

Auf jeden Fall speichert er von der Zahl auch nur einen String ab, den du mit Cint () aber umwandeln kannst.

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: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #6 am: 21.10.04 - 14:28:31 »
Hi,

ich glaube da fehlt das Verständnis für Frontend und Backend und Aliase.

Wenn du mit Frontend-Methoden (NotesUIDocument.FieldGetText usw.) auf das Feld zugreifst bekommst du immer den Wert, der der User in der Maske sieht, also den, links vom | - Zeichen. Mit Backend-Methoden (NotesDocument.GetItemValue usw.) bekommst du immer den Alias-Wert, also den Wert rechts vom |. In der Ansicht siehst du immer den eigentlichen Feldinhalt und das ist der Aliaswert.

Wenn du die Wert als Zahl brauchst, musst du den Feldwert mit Val() in eine Zahl umwandeln.

Bsp.:
Zahl = Val(doc.Feld(0))

Um in der Ansicht den Text darzustellen, wende ich bei solchen Feldern folgenden Trick an:
Im QuerySave-Event lese ich mit der Frontend-Methode GetFieldText den Wert aus und schreibe ihn in ein verstecktes Textfeld. Das nehme ich dann für die Ansicht.

Axel

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

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #7 am: 21.10.04 - 15:14:53 »
Hi!

Danke!

Ich habe folgendes versucht, komme aber nicht weiter:
   Dim ws As New NotesUIWorkspace
   Dim NotesDoc As NotesDocument
   Set NotesDoc = ws.CurrentDocument.Document
   
   ratingValue= Cint(NotesDoc.GetItemValue("iq_RateIT"))

Fehler: Type mismatch

Ich bin in den LS Objekten nicht sehr versiert und habe nicht den Durchblick. Wie muss ich das oben schreiben, damit es funktioniert? Ich möchte nur den Wert (ein Integer) des Feldes iq_RateIT in der Maske haben...

Grüsse und Danke!
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #8 am: 21.10.04 - 15:21:46 »
Dann ist es besonders angebracht, sich die DesignerHelp vor Verwendung einer Klasse oder Methode gründlichst 'reinzuziehen.

NotesDocument.GetItemValue liefert ein Array zurück. Ergo muss Deine Zeile heissen:
ratingValue= Cint(NotesDoc.GetItemValue("iq_RateIT") (0))
oder einfacher
ratingValue = Cint (NotesDoc.iq_RateIT (0)

Ausserdem ist ratingValue offensichtlich nicht deklariert.

Bevor Du ein neues LS-Modul beginnst, tippe als erstes immer in die Options-Section: Option Declare. Spart 'ne Menge Ärger !

HTH,
Bernhard
« Letzte Änderung: 21.10.04 - 15:34:25 von koehlerbv »

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #9 am: 21.10.04 - 15:30:25 »
Hi Bernhard!

Vielen Dank, jetzt klappts!
Hab einiges dazugelernt...

Grüsse aus Zürich
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #10 am: 21.10.04 - 16:34:36 »
Hallo!

Ich hab noch ne andere Frage. Und zwar funktioniert bei diesem Code die IF Bedingung nicht so wie ich möchte:
Code
Sub Exiting(Source As Field)
	Dim workspace As New NotesUIWorkspace
	Set doc = workspace.CurrentDocument
	Set doc = workspace.EditDocument( True )
	
	Dim ws As New NotesUIWorkspace
	Dim NotesDoc As NotesDocument
	Set NotesDoc = ws.CurrentDocument.Document 
	Dim twoLiner  As String
	Dim ratingValue As Integer
	Dim ratingComent  As String
	Dim commentLength As Integer
	
	ratingValue = Cint (NotesDoc.iq_RateIT (0))
	ratingComment = Cstr(NotesDoc.iq_RateITComment(0))
	commentLength = Len(ratingComment)
	
	' Klammern sind für Array Wert 0
	Messagebox commentLength , MB_OK ,"Variabeltest"
	
	If (ratingValue <= 50 & commentLength < 5) Then	
		twoLiner = |Bitte begründen Sie unten Ihre Bewertung.
Sie helfen so unsere Dienstleistung zu verbessern. Vielen Dank!|	
		Messagebox twoLiner , MB_OK ,"Hinweis"
		doc.GotoField ("iq_RateITComment")	
	Else 
		
	End If
	Call doc.RefreshHideFormulas
	Call doc.Refresh
End Sub

Vorallen If (ratingValue <= 50 & commentLength < 5) funktioniert nicht. commentLength gibt einen CInt zurück, siehe auch "Messagebox commentLength , MB_OK ,"Variabeltest""

Auch wenn der Text der Variable ratingComent mehr als 5 Zeichen hat und  commentLength mehr als 5 sein sollte, klappts mit der Bedingung nicht.

Vielen Dank für eure Hilfe!

Gruss
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #11 am: 21.10.04 - 16:40:03 »
Ich gehe mal davon aus, dass Du mit "&" das LS-"AND" meinst.
"&" verknüpft in LS Strings und hat dort mit dem boolschen Operator "AND" nichts zu tun.

HTH,
Bernhard

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #12 am: 22.10.04 - 09:22:09 »
Autsch!!!

Naja, LS ist schon etwas speziell  ;D

Gruss
Manuel
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

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: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #13 am: 22.10.04 - 09:25:14 »
Autsch!!!

Naja, LS ist schon etwas speziell  ;D

Gruss
Manuel

Was ist daran speziell?   ??? ???
Ist ein Basic-Dialekt.


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

Offline immanuel

  • Senior Mitglied
  • ****
  • Beiträge: 461
  • Geschlecht: Männlich
    • Freshpixel Fotostudio
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #14 am: 22.10.04 - 09:35:03 »
Hi!

Ich bin mir gewohnt, dass IF (i=1) eine Variabelinitialisierung ist und keine Bedingung. In den meisten Programmiersprachen verwendet man doch IF (i==1) und verwendet | also logisches Oder und z.T. && als UND :-)

Greez
Manuel
« Letzte Änderung: 22.10.04 - 11:56:23 von immanuel »
IBM Certified System Administrator - Lotus Notes and Domino 6/6.5

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #15 am: 23.10.04 - 16:02:14 »
Also, wenn Du C und seine Abkömmlinge anschaust, dann stimmt die Aussage, dass ein Vergleich mit == geschrieben wird. Wenn ich aber die rund 20 Programmiersprachen nehme, die ich bisher hab kennengelernt, muss ich sagen, dass die Mehrheit der Programmiersprachen das = sowohl für die Zuweisung eines Wertes wie auch für den Vergleich nehmen. Aus dem Kontext ist immer klar, ob es eine Zuweisung oder eine Bedingung ist. Also bitte die Scheuklappen ablegen :) und mal die Operatoren-Liste studieren (was sicher ein MUSS sein sollte, wenn man sich in eine neue Programmiersprache begibt, und man darf auch nie davon ausgehen "man macht das einfach so", das gibts nicht)
« Letzte Änderung: 23.10.04 - 16:04:10 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #16 am: 23.10.04 - 16:18:28 »
Und das schöne an Notes ist, dass Formelsprache und Script grundverschieden sind  ;D
= :=
<> !=
and &
or |

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #17 am: 23.10.04 - 17:00:15 »
Die Ansätze sind aber auch vollkommen verschieden und durchaus historisch begründet.
Das ist einfach ein Fakt und keinerlei Diskussion würdig.

@Manuel: Viel Programmiersprachen kennst Du offensichtlich nicht, sonst würdest Du gar nicht erst ins Jammern kommen ...

Bernhard

Glombi

  • Gast
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #18 am: 23.10.04 - 17:08:04 »
Klar, aber manchmal fällt man eben darauf herein.
Insbesondere dann wenn man viel mit beiden Sprachen programmiert. Und dann kann es schon mal im Eifer des Gefechts vorkommen, dass man in Script
  if bed1 & bed2 then...
schreibt und sich dann wundert, dass was anderes als erwartet passiert  ;D
(Anmerkung: bed1 könnte String und bed2 sogar integer sein  ;D)

Andreas

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Radiobutton Feld mit numerischem Wert per LS abfragen
« Antwort #19 am: 23.10.04 - 20:09:52 »
Tja, ich unterstelle mal, dass vielen schon eine Verwechslung der oder ein Fehler bei den Sprachelementen passiert ist. ;)

Einer meiner häufigsten Fehler:
In @Formula eine Zuordnung mit "=" anstatt "=:" (also Doppelpunkt vergessen).
Die Formel wird ohne Fehlermeldung gespeichert/kompiliert.
Diesen Fehler zu finden ist aber zäh. Ich könnte mir vorstellen, dass die undokumentierte Formel-Debugger-Engine das kann, verwende ich aber nicht (mehr) aufgrund der Instabilität dieser.

Aber LS ist stark an VisualBasic geknüpft, und afaik sind die Sprachelemente da alle identisch - außer dass LS in manchen Dingen noch etwas großzügiger ist. Somit gilt imho die Ausrede nicht "aber in anderen Programmiersprachen ist doch........". ;)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz