Autor Thema: entfernt Notes leere Array Elemente?  (Gelesen 3875 mal)

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 51
entfernt Notes leere Array Elemente?
« am: 07.10.15 - 14:42:36 »
Hallo zusammen,

ich bin dabei im QuerySave-Ereignis Einzelwerte zu einem Array zusammenzufügen und in versteckte Mehrfachwerte-Felder zu speichern.

Zum Testen sieht es so aus:

Code
	vArray(0) = "111"
		vArray(1) = "222"
		vArray(2) = "333"
		Call oDoc.ReplaceItemValue("fdEinspruchZiffer", vArray)
		
		vArray(0) = "1"
		vArray(1) = "2"
		vArray(2) = "1"
		Call oDoc.ReplaceItemValue("fdAnalog", vArray)	
		
		vArray(0) = "2"
		vArray(1) = " "
		vArray(2) = "5"
		Call oDoc.ReplaceItemValue("fdbeanstFaktor", vArray)	
		
		vArray(0) = "Analogansatz"
		vArray(1) = "Analogansatz"
		vArray(2) = "Analogansatz"
		Call oDoc.ReplaceItemValue("fdGrund", vArray)	
		
		vArray(0) = " "
		vArray(1) = "5"
		vArray(2) = " "
		Call oDoc.ReplaceItemValue("fdangepFaktor", vArray)	
		

Die Array-Werte mit Leerzeichen sind absicht, da manchen Felder keine Pflichtfelder sind, ich aber die Werte an der richtigen Stelle brauche.

Nach dem Speichern sieht es aber so aus bei fdangepFaktor und fdbeanstFaktor:
Feldname: fdangepFaktor
Datentyp: Text
Datenlänge: 1 Byte
Seq.-Num.: 1
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

"5"

Feldname: fdbeanstFaktor
Datentyp: Textliste
Datenlänge: 8 Byte
Seq.-Num.: 1
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

"2"
"5"


Die Leerzeichen-Werte fehlen.
Ist das nachvollziehbar? Macht Notes das in voller Absicht? Ich hab keine Doku dazu gefunden, vielleicht habe ich auch mit den falschen Begriffen gesucht.

Bin, wie immer, für jeden Hinweis dankbar (da ich ungern mit Platzhalter-Werten arbeiten möchte).

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: entfernt Notes leere Array Elemente?
« Antwort #1 am: 07.10.15 - 15:06:23 »
Das passiert NICHT in dem von Dir geposteten Code- Schnipsel.

Hast Du:

Irgendwo ein @Trim in irgendeiner Feld- Formel oder ein Fulltrim noch irgendwo im Script?

Ich habe gerade folgenden Code getestet:
Code
Dim vArray(2) as String
vArray(0) = " "
vArray(1) = "5"
vArray(2) = " "
Call g_docFocus.ReplaceItemValue("fdangepFaktor", vArray) 
Call g_docFocus.Save( True, True, True )
Und das Ergebnis war
Zitat
Feldname: fdangepFaktor
Datentyp: Textliste
Datenlänge: 11 Byte
Seq.-Num.: 2
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

" "
"5"
" "
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline ERR

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: entfernt Notes leere Array Elemente?
« Antwort #2 am: 07.10.15 - 15:26:08 »
Hallo,

ich denke, das ist das UI. Was für ein Typ sind die Felder (Kombinationsfeld, Listenfeld...)? Haben die Felder eine Feldumsetzungsformel oder sind es berechnete Felder?

MFG
ERR

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: entfernt Notes leere Array Elemente?
« Antwort #3 am: 07.10.15 - 15:35:25 »
@Tode:
kein Fulltrim, ein Trim verwende ich, aber nur um einen Feldwert zu prüfen (und um dann ein " " zu verwenden, statt des Leerwertes)

@ERR:
die Felder in die ich speichere sich Mehrfachwerte-Felder, versteckt am Ende des Dokumentes, vom Typ Text und auf sich selbst berechnet. Ist das vielleicht ein Problem?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: entfernt Notes leere Array Elemente?
« Antwort #4 am: 07.10.15 - 15:59:27 »
Notes trimmt automatisch Arrays, also leere Werte werden beim Speichern IM FRONTEND entfernt. Das gleiche Problem hatte ich vor einiger Zeit auch. Die einzige Lösung bestand (nach meinem Kenntnisstand) darin, die Werte in Items zu schreiben, für die es keine Felder in der Maske gibt, dann bleiben leere Werte in den Arrays enthalten. Habe damals lange herumprobiert und keine andere Alternative gefunden.

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: entfernt Notes leere Array Elemente?
« Antwort #5 am: 07.10.15 - 17:23:32 »
Moin
Als Alternative könntest Du die Werte per XML in einem Item speichern.
<ziffer></ziffer><faktor>1</faktor>....
<ziffer>2</ziffer><faktor>65</faktor>....

Gruss

Urs

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

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: entfernt Notes leere Array Elemente?
« Antwort #6 am: 08.10.15 - 10:18:16 »
@umi: auch ein Weg, aber ich benötige die MFW-Felder für Ansichten, da hilft der XML Code nicht weiter.

@Peter Klett:
Danke für den Hinweis.

Ich habe die Funktionalität ins QueryClose ausgelagert, damit funktioniert es.


Update:
Nicht ganz.
Schau ich mir die Items des Dokumentes in der Ansicht an:
Feldname: fdbeanstFaktor
Datentyp: Textliste
Datenlänge: 12 Byte
Seq.-Num.: 2
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

" "
"15"
" "

Öffne ich das Dokument jedoch (kein Code in Qeryopen, etc.), sieht das Item so aus:
Feldname: fdbeanstFaktor
Datentyp: Textliste
Datenlänge: 9 Byte
Seq.-Num.: 4
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

" "
"15"

anderes Item, Ansicht:
Feldname: fdangepFaktor
Datentyp: Textliste
Datenlänge: 13 Byte
Seq.-Num.: 2
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

"12"
" "
"14"

geöffnetes Dokument:
Feldname: fdangepFaktor
Datentyp: Textliste
Datenlänge: 10 Byte
Seq.-Num.: 4
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY

"12"
"14"

Ich bin verwirrt.  ???

Offline ERR

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: entfernt Notes leere Array Elemente?
« Antwort #7 am: 08.10.15 - 14:40:05 »
Hallo,

das ist wie Peter es schreibt (war bei mir auch so). Das UI löscht diese Werte und ich würde mich nicht darauf verlassen, das im Postsave oder QueryClose nicht wieder "gelöscht" wird.

Ein anderer Ansatz wäre es, die Leerzeichen durch ein Sonderzeichen zu ersetzen (".", "§" oder...). In den Ansichten (und den Stellen, an denen der Wert verwendet wird) wird dann das Sonderzeichen wieder zu einem Leerzeichen umgewandelt (per @ReplaceSubString).

MFG
ERR

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: entfernt Notes leere Array Elemente?
« Antwort #8 am: 08.10.15 - 15:51:14 »
Queryclose hilft Dir nur solange, bis der nächste User das Dokument öffnet und speichert, dann sind die Arrays wieder kaputt. Einzige und auch einfach umzusetzende Maßnahme: Lösche die versteckten Felder aus der Maske, die brauchst Du nicht.

EDIT: Ok, war im Ansatz unsinnig, Queryclose wird ja auch beim nächsten User durchgeführt. ABER: Mit dem Queryclose speicherst Du das Dokument im Backend. Wir haben Dokumente, die man abschließen kann, dabei leeren wir das Autorenfeld, dann kann man im Queryclose das Dokument nicht mehr speichern, weil die Zugriffsrechte fehlen. Wenn Du später auch solch eine Mimik einbaust, fällst Du dann wieder auf die Nase (oder musst irgendwelche anderen Umwege gehen)
« Letzte Änderung: 08.10.15 - 15:59:01 von Peter Klett »

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: entfernt Notes leere Array Elemente?
« Antwort #9 am: 13.10.15 - 12:33:34 »
Danke für alle Antworten und Anregungen.

Ich habe mich nun gezwungenermaßen auch für einen vordefinierten String bei Leerwerten entschieden.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz