Jeg har tabel hindeholdende 2 datofelter. Elementerne i tabellen oprettes med XAL-kørsel hvor Dato1 sættes = Today(). Tabellen vedligeholdes med FRM hvor Dato2 udfyldes. Begge datofelter vises korrekt i FRM. I efterfølgende REP viser Dato1/Dato2 korrekt, men Dato2 giver beregningsproblemer. Jeg har lavet en lille testREP hvor jeg konverterer datofelter med Date2Num. Dato1 bliver korrekt(feks. 20.12.04=38339; 26.12.04=38345). Dato2 bliver forkert(feks. 07.12.04=38327; 18.12.04=38333; 14.12.04=38339; 20.12.04=38347; osv.). Ide/forslag til hvad problem med Dato2 er og evt. løsning efterspørges.
TestREP: INT &Dato1 INT &Dato2 Search Tabel USING xINX SET &IntDato1 = Date2Num(Tabel.Dato1) // Dato sat med XAL-kørsel SET &IntDato2 = Date2Num(Tabel.Dato2) // Dato sat med FRM OUTPUT Tabel // Dato 2 er beregnet forkert END
Jeg tror det rahp mener er, at vi gerne vil se hvad du gør ved feltet Tabel.Dato2 for at nå frem til den værdi der skal være placeret i feltet, og ikke den kode som ligger til grund for rapporten.
Dato2 udfyldes ved alm. indtastning i FRM. FormFelt: FIELD Date 0 ForUdvDato TYPE DB SEQNO 8 PAGE 1 POS 17 8 LENGTH 10 COLOR 5 GROUPID 0 TEXT # FLAGS USER ONELINE LEFT CQL Post-Change #EXTERN Tabel4 #INTRODUCE Tabel4[VarenummerIdx,Tabel4.Produktionsnr] #IF Tabel4.L›benummer THEN # IF Tabel2.ForUdvDato THEN # IF NOT Tabel2.ForUdvVejer THEN # SET Tabel2.ForUdvVejer = ForVejer # ENDIF # ENDIF #ENDIF # ENDCQL ENDFIELD
EXTERN Tabel4 INTRODUCE Tabel4[VarenummerIdx,Tabel4.Produktionsnr] IF Tabel4.L›benummer THEN IF Tabel2.ForUdvDato THEN IF NOT Tabel2.ForUdvVejer THEN SET Tabel2.ForUdvVejer = ForVejer ENDIF ENDIF ENDIF
... ændrer jo ikke værdien på ForUdvDato (Dato2) feltet. Så må man jo antage, at den værdi der står i feltet er den der bliver tastet ind ! Så hvis du mener at ForUdvDato feltet har en forkert værdi, er det brugeren af skærmbilledet der er problemet ikke koden - i hvert fald ikke den kode du har vist her.
Jeg har lavet følgende kode for lige at teste det du siger:
DATE &D[4] DATE &D1[4] INT &I
SET &D[1] = 20\12\2004 SET &D[2] = 26\12\2004 SET &D1[1] = 07\12\2004 SET &D1[2] = 18\12\2004 SET &D1[3] = 14\12\2004 SET &D1[4] = 20\12\2004
Koden udskriver de dato du nævnte samt deres numeriske værdi, og en evt. forskel mellem den nuværende numeriske værdi og den forrige for samme variabel. Forskellen udskriver jeg for at se om jeg kunne finde et mønster i forskellene (m.h.t. om der er tale om et subtotal problem).
Så du har ret i at: "Dato2 bliver forkert(feks. 07.12.04=38327; 18.12.04=38333; 14.12.04=38339; 20.12.04=38347; osv.)."
Så de korrekte værdier for dato2 for de givne datoer 07.12.04=38327; 18.12.04=38333; 14.12.04=38339; 20.12.04=38347; er: 38326; 38337; 38333; 38339 forskel -1 +4 -6 -8
Er der noget kode et andet sted, som Adderer noget til værdien i Dato2 INDEN den bliver udskrevet ???
Kunne man evt. få en eksport af tabellen, rapporten og formen at se/tilsendt ?
Så har jeg fået løst mit problem. Jeg havde en #Rep_Execute(x)i rapporten. På een af disse havde jeg en kartoteksreference -det var åbenbart problemet. Mærkeligt at rapp. har kørt udmærket i næsten et år. Fejlen blev ikke konstateret i C5W32.exe men ved afvikling med C5W32C.exe kom fejlen. Efterfølgende har jeg testet med kartoteksreference igen på #Rep_Execute(x) -rapporten kører!
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.