Autor Thema: element aus textlist löschen [schonwieder]  (Gelesen 9186 mal)

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
element aus textlist löschen [schonwieder]
« am: 25.10.05 - 10:06:32 »
guten morgen
im vornherein sag ich gleich, dass ich die suche und die hilfe schon benutzt habe.
leider ohne erfolg.

es geht darum einen wert aus einer textlist zu löschen.
was ich bereits hier im forum gefunden habe war:
@Trim (@ReplaceSubstring (Quellliste; WERTDERWEGSOLL; ""))
diese formel will ich aber nun in lotus script haben.
dachte das müsste so aussehen:
neuetextliste = session.Evaluate("@Trim(@ReplaceSubstring(anzahl_alle;nummer; ""))", doc )
dabei kommt aber ein fehler: not a member:evaluate
was ist daran nun falsch  ???

klaussal

  • Gast
Re: element aus textlist löschen [schonwieder]
« Antwort #1 am: 25.10.05 - 10:14:06 »
Ist "neuetextliste" ein Variant ?
Siehe die Hilfe unter "session & evaluate".

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #2 am: 25.10.05 - 10:17:09 »
ja hab ich so deklariert

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: element aus textlist löschen [schonwieder]
« Antwort #3 am: 25.10.05 - 10:39:48 »
Warum nicht direkt per Script?

neuetextliste = Fulltrim(ArrayReplace(anzahl_alle,nummer, "")
Gruß
Dirk

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: element aus textlist löschen [schonwieder]
« Antwort #4 am: 25.10.05 - 10:40:58 »
Hi,

das kann auch so nicht gehen. Denn...

.... man achte auf den Hinweis in der Designer-Hilfe:

Hinweis  This method is supported in COM only.


So sollte das funktionieren:

neuetextliste = Evaluate(|@Trim(@ReplaceSubstring(anzahl_alle;nummer; ""))|, doc )


Axel


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

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #5 am: 25.10.05 - 10:56:34 »
@axel
es kommt kein fehler mehr, aber die werte in 'neuetextliste' sind gleich den werten in 'anzahl_alle'

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: element aus textlist löschen [schonwieder]
« Antwort #6 am: 25.10.05 - 10:59:09 »
Wo kommen denn die Parameter anzahl_alle und nummer her? Sind das Felder eines Dokumentes oder Variablen? Wie sehen die Inhalte aus?


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

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #7 am: 25.10.05 - 11:06:58 »
ich hab ein feld 'anzahl' in dem ich ein wert eintrag.
ich hab ein button 'hinzufügen' womit ich 'anzahl' in ein mehrfachwerte feld 'anzahl_alle' speicher. dies mach ich mit Call anzahl_alle.AppendToTextList(uidoc.fieldgettext("Anzahl"))
nachdem ich jetzt mehrer werte hinzugefügt hab, will ich einen wieder über einen button löschen. in einem feld 'nummer' geb ich die position des wertes an der gelöscht werden soll.

so hab ichs deklariert:
Dim anzahl_alle As notesitem
Dim nummer As Integer
Dim neuetextliste As Variant
Set anzahl_alle = doc.GetFirstItem( "anzahl_alle" )
nummer = uidoc.FieldGetText("nummer")

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: element aus textlist löschen [schonwieder]
« Antwort #8 am: 25.10.05 - 11:16:21 »
Hi,

von welchem Typ haben sind denn die Felder? Text, Zahl.

Deine Deklaration kann so auf keinen Fall funktionieren. FieldGetText liefert immer einen String und den kannst du nicht einer Integer-Variablen zuweisen.


Axel

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

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #9 am: 25.10.05 - 11:21:24 »
na die felder in den ich was eingeb sind alle vom typ text.
die anderen inden ich dann die werte wieder rein schreib sind auch vom typ text und den haken bei mehrfachwerte hab ich gesetzt.

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: element aus textlist löschen [schonwieder]
« Antwort #10 am: 25.10.05 - 11:25:58 »
Hi,

das ist soweit richtig. Wieso willst du denn eigentlich das über Script machen? Wenn's in dem Button nur um das Löschen eines Wertes aus einer Liste geht, mach's am einfachsten mit der Formelsprache.

Damit müsste es funktionieren:

FIELD anzahl_alle := anzahl_alle;
neuetextliste := @Trim(@ReplaceSubstring(anzahl_alle;nummer; ""));
@SetField("anzahl_alle";neuetextliste)


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

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #11 am: 25.10.05 - 12:19:31 »
also das funktioniert.
ich würde es aber gerne über script sprache machen weil es für mich einfacher erscheint (als anfänger *g*)
denn ich hab noch ein weiteres mehrfachwerte feld. dies nummeriert sozusagen die einträge von anzahl_alle.
wenn ich jetzt aus anzahl_alle was lösche. bleiben die nummerierung gleich. aber es soll ja nicht so sein.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: element aus textlist löschen [schonwieder]
« Antwort #12 am: 25.10.05 - 12:23:42 »
Du kannst es ganz "zu Fuß" machen.
NotesItem des Objekts besorgen.
über .values iterieren.
Und einen neuen Array aufbauen.

so ungefähr:
Code
for all aVal in itFeld.values 
if (trim$(aVal <> "")  then
arCounter = arCounter + 1
Redim Preserve newVals(arCounter)
newVals(arCounter) = aVal
end if
end forall
Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #13 am: 25.10.05 - 13:38:57 »
na das is mir dann doch n bisl zu hoch *grml*

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: element aus textlist löschen [schonwieder]
« Antwort #14 am: 25.10.05 - 14:08:01 »
Hi,

aus dem Kopf heraus ist mal folgender Lösungsansatz entstanden:


Dim doc As Notesdocument
Dim idx As Integer
Dim arrValue() As String
Dim varListe As Variant

...
...

'Löschen aus der Liste
varListe = Fulltrim(ArrayReplace(doc.anzahl_alle, doc.nummer(0), "")

'Dimensionierung des dyn. Arrays
Redim arrValue(Ubound(doc.anzahl_alle))

'Neu nummerieren
idx = 1
ForAll value in doc.anzahl_alle
  arrValue(idx-1) = idx
  idx = idx +1
End ForAll

'Wieder dem Feld zuweisen
doc.anzahl_alle = arrValue
...

Versuch's mal ob das so funktioniert.


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

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #15 am: 25.10.05 - 14:34:20 »
also für die werte löschen hab ichs jetzt so gemacht. funktioniert auch anscheinend:
i=Ubound(anzahl_a)
For j=nummer To i-1
      anzahl_a(j)=anzahl_a(j+1)
Next
Redim temp(i-1)
For j=0 To Ubound(anzahl_a)-1
      temp(j)=anzahl_a(j)
Next

denk mal, dass es dann für die nummerierung das selbe prinzip ist.
also so wie du es eben beschrieben hast.

thx für deine hilfe  :)

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: element aus textlist löschen [schonwieder]
« Antwort #16 am: 25.10.05 - 15:34:28 »
Bist du dir sicher, dass das funktioniert? Ich wage das etwas zu bezweifeln.

Wenn ich das richtig sehe schiebst du nur Werte durch die Gegend. Was passiert denn, wenn du einen Wert mitten aus der Liste löschst?


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

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: element aus textlist löschen [schonwieder]
« Antwort #17 am: 25.10.05 - 15:41:37 »
Die Datenstruktur Array ist - sagen wir mal - suboptimal für Löschungen - dazu wäre ein Liste deutlich geeigneter - nur mal so als Anmerkung.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline KnoJo

  • Frischling
  • *
  • Beiträge: 28
Re: element aus textlist löschen [schonwieder]
« Antwort #18 am: 25.10.05 - 16:29:48 »
ja ich weis das es ein sehr umständlicher weg ist. aber hauptsache ich versteh ihn.
ich hab natürlich noch ein paar anweisungen vergessen mit hinzuschreiben. also:

zunächst übergeb ich die listenelemente in ein array vom typ variant
anzahl_a = doc.GetItemValue( "anzahl_alle" )

ich ermittle die menge der werte des arrays
i=Ubound(anzahl_a)

'nummer' ist die stelle die gelöscht werden soll
in einer for-schleife verschieb ich alle elemente um eins nach links
For j=nummer To i-1
      anzahl_a(j)=anzahl_a(j+1)
Next
angenommen ich will die 2. stelle löschen:
aus [1,2,3,4,5] wird [1,3,4,5,5]

jetzt nehm ich mir einen neuen dynamischen array
die anzahl der werte ist eins weniger
Redim temp(i-1)

in dieses temp-array schreib ich dann die werte von anzahl_a wobei dann die letzte stelle wegfällt

und zum schluss schreib ich dann alles wieder zurück in die text liste
doc.anzahl_alle=temp

@gandhi
hab es nur so realisieren können. hab kein plan wie ich es mit einer liste lösen kann.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: element aus textlist löschen [schonwieder]
« Antwort #19 am: 25.10.05 - 16:32:39 »
Warum nimmst Du dann nicht wenigstens was fertiges. Zitat Axel:
varListe = Fulltrim(ArrayReplace(doc.anzahl_alle, doc.nummer(0), "")

Und als Hausaufgabe die Noteshilfe zum Thema Listen lesen ;)
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz