Ottenere valori di riga corrente quando l'associazione dati
-
22-08-2019 - |
Domanda
Sto usando DevExpress XtraReports in un'applicazione WinForms, ma potrebbe applicarsi anche ad altri strumenti di reporting.
Mi piacerebbe eseguire una logica per-riga del rapporto in quanto è "resa", su base riga per riga. In particolare mi piacerebbe nascondere un codice a barre, se i dati del codice a barre non è disponibile.
Al momento sto facendo il seguente:
private void xrBarCode2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
var barcode = (XRBarCode)sender;
if (barcode.Text.Trim() == "")
{
barcode.Visible = false;
lblWarning.Visible = true;
}
else
{
barcode.Visible = true;
lblWarning.Visible = false;
}
}
Ma che appena odori pianura male. Mi piacerebbe accedere alla riga di dati corrente in questo metodo e lavorare sulle proprietà "reali" dell'oggetto, ma non ci riesco. Qual è il modello tipico per questo in altri generatori di report? Sto anche utilizzando l'evento corretto? Ho provato Detail_BeforePrint
, ma che non ha avuto ulteriori informazioni.
Soluzione
Usa Detail_BeforePrint in combinazione con GetCurrentColumnValue () in questo modo:
private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
if (string.IsNullOrEmpty(GetCurrentColumnValue("BarcodeColumnName"))) {
barcode.Visible = false;
lblWarning.Visible = true;
} else {
barcode.Visible = true;
lblWarning.Visible = false;
}
}