Hvad er NL funktionen i Jet Reports
Overblik
=NL (Hvad, Tabel, Felt, FilterFelt1, Filter1, …, FilterFelt10, Filter10)
Formål: Henter individuelle felter eller poster fra din database, baseret på de filtre, du angiver.
Strukturen af NL-funktionen:
De første tre parametre i NL-funktionen angiver, hvad der skal hentes, tabellen og feltet. De fjerde, femte og følgende parametre angiver filtrene.
=NL(“hvad der skal hentes”, “navn på tabel”, “navn på felt”, “filterfelt”, “filterværdi”)
For hver filter angiver du to parametre: filterfelt og filterværdi.
Parametre muligheder
Hvad
- Blank
Samme som NL(“First”), NL(“Første”).Returnerer feltet eller nøglen fra den første post, der matcher de andre parametre i NL-funktionen (baseret på databasens standardindeks).
For at tilsidesætte tabelens standardindeks kan du tvinge funktionen til at sortere efter et specifikt felt. - “First”, “Første”
Returnerer den første post eller felt, der matcher filterne (baseret på tabelens standardindeks) der matcher filterne.For at tilsidesætte tabelens standardindeks kan du tvinge funktionen til at sortere efter et specifikt felt. - “Last”, “Sidste”
Returnerer den sidste post eller felt (baseret på tabelens standardindeks), der matcher filterne. For at tilsidesætte tabelens standardindeks kan du tvinge funktionen til at sortere efter et specifikt felt.Det anbefales at bruge NL(“First”)-funktionen i stedet for NL(“Last”). Ved at bruge NL(“First”)-funktionen med en negativ sortering vil du få den samme værdi som NL(“Last”)-funktionen, men vil gøre det uden at skulle læse alle andre værdier. På tabeller med et stort antal poster kan NL(“First”) være markant hurtigere. - “Count”, “Tæl”
Returnerer antallet af alle poster, der matcher filterne. Ignorerer Feltparameteren.Det betyder at samtlige poster tælles. F.eks. har man 100 poster på 10 bilagsnumre returnere “tæl” 100 - “CountUnique”, “Tælunikke”
Returnerer antallet af alle de unikke værdier af det angivne felt, der matcher felt parameteret.De betyder at unikke poster der matcher felt parameteret tæller. F.eks. har man 100 poster på 10 bilagsnumre returnere “tælUnikke” 10 - “Columns”, “Kolonner”
Kopierer den aktuelle kolonne og alt indholdet for hver unik værdi af Feltparameteren i de poster, der passer til filteret.
De returnerede værdier er sorteret.For at kopiere mere end en kolonne, skriv “Columns=n” (hvor n er antallet af kolonner, der skal kopieres). For eksempel, for at kopiere den aktuelle kolonne og de næste to kolonner, brug “Columns=3”. - “CubeValue”, “Kubeværdi”
Returnerer en enkelt måleværdi fra en Cube-datakilde. - “Filter”
Returnerer en strengværdi, som kan bruges som filter i en anden NL-funktion. Tænkt til at filtrere indholdet i én tabel baseret på indholdet i en anden.Kan også bruges med matematik-operationer som NP(“Union”) eller NP(“Intersect”). - “FlowField”, “Flowfelt”
Returnerer en streng, der bruges til at hente en FlowField fra den primære tabel i en NL(Tabel) funktion.FlowFilters i denne funktion anvendes kun på det angivne FlowField og ikke på det overordnede spørgsmål. - “Link”
Returnerer en strengværdi, som kan bruges som filter i en anden NL-funktion.Tænkt til at filtrere indholdet i én tabel baseret på indholdet i en anden. - “LinkField”
Returnerer en streng, der bruges til at hente et felt fra en linket tabel i en NL(Tabel) funktion.
- “LinkSum”
Returnerer en streng, der bruges til at hente en sum af et felt fra en link tabel i en NL(Tabel) funktion.
- “Lookup”
Opretter en formel, der udfører en databaseopslag for rapportindstillinger.Denne funktion skal bruges med Options tag i kolonne A og Lookup tag i række 1. Se forskellige emner om rapportindstillinger for flere detaljer. - “Picture”, “Billede”
Indlæser en bitmap (bmp) fra en fil eller fra en BLOB i Dynamics NAV/Business Central.
- “Rows”, “Rækker”
Kopierer den aktuelle række og alt indholdet for hver unik værdi af Feltparameteren i de poster, der passer til filteret.De returnerede værdier er sorteret.For at kopiere mere end én række, skriv “Rows=n” hvor n er antallet af rækker, der skal kopieres. For eksempel, for at kopiere den aktuelle række og de næste to rækker, brug “Rows=3”. - Tal (negative)
1 returnerer den sidste post eller felt, der matcher filterne (baseret på tabelens standardindeks)-2 returnerer den næstsidste post eller felt osv. - Tal (positive)
1 returnerer den første post eller felt, der matcher filterne [samme som NL(“First”)]2 returnerer den anden post eller felt osv. - “Sheets”, “Ark”
Ligner “Rows” og “Columns”, men kopierer hele det aktuelle regneark. Navnet på kopiarket er angivet til værdien returneret af funktionen.”Sheets=n” understøttes ikke. Kun det aktuelle regneark kan kopieres. Hvis navnet er for langt eller allerede eksisterer, vil Jet oprette et nyt navn. - “Sum”
Returnerer summen af Feltparameteren for alle poster, der matcher filterne. For at bruge Sum, skal felttypen være numerisk. - “Table”
Opretter et Excel-tabelobjekt baseret på de returnerede feltværdier.Hvis du lader Feltparameteren være tom, returneres alle felter. Brug en Feltcache til at returnere flere felter.
Tabel
Navnet, nummeret eller caption på tabellen.
Når argumentet “What” er “Rows”, “Columns”, “Sheets” eller “Lookup”, kan du også bruge en Excel-array i tabelargumentet, som vil bruge arrayværdierne i stedet for databaseværdierne.
Excel-arrays kan oprettes på forskellige måder, herunder ved at skrive {“element1”, “element2”, “element3”}, bruge en række celler som f.eks. E8:E16 eller bruge en af Jet Reports Array-beregningerne. Dette vil medføre, at der oprettes rækker, kolonner eller ark for hver element i arrayet.
For at udføre en SQL-forespørgsel skal du starte tabelargumentet med SQL=. Hvis din tabel starter med SQL=, forventer Jet Reports, at resten af parameteren er en gyldig SQL-forespørgsel.
Hvis du vil indlæse et billede fra en fil, skal du lade tabelargumentet være tomt.
Felt
- Feltparameteren er navnet, nummeret eller caption på feltet, der skal returneres.For Dynamics NAV- og Business Central-brugere kan dette også være en Avanceret Dimension.
- Hvis du vil returnere en nøgle (til brug med NF-funktionen), skal du lade Feltparameteren være tom.
- En Feltopbevaring er påkrævet, når en tabel ikke har en primær nøgle. Hvis en Feltopbevaring bruges, skal hvert felt, der vil blive hentet med NF-funktioner, være i Feltopbevaringen.
For at returnere en Feltopbevaring skal du angive en række af felter, f.eks. {“No.”,”Name”,”Balance”,”Address”,”City”,”County”,”Country/Region Code”}. - En Feltopbevaring kan bruges med NL(Tabel), når du kun vil se nogle af felterne fra tabellen i stedet for alle. En NL-funktion med en Feltopbevaring vil kun returnere de unikke kombinationer af værdierne i felterne i Feltopbevaringen.
- Når argumentet “What” er “Picture”, bliver Feltparameteren fuld sti til filen eller navnet på Dynamics NAV- eller Business Central-binærfeltet (“Blob”) i den angivne tabel, der indeholder et billede.
FilterFelt1
FilterField #1 er navnet på det første felt, hvormed der skal filtreres. For Dynamics NAV- og Business Central-brugere kan dette også være en Avanceret Dimension.
Følgende specielle værdier er tilladt som FilterField-argumenter:
- “Company=” eller 0
Overskriver standardvirksomheden med den, der er angivet af Filter-argumentet. - “DataSource=”
Overskriver standarddatakilden med den, der er angivet af Filter-argumentet.
- “Filters=”
Specificerer et sæt filtre til forespørgslen med en række filtre specificeret af Filter-argumentet. Typisk brugt, når du vil have mere end 10 filtre i din NL-funktion. - “Headers=”
Overskriver feltoverskrifter med rækken af overskrifter specificeret af Filter-argumentet. Til brug med en NL(Tabel) eller NL(Lookup)-funktion. - “HideTotals=”
Når værdien af Filter-argumentet er TRUE, skjuler den totale række, der er oprettet af NL(Table). - “IncludeDuplicates=”
værdien af Filter-argumentet er TRUE, angiver det, at alle matchende poster fra kilde-dataene vil blive inkluderet i NL(Tabel)-resultaterne. - “InclusiveLink=”
Linker primær tabellen til den, der er angivet af Filter-argumentet med henblik på at hente data. - “Key=”
Overskriver Dynamics NAV/Business Central-nøglen, der skal bruges til forespørgslen, med den, der er angivet af rækken af felter i Filter-parameteren. - “Limit=”
Begrænser antallet af poster eller værdier, der skal returneres til antallet angivet af Filter-argumentet. - “Link=”
Linker primær tabellen til den, der er angivet af Filter-argumentet med henblik på filtrering og hentning af data. - “Measures=”
I en Cube-datakilde specificerer den målinger, der skal bruges til at returnere kun de elementer, der indeholder måleværdien. - “ScanLimit=”
Specificerer antallet af poster, der skal scannes i en Dynamics NAV 2009R2 (eller tidligere) forespørgsel med antallet angivet af Filter-argumentet - “Schema=”
Overskriver databasens skema, der bruges i forespørgslen, med den, der er angivet af Filter-argumentet.Det specielle filter “Schema=” er designet til at blive brugt med NL()-funktioner, der returnerer specifikke felter. I NL()-funktioner, hvor “Field”-parameteren enten er tom eller indeholder en feltcache, vil funktionen returnere de korrekte data, men eventuelle NF()-funktioner, der refererer til den feltcache, vil ikke gøre det. Se vores artikel om Brug af “Schema=” til at returnere specifikke data. - “ShowQuery=”
Viser forespørgslen, der vil blive sendt til databasen. - “TableName=”
Angiver navnet, der skal bruges til Excel tabelobjektet, som er oprettet af NL(Table), ved at bruge navnet fra Filter parameteren. Dette kan være nyttigt, når man henviser til tabellen med navn fra en pivot-tabel. - “Type=”
Anvendes sammen med NL(Picture) funktionen for at angive typen af billede, der indsættes. Dette kan være nyttigt for at sikre, at billedet vises og formateres korrekt. - “UseLocalFormulas=”
Anvendes sammen med en NL(Table) funktion og specificerer, at eventuelle resulterende Excel-formler vil blive skrevet på sproget, der er indstillet i Windows, i stedet for engelske formler. - “Width=” og “Height=”
Anvendes sammen med NL(Picture) funktionen for at overskrive bredden og højden af det billede, der indsættes, med de værdier, der er angivet i Filter parameteren.
Filter #1
Værdien af filteret, der skal anvendes på FilterField1.
Hvis “Company=” er i det tilsvarende FilterField, skal du sætte virksomhedsnavnet her.
Hvis “DataSource=” er i det tilsvarende FilterField, skal du sætte forbindelsesnavnet som defineret i Jet Options her.
FilterField #n
Det samme som FilterField #1.
Op til 10 felt- og filterpar kan specificeres. Hvis du angiver flere filtre, kombineres de ved hjælp af et logisk OG.
Field #n
Det samme som Filter #1, men gælder for FilterField #n.
Eksempler på NL-funktionen
Hent saldoen for debitor “10000”:
=NL(“First”,”Debitor”,”Saldo”,”No.”,”10000″)
Funktionen fortæller Jet Reports at returnere Saldo-feltet i Debitor-tabellen for den post, der har en debitor-nr på “10000”.
Denne NL returnerer rekordnøglen for alle debitorer i Debitor-tabellen, der er i byen Boston med en saldo mindre end nul:
=NL(“Rows”,”Debitor”,,”Saldo”,”<0″,”By”,”Boston”)
Rekordnøgler henvises derefter af NF() funktioner til at hente individuelle feltværdier.
Denne NL returnerer debitor-navnet fra salgsordrenummer 10000.
Denne NL kan kun returnere en post, så ‘What’ parameteren “First” anvendes:
=NL(“First”,”Salgs Header”,”Navn”,”No.”,”10000″,”Dokumenttype”,”Tilbud”)
Denne NL returnerer oplysninger for et selskab (uanset det selskab, der vises som standard på Jet båndet):
=NL(“Rows”,”Debitor”,,”Company=”,”CRONUS USA, INC.”)
Denne NL returnerer oplysninger for et bestemt selskab og en datakilde (ignorerer standard selskab & datakilde):
=NL(“Rows”,”Debitor”,,”Company=”,”CRONUS USA, Inc.”,”DataSource=”,2)
Denne NL opretter ark kaldet “US”, “CANADA” og “MEXICO” ved hjælp af en array i tabelfeltet:
=NL(“Sheets”,”{“US”,”CANADA”,”MEXICO”})
Hvordan ville du få summen af saldoerne for alle debitorer i Georgia?
=NL(“Sum”,”Debitor”,”Saldo”,”Stat”,”GA”)
Denne funktion vil finde alle debitorer i Georgia og returnere summen af deres saldo.
Hvis du kun ønskede debitorer i Atlanta, kunne du bruge:
=NL(“Sum”,”Debitor”,”Saldo”,”Stat”,”GA”,”By”,”Atlanta”)
Kan du gætte, hvordan man skriver funktionen for summen af alle positive saldoer?
=NL(“Sum”,”Debitor”,”Saldo”,”Saldo”,”>0″)
Du kan angive op til ti filtre. Hvis du ønskede summen af saldoerne for alle debitorer med positive saldoer i Atlanta, GA, kunne du bruge:
=NL(“Sum”,”Debitor”,”Saldo”,”Saldo”,”>0″,”By”,”Atlanta”,”Stat”,”GA”)
Hvis du ville vide, hvor mange debitorer der havde positive saldoer i Atlanta, GA, kunne du bruge:
=NL(“Count”,”Debitor”,”Saldo”,”Saldo”,”>0″,”By”,”Atlanta”,”Stat”,”GA”)
Ugyldige funktioner
En NL(“Rows”), NL(“Columns”) eller NL(“Sheets”) funktion skal være den eneste funktion i en celle.
Således er disse funktioner ALLE ugyldige:
=-NL(“Rows”,”table1″,”field1″)
og
=NL(“Rows”,”table1″,”field1″)*-1
og
=IF($D$7>0,NL(“Rows”,”table1″,”field1″),””)