Verschiedene Skripte im Berichtsgenerator
Auf dieser Seite finden Sie verschiedene nützliche Skripte, die im Berichtsgenerator verwendet werden können.Wie kann ich das %-Zeichen in der Kopfzeile ausblenden, wenn es keinen Rabatt gibt?
Denken Sie daran, dass das Skript in der Multifunktionsleiste "PageHeader" unter Eigenschaften/Verhalten/Skripte im Feld "Vor dem Druck" ausgewählt sein muss.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; } }
Wie kann ich das %-Zeichen in der Kopfzeile ausblenden, wenn es weder einen %-Rabatt noch einen Betragsrabatt gibt?
Denken Sie daran, dass das Skript in der Multifunktionsleiste "PageHeader" unter Eigenschaften/Verhalten/Skripte im Feld "Vor dem Druck" ausgewählt sein muss.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; } }
Wie kann ich eine Beschriftung für ein leeres Feld ausblenden?
Wenn Sie ein Datenfeld verwenden, das nicht immer ausgefüllt wird, z.B. die Anforderungsnummer, können Sie Ihre Beschriftung ausblenden, indem Sie einen kleinen Eintrag in "Scripts" vornehmen, den Sie im Menü des Generators oben rechts finden.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; } }
Wie erhalte ich Dezimalstellen für meinen Mehrwertsteuerbetrag?
Wenn Ihre Felder nicht wie erwartet Dezimalstellen anzeigen, können Sie eine kleine Notiz in "Skripte" schreiben, die Sie im Generatormenü oben rechts finden. Wählen Sie das betreffende Etikett aus, z.B. wie unter dem Feld VAT, xrDetailInvoiceFieldSum, und klicken Sie im Menü auf Scripts. Wählen Sie dann BeforePrint im rechten Dropdown-Menü oben und die folgende Funktion wird angezeigt. Fügen Sie den XRLabel.... Code ein, wie in der Funktion unten in Kursivschrift dargestellt.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"); }
Wie kann ich eine Beschriftung für den Standardwert DateTime ausblenden? ("01-01-0001 00:00:00:00" oder "01-01-0001")
Wenn Sie ein DateTime-Feld mit einem Standardwert gefüllt haben, können Sie die Beschriftung ausblenden, indem Sie einen kleinen Ausdruck in "Scripts" machen, den Sie im Menü der Generatoren oben rechts findenprivate 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; } }
Wie kann ich das Ereignis "Vor dem Druck" für die Lokalisierung von Etiketten in Benutzerberichten verwenden?
Kopieren Sie den folgenden Code und setzen Sie ihn vor dem Druckereignis in die gewünschten XRL ABEL'sprivate 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); }