Autor Thema: Feld von Text nach Datum ändern  (Gelesen 2640 mal)

Offline je

  • Frischling
  • *
  • Beiträge: 5
Feld von Text nach Datum ändern
« am: 09.04.05 - 20:07:15 »
Hallo!

Ich habe ein Problem bei der Umwandlung von einem Feld.
Ein Feld (ModifiedAt) will ich in eine Datumsliste umwandeln. Vorher war es eine Textliste. Das habe ich auch einfach so im Designer umgestellt.

Danach taucht dann folgendes Problem auf:
Ich habe 2 Screenshots gemacht (siehe Anhänge). Auf dem einen werden die Eigenschaften dieses Feldes in der Profilansicht gezeigt (links). Das andere zeigt die gleichen Eigenschaften in einer View. Wie man sieht ist es einmal ein Time/Date-Feld und einemal ein Text-Feld.

Wißt ihr, wie man das Problem beheben kann?

Mit besten Dank
Jens

Glombi

  • Gast
Re: Feld von Text nach Datum ändern
« Antwort #1 am: 09.04.05 - 20:17:40 »
Hast Du das Dokument neu gespeichert? Wie es aussieht eher nicht.

Die View zeigt den Ist-Zustand an.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld von Text nach Datum ändern
« Antwort #2 am: 09.04.05 - 20:38:58 »
Hallo Jens,

wenn Du Dokumente erstellt hast mit einem Feld, das die Eigenschaft "Text" hatte, dann bleibt dieses Feld immer "Text", auch wenn Du dies in der Maske änderst.
Notes trennt scharf zwischen Daten und Design. Du kannst Dir zum Beispiel jedes Dokument mit eienr x-beliebigen Maske anschauen. Du bist allerdings auch dafür zuständig, dass die Maske mit den Eigenschaften und Items des Dokuments zurecht kommt.

Du müsstest Dir jetzt für Deine "alten" Dokumente einen Agent schreiben, der die Textliste in eine Datumsliste umwandelt. Die neue Maske an sich hilft Dir da leider nicht weiter.

Sag' an, wenn Du genauere Infos brauchst.

Bernhard

Offline je

  • Frischling
  • *
  • Beiträge: 5
Re: Feld von Text nach Datum ändern
« Antwort #3 am: 16.04.05 - 18:26:03 »
Auf jeden Fall erstmal vielen Dank für die schnelle Antworten  :)

Ich habe jetzt versucht einen Agenten zu schreiben, der im ersten Schritt auf einer Testdatenbank das alte Feld (Textliste) entfernt und dafür ein neues Feld (Datumsliste) einfügt.

Der eigentliche Code sieht bei mir so aus:
doc.RemoveItem("ModifiedAt")
Call doc.Save(True,False,False)
Set item = New NotesItem(doc,"ModifiedAt",Now(),1024)
Call item.CopyItemToDocument(doc,"ModifiedAt")
Call doc.Save(True,False,False)

Es klappt jedoch nicht  :(

Könnt ihr mir einen Tipp geben, wie ich weiterkomme?

Offline Kadlec

  • Senior Mitglied
  • ****
  • Beiträge: 489
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Feld von Text nach Datum ändern
« Antwort #4 am: 16.04.05 - 22:04:32 »
Probier mal:

Temp := ModifiedAt;
@SetField("ModifiedAt";@TextToTime(Temp))

Gruss
Boris

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Re: Feld von Text nach Datum ändern
« Antwort #5 am: 16.04.05 - 22:54:07 »
Hi,

bin etwas aus der Übung, aber soweit ich noch weiß bewirkt auch ein
  @Command( [ToolsRefreshSelectedDocs] )
damit Änderungen an Feld-Eigenschaften in der Maske auf die Dokumente übertragen werden. Das macht im Prinzip:
 - Strg + E
 - F9
 - Strg + S
über alle selektierten Dokumente.

Michael

Glombi

  • Gast
Re: Feld von Text nach Datum ändern
« Antwort #6 am: 17.04.05 - 00:15:01 »
Dein Agent (Formelsprache) muss so aussehen:

FIELD ModifiedAt := @Now

oder in Script
'... set von doc ...
doc.ModifiedAt = Now
call doc.Save( true, true, true )


Andreas

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Feld von Text nach Datum ändern
« Antwort #7 am: 17.04.05 - 00:50:45 »
FIELD ModifiedAt := @Now

oder in Script

'... set von doc ...
doc.ModifiedAt = Now
call doc.Save( true, true, true )


Genau das meine ich!
Wer produktiv arbeitet, benutzt die @Formel-Spache.
Die LS-Anbeter (wie G... & Co) schreiben anstatt von einer Zeile gleich drei! :P ;D
« Letzte Änderung: 17.04.05 - 00:55:08 von Bruce Willis »
nobody is perfect but i'm pretty close 

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld von Text nach Datum ändern
« Antwort #8 am: 17.04.05 - 01:37:40 »
Diesmal ist es leider völlig falsch, was Du schreibst, Leo. Aber auch Glombi und Michael haben keine richtigen Codes geliefert.

On Formelsprache müsste man einen Agent schreiben, der alle bestehenden Felder mit der in Frage kommenden Maske in DT-Felder umwandelt:

SELECT Form = "XY";
FIELD BETREFFENDES_TEXTFELD := @Text (@TextToTime (BETREFFENDES_TEXTFELD))

Das @Text vorab soll sicherstellen, das auch bereits korrekte Feldinhalte nicht verhackwurstet werden oder zu einer Fehlermeldung führen.

In LS wäre das eleganter und nachvollziebarer zu lösen:

Agent läuft durch alle betreffenden Docs. Ist das das Doc instantiiert, dann

If Isdate (doc.BETREFFENDES_TEXTFELD (0)) then
   doc.BETREFFENDES_TEXTFELD = CDat (doc.BETREFFENDES_TEXTFELD (0))

Auch damit werden evtl. "falsche" Feldinhalte ignoriert.

Jens, lass uns wissen, wenn wir weiter helfen können.

Bernhard

PS: Leo - die Formelsprache ist genial. Wer diese missachtet oder denkt, er ist nur wegen LS besser, liegt völlig falsch. Tode ist auch so ein "Priester der @functions" wie ich. Aber wenn es ans Eingemachte geht, ist es Schluss mit @functions ...
Meine Erfahrung: Wer gut in @functions ist, ist dann auch in LS ein Winner, weil er weiss, was im Hintergrund eigentlich passiert. Wer nur @funcktions verwendet, ist ein Looser - ebenso wie der LS-Fetischist.

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Feld von Text nach Datum ändern
« Antwort #9 am: 17.04.05 - 21:37:45 »

Wer nur @funcktions verwendet, ist ein Looser - ebenso wie der LS-Fetischist.


Hallo Bernhard,

1. vielen Dank für Deine Erklärungen!
2. ich hoffe, Du nimmst meine Kommentare nicht zu ernst...  :)
3. übrigens, hier ist noch einer:

Du wolltest doch nicht in Deinem o.g. Satz @fuck-tions schreiben, oder? ;)

Gruß
Leo
nobody is perfect but i'm pretty close 

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld von Text nach Datum ändern
« Antwort #10 am: 17.04.05 - 22:32:16 »
Du wolltest doch nicht in Deinem o.g. Satz @fuck-tions schreiben, oder? ;)

Bestimmt nicht, Leo. Leider sind da noch mehr Schreibfehler hineingekommen - ich muss an einem meiner beiden PCs endlich mal die Tastatur austauschen - ich komme mit dem Dell-Teil nicht klar. Und eine mir gelegene Siemens-Tastatur liegt schon lange griffbereit. Die Failheit in den Kleinigkeiten ...

Bernhard

Offline je

  • Frischling
  • *
  • Beiträge: 5
Re: Feld von Text nach Datum ändern
« Antwort #11 am: 18.04.05 - 17:30:12 »
Vielen Dank für die vielen Antworten.
Ich habe das Problem mit @Command( [ToolsRefreshSelectedDocs] ) bzw. @Command( [ToolsRefreshAllDocs] ) behoben.

Hätte nicht gedacht, dass es so einfach geht  :)

So musste ich mir zumindest nicht die Mühe machen und noch einen Agenten schreiben  ;)

Glombi

  • Gast
Re: Feld von Text nach Datum ändern
« Antwort #12 am: 18.04.05 - 19:23:02 »
Wie wohl ein doc.ComputeWithForm(false,false) reagiert hätte?
Das muss ich mal bei Gelegenheit ausprobieren.

Nein, nein Leo - ich bin kein Formelhasser  ;D

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz