Hi Leute,
bin erneut auf ein Problem gestoßen.
Das Ergebnis sollte so aussehen:
While oDoc.Pause_1 != "" 'ungleich geht <> oder?
If oDoc.Pause_X = "" Then
oDoc.Pause_X = Pause_Std & ":" & pause
End If
X = X +1
Wend
X steht hier für ne Variable Zahl.
Habe die Felder von Pause_1 bis Pause_9
Wie kann ich den Feldnamen so variabel setzten, das sich mit jedem Durchlauf der Schleife das Feld ändert ? ??? :-: ???
Für jeden Fall das einzeln zu stricken ist auch possible, aber ich habe sowieso schon voll den langen Code und wollte ma schaun ob das nicht auch kürzer geht.
mfg Lukas
ok dann wirds aber ne stück für stück operation
die Syntax ist ja: valueArray = notesDocument.GetItemValue( itemName$ )
die Beispiele sind in der Hilfe für mich zumindest immer wenig hilfreich^^
daraus folgere ich das hier:
While oDoc.Pause_1 <> ""
If "oDoc.Pause_" & X = "" Then
test = doc.GetItemValue( "Pause_1" )
Forall Pause In test '-> Pause kommt ja in jedem Namen vor
total = total + m ' ka wozu diese Zeile gut sein soll
oDoc.ReplaceItemValue(test, neuer_Wert) = Pause_Std & ":" & pause
End Forall
End If
Wend
EDIT: hab die letzten 2 Post noch gelesen und das angepasst.
is da zumindest etwas schonma richtig?^^
mfg Lukas
moin moin
habs etwas weiterbekommen, aber noch nicht soweit, dass es läuft.
If oDoc.Pause_1 = "" Then 'hier kommt schon ein "type missmatch" Fehler, warum?
oDoc.Pause_1 = Pause_Std & ":" & pause
oDoc.Pause_1_Anzeige = "Stunde(n)"
Else
While oDoc.Pause_1 >< ""
If "oDoc.Pause_" & X = "" Then
Array = doc.GetItemValue("Pause_" & X)
Forall P In Array
counter = counter + m ' ka wozu diese Zeile gut sein soll
Set item = oDoc.ReplaceItemValue( "Array", (Pause_Std & ":" & pause))
End Forall
End If
X= X + 1
Wend
End If
jedoch versteh ich nicht, warum die Prüfung ob das Feld leer ist schon fehlschlägt.
Außerdem ist mir die Bedeutung der Zeile:
"counter = counter + m" nicht klar (aus dem Beispiel in der Hilfe übernommen)
Wie sieht der Code denn sonst aus, aufm richtigen Weg??
mfg Lukas
Danke für die Hilfe
@Thomas Schulte
gemacht, leider bleibt davon kaum was hängen, da ich die ScriptSpache nie gelernt habe, bin einfach eingestiegen und hab mir was die Script-Sprache angeht, alles entweder abgeguckt oder selbst "erbastelt".
@Peter Klett
Es soll gucken ob das erste Feld leer ist,
wenn ja -> reinschreiben
wenn nein -> gucken ob nächstes Feld leer ist, solange bis alle Felder abgearbeitet wurden.
Hab jetzt noch etwas dran geschraubt:
For X = 1 To 6
If oDoc.GetItemValue("Pause_" & X)(0) = "" Then
Array = oDoc.GetItemValue("Pause_" & X)
Forall P In Array
counter = counter + m ' ka wozu diese Zeile gut sein soll
Set item = oDoc.ReplaceItemValue( "Array", (Pause_Std & ":" & pause))
End Forall
End If
Next
Die Prüfungen laufen alle ohne Probleme.
Was jetzt noch fehlt ist, dass hier:
"Set item = oDoc.ReplaceItemValue( "Array", (Pause_Std & ":" & pause))"
in das jeweilige Feld reingeschrieben wird.
So wie es jetzt ist, wird in Array aber nur der Wert den jeweiligen Feldes gespeichert, anstatt der Verweis auf das Feld selber.
Also im Endeffekt muss ja nurnoch an folgenden Zeile was verändert werden:
"Array = oDoc.GetItemValue("Pause_" & X)"
und
"Set item = oDoc.ReplaceItemValue( "Array", (Pause_Std & ":" & pause))"
Die einfachste Lösung:
"Array = oDoc.GetItemName("Pause_" & X)"
geht leider nicht xD
Edit:
Folgendes klappt auch leider nicht, obwohl man so ja laut Hilfe den Namen des Items herrausbekommt.
For X = 1 To 6
If oDoc.GetItemValue("Pause_" & X)(0) = "" Then
Set item = doc.GetFirstItem( "Pause_" & X ) ' "Variant does not contain an Object"
itemName = item.Name
Forall P In Array
counter = counter + m ' ka wozu diese Zeile gut sein soll
Set item = oDoc.ReplaceItemValue( "itemName", (Pause_Std & ":" & pause))
End Forall
End If
Next
mfg Lukas
vielen Dank
For X = 1 To 6
If oDoc.GetItemValue("Pause_" & X)(0) = "" Then
Call oDoc.ReplaceItemValue("Pause_" & X, (Pause_Std & ":" & pause))
Exit Sub
End If
Next
Nachdem das Feld mit einem Wert gefüllt worden ist, wird die Schleife verlassen.
Nachtrag: den Counter habe ich weggelassen, wenn Du den für irgendetwas benötigst, muss der natürlich noch da mit rein.
Der war im Beispiel der Hilfe mit aufgelistet und da hab ichs nur übernommen^^
mfg Lukas