Avatar billede sbay Nybegynder
02. marts 2004 - 15:17 Der er 9 kommentarer og
1 løsning

Sammenligning med dato

Hejsa

Jeg har et felt med en string-værdi. Denne værdi står som "18-09-2002". Denne værdi vil jeg gerne sammenligne med 31/12/2003! Hvordan gør man det??? Jeg har prøvet med @texttotime uden held (vil helst holde det i @formula, da resten af agenten er i dette!!!)

Ønske:

31/12/2003 < @texttoDate(FELT) < 01/03/2004


Hjælp??
02. marts 2004 - 15:38 #1
Du skal konvertere alle tidsangivelser fra tekst til tid, f.eks. sådan:

_time1 := @TextToTime("31-12-2003");
_time2 := @TextToTime("01-03-2004");
@If(
    _time1 < TimeField & TimeField < _time2;
    @Prompt([Ok];"Test";"Sandt");
    @Prompt([Ok];"Test";"Falskt")
)

TimeField er det felt du vil teste på. Du skal så erstatte @Prompt([OK])-linierne med det du gerne vil have gjort, hvis det er sandt eller falskt.
Avatar billede sbay Nybegynder
02. marts 2004 - 15:49 #2
undskyld - jeg vrøvler...... Det er i et view - som selection formula.... Kan jeg stadig gøre som du beskriver???

Mit felt, SalaryDate, indeholder en streng: "18-09-2002". Det er denne streng jeg gerne vil sammenligne med 31 december og 1 marts 2004.
02. marts 2004 - 16:08 #3
Ja, så skal du skrive følgende i view selection:
_time1 := @TextToTime("31-12-2003");
_time2 := @TextToTime("01-03-2004");
SELECT (_time1 < SalaryDate) & (SalaryDate < _time2)

Jeg har testet det med et andet feltnavn, men det burde jo ingen forskel gøre. Da jeg prøvede, så jeg alle dokumenterne i Domino Designer, men kun dem man skulle i Notes, så husk at test view'et i Notes og ikke bare opdatere i Domino Designer.
Avatar billede sbay Nybegynder
02. marts 2004 - 16:14 #4
hmmm - virker ikke helt! Her er koden:

_time1 := @TextToTime("31-12-2003");
_time2 := @TextToTime("01-03-2004");
SELECT (DocType=".TimeSheet") & (LineType = "") & (ApproveStatus = "Approved") & (HidDeleted=0) &
(
(SalaryOperaNo = "98.910.01" & InvoiceOrderType = "7" )|
(SalaryOperaNo = "98.910.01" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.08" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.09" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.34" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.58" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.59" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.61" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.78" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.91" & InvoiceOrderType = "8")|
(SalaryOperaNo = "98.910.99" & InvoiceOrderType = "8")
)

& (_time1 < @TextToTime(SalaryDate)) & (@TextToTime(SalaryDate) < _time2)
Avatar billede jogii Nybegynder
02. marts 2004 - 16:21 #5
Prøv at se på følgende kode:

_field := <feltnavn>;
_date := @TextToTime(@Text(_field));
SELECT [31-12-2003] < _date & _date < [01-03-2004]

anvendelsen af kantede parenteser gør at værdierne er binært hardkodede.
Når en amerikaner åbner koden vil der stå
SELECT [12-31-2003] < _date & _date < [03-01-2004]
meget praktisk.

Grunden til at jeg pakker datokonverteringen ind i @TextToTime(@Text(_field)) er at så kan jeg både konvertere tekst og binære forekomster.
02. marts 2004 - 16:31 #6
Prøv at lave et test-view, hvor du kun angiver den kode jeg gav dig som selection formula, og så tilføj de øvrige betingelser senere.
Avatar billede sbay Nybegynder
03. marts 2004 - 09:11 #7
jubiii - nu virker det!
03. marts 2004 - 16:27 #8
Hvad med points?
Avatar billede sbay Nybegynder
03. marts 2004 - 22:52 #9
jeg havde accepteret - gad vide hvad der er sket
Avatar billede jogii Nybegynder
03. marts 2004 - 22:54 #10
Hvad var der galt med oversigten?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester