23. marts 2004 - 19:45Der er
23 kommentarer og 1 løsning
Referencefelt på variable
Jeg har på en form indsat en variabel og ønsker at der skal være referencefelt på feltet. Ved tryk på alt H, skal jeg kunne slå op i Medarbejder.Medarbejder. Er det muligt at gøre det..... så det virker på samme måde, som hvis det er et databasefelt, man har indsat?
Teksten skal lægges på Pre-field, så den er god nok :-) Men den er noget langhåret, så hvis det driller, er det ikke uden grund.
SET &help = "Her står hjælpeteksten" SET &Parm = 'File='+FileStr(kartoteksnavn)+ 'List=Felt'+ 'Command='+IndexStr(kartotek,index)+ 'Command=Search'+ 'Mode=Selece='FieldStr(Kartotek,felt)
Pas på at der ikke er mellemrum. Af en eller anden grund, så virker koden nemlig ikke med mellemrum. Der skal eksistere et listbillede, der har samme navn som Felt, og selvfølgelig med de ting, du ønsker at vise fra kartoteket (få men relevante oplysninger).
Det virker nogenlunde, men jeg bliver bedt om at vælge et kartotek og derefter et indeks, når jeg slår op med alt H. Men jeg har sat kartotek, felter samt indeks ind der hvor de skal. Desuden findes der et listbillede som hedder medarbejder og det er det jeg vil bruge. Kan du regne ud, hvad der er galt?
Indexet skal nok være MedIdx, Kartoteket Medarbejder og Felt Medarbejder. Listbilledet skal hedde medarbejder. Hvis det er på plads, så begynder det at knibe med idéer (lige nu).
SET &help="Her står hjæpeteksten" SET &Parm='file='+FileStr(Medarbejder)+ 'list=Medarbejder'+ 'command='+indexstr(Medarbejder,MedIdx)+ 'command=search'+ 'mode=select='+FieldStr(Medarbejder,Medarbejder)
Det er ikke meget der skal til hva *sg*. Du har ret, nu ryger jeg direkte ind i listbilledet, som jeg gerne ville. Nu er mit eneste problem bare, at jeg ikke kan trække værdien med ned i det felt, hvor jeg kalder fra. Tjah, hvis du snart skal til at i seng, kan vi jo fortsætte en anden dag!? Må jeg forresten spørge, hvad din baggrund er for at have al den viden om c5/xal!?
Jeg er systemprogrammør på C5 og XAL, så jeg _skal_ vide det. Der er bare langt imellem at jeg bruger lige netop denne problemstilling. På feltet er der en række parametre (findes ved at trykke F6). En af dem hedder Søgning efter input. Det skal stå til Ja.
Har prøvet at sætte til JA, men det hjælper ikke. Er det måske fordi at ordet file skal erstattes med det variabelnavn jeg bruger på mit skærmbillede. Eller skal &Parm evt. erstattes? Hvor er du systemprogrammør?
Jeg har oprettet et skærmbillede, en blok og et virtuelt felt. Der har jeg lagt koden ind, og det virker fint her. Der mangler nok en opsætning et andet sted - tænker lige over det. Jeg er konsulent hos Conzern, København
Undskyld jeg mænger mig men måske jeg må bidrage med " putfield=xxx" og "command=find".
I et nyoprettet skærmbillede hvori jeg har oprettet en blok ud fra kartoteket Parametre, hvori jeg igen har indsat feltet Tekst1 kan jeg få flg. til at du SET &Parm= "File=Medarbejder "+ "List=Medarbejder "+ "Index=MedarbejderIdx "+ "SearchField=Medarbejder="+Tekst1+" "+ "Command=Find "+ "Mode=Select=Medarbejder "+ "PutField=Tekst1"
Til gengæld er min XAL slet ikke med på at den vil være med til noget som helst 'virtuelt'. Når jeg fx. opretter et alfa 10 felt i samme blok der navngives HGL og derpå skriver SET &Parm= "File=Medarbejder "+ "List=Medarbejder "+ "Index=MedarbejderIdx "+ "SearchField=Medarbejder="+&HGL+" "+ "Command=Find "+ "Mode=Select=Medarbejder "+ "PutField=&HGL" ... terminerer XAL'en bare med sådan et drøn!
Netop den detalje har jeg også bakset med før og endte så op med at lave en semi-virtuel løsning nemlig at oprette et felt i den aktuelle database-tabel hvorpå jeg derpå satte NEJ i 'Gem feltets indhold'.
I øvrigt er det indrømmet enormt bavlet at fedte med de der forb..... blanke og anførselstegn! Hvis ellers man har tålmodighed til at sætte sig ind i dets inkonsekvente virkemåde findes der i CtrlF12-menuen (udvikling) et 'hjælpeværktøj' kaldet 'Listbilleder' (IKKE det nederste menupunkt!).
Jeg har lige prøvet det du skriver først i dit indlæg. Når jeg sætter mit variabelnavn ind får jeg følgende fejl: Databasen er kaldt med et illegalt kartotek....... osv osv. Skal din kode ikke tages helt bogstaveligt? Jeg har bl.a. byttet indekset ud med MedIdx!?
Hej Torben Din oplevelse svarer præcis til mit 2. eksempel - hvor jeg altså bare oprettede en virtuel streng på 10 karakterer som jeg navngav "HGL".
I mit 1. eksempel har jeg taget udgangspunkt i en nyoprettet formblok til hvilken (blokken) jeg havde tilknyttet en DK/DK-XAL's standard "Parameter"-tabellen. I den findes der et databasefelt, der hedder 'Tekst1', som iht. ovenstående benyttes som afsæt og modtage-areal for listbilledet. Såvidt jeg kan forstå på den tekniske reference er der vist ingen vej udenom at benytte et databasefelt hvis man vil undgå 'udsmidningen'.
.... og så var det at jeg en gang fandt på at arrangere mig med et semi-virtuelt felt.
->holgergluesing: Du har samme fejl som mit første forsøg - der mangler blanke (mellemrum) i kaldet. Du kan sagtens lave et virtuelt felt, og koden virker fint her, og dermed er det lidt svært at gennemskue hvad der er galt hos torben_32.
Checket plejer at hedde "dbd - er der sat referencekartotekt og -felt på" - lst - har det samme feltnavn og slutteligt at der er ja i søg efter input på feltet. Der mangler så lige en.........Du har ikke ændret i opsætningerne på kartoteket, vel? Så er der kun formen tilbage. Du har Ja i rette feltets indhold? Og Ja til søg efter input?
Må jeg erfare hvorledes i hver især opretter / tilknytter de felter i den blok I har oprettet i jeres skærmbilleder?
1) et database-felt, som fx. Tekst1 i Parameter-tabellen, tilknyttes ved at man i blokken taster a) F2 b) enter i det felt der dukker op c) udvælgelse af feltnavnet 'Tekst1' 2) et virtuelt felt, som fx. &HGL, OPRETTES/ERKLÆRES ved at man i blokken taster a) F2 b) HGL c) udvælger felttypen (her Alfanummerisk) d) 10 (for længden)
Det første (ex. database-feltet Parameter.Tekst1) virker fint som vist i mit allerførste eksempel. Mens det sidste (ex. &HGL) tilsyneladende IKKE SKAL kunne lade sig gøre.
Nå, jeg tabte tråden lidt! Har fundet en anden løsning til at klare problemet, så jeg kan undgå at slå op i det virtuelle felt. Bare noget med at lave en lille form, hvor medarbejder er kartotek/felt og når jeg skifter medarbejderen følger min globale variabel med. Nok lidt nemmere, er jeg ved at tro :-). Slut på spørgsmålet for mit vedkommende og mange tak for budene.
->holgergluesing: Løsning 2 virker, hvis du bruger den kode, jeg har skrevet 21:56:38 - prøv at kopiere den direkte ind. ->Torben_32: Selv tak. Det var dejligt lige at få genopfrisket lidt af barnelærdommen.
Også jeg takker for hjernegymnastikken ... og at jeg herved fandt frem til løsningen på et problem jeg tidligere har måttet parkere.
Jeg fandt frem til, at det XAL'en i mit allerførste indlæg terminerede for er sekvensen 'Putfield=&HGL' ... og den tumpet nok bare kan undelades!
Således blev mit resultat SET &Parm = "File=Medarbejder "+ "List=Medarbejder "+ "Index=MedarbejderIdx "+ "SearchField=Medarbejder="+&HGL+ " " + "Command=Find "+ "Mode=Select=Medarbejder "
Fremfor "Command=Search " der altid lister toppen af oversigten bevirker sekvensen "SearchField=Medarbejder="+&HGL+ " " + "Command=Find " at listbilledet positioners på den forekomst, der ligger nærmest det der i opslagsøjeblikket står i det virtuelle felt ... der i øvrigt er oprettet som beskrevet i den anden metode i mit foregående indlæg.
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.