Hallo,
Meiner Meinung nach solltest mit Arrays arbeiten.
uidoc.fieldgettext bringt laut Designer Help
Return value
textValue$
String. The contents of the field you specified.
Usage
All values are displayed for a multi-value field.
The values are separated by the multi-value separator as specified for display purposes in the field properties.
Um mit Arrays zu arbeiten brauchst du die Funktion split (=@explode)
ich möchte zwei textfelder vergleichen und die unterschiede in einem dritten feld darstellen.
die textfelder enthalten jeweils 100 - 400 werte, getrennt durch ein komma. das vergleichen der felder ist kein problem, nur die unterschiede herauszufinden, schon.
Ist es denn ein multi-value field ? falls ja, kannst du im Background Dokument mit backdoc.getitemvalue dir die Liste holen, ansonsten musst du wohl (im UI sowie im Backdoc) noch zuerst die Funktion split anwenden um einen Array zu bilden.
Danach nimmst du das erste Element der temp1 (neue Software) Liste und vergleichst, ob diese im Array temp enthalten ist (isElement), falls Return Value=0, nimmst du dies in einen separaten Array auf. Um über alle Elemente zu gehen, nimmst du am besten etwas wie:
dim myarray() as variant
dim temp as variant 'alte liste
dim temp1 as variant 'neue liste
dim y as integer
y=0
temp = split(w.currentdocument.fieldgettext("InstalledApps"),",")
temp1= split(w.currentdocument.fieldgettext("neu_so"),",")
for i=0 to ubound(temp1)
if iselement(temp,temp1(i))=0 then
redim preserve myarray(y)
myarray(y)=temp1(i)
y=y+1
endif
next
msgbox join(myarray)
HTH,
Michael