Autor Thema: LotusScript  (Gelesen 2745 mal)

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
LotusScript
« am: 08.06.05 - 16:55:25 »
Wie kann ich ein Datumsfeld, wenn es so dargestellt wird: "08.06.2005" in dieses Format umwandeln: "200506"?

Gruss

Ernst

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: LotusScript
« Antwort #1 am: 08.06.05 - 17:01:09 »
Hast Du wirklich ein Datumsfeld oder ein Feld mit einem String à la "08.06.2005" ? Das Verfahren ist davon abhängig.

Was ist eigentlich mit Deinen beiden anderen offenen Threads ?

Bernhard

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
Re: LotusScript
« Antwort #2 am: 08.06.05 - 17:23:48 »
habe wirklich ein datumsfeld. wird von notes erstellt!

Glombi

  • Gast
Re: LotusScript
« Antwort #3 am: 08.06.05 - 17:29:23 »
dann so

dim doc as NotesDocument
dim ndt as NotesDateTime
dim YYYYMMstr as string

set session und doc ....
set ndt = New NotesDateTime( doc.DeinFeldname(0) )
YYYYMMstr = Cstr(Year(ndt.LSLocalTime)) & Right$("0" & Cstr(Month(ndt.LSLocalTime)),2)

Andreas

Glombi

  • Gast
Re: LotusScript
« Antwort #4 am: 08.06.05 - 17:31:07 »
oder ganz simpel mit

YYYYMMstr = Format$( doc.DeinFeldname(0), "yyyymm" )

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: LotusScript
« Antwort #5 am: 08.06.05 - 17:38:49 »
Von Format$ würde ich prinzipiell in diesem Zusammenhang die Finger lassen - das ist absolut abhängig von den Einstellungen des OS. Und wie schnell geht es, wenn Server A in Australien steht und Server B in Österreich ... Das ist dann nicht lustig.

Das ganze geht sogar noch einfacher:

Dim docCurrent As NotesDocument
Dim vDate As Variant
Dim strResult As String

'docCurrent instantiieren
vDate = docCurrent.DeinDatumsFeld (0)
strResult = Year (vDate) & Right$ ("0" & Month (vDate))

Bernhard, der seinen Flügelmann Andreas grüsst  ;)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: LotusScript
« Antwort #6 am: 08.06.05 - 17:44:19 »
Du meinst, wenn der Server für Australia anstelle von Austria konfiguriert wird? ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Glombi

  • Gast
Re: LotusScript
« Antwort #7 am: 08.06.05 - 17:45:16 »
Servus Bernhard,
wenn aber DeinFeldname vom Typ Datum ist, sollte auch ein Format$ keine Zicken machen. Falls es aber ein Textfeld ist, ist es sowieso sinnlos, falls dort bspw. "02.03.2005" steht.

Oder hast Du bereits schlechte Erfahrung mit Format$ und einem Datumsfeld gemacht?

Abgesehen von der ww (Kalenderwoche), die nur in Amiland geht...

Andreas

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
Re: LotusScript
« Antwort #8 am: 08.06.05 - 17:47:02 »
Sorry, das Datumsfeld ist doch ein String. Ist es dann einfacher? Oder muss ich dann viel umstellen?

Danke.

Ernst


Glombi

  • Gast
Re: LotusScript
« Antwort #9 am: 08.06.05 - 17:53:02 »
Das Problem ist, Du weisst nicht unbedingt, was Tag und Monat ist.

Vorausgesetzt, ALLES und JEDER hat das GLEICHE Zeitformat "DD.MM.YYYY" dann geht es mit
Right$(doc.DeinFeld(0),4) & Mid$(doc.DeinFeld(0),4,2)

Andreas

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: LotusScript
« Antwort #10 am: 08.06.05 - 18:01:10 »
Ein Datum in einem Textfeld ist ein absolutes NoNoNo. Aber das hatte ich oben schon geschrieben. Zur Erläuterung: In einem Datumsfeld wird das Datum als DT-Seriennummer gespeichert und kann in jedes landesspezifische Format durch entsprechende Routinen umgesetzt werden. Ist einDT-Wert ein String, geht international nix. Und wenn jemand sagt: Ja, hallo erstmal, wir sind nur in D-A-CH, dann nur folgendes: Ich habe schon genug Spassvögel erlebt, die ihr OS "spassenshalber" auf englisch oder US-amerikanisch umgesetzt haben.

Andreas' Code passe ich jetzt mal an mein vorheriges Posting an - und ACHTUNG: Sowas funktioniert nur innerhalb identischer OS-Ländereinstellungen:

Dim docCurrent As NotesDocument
Dim vDate As Variant
Dim strResult As String

'docCurrent instantiieren
vDate = CDat (docCurrent.DeinDatumsFeld (0))
strResult = Year (vDate) & Right$ ("0" & Month (vDate))

Bernhard (der Mann in der Suchoj knapp hinter und rechts neben Andreas' Maschine  ;D)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: LotusScript
« Antwort #11 am: 08.06.05 - 20:49:00 »
Hinweis: Crossposting mit dem Forum auf OpenBC
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: LotusScript
« Antwort #12 am: 08.06.05 - 22:55:36 »
Was ist eigentlich mit Deinen beiden anderen offenen Threads ?

Ich wiederhole meine Frage nochmals: Jetzt hast Du drei Fragen hier offen (innerhalb eines Tages), mehrere Leute haben sich bemüht, und von Dir kommt wenig oder kein Feedback. Das kommt nicht gut, Ernst.

Ich werde wieder antworten, wenn Du die offenen Fragen beantwortet hast.

Bernhard

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
Re: LotusScript
« Antwort #13 am: 09.06.05 - 09:17:28 »
Vielen Dank erstmal,

das war so viel Input auf einmal gestern, das ich das erstmal alles ausprobieren musste. Und dann musste ich auch noch weg, so daß ich mich gar nicht mehr zurückmelden konnte.

Probier das hier geschriebene mal umzusetzen, und meine Lotus Script Grundkenntnisse mal anzuwenden.

Hoffe Euch nicht ganz verägert zu haben. War keine Absicht.
Ist alles Neuland für mich und mein erstes Projekt und ich weiß noch nicht, wie ich vorgehen muss!

Danke.

Ernst

Offline MrSerious

  • Frischling
  • *
  • Beiträge: 9
Re: LotusScript
« Antwort #14 am: 09.06.05 - 12:51:58 »
So habe jetzt weiter rumprobiert und bin auf folgende lauffähige Lösung gekommen:

Sub Exiting(Source As Field)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim s As String
   
   Set uidoc = workspace.CurrentDocument
     '***************** Nur neues Dokument vorbelegen!!
   If Not uidoc.isnewdoc Then Exit Sub
   
     '************************** Felder vorbelegen
   's=uidoc.FieldGetText("fldDatum")
   
   
   Dim ndt As notesdatetime
   Set ndt = New NotesDateTime(uidoc.FieldGetText("fldDatum"))
   s=Cstr(Year(ndt.LSLocalTime))  & Right("0" & Cstr(Month(ndt.LSLocalTime)),2)
   
   Dim temp As String
   temp =  lookup("AdminPeriode",s,"fldPeriodefrei")
'   Call uidoc.fieldsetText("fldPeriode",temp)
   
   Dim zeit As String
   If temp = "ja"  Then      
      Print " Periode frei!"
   Else
      Print "Periode schon abgeschlossen!"
   End If
   
   Call uidoc.FieldSetText("tfldPeriodefrei",temp)
'Periodefrei
'   Call uidoc.fieldsetText("Periodefrei",lookup("AdminPeriode",s,"fldPeriodefrei"))
     'Stundensatz
'   Call uidoc.fieldsetText("dblStundensatz",Cstr(lookup("Intern\MitarbeiterAlternativ",s,"dblStundensatz")))
   
End Sub

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz