Fehler bei der Erstellung temporärer Indexe mit Datetime
Von:Markus Mayer markus-newsbox@web.de
An:Uwe Habermann Uwe.Habermann@dfpug.de
erstellt am:20.06.2018 10:37:41 - #20319 in section Antworten     Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 10:37:41--

Hallo Uwe,

>Daraus wird dieser Codeblock:

Danke, das funktioniert.

Beste Grüße
Markus

Von:Uwe Habermann Uwe.Habermann@dfpug.de
An:Markus Mayer markus-newsbox@web.de
erstellt am:20.06.2018 08:32:14 - #20318 in section Antworten     Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 08:32:14--

Hallo Markus!

>>Wann kommt die?<<

Das kann nur Rainer Becker beantworten.

>>Oder kannst Du mir bis dahin einen Hotfix nennen?<<

In Vfxobjbase.vcx - cgridbase.onloadposition findest Du:

lckey = THIS.&cColumn..CONTROLSOURCE

Daraus wird dieser Codeblock:

lcControlName = This.&cColumn..CurrentControl
loControl = This.&cColumn..&lcControlName
IF !EMPTY(loControl.Comment)
lcKey = loControl.Comment
ELSE
lckey = THIS.&cColumn..CONTROLSOURCE
ENDIF

Viele Grüße

Uwe Habermann

Von:Markus Mayer markus-newsbox@web.de
An:Uwe Habermann Uwe.Habermann@dfpug.de
erstellt am:20.06.2018 07:35:10 - #20317 in section Antworten     Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 07:35:10--

Hallo Uwe,

>Das Verhalten wird in der nächsten Version von VFX gefixt.

Wann kommt die? Oder kannst Du mir bis dahin einen Hotfix nennen?

Beste Grüße
Markus Mayer


Von:Uwe Habermann Uwe.Habermann@dfpug.de
An:Markus Mayer markus-newsbox@web.de
erstellt am:19.06.2018 13:55:46 - #20310 in section Antworten     Antworten mit Zitat
--from Newsreader at Dienstag, 19. Juni 2018; 13:55:46--

Hallo Markus!

>>Meine Frage ist nun, wie ich einen funktionierenden Index auf eine
DateTime-Feld hinbekomme, der auch mit Nullwerten kann, so dass die
Sortierung im Suchengrid klappt.<<

Dein Weg mit dem Comment ist schon richtig. Leider wird das aber nicht beim
erneuten Öffnen des Formulars berücksichtigt. Das Verhalten wird in der
nächsten Version von VFX gefixt.

Viele Grüße

Uwe Habermann

Von:Markus Mayer markus-newsbox@web.de
An:Uwe Habermann Uwe.Habermann@dfpug.de
erstellt am:18.06.2018 15:42:17 - #20309 in section Antworten     Antworten mit Zitat
--from Newsreader at Montag, 18. Juni 2018; 15:42:17--

Hallo Uwe,

>Was machst Du da?

im Comment des Gridfeldes steht ja normalerweise das Feld aus der Tabelle,
bei mir also "cama_Massnahmen.ma_datum_Beginn". Ich denke, dass schreibt der
Builder da rein. VFX macht in vfxObjectBase.cGridBase.onSetOrder daraus
einen Indexausdruck "TTOC(" + csource + ", 1)". In der selben Funktion
fängt ON ERROR _vfx_index_error = .T. Fehler ab. Ein vfxWaitWindows teilt
dann nur mit, dass die Funktion nicht tut. Kommentiere ich diese
Fehlerbehandlung aus, erhalte ich einen Fehler. Dieser entsteht, weil Indexe
scheinbar Probleme mit Nullwerten haben. Hab also den Ausdruck im Comment
erweitert auf NVL(cama_Massnahmen.ma_datum_Beginn,
Datetime(1900,1,1,0,0,0)). Das funktioniert auch erst mal. In vfxRes wird
dieser Wert beim Schließen des Forms gespeichert. Das wiederum führt dazu,
dass beim nächsten Öffnen keine Daten mehr angezeigt werden.

Meine Frage ist nun, wie ich einen funktionierenden Index auf eine
DateTime-Feld hinbekomme, der auch mit Nullwerten kann, so dass die
Sortierung im Suchengrid klappt.

Beste Grüße
Markus Mayer

Von:Uwe Habermann Uwe.Habermann@dfpug.de
An:Markus Mayer markus-newsbox@web.de
erstellt am:18.06.2018 08:25:59 - #20308 in section Antworten     Antworten mit Zitat
--from Newsreader at Montag, 18. Juni 2018; 08:25:59--

Hallo Markus!

>>Hab nun versucht im
Coment des Gridfeldes Nullwerte mit NVL abzufangen. Das funktioniert auch,
die Sortierung klappt dann.<<

Was machst Du da?

Viele Grüße

Uwe Habermann

Von:Markus Mayer markus-newsbox@web.de
An:ALL :gelesen
erstellt am:17.06.2018 22:54:29 - #20307 in section Antworten     Antworten mit Zitat
--from Newsreader at Sonntag, 17. Juni 2018; 22:54:29--

Hallo Uwe, hallo zusammen,

hab in einem cOneToManyPageFrame-Form auf der Suchenseiten ein
DateTime-Feld. Die Daten sollen nach diesem Feld sortiert werden können.
Wenn die Daten von einem SQLServer kommen, kann dieses Feld auch Nullwerte
enthalten. Das Anlegen der temporären Indexe in cGridbase.onSetOrder
funktioniert dann nicht. Schalte ich die Fehlerbehandlung aus, bekomme ich
einen Fehler, dass der Index nicht erstellt werden kann. Hab nun versucht im
Coment des Gridfeldes Nullwerte mit NVL abzufangen. Das funktioniert auch,
die Sortierung klappt dann. Schließe und öffne ich das Form dann wieder,
sind alle Daten futsch. Erst wenn ich die entsprechende Zeile in vfxres
lösche, werden sie wieder angezeigt.

Wie muss ich hier vorgehen, dass korrekt nach Datetime sortiert werden kann,
auch wenn Nullwerte drin sind?

Beste Grüße
Markus Mayer