ActiveReports Formattazione condizionale - Foto Visibilità
-
20-09-2019 - |
Domanda
In ActiveReports, come posso cambiare la formattazione in base ai valori in dati del report?
In particolare, voglio mostrare o nascondere le immagini sulla base di un valore nei dati. Il rapporto viene associato a un elenco di oggetti tramite un insieme alla sua proprietà DataSource. Questi oggetti hanno una proprietà Condition
con i valori di "poveri", "Normal", ecc Ho alcune foto nel rapporto che corrispondono alle diverse condizioni, e voglio nascondere tutte le immagini ad eccezione di quello corrispondente al valore.
Devo sottoscrivere l'evento Format
per la sezione corpo? Se sì, come posso raggiungere i dati "record corrente"?
Soluzione
Ok, io ancora non so come ottenere l'oggetto dati corrente, ma ho scoperto che è possibile utilizzare la proprietà Fields
del report per recuperare i valori fuori l'oggetto di dati corrente.
Il codice di seguito sottoscrive evento Format
della sezione dettagli. Fields["Condition"].Value
ottiene il valore della proprietà Condition
dell'oggetto dati corrente (che risulta essere un valore di enumerazione).
private void detail_Format(object sender, EventArgs e)
{
Condition? condition = Fields["Condition"].Value as Condition?;
conditionUnknownPicture.Visible = (condition == Condition.Unknown);
conditionPoorPicture.Visible = (condition == Condition.Poor);
conditionNormalPicture.Visible = (condition == Condition.Normal);
conditionNewPicture.Visible = (condition == Condition.New);
}
Modifica
Da allora ho imparato che l'accesso alla raccolta di campi da un evento Format è contro le regole ActiveReports di progettazione, perché non funziona in alcuni casi angolo strani. Io uso questo metodo invece: http://www.datadynamics.com /forums/ShowPost.aspx?PostID=133642#133642
DataDynamics ha una richiesta di funzionalità 22786 per consentire l'accesso agli oggetti di dati da eventi definizione.