Domino 9 und frühere Versionen > Entwicklung

Sortierung in den Spalten fehlerhaft

<< < (2/3) > >>

RalfK:
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

TMC:
Du bist Dir wirklich 100% sicher, dass
[*]Der Datentyp des Feldes in allen Dokumenten "Number" ist?
[*]In der Spaltenformel nur der Name des Feldes steht?
[*]Der programmatische Name in der Spalte eindeutig ist?[/list]

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.

Semeaphoros:
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.

RalfK:
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

--- Ende Zitat ---

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

Grüße
Ralf

koehlerbv:
Mit

Result := @Text(ISOWeekNum);

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

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln