Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: RalfK am 25.01.05 - 17:51:24

Titel: Sortierung in den Spalten fehlerhaft
Beitrag von: RalfK am 25.01.05 - 17:51:24
Hallo,

ich habe ein kleines Problem mit den Spalten einer Ansicht. Dort ist die führende Spalte die Kalenderwoche. Absteigend sortiert. Nur leider hängt er zB die 10 ans Ende der 1 das Ganze sieht in etwa so aus:

1
1
1
1
10
11
11
2
2
3
3
3
31

anscheinend zählt er nur den vorderen Wert einer Zahl. Wie kann ich das abstellen? Über die Eigenschaften scheints nicht zu klappen. Auch wenn ich die Kalenderwoche berechnen lasse, sortiert er weiterhin so. Auch wenn ich manuell zwischen auf und absteigend sortieren lasse.

Grüße
Ralf
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: TMC am 25.01.05 - 18:10:41
Ergebnis ist wohl Text und nicht Zahl ?

Mach mal einen @TextToNumber() drumherum.

Wenn also in der Spaltenformel z.B. steht:
Kalenderwoche

Dann schreibst Du
@TextToNumber(Kalenderwoche)
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: koehlerbv am 25.01.05 - 18:43:23
Das ist eindeutig eine "Zahl" in einem Textfeld.
Ich kann nur dringend empfehlen, Werte immer entsprechend ihrer Datentypen zu speichern. Zahlen als Text machen Ärger (wie Du siehst), Datums-/Zeitangaben als Text sind VERHEEREND (insbesondere in internationalen Umgebungen, aber selbst lokal kann man nicht immer verhindern, dass der Anwender seine OS-Einstellungen "spassenshalber" mal ändert).

Bernhard
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: Glombi am 25.01.05 - 19:20:11
Wenn es denn unbedingt Zahl als Text sein muss, dann folgenden Workaround

@Right("0" + KW;2)

Das stellt eine führende Null voran, sofern die KW einstellig ist.

Andreas
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: RalfK am 27.01.05 - 16:55:22
Verdammt. Ich bin aber auch sowas von blind. Da sucht man stundenlang ob irgendwie die Formeln nicht stimmen oder die Spalten in der Ansicht falsch sind und dann steht wirklich in diesem Feld ein kleines "T".  ::)

Dank für die Hilfe.  :)

Ralf
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: RalfK am 28.02.05 - 09:06:25
Nach längerer Pause habe ich mich mal daran gesetzt und den Feldwert der Maske von Text auf Zahl geändert.

Danach habe ich ein RefreshAllDocuments drüber rennen lassen.

Leider ist die Sortierung immer noch nicht richtig, sondern weiterhin wie im ersten Post beschrieben.

Was nun?

Grüße
Ralf
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: TMC am 28.02.05 - 09:53:53
Du bist Dir wirklich 100% sicher, dass
Falls ja, dann muss auch die Spaltensortierung funtionieren. Wenn Du nicht weiterkommst, kannst Du ja auch mal die DB mit 3-4 Testdokumenten hier reinhängen.
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: Semeaphoros am 28.02.05 - 10:16:17
Genau das sind die Punkte, und mit einem RefreshAllDocuments wird kein Datentyp eines bestehenden Eintrages geändert, es sei denn, es ist ein berechnetes Feld.
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: RalfK am 28.02.05 - 12:08:30
Hallo. Hier hab ich mal die Formel für das Kalenderfeld. Wie gesagt, zuerst war es ein Textfeld (berechnet). Damit wurden dann diverse Dokumente eingepflegt.

Ich habe jetzt das Feld in Zahl/berechnet geändert und ein neues Dokument erstellt. Trotzdem sortiert er es nicht und behandelt es wie einen Text. Hier die Formel (danke an Eknori für die Grundformel):


Zitat
FirstOfYear := @Date(@Year(Datum); 1; 1);
LastOfYear := @Date(@Year(Datum); 12; 31);
FirstDayNum := @Weekday(FirstOfYear);
LastDayNum := @Weekday(LastOfYear);

ISOFirstDayNum := @If(FirstDayNum = 1; 7; FirstDayNum - 1);
ISOLastDayNum := @If(LastDayNum = 1; 7; LastDayNum - 1);

IsFirstWeek := 7 - ISOFirstDayNum > 2;
IsLastWeek := 7 - ISOLastDayNum < 4;

ISOFirstDay := @If(IsFirstWeek;
            @Adjust(FirstOfYear; 0; 0; 1 - ISOFirstDayNum; 0; 0; 0);
            @Adjust(FirstOfYear; 0; 0; 8 - ISOFirstDayNum; 0; 0; 0));

ISOLastDay := @If(IsLastWeek;
            @Adjust(LastOfYear; 0; 0; 7 - ISOLastDayNum; 0; 0; 0);
            @Adjust(LastOfYear; 0; 0; -ISOLastDayNum; 0; 0; 0));


FirstWeekNextYear := @If(Datum > ISOLastDay; @Return(@Prompt([OK]; "FWNY";
@Text(@Year(D)+1) + "W01")); NULL);

LastWeekLastYear := (Datum - @Adjust(FirstOfYear; -1; 0; 0; 0; 0; 0))/60/60/24/7;
AdjustLastWeek := 1 - (LastWeekLastYear - @Integer(LastWeekLastYear));
@Set("LastWeekLastYear"; LastWeekLastYear + AdjustLastWeek);
@If(Datum < ISOFirstDay;
@Return(@Prompt([OK]; "LWLY"; @Text(@Year(Datum) - 1) + "W" +
@Text(LastWeekLastYear))); NULL);

NumWeeks := (Datum - ISOFirstDay)/60/60/24/7;

WeekAdjust := 1 - (NumWeeks - @Integer(NumWeeks));
ISOWeekNum := NumWeeks + WeekAdjust;

Pad:=@If(ISOWeekNum<10;"0";"");
Result := @Text(ISOWeekNum);

Result

Muss ich ansonsten in dieser Formel noch eine TexttoNumber(Result) einbauen?

Grüße
Ralf
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: koehlerbv am 28.02.05 - 12:11:41
Mit

Result := @Text(ISOWeekNum);

verlangst Du doch selbst ausdrücklich, dass die ISOWeekNum in Text umgewandelt wird ...

Bernhard
Titel: Re: Sortierung in den Spalten fehlerhaft
Beitrag von: RalfK am 04.03.05 - 13:27:12
Dank dir vielmals. Klappt jetzt ohne Probleme. Hab das übersehen.

Ralf