Avatar billede -thomas- Nybegynder
07. januar 2004 - 13:10 Der er 21 kommentarer og
1 løsning

Ryd værdi i dialog list

Jeg har to felter af typen dialog list - begge felter henter nogle keywords ind. Jeg kunne godt tænke mig, at når jeg skifter værdi i den ene dialog list, ryddes den anden, så den er blank.
Men hvordan gør jeg det?
Avatar billede pr0gm4n Nybegynder
07. januar 2004 - 13:29 #1
Så må du gøre liste2's indhold afhængig af liste1's.

Samtidigt skal du huske på feltet med liste1 at krydse af "Refresh fields on keyword change". Og på liste2 at afkrydse "Refresh choises on document refresh".

Begge disse sættes på andet faneblad i feltets properties box
Avatar billede -thomas- Nybegynder
07. januar 2004 - 14:08 #2
Jeg har sat kryds i "Refresh fields on keyword change" og i "Refresh choises on document refresh".
Men hvad gør jeg for, at i det øjeblik jeg skrifter værdi i liste1 ryddes liste2?
Avatar billede pr0gm4n Nybegynder
07. januar 2004 - 15:06 #3
Hvilken version af Notes handler det om?

Og - skal der slet ikke være nogle værdier i liste2 når noget er valgt i liste1?
Avatar billede -thomas- Nybegynder
07. januar 2004 - 15:11 #4
Det er R5, jeg bruger.

Og jo, men de bliver hentet automatisk ved refresh, ud fra hvad man har valgt i felt1. Der må bare ikke være valgt noget i felt2, for så står det også i listen, når man vil skifte. Dvs. det der står i feltet skal slettes, når man vælger en værdi i felt1.
Avatar billede mmmtm Nybegynder
07. januar 2004 - 17:20 #5
Ryd felt2 på formens PostRecalc event, fx.
Field felt2 := felt2;
@setField("felt2";"");
Avatar billede -thomas- Nybegynder
08. januar 2004 - 08:54 #6
mmmtm> Det duer desværre ikke - så kan man ikke skifte værdi i felt2 - den forsvinder igen så snart man skifter. Felt2 skal også kun ryddes, når der skiftes værdi i felt1 - ellers ikke.
Avatar billede jogii Nybegynder
08. januar 2004 - 09:03 #7
Her kommer en simpel @løsning:
Du har brug for et monitor-felt placeret efter Felt2. Jeg plejer at kalde dem "monFelt1". Feltet er CFD (eller BTV på dansk) og skal blot vise indholdet fra Felt1.
I Felt2 InputTranslation placerer du koden
@If( Felt1 = monFelt1; Felt2; "")

Der er andre muligheder, som involverer LS og diverse forskellige hændelser, men prøv denne først.

Husk at have "Refresh fields on keyword change" sat på Felt1.
Her du brug for at ændre valglisten i Felt2 (afhængig af indholdet i Felt1)?

//Jörg
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:17 #8
jogii> Ok, det vil jeg lige prøve. Hvad mener du med:

"Feltet er CFD (eller BTV på dansk) og skal blot vise indholdet fra Felt1."
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:17 #9
Og, ja jeg skal ændre indholdet af Felt2 efterfølgende. Mulighederne er afhængige af hvad der er valgt i Felt1.
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:30 #10
Er der slet ingen muligheder for at bruge OnChange-eventen i et felt til lotusscript eller formula?
Avatar billede jogii Nybegynder
08. januar 2004 - 09:36 #11
ComputedForDisplay BeregnetTilVisning (eller hvordan man vælger at oversætte)

Ideen med at have et monitor-felt er at Notes beregner felter lineær fra venstre oven mod højre bunden af en formular. Hvis Felt1 er til venstre/over for Felt2, og monFelt1 er til højre/under Felt2, så vil indholdet i Felt1 og monFelt1 være forskellig i det øjeblik at Felt2 udfører sine beregninger.
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:37 #12
Nu har jeg oprettet et cfd-felt og det ser ud til at virke! Jeg tester lige lidt og vender tilbage...
Avatar billede jogii Nybegynder
08. januar 2004 - 09:45 #13
Denne løsning virker bedst i Notes. Hvis du skal over på HTML børe du lave løsningen om til JavaScript
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:47 #14
Ok, nu har jeg så prøvet at lave det med 3 felter istedet for 2:

Felt1
Felt2
monFelt1
Felt3
monFelt2

Hvis jeg vælger en værdi i alle tre felter og bagefter skifter værdi i Felt1, er det kun Felt2 der ryddes - her skal Felt3 også ryddes. Kan du hjælpe med det? Har lige fordoblet points...
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:47 #15
Den skal kun bruges i Notes, så det er helt fint.
Avatar billede jogii Nybegynder
08. januar 2004 - 09:50 #16
FELT3 InputTranslation skal være
@If( Felt1 = monFelt1 & Felt2 = monFelt2; Felt3; "")

Jeg plejer at placerer alle monitor-felter i bunden af formularen, så roder de ikke så meget. Og så kan andre felter også udnytte monitor-effekten.
Avatar billede -thomas- Nybegynder
08. januar 2004 - 09:53 #17
Nå ja, sådan! Mange tak for hjælpen - det virker helt som det skal nu.
Avatar billede mmmtm Nybegynder
08. januar 2004 - 17:46 #18
-thomas-:
Field felt2 := felt2;
@setField("felt2";"");
i postrecalc
- gør altså det du vil have. Du skal bare ikke have "refresh fields on keyword change" på felt 2.
Avatar billede jogii Nybegynder
08. januar 2004 - 17:51 #19
Men rydder den ikke hele tiden altid hver gang der trykkes <F9>? Den skal jo kun ryddes i det specielle øjeblik hvor værdien i Felt1 har ændret sig.
Avatar billede -thomas- Nybegynder
08. januar 2004 - 18:27 #20
mmmtm> Jamen, den skal jo netop "refresh fields on keyword change" for at kunne opdatere, når man skifter keyword. Hvis jeg bruger din kode, forsvinder det jeg vælger i felt2 med det samme igen, pga. postrecalc-koden. :(
Avatar billede mmmtm Nybegynder
08. januar 2004 - 19:34 #21
-thomas- "refresh fields on keyword change" skal du kun have på felt1. Det er jo valget i felt1, der bestemmer valgene i felt2. Så ryddes felt2 ikke ved nyt valg i felt2. Så det funker fint nok, BORTSET fra at jogii (som sædvanlig :-),  har fuldstændig ret i at feltet vil ryddes ved tryk på <F9>, eller en senere recalc/refresh af dokumentet - så der er ingen tvivl om at monitormetoden er mere korrekt.
Avatar billede -thomas- Nybegynder
09. januar 2004 - 10:13 #22
Jamen jeg har også brug for "refresh fields on keyword change" på felt2, da den opdaterer en række andre felter. Men ellers mange tak for hjælpen.
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