Scopo
Questa funzione utilizza le nuove informazioni del metaschema dei documenti presenti nella versione 7.5 di IN.DE per recuperare un documento correlato a quello attuale, come specificato dai parametri. Da questa versione, infatti, all'interno dello schema dei documenti per ogni proprietà viene descritto l'eventuale documento correlato a cui essa fa riferimento, in base alle foreign keys presenti nel database.
Sintassi
IDDocument Doc = null // Documento correlato
//
Doc := Documento.GetLinkedDocument(usa cache, doc1, doc2, doc3, doc4, doc5)
//
Doc := Documento.GetLinkedDocument(usa cache, doc1, doc2, doc3, doc4, doc5)
Argomenti
Usa Cache | Parametro booleano: se True il documento verrà estratto dalla cache o caricato dal database, se False verrà sempre caricato dal database. Si consiglia di utilizzare il valore True. |
Doc1 | Specifica la proprietà o il tipo di documento da estrarre. Se si utilizza un'espressione numerica intera allora il valore rappresenta l'indice della proprietà del documento attuale da cui partire per caricare il documento correlato; se si passa un'esressione stringa, allora essa rappresenta il nome della classe del documento cercato. |
Doc2 | Specifica il prossimo documento da cercare. E' analogo al parametro Doc1, ma verrà applicato al documento trovato al passo precedente. |
Doc3 | Specifica il prossimo documento da cercare. E' analogo al parametro Doc1, ma verrà applicato al documento trovato al passo precedente. |
Doc4 | Specifica il prossimo documento da cercare. E' analogo al parametro Doc1, ma verrà applicato al documento trovato al passo precedente. |
Doc5 | Specifica il prossimo documento da cercare. E' analogo al parametro Doc1, ma verrà applicato al documento trovato al passo precedente. |
Valore di ritorno
Viene ritornato un oggetto di tipo IDDocument se la ricerca ha successo oppure Null Object in caso contrario. E' possibile aprire la finestra del debug post-esecuzione per avere più informazioni sul motivo dell'insuccesso.
Esempio di codice
// *********************************
// Prova la funzione linked document
// *********************************
public void Ordini.TestLD(
RigaOrdine Riga // La riga ordine da elaborare
)
{
IDDocument Cat = null // Categoria del prodotto della riga ordine passata come parametro
//
Metodo 1: con i tipi documento
{
Cat := Riga.GetLinkedDocument(True, Prodotto.ClassName(), Categoria.ClassName(), ??, ??, ??)
}
//
Metodo 2: con le proprietà
{
Cat := Riga.GetLinkedDocument(True, RigaOrdine.IdProdotto, Prodotto.Idcategoria, ??, ??, ??)
}
}
// Prova la funzione linked document
// *********************************
public void Ordini.TestLD(
RigaOrdine Riga // La riga ordine da elaborare
)
{
IDDocument Cat = null // Categoria del prodotto della riga ordine passata come parametro
//
Metodo 1: con i tipi documento
{
Cat := Riga.GetLinkedDocument(True, Prodotto.ClassName(), Categoria.ClassName(), ??, ??, ??)
}
//
Metodo 2: con le proprietà
{
Cat := Riga.GetLinkedDocument(True, RigaOrdine.IdProdotto, Prodotto.Idcategoria, ??, ??, ??)
}
}
- Se si passa come argomento il numero della proprietà si otterrà il documento correlato proprio a quella proprietà, mentre se si passa il nome della classe si otterrà il primo documento correlato di quel tipo. Quindi se ci sono più proprietà che puntano allo stesso tipo di documenti, per ottenerli tutti si dovranno passare i numeri di proprietà.
- Per passare un numero di proprietà è possibile sia usare la funzione ToPropertyIndex che GetPropertyIndex, ma dalla versione 7.5 è anche possibile referenziare in modo statico la proprietà richiesta. Per referenza statica alla proprietà si intende l'espressione ClasseDocumento.Proprietà.
- Per specificare in modo statico un nome di documento è invece possibile usare la nuova funzione statica ClassName.
Ultima modifica: 20/09/2021 / Validità: da 7.5.3400