Forskellige scripts i rapportgeneratoren
Her på siden finder du forskellige nyttige scripts der kan benyttes i rapportgeneratoren.Hvordan skjuler jeg %-tegn i overskriften, hvis der ikke gives rabat?
Husk at scriptet skal væles på "PageHeader" båndet i Properties/Behavior (tandhjulene)/Scripts, i feltet "Before print".private void PageHeader_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { var colSource = GetCurrentColumnValue("DebtorInfo") as Uniconta.ClientTools.DataModel.DebtorClient; bool discountPctExist = false; if (colSource !=null) { var invLines = colSource.InventoryTransInvoice as Uniconta.ClientTools.DataModel.InvTransInvoice[]; foreach(var invLine in invLines) { if(invLine.DiscountPct !=null || invLine.DiscountPct >0) { discountPctExist = true; break; } } } if(discountPctExist) { //Label name you want to show xrLabelDiscountPct.Visible = true; } else { //Label name you want to hide xrLabelDiscountPct.Visible = false; } }
Hvordan skjuler jeg %-tegn i overskriften, hvis der hverken gives %-rabat eller beløb-rabat?
Husk at scriptet skal væles på "PageHeader" båndet i Properties/Behavior (tandhjulene)/Scripts, i feltet "Before print".private void PageHeader_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { var colSource = GetCurrentColumnValue("DebtorInfo") as Uniconta.ClientTools.DataModel.DebtorClient; bool discountPctExist = false; //xrLabelDiscountPct.Visible = false; if (colSource !=null) { var invLines = colSource.InventoryTransInvoice as Uniconta.ClientTools.DataModel.InvTransInvoice[]; foreach(var invLine in invLines) { if(invLine.DiscountPct !=null || invLine.DiscountPct >0 || invLine.Discount !=null || invLine.Discount >0) { discountPctExist = true; break; } } } if(discountPctExist) { //Label name you want to show xrLabelDiscountPct.Visible = true; } else { //Label name you want to hide xrLabelDiscountPct.Visible = false; } }
Hvordan skjuler jeg en label for et tomt felt?
Når du bruger et datafelt, der ikke altid er udfyldt, f.eks. rekvisitionsnummer, så kan man skjule sin label ved at lave et lille skriv i "Scripts" som du finder i generatorens menu, øverst til højre.private void xrReqLable_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { // Ex. på hvordan man får fat i objektet xrReqLable, via "sender" i funktionskaldet, der derefter kan manipuleret med alverdens egenskaber XRLabel label = (XRLabel)sender; // Ex. på hvordan man kan udfylde en label via kode... // Ex. på en if sætning... // Spørger om label xrReqValue er tomt! Hvis tomt, skal tilhørende label xrReqLable ikke vises, ellers skal den vises. if (xrReqValue.Text == "") { label.Visible = false; } else { label.Visible = true; //label.ForeColor = Color.Black; //label.BackColor = Color.White; } }
Hvordan får jeg decimaler på mit momsbeløb?
Hvis dine felter ikke viser decimaler, som forventet, man skrive et lille skriv i "Scripts" som du finder i generatorens menu, øverst til højre. Marker den label det drejer sig om, f.eks. som herunder momsfeltet, xrDetailInvoiceFieldSum, og tryk på Scripts, i menuen. Derefter vælger du BeforePrint, i højre rullemenu i toppen, og nedenstående funktion bliver vist. Indsæt XRLabel.... koden som vist i funktionen herunder i kursiv.private void xrDetailInvoiceFieldSum_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { XRLabel label = (XRLabel)sender; // Formatere den valgte label til at have to decimaler (N2) if(!string.IsNullOrEmpty(label.Text)) label.Text = Convert.ToDouble(label.Text).ToString("N2"); }
Hvordan skjuler man en label for standard DateTime værdi? ("01-01-0001 00:00:00" eller "01-01-0001")
When you have a DateTime field filled with default value, you can hide its label by making a small print in "Scripts" that you can find in the generators' menu at the top rightprivate void xrReqLable_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { var xrLabel = sender as XRLabel; if(xrLabel != null && !string.IsNullOrEmpty(xrLabel.Text)) { DateTime dateTime; if(DateTime.TryParse(xrLabel.Text, out dateTime) && dateTime == DateTime.MinValue) xrLabel.Text = string.Empty; } }
How to use before print event for localizing labels in user reports?
Copy the below code and set it to the required XRLABEL's before print eventprivate void xrLabel_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { var xrLable = sender as XRLabel; var text = xrLable.Text; xrLable.Text = Uniconta.ClientTools.Util.UtilFunctions.LocalizePrompt(text); }