Avatar billede ulricho Juniormester
30. marts 2004 - 07:55 Der er 12 kommentarer og
5 løsninger

Problemer med form i XAL

Jeg har et spg, som jeg er sikker på, at I kan løse for mig:

Jeg arbejder med en form, som skal opskrive et eksisterende felt med en faktor, f.eks. Kartoteksfelt = Kartoteksfelt * &Faktor. Denne formel er indtastet i Post-load, således at den nye værdi ikke bliver gemt, men kun vises.

Problemer er, at når den er alle linier igennem, viser den linie 1 med den gamle værdi uden faktoren. Sagt på en anden måde, laver post-load det den skal, men når den er alle linier igennem, fortsætter en anden kørsel på linie 1, så den kommer forkert ud.

Svært at forklare med ord, men jeg håber, at I forstår ...
Avatar billede mariaf Juniormester
30. marts 2004 - 15:56 #1
Du skal have koden ind i Pre-record, altså før hver record.
Avatar billede ulricho Juniormester
30. marts 2004 - 17:03 #2
Det har jeg haft prøvet. Så gør den det kun rigtigt ved den første post, og ikke ved de andre. Når jeg så kører cursoren ned, kommer de andre også med. Hmm...
Avatar billede mariaf Juniormester
30. marts 2004 - 17:38 #3
Ja. Du sagde ikke noget om at der var flere poster i formen :-)
Så skal du have koden ind i init-record.
Avatar billede ulricho Juniormester
31. marts 2004 - 07:02 #4
Hej Mariaf

Jeg kan ikke se, at det er den rigtige vej at gå.

Helt konkret har jeg taget et felt og omdøbt i formen vha. #Frm_FldPmt. Dermed kan jeg vise en anden værdi end den, der er gemt i databasen. Herefter bruger jeg et index for derefter at køre #Frm_Search(kartotek).

Jeg kan ikke se, at det er rigtigt at bruge init-record, idet der er tale om opskrivning af eksisterende værdier og ikke indlæggelse af nye værdier ?!
Avatar billede mariaf Juniormester
31. marts 2004 - 16:11 #5
Skød lidt fra hoften, og har ikke lige checket det.
Om du opskriver eksisterende værdier eller lægger nye værdier ind, er vist bare to forskellige ord for samme handling.
Tester lige lidt senere, så hører du fra mig igen - hvis ikke en anden klarer i mellemtiden.
Avatar billede jasman Nybegynder
31. marts 2004 - 23:39 #6
Øeh ...
skal du bare vise resultatet af en beregning, eller skal du opdatere værdierne i databasen ?
Avatar billede jasman Nybegynder
31. marts 2004 - 23:39 #7
Sorry, det ovenfor skulle have været en kommentar ;).
Avatar billede ulricho Juniormester
01. april 2004 - 06:53 #8
Jeg skal bare have vist resultatet af beregningerne. Jeg ville helst ikke oprette en &variable for at kunne dette.
Avatar billede jasman Nybegynder
01. april 2004 - 10:08 #9
Må man spørge hvorfor du ikke vil oprette en variabel til det formål ?
Det vil da være det mest naturlige at gøre i en form.
Avatar billede jasman Nybegynder
01. april 2004 - 12:08 #10
Er det fordi at du samtidig vil have resultatet af din beregning lagret i databasen, så du kan bruge det til et andet formål ?
Avatar billede mariaf Juniormester
01. april 2004 - 18:24 #11
Det bliver altså noget rodet uden variabel - og du kommer under alle omstændigheder til at oprette en i koden for at holde styr på den oprindelige værdi.
Opret en variabel, brug den som felt, og indlæs din værdi i den. Så har du helt styr på hvad der sker, og hvad der vises.
Avatar billede ulricho Juniormester
01. april 2004 - 21:18 #12
Jeg vil helst ikke oprette en variable til formålet, idet jeg vha. Parm=? enten viser en opskrevet værdi eller værdien fra databasen. Jeg bruger formen til flere formål alt afhængig af hvor brugeren aktiverer den.

Mariaf. Du kan godt ende med at få ret, men jeg mener at kunne huske, at jeg har haft problemet før i en anden sammenhæng. Jeg kan bare ikke se, hvordan jeg fik løst det. Post-load er umiddelbart ligetil - og så ikke alligevel.

I mener altså ikke, at der skulle være en mulighed?
Avatar billede jasman Nybegynder
01. april 2004 - 23:16 #13
Hvis du bare skal beregne en værdi og ikke lagre den i databasen, så brug en variabel og post-load kode.

Hvis du skal beregne en (eller flere) værdier og lagre den/dem i databasen, så lav noget kode som gør det FØR eller MENS du viser dataene i formen.
Avatar billede ulricho Juniormester
02. april 2004 - 07:33 #14
Hvis I er enige om, at jeg skal bruge en variable, skal jeg i formen have fjernet en eksisterende kolonne midlertidigt og have indsat en ny. Kan du hjælpe med kommandoen for det? I dag bruger jeg som tidligere nævnt #Frm_FldPmt.
Avatar billede jasman Nybegynder
02. april 2004 - 09:52 #15
Hvorfor vil du kun fjerne den midlertidigt ?
Men ok.
Du opretter variablen i formen og lader det andet felt blive liggende.

Du kan lave en

#FRM_HIDE(<Bloknavn>,<Feltnavn>)
#FRM_REPAINT

for at skjule/"fjerne" et felt. Det forudsætter at dine blokke er autogenererede, for så bevirker #FRM_REPAINT at skærmen bliver gentegnet pænt.

Tilsvarende kan man så lave en

#FRM_SHOW(<bloknavn>,<feltnavn>)
#FRM_REPAINT

Og så er det bare at anvende disse to kommandoer på de respektive felter, i de respektive tilfælde.
Avatar billede jasman Nybegynder
02. april 2004 - 09:56 #16
Ups.

Glemte lige at #FRM_HIDE & #FRM_SHOW virker på TABELfelter.
Hvis det er virtuelle felter (variable) skal man lige skrive
#FRM_HIDEV eller #FRM_SHOWV

:)
Avatar billede ulricho Juniormester
02. april 2004 - 10:44 #17
Perfekt. Tak til jer begge to.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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