Avatar billede avest Nybegynder
11. juli 2002 - 10:41 Der er 13 kommentarer og
1 løsning

computewithform og datatyper

Hmm, jeg kan ikke rigtigt blive klog på Notes datatyper for felterne.

Jeg har tre felter i en formular alle af typen beregnet tal.

felt1 : felt0 - henter værdien fra et andet talfelt felt2 : @TextToNumber(@dblookup(...))
felt3 : felt1 * felt2

Det virker fint hvis jeg åbner formularen, men hvis jeg benytter ComputeWithForm påstår den at "@formularen ønsker tal"

Er det en fejl i Notes eller er der noget som jeg har overset?
Avatar billede avest Nybegynder
11. juli 2002 - 10:58 #1
Jeg har fundet ud af at det er felt 1 som er problemet.
Hvis jeg ændrer felt 3 : @textToNumber(felt1) + felt2 melder computeWithForm ikke fejl. Desværre står der så bare @error i felt3, så det har ikke løst problemet.

Gode råd ønskes.
Avatar billede cdelicht Nybegynder
12. juli 2002 - 09:14 #2
Tilføj @TextTonumber i felt1 også
Felt1: @TextToNumber(Felt0)
Avatar billede avest Nybegynder
15. juli 2002 - 10:07 #3
Næh!

felt1 = @texttonumber(felt0)
felt2 = @texttonumber(@dblookuo(...)
felt3 = felt1 * felt2

Dette virker ikke med computewithform og jeg kan heller ikke åbne dokumenter. Men felt0 er jo også allerede numerisk.
Avatar billede cdelicht Nybegynder
15. juli 2002 - 10:12 #4
Har du dokumentet åbent når du starter ComputeWithForm?
Avatar billede avest Nybegynder
15. juli 2002 - 10:15 #5
Nej
Avatar billede cdelicht Nybegynder
15. juli 2002 - 10:18 #6
Er det et helt nyt dokument?
Paste lige al koden ind her, hvor du kalder ComputeWithForm...
Avatar billede avest Nybegynder
15. juli 2002 - 10:21 #7
Sub Click(Source As Button)
   
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim view As NotesView
    Dim success As Variant
    Set db = session.CurrentDatabase
    Set view = db.Getview("Total")
    Set doc = view.GetFirstDocument
   
    doc.Form = "SPmainMisbrug"
   
    success = doc.ComputeWithForm( False, True )
    Msgbox "Success: " & success
    If success Then
          Call doc.Save( True, True )
    End If
   
End Sub
Avatar billede cdelicht Nybegynder
15. juli 2002 - 10:34 #8
(Du kan godt slette doc.Form = "SPmainMisbrug" når det ikke er en ny form.)
Prøv følgende på formen:
Felt3 = @TextToNumber(Felt0)*@TextToNumber(@DbLookup(...)); dvs. du springer felt 1 og 2 "over".
Avatar billede avest Nybegynder
15. juli 2002 - 10:49 #9
@TextToNumber(felt0) * @TextToNumber(@DbLookup( "":"NoCache"; "":""; "SPkonstanter" ; "Misbrug_00kl";2))

Giver fejlen "Forventede tal" når computewithForm benyttes.
Åbnesdokumentet og gemmes igen fås fejlen "forventede tekst"

felt0 * @TextToNumber(@DbLookup( "":"NoCache"; "":""; "SPkonstanter" ; "Misbrug_00kl";2))

Til gengæld virkede dette både på den ene og den anden måde.
Dette er som det skal være. Felt0 er et tal og skal derfor ikke laves om, @Dblookup returnerer text og skal derfor konverteres.
Avatar billede cdelicht Nybegynder
15. juli 2002 - 10:54 #10
"Til gengæld virkede dette både på den ene og den anden måde."
Jamen, er problemet så løst?
Avatar billede avest Nybegynder
15. juli 2002 - 10:57 #11
Næh, jag skal jo stadig have det gennem felt1 og felt to. Sidstnævnte virker dog ganske udemærket.
Avatar billede cdelicht Nybegynder
15. juli 2002 - 11:07 #12
For at læse værdien af et Felt0 over i Felt1 skal koden i Felt1 være "Felt0" og ikke andet.
Felt1 må IKKE være "Computed for display", og skal være "sat" inden du kører ComputeWithForm, dvs. dokumentet skal have være åbnet og gemt forinden (evt. back-end).
Avatar billede avest Nybegynder
15. juli 2002 - 11:15 #13
oh, "Computed for display". Det hjalp at slå det fra.
Avatar billede cdelicht Nybegynder
15. juli 2002 - 11:17 #14
Ja, ærgeligt at jeg ikke tænkte på det straks, men sådan er det jo ;-)
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