Inserimento Extradata Oggetto in Xtrareport
Per poter inserire un extradata in Xtrareport va utilizzato uno script che assegna il valore a un campo calcolato.
Per prima cosa aprire il report corretto, creare un nuovo campo calcolato, all'interno dello script di GetValue inserire il seguente script e sostituire a ciò che c'è tra parentesi quadre i valori corretti:
//INIZIO SCRIPT PER EXTRADATA OGGETTO
private void calcDiameter_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
[OggettoReport] row = OggettoReporte.Row;
if (row != null)
{
var extraData = [OggettoReport].ExtraData.Where(x => x.ExtraDataObject != null && x.ExtraDataObject.Code == [OggettoExtraData]).FirstOrDefault();
if (extraData != null)
{
var record = GetReport().DataProvider.Linq<[OggettoExtraData]>().Where(x => x.Id == extraData.ExtraDataId).FirstOrDefault();
if (record != null)
{
e.Value = [OggettoExtraData].[Proprieta]
}
}
}
}
//FINE SCRIPT PER EXTRADATA OGGETTO
Lo script utilizzato per l'esempio visto durante la creazione dell'extradata “lingua” nella fattura, è il seguente:
//INIZIO SCRIPT
private void CalcLanguage_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
Fluentis.FluentisErp.Core.SD.SalesInvoices.FSSalesInvoice row = (Fluentis.FluentisErp.Core.SD.SalesInvoices.FSSalesInvoice)e.Row;
if (row != null)
{
var extraData = row.ExtraData.Where(x => x.ExtraDataObject != null && x.ExtraDataObject.Code == “FSLanguage”).FirstOrDefault();
if (extraData != null)
{
var record = GetReport().DataProvider.Linq<FSLanguage>().Where(x => x.Id == extraData.ExtraDataId).FirstOrDefault();
if (record != null)
{
e.Value = FSLanguage.Description
}
}
}
}
//FINE SCRIPT
AVVERTENZE GENERALI:
-
Se nell'inserimento degli oggetti e/o delle proprietà, nella parte di attivazioni e propagazione abbiamo difficolta nell'inserire l'oggetto, cliccare due volte nell'apposita casella. Questo è utile anche per vedere se tale oggetto può avere l'extradata.
-
Se non si riesce a trovare l'oggetto, vanno contatti i programmatori i quali ci implementeranno questa funzionalità perché non tutti gli oggetti sono programmati per avere degli extradata.