Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ell5lle am 17.05.06 - 15:31:14

Titel: variant als string
Beitrag von: ell5lle am 17.05.06 - 15:31:14
Hallo!
Folgendes Problem: ich möchte mit Lotus Script aus dem Feld "DeliveredDate" einer mail einen Dateinamen erzeugen! :)
Das Problem: Ich möchte Fragmente aus dem Feld verwenden!
Mit dem Left-Befehl usw. wäre dies auch kein Problem - wenn es sich um einen String handeln würde- es ist aber ein Variant. Mit "Cstr" kann ich den Typ aber leider nicht wie gewünscht verändern!
Infos:
Feld Delivered Date: 14.05.2006 12:00:23
Soll-Ausgabe für den Dateinamen: 14.05.06-12.00.23

Bin ich auf dem falschen Dampfer .. sehe ich etwas nicht .. was ist los? :-:

Wie kann ich dies am Besten bewerkstelligen?

Velen Dank für jede (sachdienliche ;)) Antwort!
Titel: Re: variant als string
Beitrag von: m3 am 17.05.06 - 15:34:25
Wie schaut der vorhandene Code aus?
Titel: Re: variant als string
Beitrag von: ell5lle am 17.05.06 - 15:44:41
Ein so richtigen Code gibt es noch nicht ... da verschiedenes versucht wurde.
Ähnliches hatte ich bereits für ein Frontend-Agenten erstellt - der läuft auch:

   datum = uidoc.FieldGetText ("DisplayDate")
   
   datum1$ = Left$(datum, 5)
   string1$ = datum1$
   
   string2$ = "."
   subString$ = Mid$(datum, 12, 13)
   Mid$(subString$,3) = string2$
   
   If Not uidoc.EditMode Then
      uidoc.EditMode = True
   End If
   
   Open "c:\" + datum1$ + "_" + substring$ +"h.txt" For Output Access Write As #5
   Print #5, inhalt & Chr$ (10)

Ich weiss, dass dieses nicht im backend funktioniert aus dem Grund wollte ich dies gerne abwandeln:

dat1 = doc.DeliveredDate
und dann dieses dat1 verhackstücken ... ähnlich wie oben
Titel: Re: variant als string
Beitrag von: Wilhelm am 17.05.06 - 16:11:57
Hallo,

in der Klasse NotesDateTime hast Du die Möglichkeit, den Feldinhalt als Datum zu benutzen und mit den Funktionen Hour(), Minute() und Second() kommst Du dann bequem an die restlichen Infos. Nur noch verketten und fertig ist Dein Dateiname!

Gruß

Willi

P.S.: doc.DeliveredDate funktioniert nur als Instanz eines Arrays: doc.DeliveredDate(0)
Titel: Re: variant als string
Beitrag von: Gandhi am 17.05.06 - 16:15:37
Was interessanterweise immer geht (hatte das Problem des nichtfunktionierendne CStr/Str auch schon) ist
                                         ""&varvariable

Elegant ist was anderes - aber wenn mich das interessierte würde ich wohl kein Notes entwickeln...;)
Titel: Re: variant als string
Beitrag von: ell5lle am 18.05.06 - 08:58:35
Kann mir bitte jemand ""&varvariable näher erklären? ???
Finde dazu nichts weiteres!
Titel: Re: variant als string
Beitrag von: Untitled am 18.05.06 - 10:10:41
Die Anweisung "xx" ist immer ein String und das ist Notes auch klar  ;D

Bei einer Variable, die als String deklariert wurde, sieht die Sache anscheinend anders aus (ist unlogisch, ok...).

Für Notes ist anscheinend also
Code
Dim s as String
s = "xx"

s != "xx"
(natürlich nicht direkt in einer If-Abfrage, sondern Tief-Code-Intern irgendwo...)

Mit ["xx" & variable] wird sogar Notes klar, das es sich beim Ganzen um einen String handeln muss.

Also falls Cstr(var) nicht funktioniert, einfach "" & var schreiben und einen Kommentar dazu nicht vergessen, damit dich der nächste Programmierer nicht verdammt und die Zeile wieder ändert  ;)

Klar?

Moritz
Titel: Re: variant als string
Beitrag von: HarryB am 18.05.06 - 10:33:15
Mit dem Left-Befehl usw. wäre dies auch kein Problem - wenn es sich um einen String handeln würde- es ist aber ein Variant.
Wie liest du denn das Feld aus? Etwa so?

Zitat
zd = doc.FeldName

oder

zd = doc.GetItemValue("FeldName")

Dann versuche es mal so:

Zitat
zd = Cstr(doc.FeldName(0))

oder

zd = Cstr(doc.GetItemValue("FeldName")(0))

Viele Grüße
Harry
Titel: Re: variant als string
Beitrag von: smoki am 18.05.06 - 23:56:02
Vielleicht solltest du den Format-Befehl verwenden?!

Ala:

ret = format(fieldvalue,"dd.mm.yy-hh.mm.ss")

Müsste gehen, hab ich aber nicht getestet :)

Gruss
Chris