Avatar billede laasby Nybegynder
16. marts 2005 - 14:10 Der er 8 kommentarer og
2 løsninger

Streng som index i Introduce

Hej

Jeg vil gerne kunne udføre følgende i min C5 (data kan tages fra Demodatabasen i C5):

STR 30 &Nummer="49450265"
STR 30 &Kontoindex="KontoIdx"

INTRODUCE DebKart [&Kontoindex , &Nummer]
  PRINT Navn
  PRINT Adresse1
  PRINT Adresse2
  PRINT Postby
  PAUSE

Jeg får en syntaxfejl på INTRODUCE linien.

Er der nogen som kan hjælpe med en løsning.
Jeg kan næsten gætte at kompileren ikke vil tillade at man  placere en streng som index, men er der en workaround ?
Der er tale om en C5 ver. 3.0 SP3
Avatar billede dma Nybegynder
16. marts 2005 - 17:38 #1
Jeg har prøvet en række muligheder, men jeg er ret sikker på at det ikke kan lade sig gøre. Jeg har i hvert fald aldrig set det (i mine 11 år med C5)
Avatar billede mariaf Juniormester
16. marts 2005 - 19:22 #2
Det kan man ikke. Jeg har skullet bruge det i en lidt mere kompliceret sammenhæng, men C5 kan ikke "oversætte" en tekststreng til et index (eller feltnavn).
Avatar billede laasby Nybegynder
16. marts 2005 - 20:04 #3
Hej begge 2 - Det tænkte jeg nok - tak for hjælpen - I kommer til at dele fifty-fifty
Avatar billede jasman Nybegynder
16. marts 2005 - 20:33 #4
Ejjj ... nu nåede jeg jo ikke at svare.

Men ok.
Den eneste måde du kan lave "dynamisk" kode på er, ved at skrive en en fil med kode og importere/køre den.
Jeg indrømmer blankt at det er både omstændeligt og langsomt !!!

Prøv følgende:

Lav en global funktion ved navn

INTRODUCEDEBKART

med følgende indhold:

FUNCTION INTRODUCEDEBKART (STR 50 &Idx, STR 50 &idxk1)

STR 255 &KodeFilNavn

#LOCALMACRO.OUT
    WRITE &KodeFilNavn AS TEXT FROM(%1)
#ENDMACRO

SET &KodeFilNavn = "c:\\temp\\tempkode.xal"
PRINT &KodeFIlNavn

#OUT("INTRODUCE DebKart ["+&Idx+" , "+&idxk1+"]")
#OUT("  PRINT Navn")
#OUT("  PRINT Adresse1")
#OUT("  PRINT Adresse2")
#OUT("  PRINT Postby")
#OUT("  PAUSE")
CLOSE(&KodeFilNavn)
PROCESS 9 "FILE="+&KodeFilNavn

RETURN

Lav herefter en XAL-kørsel XX med følgende indhold:

SET INTRODUCEDEBKART("KontoIdx","\"98499022\"")

BEMÆRK at den indexværdi du i dette tilfælde skal lave opslaget med skal være omgivet af "'er, da den er en strengværdi (alfanumerisk). Derfor skrives det som

"\"98499022\""

Prøv det prøv det.
Avatar billede mariaf Juniormester
16. marts 2005 - 21:33 #5
Det fungerer, men det bliver tungt.
Avatar billede laasby Nybegynder
16. marts 2005 - 21:44 #6
Det var genialt fundet på.

Tja....

Jeg er ny er (og åbenbart for utålmodig), og har allerede delt point ud (for første gang).

Håber at jeg kan hjælpe tilbage engang ved lejlighed.

/Laasby
Avatar billede Broholm Novice
16. marts 2005 - 21:48 #7
Jeg har en anden løsning som ikke er tung og mere fleksibel, men jeg vil have points for den. :-)

Til mariaf: C5/XAL kan sagtens oversætte en streng til et feltnavn.
Avatar billede laasby Nybegynder
16. marts 2005 - 21:54 #8
Det får du gerne - Jeg ved bare ikke hvordan jeg får dig givet dem.

Skal der oprettes et nyt spørgsmål ?
Avatar billede Broholm Novice
16. marts 2005 - 21:57 #9
Jeps. Gør det.
Avatar billede laasby Nybegynder
16. marts 2005 - 22:04 #10
Hej broholm

Prøv at se: Streng som index i Introduce Del 2

Så skulle der være mulighed for points
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