Scopo
Permette di selezionare una particolare istanza di una sezione su una pagina per poterne modificare i figli.
Sintassi
booleanok = Libro.Report.selectSection(Section, Record Number or HASH)
Argomenti
Section | è un parametro di tipo intero che deve identificare univocamente una particolare sezione del report. È possibile utilizzare la funzione Me della libreria della sezione per indicare al sistema di selezionare un'istanza di un particolare tipo di sezione. |
Record Number or HASH | è un parametro di tipo intero o stringa che permette al sistema di selezionare una particolare istanza generata a partire dalla sezione definita a design time. Se si fornisce un valore intero il sistema lo utilizza come RecordNumber e cerca, nelle pagine già stampate del book, l'istanza della sezione (del tipo specificato nel primo parametro) il cui RecordNumber coincida con il valore specificato. Se viene fornito un valore di tipo stringa il sistema cerca quella particolare istanza (del tipo specificato nel primo parametro) per la quale il valore della colonna HASH (che deve essere presente nella query del report nel caso DB e IMDB o deve essere il codice di una delle proprietà del documento nel caso DO) coincida con quello specificato. |
Valore di ritorno
Viene restituito il valore True se la sezione è stata attivata con successo, altrimenti False. Qualora la funzione restituisca il valore False, è possibile analizzare il debug per determinare il motivo per il quale il sistema non è stato in grado di selezionare la sezione.
Esempio di codice
public void Calendar.MainTimer()
{
// Selects the 5th section
if (Book.Report.selectSection(Book.Report.Detail.me(), 5))
{
// Change the box width
Book.Report.NameBox.width = Book.Report.NameBox.width + 10
//
// Remove the selection
Book.Report.selectSection(Book.Report.Detail.me(), ...)
}
}
{
// Selects the 5th section
if (Book.Report.selectSection(Book.Report.Detail.me(), 5))
{
// Change the box width
Book.Report.NameBox.width = Book.Report.NameBox.width + 10
//
// Remove the selection
Book.Report.selectSection(Book.Report.Detail.me(), ...)
}
}
- Se viene fornito un valore intero per il parametro Record Number or HASH il sistema seleziona quell'istanza della sezione (del tipo indicato nel primo parametro) che è stata stampata quando il valore della funzione RecordNumber era quello fornito al parametro. Se il valore fornito è minore di 0 o maggiore del numero massimo di record restituiti dalla query del report, la funzione restituisce il valore True e non viene selezionata una sezione.
- Se viene fornito un valore stringa per il parametro Record Number or HASH il sistema seleziona quell'istanza della sezione (del tipo indicato nel primo parametro) che è stata stampata quando il valore della funzione HASH era quello fornito al parametro. La funzione restituisce il valore False e non viene selezionata una sezione se non viene trovata una sezione con tale valore per la colonna HASH.
- Se viene fornito il valore NULL, il valore intero 0 o stringa vuota, il sistema rimuove la selezione corrente e la funzione ritorna il valore True.
- Se viene fornito un valore di tipo stringa, il sistema si aspetta che la query del report contenga almeno una colonna il cui codice sia HASH (o che, nel caso di report DO, sia presente almeno una proprietà il cui codice sia HASH). Se tale colonna non viene trovata, la funzione restituisce il valore False e non viene selezionata una sezione.
- Se la funzione viene chiamata su un sottoreport, il sistema si aspetta che la funzione SelectSection sia già stata chiamata sul report padre. Infatti su una data pagina possono essere presenti più istanze delle sezioni del report, pertanto occorre prima selezionare una particolare istanza del report principale e, solo in seguito, è possibile selezionare una particolare istanza di una sezione del sottoreport. Per esempio se si desidera modificare una box di una sezione di un sottoreport, occorre prima selezionare una particolare istanza del report principale (chiamando la funzione SelectSection) e poi selezionare una particolare istanza del sottoreport. Se viene chiamata la funzione SelectSection di un sottoreport senza che sia stata prima chiamata la funzione sul report padre, la funzione restituisce False e non viene selezionata una sezione.
- Se l'istanza specificata nel secondo parametro non è presente in nessuna pagina già stampata, la funzione restituisce False e non viene selezionata una sezione. Questo può accadere, per esempio, se si sta mostrando la pagina 15 all'utente e si desidera cambiare un'istanza della pagina 12. Il sistema, per ridurre l'occupazione di memoria, può decidere di rimuovere pagine precedenti per poi ristamparle al momento giusto. Pertanto è buona norma controllare sempre il valore di ritorno della funzione prima di modificare le proprietà degli oggetti interni. Se non si controlla il valore di ritorno e la funzione restituisce False e si tenta di modificare una proprietà di una box o di uno span, il sistema effettua la modifica agli oggetti di design time.
- Dopo aver selezionato la sezione, il sistema posiziona anche il data source del report al punto in cui si trovava quando quella particolare sezione è stata formattata e stampata. Pertanto, dopo aver selezionato una particolare istanza di sezione, è possibile leggere i valori delle colonne della query del report.
- Dopo aver terminato le modifiche agli oggetti contenuti in una particolare sezione, è consigliabile annullare la selezione corrente chiamando la funzione con il secondo parametro valorizzato a NULL, 0 o "" (stringa vuota).
- Dopo aver chiamato la funzione, è consentita la modifica di tutte le proprietà di box e span contenuti nella sezione. Inoltre è possibile modificare le proprietà Visible, Height e VisualStyle della sezione. Non è possibile modificare le proprietà del book e del report.
- Non è possibile modificare le proprietà di box e span delle pagine del book.
Ultima modifica: 06/10/2021 / Validità: da 13.0.5600