Autor Thema: Mini-Maske nach jedem Tastendruck neu berechnen  (Gelesen 3373 mal)

Offline FrankLU

  • Aktives Mitglied
  • ***
  • Beiträge: 116
  • Geschlecht: Männlich
Mini-Maske nach jedem Tastendruck neu berechnen
« am: 18.08.14 - 17:16:43 »
Hallo!

Um aus einem bestehenden Kundenauftrags-Dokument eine SMS zu generieren, öffne ich per Schaltfläche über eine DialogBox eine Mini-Maske mit einem Text-Feld, in die der SMS-Text geschrieben wird. Da dieser Text nicht mehr als 160 Zeichen lang sein darf, habe ich ein weiteres Feld definiert, das die Anzahl der Zeichen anzeigt.

Problem: Das Berechnen der Zeichenanzahl geschieht erst nach dem Drücken von F9, oder wenn ich das Textfeld verlasse (und bei onBlur was reinschreibe).

Weiß jemand um eine Möglichkeit, die Länge des eingegebenen Texts nach jedem Tastendruck berechnen zu lassen ohne das Eingabefeld zu verlassen?

Feldoptionen wie "Exiting/OnChange-Ereignisse nach jeder Wertänderung ausführen" oder "Felder bei Schlüsselwortänderung aktualisieren" gibt es ja bei einfachen Text-Feldern nicht. "OnChange" greift auch nur beim Verlassen des Felds.

Danke im voraus!

Grüße
Frank
Frank Lohöfer
MD Medicus Holding GmbH
Client (User): 12.0.1
Client (Admin): 12.0.1
Server: 9.0 auf Linux

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #1 am: 18.08.14 - 18:25:11 »
Die einfachste Lösung wäre es, wenn man in onKeyPress nicht nur Web, sondern auch Client zur Verfügung hätte.
Hat IBM leider bisher nicht gemacht und ich bezweifele das die das je umsetzen.

Wenn es eine kleine Maske ist, kannst Du mit der NotesTimer Klasse das Dokument jeder Sekunde einen Refresh schenken.

Oder Du benutzt stattdessen ein Java Fenster.
Andy

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #2 am: 18.08.14 - 19:19:54 »
Soweit ich weiss passt das mit den 160 Zeichen nur wenn keine Umlaute im Text vorkommen, die werden anscheinend mit 2 Zeichen übertragen.
ATOS.org - Feel the music!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #3 am: 18.08.14 - 22:55:58 »
SMS verwendet normalerweise eine PDU Codierung (7 Bit pro Zeichen, somit passen 160 Zeichen in 140 Byte)
Sonderzeichen werden zum Teil escaped bzw. der Zeichensatz umgeschaltet
http://www.nobbi.com/sms_pdu.html (Kurznachrichten auf die komplizierte Art - das triffts schon sehr gut)

Es gibt aber auch noch eine 16bit UCS2 (UTF) Codierung, dann passen nur 70 Zeichen in eine SMS.

Dein Problem könntest du auch mit einem Javascript-Timer lösen können, der entweder direkt das Feld auslöst oder einen Recalc triggert. (letzteres hab ich mal gemacht, in dem ich in eine Checkbox, welche auf "refresh on change" eingestellt war, mit Javascript periodisch den Haken gesetzt, bzw. entfernt habe)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline FrankLU

  • Aktives Mitglied
  • ***
  • Beiträge: 116
  • Geschlecht: Männlich
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #4 am: 19.08.14 - 10:15:57 »
Vielen Dank für die Antworten und Vorschläge!

Dass es 160 Zeichen sind, die LN mit Hilfe von Ferrari verschickt, das haben Tests ergeben.

Die Idee, einen NotesTimer zu verwenden, hatte ich auch schon, habe sie auch ausprobiert, aber es hat nicht funktioniert. Ich hatte den Timer im Eingabe-Feld selber unter onFocus definiert. Aber das war bisher nur ein Schnellschuss; vielleicht habe ich etwas übersehen. Ich werde es nochmal probieren und berichten oder weitere Hilfe erbitten.  ;)

Grüße
Frank
Frank Lohöfer
MD Medicus Holding GmbH
Client (User): 12.0.1
Client (Admin): 12.0.1
Server: 9.0 auf Linux

Offline FrankLU

  • Aktives Mitglied
  • ***
  • Beiträge: 116
  • Geschlecht: Männlich
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #5 am: 19.08.14 - 11:25:33 »
Problem gelöst!  ;D

Wenn man die globalen Variablen definiert (hatte ich beim "Schnellschuss" vergessen) und den Timer in der Maske aktiviert, statt im Feld, dann funktioniert's auch.  :)

Danke für die Hilfe und Vorschläge!

Schönen Tag noch!
Frank

Frank Lohöfer
MD Medicus Holding GmbH
Client (User): 12.0.1
Client (Admin): 12.0.1
Server: 9.0 auf Linux

Offline Manni Ciao

  • Junior Mitglied
  • **
  • Beiträge: 82
Re: Mini-Maske nach jedem Tastendruck neu berechnen
« Antwort #6 am: 26.09.14 - 15:58:15 »
Das haben wir auch mal so gelöst, aber es hat zu Problemen geführt, wenn der User während dem SMS-schreiben in ein anderes Fenster gewechselt hat. Das ist aber schon ein paar Jahre her, da waren die PCs eventuell nicht so leistungsstark.  :-\

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz