14. januar 2002 - 11:08Der er
12 kommentarer og 1 løsning
Interface i Xal
Hmm chefen her bliver ved :-) Nogen som kan hjælpe med dette: og lige fra hvor jeg går ind og eksportere debitor data, hmm har nemlig glemt manularen !! HMM er dette programmering for nybegynder eller er det en tester ? ?
Lav et interface f.eks. som en Xal kørsel:
Eksporter data fra debitorkartoteket:
Konto, Navn, adressefelter, saldo danske kroner.
Lav interfacet således
1) At der kan afgrænses fra/til på debitorkonto samt 2) Checkes for om brugeren skriver fra den karakterbaserede version eller GUI versionen og hvis fra den karakterbaserede version, at karakterer i filen skrives i ANSI format
Du vil gerne have lavet en XAL-kørsel, hvor du eksporter data fra ovennævnte felter?
Det er nemmere at lave den i rapportgenerator. Du vælger Debkart, tilføj de relevante felter og kør rapporten - og nu kommer det væsentlige: Du skal gemme rapporten. Navnet er ligegyldigt. Kør rapporten igennem og gå ud. Nu går du i udviklingsmenuen under REP og finder rapporten igen. Nu kan den rettes til med diverse betingelser og det bedste er, at den ligger som QT, hvilket medfører at du kan sortere og afgrænse på hvad som helst.
Er du ikke tilfreds med rapporten, så lav en ny med samme navn - den vil så overskrive den gamle.
Brug datamanipulation til at lave en skabelon til eksport, og ret så siden koden til med de specielle ting du vil have tilføjet.
1) GENERELT / PERIODISK / DATAMANIPULATION 2) Vælg tabellen DebKart (DebTable i UK kerne) i feltet kartotek/table. 3) I feltet handling/action vælges export. 4) I feltet regnskab/datafile vælges det regnskab du vil eksportere fra. 5) I filtype/filetype vælges komma fil 6) Sig evt. Ja til vindue og tast 1 i feltet ved siden af, for at få kørslen til at indikere hvor mange poster der eksporteres. 7) Skift nu blok (SHIFT+F8) 8) Udvælg nu med ALT+H i Navn/Name feltet de felter fra DebKart du vil have med i eksporten. 9) Svar ja i feltet fil, for at få feltet med i eksporten. 10) I feltet udtryk/expression skrives formlen: #GuiVersion ? <feltnavn> : SYSINFO(5030,<feltnavn>), HVOR <feltnavn> udskiftes med navnet på det felt som du har valgt i Navn/Name. DET ER VIGTIGT AT FELTNAVNET SKRIVES NØJAGTIGT SOM I NAVN FELTET, ELLERS FÅR DU EN FEJL. 11) Gentag 8-10 for alle felter som du vil have med. 12) Gå nu i lokalmenuen (F10 eller ALT+L i windows) og vælg udfør/execute 13) Nu blive du spurgt om du vil gemme kørslen, og du svarer JA. 14) System beder dig om et navn under hvilket programmet skal gemmes. Her kunne du så skrive DebKartExp 15) Nu vil programmet (som faktisk er en QUERY) ligge i GENERELT / TILPASNING / UDVIKLINGSMENU / QTX 16) I og med at programmet er QT-baseret vil du frit kunne tilføje afgrænsningsfelter fra debitorkartoteket, og dermed styre din AFGRÆNSNING !!!
Du kan faktisk også bare gå i datamanipulationen næste gang du vil køre eksporten af debitorkartoteket. System husker nemlig opsætningen, så du behøver faktisk slet ikke at gå i udviklingsmenuen.
Du kan ikke nøjes med at gå ind i datamanipulation - i hvert fald ikke hvis I er flere brugere. Du kan ikke stole på at den ikke er ændret, og så er dine data pludselig ikke konsistente.
Punkt 10 ser i alt sin enkelthed sådan ud: (Her forudsætter vi at du er kommet så langt som til Navn feltet i Debkart). #GUIVersion ? <feltnavn> : SYSINFO(5030,<feltnavn>) BLIVER SÅ TIL #GUIVERSION ? Navn : SYSINFO(5030,Navn)
For feltet Kontonummer ser den sådan ud: #GUIVERSION ? KontoNummer : SYSINFO(5030,KontoNummer)
Formlen gør i alt sin enkelthed det at den spørger Er det Windows hvis det er så skriv feltet UDEN konvertering. Hvis IKKE det er windows, så skriv med konvertering fra ASCII til ANSI.
Hmm skal jeg lukke dette spørgsmål og starte forfra, eller hvad : \"Cheffen\" vil have at det skal foregå via pre-body - Macroer o.s.v. tror faktisk bare han vil have at tiden skal gå efterhånden *BG*
Er du på kursus eller SKAL du bare lære hvordan det gøres siden det SKAL kodes fra start af.
Resultatet af ovenstående giver nemlig nøjagtig hvad du efterlyser. Koden dannes i pre-body på QTX\'en, og ser sådan ud:
SET &Counter = &Counter + 1
IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,3 ENDIF
SET AccountNumber = #GuiVersion ? AccountNumber : SYSINFO(5030,Accountnumber) SET Name = #GuiVersion ? Name : SYSINFO(5030,Name) SET Address1 = #GuiVersion ? Address1 : SYSINFO(5030,Address1) SET Address2 = #GuiVersion ? Address2 : SYSINFO(5030,Address2) SET Address3 = #GuiVersion ? Address3 : SYSINFO(5030,Address3) SET Zip = #GuiVersion ? Zip : SYSINFO(5030,Zip)
WRITE &FileName AS COMMA FROM ( AccountNumber ,Name ,Address1 ,Address2 ,Address3 ,Zip ,BalanceMst )
Så en gang til for Prins Knud ? Hvad er det helt nøjagtigt du skal bruge dette her til ?
Morn Jasman... Nej jeg er ikke på kursus, men i praktik ! ! med mulig for arbejde bagefter, men det var ikke meningen at jeg skulle programmer så meget, men det syntes \"cheffen\" åbenbart, eller også er det fordi tiden går med det, da han tit er i Kbh. Bruge det til.. skal jeg da han sige at det er en almindelig Navision (Damgaard) fejl !! Der er INGEN på kontoret som kan hjælpe når han er væk, så manual og eksperten er det eneste jeg kan bruge som hjælp, og sååå meget har jeg dog heller ik programmert i Concorden -:)
Ok. Jeg kan ikke se hvorfor du ikke kan anvende ovenstående fremgangsmåde men så gør vi det på den lange måde (det giver NÆSTEN samme kode, men så får du da set hvordan man laver en queryen fra bunden):
1) Generelt / Tilpasning / Udviklingsmenu / QTX / Opret 2) Indtast navn på søgning (Debitorexport) 3) Tryk nu SHIFT+F2 og ALT+H og vælg DebKart og tryk ENTER 4) Tryk F2 og vælg afgrænsningsfelter. 5) Gentag step 4 for alle de felter du ønsker at kunne afgrænse/søge på. 6) Tast nu CTRL+F6 for at komme ind i opsætningen af queryen. Stil markøren i feltet Globale formler og tryk enter for at komme ind i triggerne. 7) Tryk enter på INIT: Og skriv følgende kode: #MACROLOAD(SYSTEM_INFORMATION) STR 70 &FileName INT &Counter Tryk F3. 8) Tryk ENTER og vælg prompt triggeren og tryk ENTER. Skriv nu følgende kode: #PROMPT \"Export af: \"+FilePname(DebTable)+\":\",, \"Filnavn..: \" GET(&FileName LENGTH 20) #PROMPTABORT(10,5)
IF NOT &FileName THEN RETURN 0 ENDIF TRYK F3. 9) TRYK ENTER Vælg start og tryk ENTER. Skriv nu følgende kode: WINDOW 40,5 AT 20,5 PRINT \"Skriver.: \", &FileName AT 1,1 PRINT \"Fra.....: DebTable\" AT 1,2 PRINT \"Record..:\" AT 1,3 TRYK F3. 10) Tryk ENTER og vælg stop og tryk ENTER. Skriv nu følgende kode: PRINT Num2Str(&Counter,15,0,0,0) AT 20,3 PAUSE Tryk F3. 11) Tryk F3 for at komme tilbage til selve queryen. 12) Placer nu markøren i feltet Kørsler og tryk ENTER. 13) Vælg nu triggeren PRE-BODY og tryk ENTER. Skriv nu følgende kode: SET &Counter = &Counter + 1
IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,3 ENDIF
SET AccountNumber = #GuiVersion ? AccountNumber : #ASC2ANS(Accountnumber) SET Name = #GuiVersion ? Name : #ASC2ANS(Name) SET Address1 = #GuiVersion ? Address1 : #ASC2ANS(Address1) SET Address2 = #GuiVersion ? Address2 : #ASC2ANS(Address2) SET Address3 = #GuiVersion ? Address3 : #ASC2ANS(Address3) SET Zip = #GuiVersion ? Zip : #ASC2ANS(Zip)
WRITE &FileName AS COMMA FROM ( AccountNumber ,Name ,Address1 ,Address2 ,Address3 ,Zip ,BalanceMst ) Tryk F3. Tryk F3 for at godkende queryen. 14) Nu kan du køre queryen fra udviklingsmenuen i QTX / KØR.
Husk at du når du afvikler queryen stadig kan tilføje ekstra afgrænsnings/søgefelter til søgningen. Det gør du i det vindue hvor du har Fra og Til afgrænsninger ved simpelthen at trykke F2 vælge et felt og trykke ENTER.
Takker mange gange, kan jeg da heller ikke se, men hmm sådan ville chefen have det, og yepper jeg får det selv sat på menuen.
mvh
Regitze
Synes godt om
Ny brugerNybegynder
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.