Her på siden har vi samlet lidt tips og trick til rapportgeneratoren.
FIK kode i kontoudtog
Ønsker man en FIK kode i sit kontudtog, hvor kunden kan betale flere faktraer på en gang, skal man blot indsætte feltet:
[DebtorInfo].[FIK Kode]
Feltes skal indsættes i enten PageHeader- eller PageFooter båndet.
Vis nul-moms ved totalerne
Under Moms opsætningen, sætter man et flueben på momskoden med 0%, i feltet Vis 0,0 på fakturaen.
Landenavn
Ønsker man landenavn på sine standardrapporter, bør man bruge CountryName og DeliveryCountryName.
De udskriver landenavnet korrekt.
Leveringsadressen / Installationen kommer 'forkert' ud på mine fakturaer.
Læs i linket artikel, hvordan du får det til at virke.
Leveringsadressen/Installationen kommer forkert ud på min faktura
Valuta i Rapportgeneratoren (GetExchangeRate())
Det er muligt at hente valuta beløbet for en bestemt dato i rapportgeneratoren. Det gør man via script.
using Uniconta.DataModel;
using Uniconta.Common;
private void label5_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e) {
var repObj = (Uniconta.ClientTools.DataModel.IReportScript)reportInstance;
var xrlabel = sender as XRLabel;
if(repObj != null)
{
var exchangeRate = repObj.GetExchangeRate(Currencies.DKK,Currencies.EUR,DateTime.Now);
if(xrlabel != null)
xrlabel.Text = Convert.ToString(exchangeRate);
}
else
xrlabel.Text = "No Conversion";
}
XtraReport reportInstance;
private void Invoice_23052022_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e) {
reportInstance = sender as XtraReport;
}
Ovenstående script, skal oprettes BeforePrint, og i ovenstående tilfælde, er koden lagt på en label kaldt 'label5', og resultatet vises i den røde boks herunder.
Opdatering af gamle rapporter
Har man en gammel rapport, hvor man f.eks ikke kan finde
f i egenskaber, så kan man opdatere bindingerne i rapporten.
NB! Tag en kopi af rapporten, og forsøg i kopien, inden man laver en endelig opdatering af rapporten.

Klik på Convert Bindings, og vælg Ja for at fortsætte. Får man fejlen: 'Conversion faild', skal man blot lukke sin kopi, og åbne den igen.
Hvis man ikke har lavet for mange special kodninger, så burde den blot falde på plads, når rapporten åbnes igen.
Parameter i Multisource rapporter
Hvis man benytter sig af Multisource rapporter, og anvender parametrer, så skal man i parameternavnet, angive navnet på den tabel, man ønsker at filtrere på.
Her er oprettet en parameter på 'CRMFollowUpClientUser' tabellen. Navnet indeholder derfor tabelnavnet 'CRMFollowUpClientUser'. Foran kan man evt skrive: 'prmEmp_'

For at parameterne virker, skal man på hvert bånd, for de enkelte tabeller, valgt i Multisource rapporten, sættes et filter.

Filterfeltet finder man under tandhjulet på båndet.
Oversæt tekster vha. egne labels
Det er muligt at benytte egne labels til at oversætte egne tekster i rapportgeneratoren. Dette kræver dog at man har oprettet labels til alle de sprog, der benyttes i regnskabet.
Et eksempel kunne være at man ønsker betalingsbetingelserne på flere forskellige sprog. Det også muligt ved hjælp af faste tekster, ved brug af en Iif-sætning, og kan se ud som følgende:
iif([DebtorInfo].[Sprogkode]=1,
FormatString('Terms of payment: {0} - final due date for payment {1:dd-MM-yyyy}', [InvoiceInfo].[PaymentRef].[Navn],[InvoiceInfo].[Forfaldsdato]),
FormatString('Betalingsbetingelser: {0} - betaling senest den {1:dd-MM-yyyy}', [InvoiceInfo].[PaymentRef].[Navn],[InvoiceInfo].[Forfaldsdato]))
Ovenstående er overskuelig med to eller tre sprog, men ønsker man flere sprog, kan man benytte sig af labels.
Først skal man oprette en label, til hver tekst og hvert sprog, man har brug for. Læs mere om
Egne labels her...
I ovenstående eksempel, skal vi have en label der indeholder teksten, "Terms of payment: " og en med " - final due date for payment ", og tilsvarende på dansk, "Betalingsbetingelser " og " - betaling senest den ".
I rapporten, skal man indsætte to Etiketter/labels, hvor man skriver labelnavnet, f.eks. @Item for varenavn, eller @DueDate for forfaldsdato.
Disse Etiketter/labels, skal skjules, dvs. man skal fjerne hakket i feltet Synlig, under Egenskabs-menuen og Optræden (de to tandhjul).
Man indsætter endnu en etik/label, som skal bruges til at skrive den tekst man vil have på sin rapport.
For at få samme resultet, som ovenstående kode, skal man i dette felt, lave følgende FormatString()
FormatString('{0} {1} - {2} {3:dd-MM-yyy}', [ReportItems.lblPaymentText].[Text], [InvoiceInfo].[PaymentRef].[Navn], [ReportItems.lblDueDate].[Text], [InvoiceInfo].[Forfaldsdato])
For at få fak i værdien i en etiket, skal man benytte funktionen ReportItems.[navnet på den etiket man ønsker værdien af].[Text]
Brugerdefinerede felter og tabeller
I rapportgeneratoren, er det muligt at få fat på brugerdefinerede felter og tabel felter, via Unicontas egne funktioner.
OBS.: Ved brug af brugerdefinerede tabeller, skal man have oprettet et felt. Man kan ikke nøjes med data i feltet 'Navn', der automatisk oprettes, når man opretter en tabel.
Funktion |
Beskrivelse |
GetUserFieldByIndex |
Funktionen benyttes til at hente data fra brugerdefinerede felter eller tabeller. Denne funktion benytter index. |
GetUserFieldByName |
Funktionen benyttes til at hente data fra brugerdefinerede felter eller tabeller. Denne funktion benytter navnet. |
Number2Text |
Oversætter et nummer til tekst.
Number2Text(1) bliver til En
Number2Text(2) bliver til To
Osv. |
Eksempel på brug i en rapport

Til at kopiere direkte
// For tabeller
GetUserFieldByIndex([InvItem].[KodeTabellenRef],0)
GetUserFieldByName([InvItem].[KodeTabellenRef],'tabFldNavn')
// For Brugerdefinerede felter
GetUserFieldByIndex([InvItem],0)
GetUserFieldByName([InvItem],'fldNavn')
- Kalder en brugerdefineret tabel. Væld den via Field List i rapportgeneratoren, så får man den korrekte sti. Derefter sætter man index'et på det felt man ønsker at bruge i rapporten.
- Kalder en brugerdefineret tabel. Væld den via Field List i rapportgeneratoren, så får man den korrekte sti. Derefter sætter man navnet på det felt man ønsker at bruge i rapporten. Navnet skal være i apostroffer.
- Kalder et brugerdefineret felt. Vælg den tabel eller kartotek, som feltet er oprettet i. I eksemplet vises et felt oprettet under lageret, altså kartoteket [InvItem]. Derefter indsættes index nummeret for feltet.
- Kalder et brugerdefineret felt. Vælg den tabel eller kartotek, som feltet er oprettet i. I eksemplet vises et felt oprettet under lageret, altså kartoteket [InvItem]. Derefter indsættes navnnet på feltet.
Brugerdefinerede tabeller
Brugerdefinerede felter
Skjul værdien 0,00 i antal på en fakturarapport
I eksemplet her, benyttes afgiftsmodulet på et Dieseltillæg. Det kan i visse tilfælde give et 0,00 på fakturaudskriften, som man ønsker at skjule.
Det kan man gøre ved markere feltet
Antal på rapporten. Dette felt er et tekstfelt, og skal derfor først ændres til et talfelt. Det gør man ved at benytte funktionen ToDouble()

ToDouble sættes omkring [Antal] eller det engelske navn [FormattedInvoiceQty], som vist i eksemplet herunder.
Iif(ToDouble([FormattedInvoiceQty])<>0, [FormattedInvoiceQty], '')
Her testes på om feltet
Antal er forskellig fra 0, og hvis det er rigtigt, bliver værdien fra
Antal skrevet ud på rapporten.
Varelinjer der deles på siden, ved sideskift
Hvis man har mange ordrelinjer, eller lange tekster på sine ordrelinjer, kan det betyde at man har brug for flere sider i sine rapporter.
Hvis man vil undgå at varelinjerne bliver delt på tværs fra den ene side til den anden, skal man sætte "Hold sammen" eller "Keep together" for DetailsInvTransaction båndet
Tusindseparator i rapporter
Specialrapporterne benytter, som default, landet fra debitoren til at definere hvordan tusindeseparatoren skal vises.
Land |
Tusinde- og decimalseparator |
Danmark, Tyskland, Italien, Holland mf. |
1.234.567,89 |
Sverige, Norge, Finland mf. |
1 234 567,89 |
Stor Britanien, USA, Kina mf. |
1,234,567.89 |
Schweiz |
1'234'567.89 |
Det er muligt i specialrapporterne at ændre disse indstillinger. For nye rapporter, er det medfødt, for gamle rapporter, skal man åbne rapporten, og gemme en kopi af rapporten, som så får samme mulighed.
Åben en specialrapport og vælg Rediger og Set Localization.

Derefter får man fire valgmuligheder
- Standard: Vil virke som om det ikke var valgt en localization.
- Debitor sprog: Vil bruge debitores sprog til at bestemme hvordan localizationen skal vises.
- Debitor land: Vil bruge debitores land til at bestemme hvordan localizationen skal vises.
- Firma land: Vil bruge firmaets land til at bestemme hvordan localizationen skal vises.
Faktura- og MobilePay-link i rapporten
I kontoudtog, rykker og rentenota, kan vi ind indsætte et link til de faktura der listes i disse rapporter samt et link til MobilePay, så kunden kan betale via dette.
Bemærk: MobilePay skal oprettes i Firma/Firmaoplysninger i feltet "Mobile Pay" under Bankkonti-boksen
Feltet der indeholder fakturalinket hedder:
[Link til faktura] på engelsk:
[ViewInvoiceLink]
Feltet der indeholder MobilPaylinket hedder:
[Mobilepay link] på engelsk:
[MobilePayLink]
Felterne ligger under "DebtorInfo/Transactions/" i "Field List" i rapportgeneratoren.
Disse felter indeholder et link til enten faktura eller MobilPay.
De nye rapporter vil automatisk indeholde disse links, hvorimod de rapporter der er oprettet før version-87, vil skulle opdateres manuelt.
Opret links med logoer i gamle rapporter
Logoerne der benyttes i Uniconta rapporterne kan ses og hentes herunder.
Højreklik på logoet og vælg "Gem billede som..."
Gem billedet på din PC, og disse kan benyttes i rapporterne.

Åben den gamle rapport, herunder vises kontoudtog.

Brug billedekomponenten til at indsætte disse to billeder i båndet "DetailTransactions". Billederne her er 48*48 i størrelsen.
Under expressions i egenskaber, skal man vælge, henholsvis
[Link til faktura] og
[Mobilepay link], i feltet "Navigation URL" - se billede herunder.
For at disse ikoner kun vises på poster, der er fakturerede, skal man under expressions i egenskaber indsætte koden
Iif(Contains([IsDCInvoice], 'True'), true , false ) i feltet synlig.
Man kan også skrive
Iif(Len([Link til faktura])>0, true, false), hvilket betyder at hvis længden af linket er størrer end 0 tegn, så bliver ikonet vist.

Gem rapporten og test den, ved at sende et kontoudtog til sig selv.
Printeropsætning i rapporter
Det er muligt at opsatte en fast printer på en rapport. Man åbner rapporten og vælger det grå område omkring rapporten.
Derefter vælger man Side opsætning i Egenskaber. Her er det muligt at vælge en printer.
Egne fonte i rapporterne
På vores server er der installeret de standard fonte der er med på en Windows-server-installation.
Ønsker man at benytte sine egne indkøbte fonte, kan de kun benyttes hvis man afsender sine rapporter via Outlook. Derved genereres PDF'en på den lokale PC, og font bliver benyttet i denne.
Varenavnegrupper i rapporter
Varenavnegrupper understøttes kun i "Specialrapporter"
I specialrapporter som faktura mm. oversættes tekster og varenummer automatisk hvis man benytter varenavnegrupper på sine varer.
Har man brug for at skrive både varenavnegruppens data og varens egen information, hentes varens egen information fra InvItem.
Report version layout is outdated
Får man beskeden "Report version layout is outdated" forsøger man at åbne en rapport der er genereret i en nyere version af Uniconta.
Opdater Uniconta til den aktuelle version, for at løse disse udfordringer.
Maksimal filstørrelse er overskredet
Får du beskeden "Maksimal filstørrelse er overskredet" har din rapport højst sandsynligt et stort billede inlejret i rapporten.
En rapport må ikke indeholde billeder størrer end 500KB til sammen.

En ide kunne være at placere billedet eksternt på en server, website eller webshop, hvor man kan hente billedet fra, så fylder det ikke i rapporten.
Hvorfor kan de andre brugere ikke se mine opdateringer?
Andre brugere skal afslutte Uniconta og starte igen.
Hvis det drejer sig om brugerdefinerede felter og de har gemt et layout, så har de gemt et layout uden dine felter, og de skal slette deres layout og åbne igen.
Hvordan justerer jeg felterne pænt?
For at justere felterne/labels i rapportgeneratoren, kan med fordel benytte sig af Layout-menuen
Man markere først den styrende box, og derefter de andre og så vælger du "Venstrejuster" (1)

Skal felterne være lige lange og høje, kan du klikke på "Lav samme bredde/højde" (2)
Og skal der være lige meget luft i mellem linjerne eller ingen, skal du klikke på "Fjern lodret afstan" (3)
Min faktura viser kun første linje?
Hvis du har ændret i dit layout, og din faktura, eller en anden type rapport, kun viser en linje i stedet for dem alle, kan det være at dit bånd har tabt dataforbindelsen.
Det løser man ved at højreklikke på på båndet i Report Explorer, evt. DetailReport, og dens egenskaber vil blive fremhævet lige under:

Data Source/Data Kilde skal være udfyldt, for en faktura, som vist på billedet foroven.
Hvordan formaterer jeg en pris med mere end to decimaler?
Som standard er alle real tal formateret med to decimaler "{0:n2}". Har man brug for flere decimaler, kan man ændre sit format på din label fra "{0:n2}" til {0:#,###,##0.00###} som vist på billedet herunder.
Farveskift i lister
Du kan lave farveskift i dine lister, faktura mm., så hver anden linje bliver en anden farve.
Klik på billeder...
Indsæt varebilleder i rapporter
- Indsæt et billede på rapporten f.eks. under varelinjerne på en faktura
- Tildel billedkomponenten billedværdien fra varelageret
- Vælg den lille pil ved billedet
- I feltet Udtryk skal der vælges PhotoBuffer
Hvordan styrer man størrelsen på billeder?
- Indsæt et billede på rapporten
- Vælg den lille pil ved billedet
- Vælg en af størrelsesmetodeerne nederst i den menu der popper op
- Se eksemplerne på de forskellige størrelser her: https://docs.devexpress.com/XtraReports/DevExpress.XtraReports.UI.XRPictureBox
Indsæt varelinks i rapporten
Har man oprettet, og valgt billeder, links eller dokumenter, på sin vare, kan man indsætte disse i sine rapporter ved brug af links.
På varekortet, er der tre felter;
Foto,
URL og
Vedhæftet fil
Disse felter hedder følgende i rapportgeneratoren: [Photo link], [URL link] og [Attatchment link]
Indsætter man disse felter under sin varelinje på f.eks. en faktura, kan man se links til de oprettede elementer på varen.
Ønsker man også at de skal være 'linkbare', skal man markere felterne, en for en, og for hvert felt vælge Expressions, under egenskaber (ikon som et f), og i Navigation URL feltet, vælge f.eks. [Photo link], for at gøre linket aktivt på dokumentet.
Brugtmoms på fakturalayout
Linjer med brugtmoms på faktura skal fremhæves
Det skal være tydeligt på fakturaen, hvilke linjer der er omfattet af brugtmoms-reglerne.
Tilføj derfor evt. et felt der viser en stjerne på linjerne, hvis momsen på linjerne er brugtmomsen.
Iif([Moms]='UBrugt','*' ,'' )
Info på faktura vedr. brugtmoms
På fakturaer med brugt-moms skal køber gøres opmærksom på, at der ikke kan fradrages købsmoms.
Nedenstående er et eksempel, på den tekst/kodestump, der kan tilføjes til fakturalayoutet.
Bemærk! Koden skal tilpasses så ordet Ubrugt svarer til navnet på den momskode, virksomheden benytter til brugtmoms.
Iif([InvoiceInfo].[Moms]='UBrugt','Varer markeret med * sælges efter de særlige regler for brugte varer. Køber kan derfor ikke fradrage den moms, der er indeholdt i prisen.' ,[InvoiceInfo].[Moms 2]='UBrugt','UBrugt','Varer markeret med * sælges efter de særlige regler for brugte varer. Køber kan derfor ikke fradrage den moms, der er indeholdt i prisen.','','' )
Brugtmoms skal skjules
Brugtmoms-beløbet må ikke fremgå af fakturaen, og skal derfor skjules.
På panelet med moms-linjen, skal følgende kode indsættes under menupunktet Synlig.
Bemærk! Navnet Ubrugt skal erstattet af koden på virksomhedens brugtmoms-kode.
[Moms]!='UBrugt'
