Creazione di un report utilizzando il layout 1C 8.3. Layout di archiviazione Creazione di un report da parte dell'utente

Il Generatore di report è un oggetto di linguaggio incorporato che offre la possibilità di generare dinamicamente un report a livello di programmazione o in modo interattivo.

Al centro del generatore di report c'è una query. In base al testo di questa richiesta, il generatore di report fornisce all'utente la possibilità di configurare in modo interattivo tutti i principali parametri contenuti nel testo della richiesta. Ad esempio, l'utente può selezionare tutti o solo alcuni campi di origine, può includere campi separati da un punto da un determinato campo, può imporre restrizioni sui valori di alcuni campi, ecc. Lo sviluppatore, utilizzando i comandi del generatore di report, può modificare i parametri a disposizione dell'utente per la configurazione.

I dati ottenuti come risultato dell'esecuzione di questa richiesta vengono visualizzati in un documento di foglio di calcolo utilizzando tutte le sue capacità interattive: tabelle pivot, grafici, grafici pivot, ecc.

Insieme al risultato della query, il generatore di report può utilizzare un'origine dati arbitraria, ad esempio una tabella di valori, un insieme di record di registro, ecc. Quando si lavora con un'origine dati personalizzata, vengono utilizzate anche tutte le funzionalità fornite dal generatore di report. disponibili: impostazione dell'ordine e della selezione, impostazione dei raggruppamenti, impostazione dei campi visualizzati nel report, utilizzo dei layout, design, ecc.

Per generare un documento di foglio di calcolo, il generatore di report utilizza un layout generato automaticamente. Utilizzando il linguaggio integrato, questo layout può essere modificato e progettato utilizzando una delle opzioni di progettazione disponibili. Lo sviluppatore può anche utilizzare un proprio layout, sulla base del quale verrà generato il documento finale.

È anche possibile utilizzare la formattazione condizionale durante la creazione di un documento foglio di calcolo. Questo meccanismo consente di progettare un report in modo dinamico, a seconda dei valori visualizzati nel report. Sono disponibili per la personalizzazione il colore del testo, il colore dello sfondo, il carattere, il formato del valore, l'evidenziazione dei numeri negativi e altre proprietà del design:

Lo sviluppatore può configurare il meccanismo per decodificare il documento finale del foglio di calcolo in modo tale che per ottenere informazioni dettagliate su qualsiasi risultato del report, lo stesso o un altro generatore di report verrà chiamato con i parametri di query necessari.

Pertanto, il generatore di report consente non solo di generare report individuali, ma anche di collegare insieme un intero set di report, garantendo di ricevere le informazioni necessarie in tutte le sezioni richieste. Ciò offre all'utente l'opportunità di ottenere dati analitici senza modificare la soluzione applicativa o coinvolgere gli sviluppatori.

Creazione di un report da parte dell'utente

L'utilizzo del generatore di report consente all'utente di configurare la composizione dei campi visualizzati, le dimensioni per righe e colonne e specificare le condizioni di selezione e ordinamento. L'utente può eseguire tutte queste azioni utilizzando il mouse, semplicemente specificando i campi richiesti nel modulo delle impostazioni del report:

Generazione di layout dinamici

Il generatore di report consente di visualizzare report posizionando raggruppamenti multilivello in una o più colonne, visualizzare i dettagli sia insieme al raggruppamento che in colonne separate e applicare varie opzioni di progettazione sia per report regolari che per report incrociati.

Il generatore di report unifica il lavoro con report regolari e incrociati. Tutti i report sono configurati secondo un unico schema e vengono visualizzati utilizzando un layout generato automaticamente dal builder. Ad esempio, ecco come appare un report formattato:

Il report incrociato completato potrebbe assomigliare a questo:

Lo sviluppatore può sostituire il layout generato automaticamente con un layout appositamente progettato, che consente di utilizzare le funzionalità del generatore di report per generare report specializzati:

Il layout utilizzato per generare il documento del foglio di calcolo finale può essere creato da zero o modificando il layout generato automaticamente:

Meccanismo di progettazione

Il motore di progettazione consente di descrivere e ricordare le progettazioni del report (colori, caratteri, cornici) e utilizzare le progettazioni ricordate per qualsiasi report generato dal generatore di report e dalla tabella pivot.

La piattaforma contiene una serie di design già pronti, che offrono all'utente la possibilità di scegliere autonomamente il design del report risultante semplicemente selezionando dall'elenco. Sono disponibili più di venti opzioni di progettazione già pronte tra cui scegliere:

Oltre alle opzioni di progettazione già pronte, lo sviluppatore può aggiungere in modo indipendente nuove opzioni di progettazione, nonché fornire all'utente l'opportunità di creare le proprie opzioni di progettazione.

I progetti possono essere applicati non solo ai layout generati automaticamente, ma anche ai layout progettati per report personalizzati.

Utilizzando il meccanismo di progettazione, è possibile creare report visivi e dal design straordinario senza creare codice di programma o sviluppare layout di report.

Progettazione condizionale

Il meccanismo di formattazione condizionale consente di formattare un report in modo dinamico, a seconda dei valori visualizzati nel report. Sono disponibili per la personalizzazione il colore del testo, il colore dello sfondo, il carattere, il formato del valore, l'evidenziazione dei numeri negativi e altre proprietà del design.

L'utilizzo di questo meccanismo consente, ad esempio, di evidenziare importi i cui valori superano 10.000 con sfondo verde, evidenziare righe di articoli il cui volume di vendite supera 30.000 con sfondo giallo ed evidenziare righe contenenti servizi nel report con testo rosso:

L'impostazione dell'aspetto condizionale del generatore di report è possibile sia dal linguaggio integrato che tramite mezzi interattivi:

Informazioni aggiuntive

Puoi acquisire familiarità con l'utilizzo del generatore di report in tempo reale. Per fare ciò, puoi scaricare il video dimostrativo "Esempio di sviluppo di un mini-sistema di trading", che mostra il processo di sviluppo di un mini-sistema di trading utilizzando questo oggetto nei report "Saldi e fatturati", "Analisi delle vendite" e " Analisi delle vendite per periodo".

« Aprire il diagramma di composizione dei dati"oppure, che è equivalente, fare clic sul segno della lente di ingrandimento.

3. Poiché il report che stiamo creando non dispone ancora di uno schema di layout dei dati, la piattaforma ti chiederà di crearlo nuovo schema . Il diagramma del layout dei dati è un layout dal punto di vista della configurazione, quindi si aprirà il progettista del layout, chiedendoti di selezionare un singolo tipo di layout → Diagramma del layout dei dati. Premiamo il pulsante Pronto.

La piattaforma creerà un nuovo layout contenente lo schema di composizione dei dati e aprirà immediatamente il progettista dello schema di composizione dei dati.

3. Il progettista ha molte funzionalità per la progettazione visiva dei report, ma ora utilizzeremo solo le sue funzionalità più semplici e definiremo semplicemente i dati che vogliamo vedere come risultato del nostro report.

Aggiungiamone uno nuovo set di dati → interrogazione .

4. Per creare il testo della richiesta, avviare il progettista della richiesta → pulsante Costruttore di query.

5. Nell'elenco " Banca dati» viene presentata la composizione degli oggetti del database; Sulla base dei dati di questi oggetti, siamo in grado di creare un rapporto.

Se espandi il ramo " RegistriAccumuli", poi vedremo che oltre alla tabella dei registri " Materiali rimanenti"Ce ne sono molti altri in questo thread tavoli virtuali , che sono formati dal sistema.

6. Poiché vogliamo vedere sia il bilancio dei materiali che le informazioni sulla loro ricezione e consumo, saremo interessati alla tabella virtuale” Materiali rimanenti" Riveliamolo.

Come puoi vedere (e se non lo vedi subito allora lavora scorrendo), questa tabella contiene il materiale, il magazzino e, inoltre, i saldi iniziali e finali, nonché i valori delle entrate , in uscita e in turnover per tutte le risorse del registro “Residuo Materiale”.

7. Iniziamo a selezionare i campi della tabella nell'ordine che ci occorre facendo doppio clic. Per prima cosa selezioniamo Azione E Materiale. Quindi selezioniamo QuantitàInizialeRimanente, QuantitàArrivo, QuantitàConsumo Insomma Quantità finale rimanente

Di conseguenza, la finestra Campi dovrebbe essere compilata come segue:

8. Successivamente, nella scheda Raggruppamento indicare il campo del gruppo Azione.

9. Fare clic OK e tornare al progettista dello schema di composizione dei dati.

La piattaforma inserirà nel campo il testo della richiesta creata utilizzando il costruttore Richiesta.

Questo campo è un editor di testo in cui è possibile modificare manualmente una richiesta esistente. Inoltre, puoi richiamare nuovamente la finestra di progettazione query e modificare la query utilizzandola.

Prestiamo attenzione all'elenco dei campi del sistema di composizione dei dati, che la piattaforma ha compilato nella parte superiore del designer.

Visualizza i campi disponibili per il set di dati corrente. Nel nostro caso, il sistema 1C:Enterprise ha compilato questo elenco automaticamente dal testo della richiesta e non è necessario configurarlo manualmente.

10. Andiamo al segnalibro Impostazioni e aggiungi un raggruppamento (menu contestuale Nuovo gruppo).

In questo caso non specificheremo il campo di raggruppamento, ma faremo semplicemente clic OK.

Il report mostrerà i record dettagliati dall'infobase → record ottenuti come risultato dell'esecuzione di una query senza risultati.

11. Ora configuriamo i campi che verranno visualizzati nel risultato del report.

Per fare ciò, vai al segnalibro Campi selezionati e fuori dalla finestra Campo spostarsi dall'elenco dei campi disponibili:

  • Azione:
  • Materiale;
  • QuantitàInizialeRimanente;
  • Quantità in entrata;
  • QuantitàConsumo;
  • Quantità finale rimanente.

12. Avviamo 1C:Enterprise in modalità debug e vediamo come funziona il report.

13. Esegui il comando Operazioni in†' Rapporto in†' Materiali.

Il sistema genererà automaticamente un modulo di report e un modulo di impostazioni per esso.

14. Fare clic Modulo.

Come puoi vedere, il nostro rapporto è abbastanza "presentabile" e riflette pienamente il movimento dei materiali avvenuto nella nostra organizzazione.

Creazione del layout del documento. Fornitura di Servizi

1. Aprire la finestra di modifica degli oggetti di configurazione nel configuratore Documento Fornitura di Servizi.

2. Vai al segnalibro Layout e corri Disegnatore di stampe:

3. Acceso primo passo Indichiamo che nel modulo form sarà localizzata la nuova procedura che verrà creata dal progettista per generare il form stampato del documento.

4. Al secondo passo Cliccando sulla doppia freccia determineremo che tutti i dettagli del nostro documento verranno visualizzati nell'intestazione del modulo stampato.

5. Acceso terzo passo Allo stesso modo, determineremo che tutti i dettagli della parte tabellare del documento verranno visualizzati in forma stampata.

6. Al quarto passo il progettista ci chiederà di formare il basamento (parte inferiore) del modulo di stampa. Poiché in questo caso non utilizzeremo il seminterrato, andremo subito avanti.

7. Acceso quinto passo indichiamo che il progettista deve inserire nel modulo del documento un nuovo pulsante per richiamare la procedura di generazione del modulo stampato, e cliccare OK.

8. Il modulo del documento e il suo layout si apriranno nel configuratore:

9. Controlliamo il layout in azione. Avvia 1C:Enterprise in modalità debug e apri il documento Fornitura del servizio n. 1. Tieni presente che è presente un nuovo pulsante nell'angolo in basso a destra del documento Foca, che è stato aggiunto dal designer.

10. Clicca su questo pulsante e vedrai una forma stampata del nostro documento.

Come puoi vedere, il designer ha generato un modulo stampato completamente adatto per il nostro documento. L'unica cosa che manca in questo modulo è l'importo totale del documento.

Modifica del layout del documento. Fornitura di Servizi

1. Aprire il configuratore, espandere l'albero dei documenti Fornitura di servizi e fare doppio clic sul layout Foca.

Come puoi vedere, il layout del documento è composto da aree denominate , che vengono stampati in un determinato ordine.

2. Aggiungi nuova zona per visualizzare l'importo totale del documento:

  • utilizzare il mouse per selezionare due righe vuote Fornitura di servizi di documenti: stampa;
  • eseguire il comando Tabella in†’ Nomi in†’ Assegna nome…¦

3. Diamo un nome all'area Totale.

4. Nell'area creata:

  • in una colonna Prezzo, scriviamo Totale;
  • in una colonna Somma scriviamo Totale per documento.

5. Chiamando la tavolozza delle proprietà per l'ultima cella che abbiamo riempito, indichiamo che questa cella non conterrà testo, ma parametro :

Ogni cella del foglio di calcolo che modifichiamo può contenere testo, alcuni parametri o un modello.

Testo , contenuto nella cella, verrà visualizzato sullo schermo.

Parametro verrà sostituito da un valore che può essere assegnato ad esso utilizzando il linguaggio integrato. Il testo contenuto nella cella è il nome di questo parametro.

Campione è una stringa di testo in cui i valori dei parametri verranno inseriti in determinati punti.

Pertanto, specificando per la cella come riempimento Parametro, abbiamo definito un parametro di ambito chiamato Totale per documento, al quale assegneremo il valore che ci occorrerà in fase di creazione del modulo stampato.

6. Ora apriamo modulo moduli di documenti Fornitura di servizi → Modulo documento.

7. Troviamo una procedura in esso Foca e dopo il ciclo aggiungiamo le seguenti righe:

Il significato del frammento aggiunto è semplice: otteniamo una nuova area Totale(quello che abbiamo appena aggiunto al layout).

Quindi il parametro Totale per documento collocato in quest'area, assegniamo il valore della somma della parte tabellare del documento per colonna Somma(alla parte tabellare del documento si accede per nome → Elenco delle nomenclature).

Infine, trasmettiamo l'area in un foglio di calcolo finale che verrà visualizzato sullo schermo e stampato dall'utente.

Allo stesso modo, utilizzando le proprietà delle celle di layout e controllando l'ordine in cui vengono visualizzate, lo sviluppatore ha la possibilità di creare un modulo stampato di qualsiasi disegno.

E ora, in ordine per il nostro documento Fornitura di servizi, sembrava abbastanza completo, aggiungiamo l'importo totale del documento e sulla videata in modo che l'utente possa vederlo durante la compilazione della parte tabellare del documento.

Modifica del modulo documentale Fornitura di servizi

1. Aprire il modulo documento Fornitura di servizi → Modulo documento nel configuratore.

2. Aprire la tavolozza delle proprietà per il campo della tabella situato nel modulo e impostare la proprietà Seminterrato, che determina se il controllo ha un piè di pagina Campo della tabella.

3. Aprire le proprietà della colonna Prezzo:

  • imposta il testo del piè di pagina → Totale: ;
  • posizione orizzontale nel seminterrato → Premi a destra;
  • nel carattere del piè di pagina, cambia lo stile in Grasso.

4. Apri le proprietà della colonna Importo:

  • installare una posizione orizzontale nel seminterrato→ Premi a destra;
  • impostare la bandiera Visualizza totali nel seminterrato;
  • nel carattere del piè di pagina, cambia lo stile in Grasso.

5. Avvia 1C:Enterprise in modalità debug e guarda come appare ora la forma del documento di fornitura del servizio n. – 1.

Allo stesso modo, utilizzando le proprietà dei controlli e impostandone i valori, lo sviluppatore è in grado di creare una visualizzazione di qualsiasi progettazione e comportamento.


Ci trovano: creando un report in 1s 8 2 da zero, 1 Aprire nel configuratore la finestra per modificare l'oggetto di configurazione Documento Fornitura di servizi 2 Andare alla scheda Layout e avviare il progettista di stampa Nella finestra che si apre, nel primo passaggio indichiamo che verrà creato un nuovo comando Stampa per generare stampe, come creare un report in 1 secondo, sviluppo del designer di documenti, creazione di un report utilizzando il designer del modulo di output, creazione di report in 1s 8 002, workshop sulla creazione di report in subd 2007, workshop sulla creazione di materiali metodologici nel campo del turismo, segnalare i materiali rimanenti nella creazione del magazzino 1c, aprire il progettista layout 1c


Sabbiera

gioielliere 23 agosto 2011 alle 10:22

I layout in 1C 8.2 non sono difficili (Parte 1 - Creare un layout)

  • Ripostiglio *

Supponiamo che tu debba visualizzare un report come questo:

Questo report può essere facilmente creato utilizzando un sistema di composizione dei dati (DCS), soprattutto se tutti i dati necessari sono archiviati in un'unica directory. Proviamo tuttavia a visualizzare lo stesso report utilizzando un layout.


Per generare questo rapporto, è necessaria una directory "Dipendenti" con i dettagli "Data di nascita", "Posizione". Lascia che il cognome, il nome e il patronimico del dipendente vengano memorizzati insieme in un campo predefinito: "Nome". Per indicare la posizione di un dipendente, esiste un'altra semplice directory "Posizioni" con campi predefiniti. La struttura dei libri di consultazione necessari è mostrata nella figura seguente.

Ora creiamo un nuovo report e chiamiamolo "Elenco dipendenti". Andiamo nella scheda "Layouts" e creiamo un nuovo layout del tipo "TabularDocument".
Si aprirà davanti a noi un foglio di calcolo vuoto, pronto per l'uso. Ora dobbiamo presentare il rapporto richiesto sotto forma di layout.
Per fare ciò, copia prima il report di origine in un foglio di calcolo vuoto, ad es. al layout del report. Otterrai qualcosa del genere:

Mettiamo in ordine il layout: allineeremo le intestazioni al centro, imposteremo la tabella per visualizzare i bordi ed elimineremo tutti i dati dalla tabella tranne il primo record. Lo avremo come campione.
Dividiamo il report finito in aree come segue:

Ad ogni area è necessario assegnare un nome corrispondente; per fare ciò è necessario selezionare l'area desiderata (in questo caso tutte le aree sono gruppi di righe) e cliccare sul pulsante con l'icona, oppure la combinazione di tasti Ctrl+Shift +N. Nella finestra che appare, devi inserire il nome di quest'area. Diamo un nome alle aree come sono indicate in figura.
Ora le celle della tabella in cui devono essere visualizzati i dati dell'infobase devono essere designate come contenenti un modello. Per fare ciò, seleziona questo campo e seleziona "Proprietà" nel menu contestuale (tasto destro del mouse). Nell'elenco a discesa delle proprietà della cella "Riempimento", è necessario selezionare "Modello" (esempio nella figura seguente).

Successivamente, se nel testo della cella appare un'espressione tra parentesi quadre, verrà percepita dal sistema 1C come parametro. Ad esempio, se il testo della cella è il seguente:

Il mio nome è [Il mio nome],

Quindi per visualizzare il testo "Mi chiamo Ivan" è sufficiente il parametro "Il mio nome" assegnare il valore "Ivan".
Nel nostro caso, il modello sarà la data di output del report, così come tutte le colonne della riga contenente i dati del dipendente. Di conseguenza, dopo tutte le manipolazioni, il layout del report sarà simile al seguente:

Questo completa la creazione del layout. Ora è necessario generare a livello di codice un report dalle aree generate e visualizzarlo.

Tag: 1C 8, layout, report, layout

Questo articolo non è soggetto a commenti perché il suo autore non lo è ancora

Consideriamo la creazione di un report esterno in 1C 8 senza utilizzare un sistema di composizione dei dati. Per creare un report esterno utilizzeremo la configurazione Contabilità 2.0, i dati iniziali: “Scrivi un report sul conto contabile 62 in cui verrà visualizzato il fatturato per il periodo specificato nel contesto Controparti E Contratti delle controparti.

1. Crea un rapporto

Innanzitutto creiamo un file di report esterno; per fare ciò andiamo su 1s 8 nella modalità Configuratore, andiamo al menu File -> Nuovo oppure fare clic sull'icona nuovo documento.

Selezionare l'elemento dall'elenco Rapporto esterno. Dopo aver creato il report esterno, assegnagli un Nome (ad esempio Rapporto più semplice) e salvarlo su disco. Aggiungeremo anche due dettagli: Inizio periodo E Fine del periodo tipo data, ne avremo bisogno per limitare l'intervallo di tempo per il campionamento dei dati durante la generazione di un report.

2. Creare un layout di report esterno

Per generare un report in 1C 8, è necessario un layout, si tratta di un modello per la visualizzazione dei dati in cui sono impostati tutti i parametri necessari, vengono disegnate tabelle, ecc. Aggiungiamo un nuovo layout; per fare ciò, selezioniamo l'elemento nell'albero dei metadati del report Layout e premere il pulsante Aggiungere, durante la creazione, seleziona la tipologia per il layout Documento di foglio di calcolo.

Il nostro layout avrà 4 aree:

  • Intestazione - in quest'area visualizzeremo il nome del report, il periodo per il quale è stato generato e l'intestazione della tabella;
  • Dati della controparte: in quest'area visualizzeremo i dati della controparte in una tabella;
  • DatiAccordo controparte - in quest'area visualizzeremo i dati sull'accordo della controparte in una tabella;
  • Piè di pagina: in quest'area verranno visualizzati i valori totali dell'intero report per i campi Entrate e Uscite.

Iniziamo a creare aree di layout. Per creare un'area nel layout, selezionare il numero di righe richiesto e fare clic Tabella menu -> Nomi -> Assegna nome(O Ctrl+Maiusc+N). Alla regione Un berretto Scriviamo il nome del report: Fatturato 62 conteggi, disegna utilizzando lo strumento frontiere intestazione del report e impostare anche i parametri Inizio periodo E Fine del periodo. Utilizzando i parametri è possibile visualizzare i dati necessari nel report; di questo ci occuperemo nella fase successiva di sviluppo, ovvero durante la scrittura del codice del report. Per creare un parametro nel layout, selezionare la cella desiderata, scrivere al suo interno il nome del parametro (senza spazi), cliccarci sopra con il tasto destro, selezionare la voce nel menu che si apre Proprietà. Nelle proprietà della cella nella scheda Disposizione seleziona l'imbottitura Parametro.

Successivamente, il nome del parametro nella cella verrà racchiuso tra parentesi angolari("<>“). Di conseguenza, la zona Un berretto dovrebbe assomigliare a questo:

In zona Controparte Dati creeremo i parametri per la visualizzazione del nome della controparte, nonché per le entrate e le uscite per il conto 62, utilizzando lo strumento frontiere Progettiamo l'area come una riga di tabella.

In zona Accordo controparte dati Creiamo i parametri per visualizzare il nome del contratto, nonché per le entrate e le uscite per il conto 62, utilizzando lo strumento Bordi progetteremo l'area come una riga della tabella. Facciamo un piccolo rientro prima del parametro Contratto di controparte(questo può essere fatto dividendo e unendo le celle. Fare clic con il tasto destro sulla cella -> Unisci O Cella divisa), è necessario affinché la segnalazione possa vedere che la linea per il contratto è più bassa nella gerarchia rispetto alla linea per la controparte.

In zona Seminterrato Creiamo i parametri per i totali delle entrate e delle uscite.

Di conseguenza, dovremmo ottenere un layout come questo:

3. Creare un modulo di rapporto

Per visualizzare i dati, impostare il periodo di formazione e il pulsante Modulo il nostro rapporto richiederà un modulo. Per creare un modulo, individuare l'elemento nella struttura dei metadati del report esterno Forme e premere il pulsante Aggiungere. Nella prima pagina del progettista del modulo, non è necessario apportare alcuna modifica, è sufficiente fare clic sul pulsante Ulteriore.

Nella pagina successiva del designer, seleziona entrambi i dettagli disponibili ( Inizio periodo, Fine del periodo) per il posizionamento nel modulo.

Di conseguenza, otterremo questo modulo:

Ma non siamo soddisfatti di esso in questa forma, apportiamo alcune modifiche:

  • Trasciniamo il pulsante Modulo dal pannello inferiore del report verso l'alto (questo sarà più comodo per l'utente);
  • Allunghiamo la forma verticalmente e orizzontalmente;
  • Sistemiamo i campi Inizio periodo E Fine del periodo orizzontalmente;
  • Aggiungiamo un elemento di controllo Campo documento foglio di calcolo al modulo (il nostro report verrà visualizzato al suo interno), diamogli un nome TabDoc;
  • Creiamo un pulsante di selezione del periodo (quando cliccato, apparirà una finestra di dialogo con una comoda scelta del periodo desiderato). Non scriveremo ancora il codice del programma, quindi posizioneremo semplicemente il pulsante accanto ai campi del punto.

Di conseguenza, il nostro modulo sarà simile a questo:

4. Programmazione

Dopo aver creato il modulo di report, iniziamo a programmare. Innanzitutto, creiamo una procedura per visualizzare una finestra di dialogo di selezione del periodo (abbiamo già creato un pulsante per questo nella fase precedente). Fare clic con il tasto destro sul pulsante e selezionare la voce di menu Proprietà, nelle proprietà del pulsante vai alla scheda Eventi, dove utilizzando il pulsante con l'icona della lente di ingrandimento creeremo una procedura Pulsante1Premere nel modulo del modulo.

Puoi passare dal modulo al relativo modulo utilizzando le schede nella parte inferiore del modulo

Per richiamare il modulo di selezione del periodo utilizzeremo la procedura standard Contabilità 2.0 da un modulo comune Utilizzo delle finestre di dialogo - HandlerPeriodSettingPress, è necessario trasmettergli i dettagli del report come parametri Inizio periodo E Fine del periodo.

Procedura Pulsante1Premere(Elemento) Utilizzo di Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); FineProcedura

Passiamo ora alla scrittura del codice che genererà e visualizzerà il nostro report. Il modulo del modulo ha già una procedura PulsanteGeneraPremi, che verrà eseguito alla pressione del pulsante Modulo, è lì che scriveremo il nostro codice. Iniziamo inizializzando le variabili necessarie. Prima di tutto, creiamo una variabile for campi del documento del foglio di calcolo in cui inseriremo i dati, questo non è necessario, è solo che la registrazione delle chiamate diventerà più breve, il che significa che il codice del programma sarà più comprensibile per la lettura.

TabDoc = FormElements.TabDoc;

Otteniamo il layout del report esterno utilizzando la funzione OttieniLayout(<ИмяМакета>) , passeremo il nome del layout come parametro e, se tale layout esiste, la funzione lo troverà.

Disposizione = GetLayout("Layout" );

Dopo aver ricevuto il layout, creiamo variabili per ciascuna delle sue aree, utilizziamo il metodo layout per questo OttieniArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Intestazione" ); AreaDataAccount = Layout.GetArea( "Dati contraente"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Piè di pagina");

Cancellamo il campo del documento del foglio di calcolo. Ciò è necessario affinché ogni volta che viene generato un nuovo report, i vecchi dati vengano cancellati.

TabDoc.Clear();

Ora che l'inizializzazione delle variabili è completata, passiamo a riempire e visualizzare una per una le aree del layout. Cominciamo con l'intestazione. Se ricordi, abbiamo creato due parametri in quest'area Inizio periodo E Fine del periodo, passeremo lì i valori del periodo di generazione del report, per questo utilizzeremo la proprietà Opzioni aree di disposizione.

AreaHeader.Parameters.PeriodStart = Inizio Periodo; AreaHeader.Parameters.EndPeriod = EndPeriod;

Niente più azioni con l'area Un berretto Il produttore non è necessario, quindi visualizzeremo il suo campo in un foglio di calcolo.

TabDoc.Output(AreaHead);

Successivamente, scriveremo una query nel database, con la quale prenderemo il fatturato dell'account 62 dal registro contabile Autoportante. Definiamo una variabile in cui verrà posizionata la nostra richiesta.

Richiesta = nuova Richiesta;

Prima di iniziare a scrivere il testo della richiesta, passiamogli i parametri necessari. Poiché stiamo scrivendo una richiesta di fattura 62 contabilità, quindi prima di tutto creeremo un parametro per essa

Request.SetParameter("Account62", Piani dei conti. Autoportante. Trova per codice("62" ));

È inoltre necessario inserire nella richiesta il periodo di generazione del report. Non dimenticare che disponiamo di dettagli di report speciali per il periodo di generazione e li passiamo come parametri.

Request.SetParameter("Inizio del periodo", Inizio del periodo); Request.SetParameter("Fine del periodo", Fine del periodo);

Iniziamo a scrivere il testo della query, lo faremo utilizzando il query designer. In molti tutorial scrivono che bisogna essere in grado di scrivere una query sia manualmente che utilizzando un costruttore, ma in pratica non è così. Nelle attività che un programmatore 1C affronta costantemente, la priorità è scrivere codice in modo rapido ed efficiente e quando si scrive manualmente una query nel database, ciò è quasi impossibile da ottenere, si trascorrerà molto tempo prezioso riproducendo correttamente tutte le strutture di query; e trovare errori di battitura che hai fatto durante la scrittura, ecc. Pertanto, non perdere tempo cercando di scrivere query manualmente, ma utilizza il costruttore di query. Ti farà risparmiare tempo e ti consentirà di scrivere query complesse senza troppi sforzi. Per iniziare a scrivere il testo della richiesta, scriviamo in codice:

Richiesta.Testo = "" ;

Successivamente, posiziona il cursore tra le virgolette, fai clic con il pulsante destro del mouse e seleziona Costruttore richiesta. Si aprirà la finestra di progettazione della query.

Ora dobbiamo selezionare la tabella del database 1C 8 di cui abbiamo bisogno Rivoluzioni registro contabile Autoportante. Troviamolo sul lato sinistro della finestra del designer

Spostiamolo in zona Tabelle e iniziamo a compilare i parametri. Per tutte le tabelle di query virtuali esiste uno speciale set di parametri che consente di selezionare i dati necessari dalla tabella principale (nel nostro caso, la tabella principale Registro contabile Autoportante). Apriamo la finestra dei parametri della tabella virtuale.

Compiliamo i parametri per il periodo che abbiamo passato alla richiesta. Per utilizzare un parametro nel testo della richiesta, è necessario scrivere il simbolo prima del suo nome e commerciale(&)

Resta da compilare la condizione per il conto contabile. contabilità. Per fare ciò, trova la riga nei parametri della tabella virtuale Condizione del conto e scriveremo lì

Conto IN GERARCHIA (&Conto62)

Puoi anche utilizzare il costruttore delle condizioni facendo clic sul pulsante con tre punti.

Non è necessario imporre ulteriori condizioni al tavolo virtuale, quindi clicchiamo sul pulsante OK nella finestra dei parametri della tabella virtuale. Successivamente, dobbiamo selezionare i campi di cui abbiamo bisogno dalla tabella Autoportante. Fatturato(vale a dire: Controparte, accordo con la controparte, entrate e spese). Per visualizzare l'elenco dei campi disponibili nella tabella che abbiamo selezionato, fare clic sul simbolo “+” accanto al suo nome. Successivamente, trascina i campi richiesti nell'area più a destra del Designer query, chiamata: Campi. Se apriamo il piano dei conti, lo vedremo per il conto 62 analisi su Per la controparte si tratta del Subconto1, e da Contratto di Controparte – Subconto2.

Pertanto, dai campi della tabella virtuale selezioniamo Sottoconto1 E Sottoconto2. Poiché abbiamo bisogno di entrate e uscite in base all'importo, selezioniamo anche i campi Importo FatturatoDt E Importo FatturatoKt

Compiliamo gli alias dei campi che abbiamo selezionato; per farlo andiamo alla scheda Unioni/Alias e impostare i nomi dei campi richiesti.

Poiché nel nostro report i dati verranno visualizzati gerarchicamente (la Controparte è al primo livello e tutti i suoi contratti al secondo), configureremo la visualizzazione dei dati nella gerarchia utilizzando Totali. Andiamo alla scheda nel designer Risultati. Trascinare in sequenza nei campi di raggruppamento Controparte E Contratto di controparte, e in finale In arrivo E Consumo.

Questo completa il lavoro nel costruttore della query, fai clic sul pulsante OK e vediamo che il testo della nostra richiesta appare nel codice del programma.

Query.Text = "SELEZIONA | Fatturato Autoportante.Subconto1 AS Controparte, | Accordo Controparte Autoportante Fatturato.Subconto2 AS, | Autosufficiente Fatturato.Importo FatturatoDt AS Ricevuta, | Fatturato autosufficiente. Importo Fatturato Kt AS Spese|DA | Registro contabile. Fatturati autocontabili (&Inizio periodo, &Fine periodo, Conto IN GERARCHIA (&Conto 62),) AS Fatturato autocontabile.|RISULTATI | IMPORTO(Entrate), | IMPORTO(Spese) |PO | Controparte, | Contratto di controparte";

Dopo che abbiamo finito di scrivere la richiesta, iniziamo a compilare le aree Controparte Dati, Controparte dell'Accordo sui dati E Seminterrato. Completeremo tutte queste aree con i dati ricevuti in fase di esecuzione della richiesta. Poiché la nostra query contiene raggruppamenti( Controparte E Contratto di controparte) seleziona i dati da esso come segue:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

In questo modo riceveremo i record con i totali per tutte le controparti.

Prima di attraversare i dati del campione utilizzando un ciclo, inizializziamo le variabili destinate al calcolo dei risultati complessivi per il report:

Totale entrate = 0; Consumo totale = 0;

Affinché i dati del report vengano visualizzati con una gerarchia (e rotazioni lungo il “+”), impostiamo l'inizio del raggruppamento automatico delle righe del documento foglio di calcolo:

TabDoc.StartAutoGroupingRows();

Tutti i preparativi sono completati, ora iniziamo a scansionare i risultati della query. Eseguiremo l'attraversamento utilizzando un loop Ciao

Mentre Seleziona Account.Next() Ciclo EndCycle ;

All'inizio del ciclo reimpostare i parametri In arrivo E Consumo regione Controparte Dati. Cosa serve? Immaginiamo una situazione in cui la controparte Zio Vasja, il reddito è 10 e la spesa è 5, e per la controparte successiva Zio Petya non c'è entrata né uscita, in questo caso, se non si resettano i parametri In arrivo E Consumo, quindi in linea per controparte Zio Petya ci sarà un reddito di 5 e una spesa di 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Successivamente riempiamo l'area Controparte Dati dati dell'elemento campione

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Dopo aver inserito i dati è possibile visualizzare l'area in Documento di foglio di calcolo, Poiché stiamo utilizzando il raggruppamento automatico delle righe, dobbiamo indicare il livello della riga nel raggruppamento (il nostro report avrà due livelli, per le controparti il ​​primo per i contratti).

TabDoc.Output(AreaDataAccount,1);

Ora per questa controparte faremo una selezione in base ai suoi contratti.

Accordo SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Eseguiremo l'attraversamento utilizzando un loop Ciao.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

Nel ciclo degli accordi con le controparti, ripristiniamo i parametri In arrivo E Consumo, riempire l'area Contratto dati dal campione e visualizzarlo in un foglio di calcolo al secondo livello di record.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; CompilaPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Anche in questo ciclo aggiungeremo i valori attuali alle variabili per il calcolo dei valori totali di entrate e uscite.

Ricevuta Totale = Ricevuta Totale + SelezioneAccordo della Controparte.Ricevuta; Spesa totale = Spesa totale + Contratto campione della controparte. Spesa;

Questo conclude l'output dei dati nell'area Controparte Dati, Controparte dell'Accordo sui dati completato, non resta che completare il raggruppamento automatico delle righe del documento del foglio di calcolo.

TabDoc.FinishAutoGroupingRows();

Cicli completi responsabili dell'output dei dati nell'area Controparte Dati E Controparte dell'Accordo sui dati Assomiglia a questo:

TabDoc.StartAutoGroupingRows(); Mentre SelectionAccount.Next() Ciclo AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Spesa = 0; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); Accordo SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups); Mentre SelectionCounterparty Agreement.Next() Ciclo AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0; CompilaPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); Ricevuta Totale = Ricevuta Totale + SelezioneAccordo della Controparte.Ricevuta; Spesa totale = Spesa totale + Contratto campione della controparte. Spesa; FineCiclo; FineCiclo; TabDoc.FinishAutoGroupingRows();

Resta da visualizzare i dati definitivi della zona Seminterrato e visualizzare l'area stessa Documento di foglio di calcolo.

AreaBasement.Parameters.TotalIncoming = Totale in entrata; AreaBasement.Parameters.TotalConsumption = Consumo totale; TabDoc.Output(AreaFooter);

Ciò completa il processo di scrittura di un rapporto esterno per 1C 8 senza utilizzare un sistema di controllo degli accessi. Ora può essere generato in modalità 1C:Enterprise 8 e aggiunto alla directory Elaborazione esternaÈ possibile scaricare il file del report discusso nell'articolo da .

Guarda un video sulla creazione di un stampabile esterno per un'applicazione gestita:


Parole chiave: Report universale, Report generale, Report Saldi e Fatturati, Tabella incrociata elenco report, Saldi e fatturati, Tabella incrociata/elenco report

La maggior parte dei report si basa sugli stessi principi di base. Il modo più rapido per sviluppare un report è utilizzare il builder "Output Form Designer" integrato nella piattaforma. Tuttavia, quando si sviluppa (o si modifica) una configurazione standard, i programmatori sono tenuti a unificare il codice del programma, nonché i moduli dei libri di consultazione, dei documenti e dei moduli dei rapporti di output. Pertanto, nelle configurazioni tipiche, il codice del programma utilizzato di frequente viene inserito in moduli comuni e vengono utilizzati speciali report "universali" per unificare i moduli di output dei report.
L'intero set di report nelle configurazioni standard può essere suddiviso in report generati sulla base di report generali, quando tutte le funzioni per generare il modulo di output e le impostazioni vengono trasferite al modulo esterno del report generale, e quelli generati utilizzando il builder, quando tutte le funzioni che generano il modulo di output sono contenute nel modulo oggetto.
In UT e UPP sono presenti due report generali: “Report saldi e fatturati (ReportRemainsAndTurnovers)” e “Report elenco incrociato tabella (ReportListCrossTable)”. Il primo “Report saldi e fatturati (Report saldi e fatturati)” è destinato alla generazione di report lineari del tipo “Saldo iniziale – Entrate – Uscite – Saldo finale”, con raggruppamenti visualizzati per righe. Il secondo report "Elenco / tabella incrociata (ReportListCrossTable)" è progettato per visualizzare tabelle incrociate, quando i raggruppamenti vengono espansi non solo per righe, ma anche per colonne.

Struttura dei rapporti universali

Diamo un'occhiata ai dettagli, agli elementi formali e alle procedure dei moduli di reporting universali. La composizione dei dettagli e delle funzioni dei report è leggermente diversa, quindi le differenze tra “Elenco/tabella incrociata (ReportListCrossTable)” e “Report saldi e fatturati (ReportRemainsAndTurnovers)” verranno fornite di seguito nelle descrizioni dei dettagli generali, delle funzioni e elementi del modulo.
Dettagli del rapporto universale:
  • “RegisterName” - stringa, nome del registro di accumulo da cui otteniamo i dati
    “Data di inizio” – la data da cui inizia il campionamento dei dati
  • “DataCon” – la data per la quale i dati vengono campionati. Quelli. periodo di generazione del report da “DataStart” a “DataConk”

  • “Report Builder” – digitare Report Builder, questo attributo contiene un'istanza dell'oggetto Report Builder con l'aiuto del quale viene generato l'output delle informazioni nella parte tabellare, vengono gestite le impostazioni del report (raggruppamenti, selezioni, ordinamento) e anche l'aspetto di il report è controllato (visualizzazione dei risultati per tutti i livelli, colorazione dei gruppi)
  • "UsePropertiesAndCategories" – Booleano, destinato a perfezionare la selezione dei dati del report in base alle proprietà e alle categorie di oggetti. Dopo aver specificato questo parametro nelle impostazioni del report, ti viene data la possibilità di selezionare determinate proprietà e categorie di oggetti per il raggruppamento, la selezione e l'ordinamento

  • “SavedSettings” – una struttura in cui vengono inserite le impostazioni che vengono salvate alla chiusura del report e ripristinate alla successiva apertura
  • “ColorDimensions” – Booleano, l'impostazione di questo attributo su True indica che quando si visualizzano righe di raggruppamenti e campi, dovrebbero essere colorati per una migliore presentazione delle informazioni sullo schermo

  • "OutputIndicatorsInLine" – booleano, indica la possibilità di visualizzare raggruppamenti in una riga
  • "Produci campi aggiuntivi IN una colonna separata" – booleano, se vengono specificati campi aggiuntivi nelle impostazioni del report, devono essere visualizzati in colonne diverse

  • “Totali di output per tutti i livelli” – Booleano, per alcuni raggruppamenti puoi vietare specificamente l'output di cifre per gli indicatori, questo attributo rimuove questo divieto
  • “ShowTitle” – Booleano, indica se visualizzare o meno il titolo sullo schermo (regolabile tramite il pulsante “Titolo” nel modulo di rapporto)

  • La parte tabellare "Indicatori" contiene un elenco di indicatori visualizzati sullo schermo

  • Nel report “Elenco incrociato/tabella (ReportListCrossTable)”:
  • "Utilizza raggruppamenti di intervalli (UseIntervalGroups)" - booleano, indica la possibilità di visualizzare i dati per intervalli di periodo
  • La parte tabellare “Intervalli” contiene un elenco di intervalli

Moduli di rapporto universali:
“FormMain” – la forma principale di output dei dati.
Dettagli “FormMain”:
  • "ReportObject" - l'oggetto principale del report, un collegamento a "ReportRemainsAndTurnover" o "ReportListCrossTable"

  • Il modulo del modulo contiene le seguenti variabili:
  • "Altezza del titolo": numero, numero di righe nel titolo, questa variabile viene utilizzata quando è necessario nascondere/visualizzare il titolo del report in un foglio di calcolo
  • "DecryptionWindowIdentifier"

  • "Modulo delle impostazioni": collegamento al modulo delle impostazioni
  • "Non compilare le impostazioni all'apertura" - Booleano, la variabile viene utilizzata quando non è necessario compilare le impostazioni iniziali del report. Alla prima apertura, la variabile è FALSE, durante la decrittografia del report, la variabile verrà impostata su TRUE

  • "Struttura dei collegamenti di elementi con dati" - una struttura che contiene dati che indicano quali elementi del modulo corrispondono ai dettagli del report

  • Elementi del modulo “FormMain”:
  • “Form CommandBar” – contiene i pulsanti di controllo del modulo:
    o Menu “Sottomenu” (Azioni) – contiene un elenco di possibili azioni del modulo
    o Pulsante “Genera” – quando premuto, genera un report
    o Pulsante “Selezione” – apre/chiude il pannello di selezione
    o Pulsante “Titolo”: apre/chiude le righe con il titolo del report nella sezione della tabella
    o Pulsante "Impostazioni": apre il modulo delle impostazioni del report
    o Pulsanti “RestoreSettings”, “SaveSettings”: salva e ripristina le impostazioni del report
    o Pulsante “Guida (Azione1)”: apre la guida sul report
  • “Periodo da: (DateStart)”, “a: (DateCon)” - campo di immissione, inserire la data di inizio/fine della selezione dei dati per il report

  • “Sezione contabilità (RegisterName)” - campo di selezione, nome del registro per il quale viene generato il report
  • "Pannello di selezione" - un pannello in cui vengono posizionati gli elementi per implementare un meccanismo per l'accesso rapido alle selezioni del report

  • "DocumentResult": un documento tabellare in cui vengono visualizzati i dati del report
Modulo modulo "FormMain":
Elenchiamo le procedure:
  • "BeforeOpening" - gestore eventi prima dell'apertura del modulo. Contiene il codice eseguito per inizializzare le impostazioni iniziali del report. Ripristina i dati salvati, attributo “RegisterName”.

  • "All'apertura" - gestore eventi all'apertura del modulo
  • “UpdateReport” - la procedura genera un report e aggiorna il documento tabellare “DocumentResult”

  • “Visualizza selezione” - mostra/nasconde il pannello del modulo di selezione
  • "Fill ObjectByDialog": compila i dettagli del report utilizzando i dettagli del modulo

  • "Compila oggetto DialogBy": compila i dettagli del modulo utilizzando i dettagli del report
  • "Output titolo": genera il titolo del report

  • "GenerateFormTitle": genera il testo del titolo
  • "AfterRestoringValues" - dopo aver ripristinato i valori sul modulo. In questa procedura, il gestore eventi del modulo, è possibile inserire il codice che imposterà i valori del report e i dettagli del modulo dopo l'apertura del modulo del report. I valori salvati vengono solitamente inseriti nell'attributo SavedSettings e, dopo aver ripristinato il modulo, tutte le impostazioni vengono inserite nell'attributo SavedSettings.

  • "Before SavingValues" è un gestore di eventi del modulo, eseguito quando il modulo viene chiuso e i valori dell'attributo SavedSettings vengono salvati
  • "Elaborazione avvisi" - gestore degli avvisi

  • "ButtonSettingPeriodPress", "SettingsField1OnChange", "SettingsFieldWith1OnChange", "SettingsFieldBy1WhenChange", "ComparisonViewField1WhenChange" - gestori di eventi per gli elementi del modulo
  • "DocumentResultDecryptionProcessing" - gestore eventi per l'evento "DecryptionProcessing" del campo del documento del foglio di calcolo "DocumentResult"

"FormSettings" - un modulo destinato all'impostazione di un report, richiamato quando si fa clic sul pulsante "Impostazioni" nel modulo del report principale.
Dettagli “Configurazione modulo”:
  • “ReportObject” - rapporto, collegamento a “ReportRemainsAndTurnover” o “ReportListCrossTable”


  • "CallingReport" - tipo arbitrario
  • "IntervalGrouping" - tipo di stringa

  • "IntervalField" - tipo arbitrario
  • “SelectedIntervals”: ​​digita la tabella dei valori. Collegato all'elemento del modulo SelectedIntervals nella scheda Intervalli di raggruppamento.

Elementi “FormSettings”:
Il “Pannello dei report (Pannello dei report)” contiene le seguenti schede:
La scheda “Generale” contiene i seguenti elementi:
  • “Periodo da: (DateStart)”, “a: (DateCon)” - campo di input, data di inizio e fine del campionamento dei dati dal report. I dati sono associati ai dettagli del report “DataStart” e “DataCon”

  • “Sezione contabile (RegisterName)” è un campo di selezione, l'elemento dati è associato all'attributo del report “RegisterName”, contiene il nome del registro per il quale viene generato il report. Se "FormSettings" viene richiamato da un report esterno, questo campo non è disponibile per la visualizzazione e la modifica
  • "Usa proprietà e categorie (UsePropertiesAndCategories)" - casella di controllo, imposta il flag per l'utilizzo di proprietà e categorie di oggetti, i dati di questa casella di controllo sono associati ai dati dell'attributo del report "UsePropertiesAndCategories"

  • "Dimensioni colore (ColorDimensions)" - casella di controllo, i dati sono associati ai dettagli del report "ColorDimensions", se la casella di controllo è selezionata, i livelli di raggruppamento visualizzati nel documento foglio di calcolo verranno evidenziati in colori
  • "Totali di output per tutti i livelli (OutputTotalsAcrossAllLevels)" - casella di controllo, se selezionata, i totali per tutti i livelli di raggruppamenti vengono visualizzati in un foglio di calcolo, associato all'attributo del report "OutputTotalsAcrossAllLevels"

  • "Output in colonne diverse (Output in colonne diverse)" - casella di controllo, per impostazione predefinita i valori dell'indicatore vengono visualizzati in una cella, quando questa casella di controllo è selezionata, i valori dell'indicatore verranno visualizzati in due celle
  • "Elenco degli indicatori (Indicatori)" - parte tabellare, contiene un elenco di indicatori

  • Nel rapporto "Elenco/CrossTable (ListCrossTableReport)":
  • "Periodo (DateStart)" - campo di immissione della data, destinato alla selezione di un periodo. La visibilità di questo campo è regolata dalla variabile del modulo “mPeriodInputMode”, a seconda del valore di questa variabile in questo campo è possibile selezionare un periodo con incrementi di giorno, mese, trimestre, anno
Scheda "Gruppi":
  • "Dimensioni riga (Report Builder.Row Dimensions)" - tipo di dimensioni del generatore di report, dimensioni stabilite dalle righe del report

  • Nel report “Elenco/tabella incrociata (ReportListCrossTable)”:
  • "Dimensioni colonna (Generatore report. Dimensioni colonna)" - tipo di dimensioni del Generatore report, dimensioni stabilite dalle colonne del report

  • Nel report “Elenco/tabella incrociata (ReportListCrossTable)”: se l'attributo
  • "Use IntervalGroups" è impostato su "True", quindi il segnalibro diventa disponibile
"Intervalli di raggruppamento":
  • “Nome (IntervalField)” - campo di selezione. All'apertura del modulo, questo viene compilato con le dimensioni della raccolta “Report Builder.AvailableFields” il cui nome inizia con “IN”

  • "SelectedIntervals" - tabella dei valori. Quando si modifica “Nome (IntervalField)”, viene compilato l'elenco degli intervalli selezionati
Scheda “Selezione”:
  • "Selezione (ReportBuilder.Selection" - tipo Selezione. Selezione del generatore di report

Scheda “Campi”:
  • "SelectedFields (Report Builder.SelectedFields)" - tipo di campo del generatore di report. Campi da visualizzare nel report

  • "Visualizza campi aggiuntivi in ​​una colonna separata (OutputAdditionalFieldsINSeparateColumn)" - casella di controllo, se selezionata, visualizza i campi in colonne separate
Scheda "Ordinamento":
  • "Ordine (ReportBuilder.Order)": digitare Ordine. Ordinamento dei raggruppamenti in un report

Il modulo "FormsSettings" contiene le seguenti procedure e gestori di eventi:
  • "Fill DialogByObject": riempie la finestra di dialogo in base ai valori dei dettagli del report

  • "Prima dell'apertura" - gestore dell'evento "Prima dell'apertura" del modulo di segnalazione
  • “RegisterNameOnChange”, “ButtonPeriodSettingPress”, “BasicFormActionsOK”, “UsePropertiesAndCategoriesWhenChange”, “CommandPanelListIndicatorsSetAll”, “CommandPanelListIndicatorsClearAll”, “SelectionValueStartofSelection”, “SelectionBeforeDeletion”, “StartDateOnChange” “DateOnChange” - gestori di eventi per l'elemento del modulo corrispondente

  • Nel modulo form viene inizializzata anche la variabile Elenco Registri (funzione Ottieni Elenco Registri e Residui) e specificata come lista per la selezione dell'elemento del form “Sezione Contabilità (Nome Registro)”

  • Nel report “Elenco/tabella incrociata (ReportListCrossTable)”:
  • “Seleziona Intervalli” - la procedura genera un elenco di intervalli selezionati nell'attributo “Intervalli Selezionati”, richiamato in fase di modifica del campo di selezione “Nome (IntervalField)”
  • “InsertIntervalsByName” - la procedura viene richiamata prima di generare il report, riempie la parte tabellare “Intervalli”

  • "ButtonPeriodSettingPress" - gestore per premere il pulsante di impostazione del periodo
  • “PlusPeriodPress”, “MinusPeriodPress” - gestore per premere il pulsante “+”, “-” punto

  • “IntervalFieldOnChange”, “SelectedIntervalsAfterDeleting”, “SelectedIntervalsWhenEditingCompleted”, “SelectedIntervalsInBorderOnChange” - gestori di eventi per gli elementi della scheda “Intervalli di raggruppamento”

  • Nel modulo del modulo viene inizializzato il campo di selezione “IntervalField”.
Modulo oggetto report:
Variabili del modulo che influiscono sulla generazione del report:
  • "mTableIndicators" - una tabella di valori, contiene tutti gli indicatori possibili, è riempita per impostazione predefinita con gli indicatori della sezione tabellare "Indicatori"

  • “NP” - impostazione del periodo, utilizzata quando si richiama il “pulsante Impostazioni periodo”
  • "mAssignment Match": una corrispondenza contenente assegnazioni di proprietà e categorie ai nomi

  • "mStruttura della relazione tra indicatori e dimensioni" - corrispondenza, contiene la connessione di indicatori e misurazioni. Utilizzato quando è necessario visualizzare i valori di determinati indicatori solo in righe con determinati raggruppamenti
  • "mArrayWidths of Columns": una serie di larghezze di colonne di un documento di foglio di calcolo da salvare tra la generazione del report. Utilizzato durante l'aggiornamento di un report per mantenere la larghezza delle colonne, inclusa quella impostata dall'utente

  • "mInitialReportLayout" - il layout utilizzato per il report, per impostazione predefinita è "Layout", ma può essere sovrascritto. La variabile è necessaria se si intende utilizzare un layout diverso da quello originale del report universale “Layout”
  • "mReportName" - stringa, titolo del report

  • “mSelectRegisterName” - Booleano, un segno di selezione (modifica) di un nome di registro (tipo di report), influenza la visibilità dell'elemento del modulo di impostazione “Sezione contabilità (RegisterName)”
  • “mSelectUseProperties” - Booleano, segno di selezione (modifica) del flag per l'utilizzo di proprietà e categorie

  • "FieldFormatStructure" - una struttura che memorizza il formato dei campi di tipo primitivo, utilizzata per formattare i campi del tipo data in una rappresentazione di stringa
  • "mStructureForSelectionByCategories" - una struttura progettata per collegare le selezioni del Builder con le categorie delle tabelle collegate

  • Nel report “Elenco/tabella incrociata (ReportListCrossTable)”:
  • "mStructure of Non-Displayable Groupings" - una struttura che memorizza un elenco di quei raggruppamenti che non devono essere visualizzati. Si usa nei casi in cui è necessario saltare i totali, ad esempio Nomenclatura - Caratteristiche - Serie: i totali per la nomenclatura non servono, solo per tutti e tre
  • "Tipi di campi intervallo corrispondenti": corrispondenza

Procedure e funzioni del modulo report:
  • "Compila impostazioni iniziali": la procedura compila le impostazioni iniziali del report. Chiamato nel modulo del modulo di report prima di aprire il modulo (il gestore eventi "BeforeOpen")

  • "Trascrizione di elaborazione di un report standard" - una procedura richiamata dal gestore eventi per l'evento "Trascrizione di elaborazione" del campo del documento del foglio di calcolo "DocumentResult"
  • "Compila i campi dei dettagli principali" - una procedura richiamata durante l'inizializzazione del modulo di report principale (modulo modulo)

  • "Personalizza" - una procedura che configura il report utilizzando la struttura dei parametri passati, chiamata durante la decrittografia del report
  • "GetReportBuilder" - funzione che restituisce il generatore di report

  • "GetMainForm" - funzione che restituisce il modulo principale del report
  • "Crea una struttura per il salvataggio delle impostazioni" - una procedura che crea una struttura "Impostazioni salvate" per il salvataggio dei parametri del report. Chiamato prima di salvare le impostazioni nel gestore eventi "BeforeSavingValues". La struttura è composta dai seguenti campi:
    o “RegisterName” – contiene il nome del registro
    o “Impostazioni del builder” - contiene le impostazioni del builder: campi disponibili, selezioni, ordine, ecc.
    o “Indicatori” - parte tabellare “Indicatori”
    o "Usa proprietà e categorie": un segno dell'utilizzo di proprietà e categorie
    o "Emetti campi aggiuntivi in ​​una colonna separata" - un segno per visualizzare campi aggiuntivi in ​​una colonna separata
    o “Visualizza totali per tutti i livelli”: visualizza i totali per tutti i livelli
    o “OutputIndicatorsInLine” - indicatori di output in una riga
    o “ColorDimensions”: colora le dimensioni
    o "TitleTagged": mostra o nasconde il titolo
  • "RestoreSettingsFromStructure" - una procedura che inserisce i parametri generali del report dalla struttura delle impostazioni. Chiamato dopo che le impostazioni sono state ripristinate nel gestore eventi "AfterValuesRestored".

  • "GenerateReport": esegue una richiesta e genera un documento tabellare risultato del report

  • Nel report “Elenco/tabella incrociata (ReportListCrossTable)”:
  • “Fill Indicators” è una procedura che compila una tabella speciale “mTableIndicators”. Richiamato nella procedura “Compila impostazioni iniziali” prima di aprire il report
  • “GenerateTitle” - procedura che genera una targa del titolo

  • "Colonna intestazione output": una procedura che visualizza l'intestazione della tabella
  • "OutputIndicators": una procedura che visualizza gli indicatori in una riga del report

  • "GetIndicators" - una procedura che riceve i valori degli indicatori per l'output nella tabella
  • "OutputLine": visualizza una riga del report

Il report “Saldi e fatturati (ReportBalances and Turnovers)” contiene i seguenti layout:
“Layout” - è un layout per la visualizzazione delle informazioni nel documento foglio di calcolo “DocumentResult”, composto dalle seguenti sezioni:
  • “Intestazione” è una sezione orizzontale che contiene celle in cui vengono visualizzate informazioni sul nome del report, il periodo di generazione, l'elenco degli indicatori e dei raggruppamenti visualizzati

  • "Intestazione tabella generale": contiene celle in cui vengono visualizzate le intestazioni delle colonne della tabella. Questa sezione comprende le seguenti sezioni verticali: "Campo" - vengono visualizzati i nomi dei raggruppamenti e dei campi aggiuntivi, "Saldo iniziale" - indicatori del saldo iniziale, "Entrata" - indicatori di reddito, "Spese" - indicatori di spesa, "Saldo finale" - indicatori di consuntivo. La sezione include anche sottosezioni orizzontali: “Intestazione tabella” - include una riga di celle “Campo”, “Saldo iniziale”, “Ricevuta”, “Spese”, “Saldo finale”, “Intestazione tabella in basso” - visualizza i nomi di ulteriori campi. Se non è necessario visualizzare campi aggiuntivi, viene visualizzata solo la sezione “Intestazione tabella”.
  • Il “piè di pagina” è una sezione orizzontale, utilizzata come sezione finale nella visualizzazione di una tabella; non visualizza dati, ma contiene una linea continua, completando così il bordo della tabella con linee continue

  • “Riga gerarchia” - la sezione orizzontale viene visualizzata solo se il metodo di visualizzazione del raggruppamento delle directory è “per gerarchia”, visualizza un gruppo di elementi di directory
  • “Riga” - sezione orizzontale, linea di raggruppamento del display

  • La “Riga Dettagli” è una sezione orizzontale, se le impostazioni indicano che devono essere visualizzati campi aggiuntivi, i campi aggiuntivi verranno visualizzati in questa riga
  • “TotaliGenerali” - sezione orizzontale, in questa riga vengono visualizzati i totali generali

  • "Design delle dimensioni" - la sezione orizzontale contiene il design delle dimensioni, se la casella di controllo "Dimensioni colore (ColorDimensions)" è selezionata nelle impostazioni; per visualizzare raggruppamenti e campi a diversi livelli, le impostazioni del design delle celle dalla sezione "Design di Vengono utilizzate le dimensioni”.
  • “Design Dettagli” - la sezione orizzontale contiene il design dei dettagli

  • "Parametri report..." - layout in cui sono specificate le impostazioni dei parametri per la visualizzazione dei singoli report. Il riempimento delle impostazioni iniziali del report per layout viene richiamato dalla funzione "Compila impostazioni iniziali per layout".
Nel layout è possibile specificare la composizione degli indicatori, dei raggruppamenti e dei campi per l'output del report che contiene due sezioni:
  • "Indicatori" è una sezione orizzontale, le celle in cui indicano la composizione degli indicatori e i parametri per la visualizzazione degli indicatori nel rapporto. In questa sezione è inoltre possibile specificare gli indicatori calcolati

  • "Raggruppamento" - sezione orizzontale, contiene celle che elencano i raggruppamenti visualizzati nel report
Il report CrossTable/Elenco tabelle (ReportListCrossTable) contiene i seguenti layout:
"Layout" - è un layout per la visualizzazione delle informazioni nel documento tabellare "Risultato documento", costituito dalle stesse sezioni del layout del report "Report saldi e fatturati (Saldi e fatturati)", ad eccezione delle sezioni verticali "Iniziale Saldo”, “Ricevuta”, “Spesa”, “Saldo finale” sono stati sostituiti dalla sezione “Indicatore” ed è stata aggiunta una sezione orizzontale “Riga Intestazione Tabella” per visualizzare i nomi dei raggruppamenti nella riga.

Creazione di moduli di output personalizzati basati su report universali (generali).

Ora che abbiamo familiarità con la struttura dei report universali, esaminiamo il loro utilizzo per creare altri moduli di output.
“Saldi e fatturati (Report Balances and Turnovers)” (di seguito denominato OiO) e “List of cross/table (ReportListCrossTable)” (di seguito denominato SCT) sono report indipendenti, possono essere utilizzati per ottenere varie informazioni su tutti i registri di accumulo presenti nella configurazione. Ma spesso è necessario generare report più dettagliati basati su query e selezioni complesse (chiameremo tali moduli di output personalizzati). A questo scopo viene creato un modulo di output separato in cui, utilizzando report generali, possiamo organizzare l'output delle informazioni necessarie.

Forma base

Diamo un'occhiata a come i rapporti personalizzati interagiscono con i rapporti generali. La prima cosa a cui dovresti prestare attenzione è che nei dati del report c'è un attributo "GeneralReport", che ha il tipo "ReportObject.ReportRemainsAndTurnover" o "ReportObject.ReportListCrossTable", questo attributo contiene un'istanza del report generale, i cui dettagli metodi che utilizziamo per generare il modulo di output. L'attributo principale del modulo di report personalizzato "GeneralReport" ha anche il tipo O&O o SKT. Per fare riferimento a un oggetto report personalizzato, utilizzare l'attributo del modulo "ThisReport".
La struttura del modulo principale è la stessa della relazione generale della casa madre:
  • "Pannello di comando (CommandPanelForms)" - pannello di comando, contiene pulsanti di controllo: "Modulo" - genera un rapporto, "Selezione" - mostra/nasconde il pannello di selezione ("Pannello di selezione"), "Titolo" - mostra/nasconde il titolo in un documento di foglio di calcolo (modulo elemento "DocumentResult"), "Settings" - apre il modulo delle impostazioni del report, "SaveValues" - salva i valori delle impostazioni del report, "RestoreValues" - ripristina i valori delle impostazioni del report, accede tutti i pulsanti sopra indicati possono essere ottenuti tramite il sottomenu "Azioni".

  • “Periodo da: (DataStart)”, “a: (DataCon)” o “In data: (DataCon)” - campo di immissione della data, i dati sono associati ai dettagli del report generale “DataStart” o “DataCon”
  • Il “Pannello di selezione (PanelSelection)” è un pannello sul quale sono posizionati gli elementi per la selezione rapida. Per impostare una selezione sono necessari tre elementi del modulo: una casella di controllo, un campo di selezione e un campo di input, il nome di ciascun elemento inizia con un nome specifico più il nome della selezione poiché deve essere specificato nel generatore di report:
    o “Casella di controllo Impostazioni…” - una casella di controllo associata all'attributo di selezione “Utilizza” quando questa casella di controllo è selezionata, la selezione corrispondente sarà abilitata nel generatore di report
    o “Campo Tipo Confronto...” - campo di selezione, associato all'attributo di selezione “Tipo Confronto”, contiene un metodo per confrontare il valore della selezione con i valori selezionati
    o “Campo Impostazioni...” - campo di input, associato all'attributo di selezione “Valore”, contiene il valore in base al quale viene effettuato il filtraggio

  • Esempio di utilizzo:
    Imposta la selezione in base alla dimensione “Nomenclatura”. Aggiungiamo tre elementi del modulo al pannello di selezione, denominiamoli come segue: la casella di controllo "NomenclatureSettingsCheck", il campo di selezione "NomenclatureComparisonViewField", il campo di input "NomenclatureSettingsField". Controlliamo che nel gestore dell'evento del modulo “Before Opening” venga eseguita la procedura “SetLink of Quick Selection Fields on the Form”, che collega gli elementi del modulo con i dati di selezione del report builder. Tutto. Se i dati del report contengono la selezione "Nomenclatura", possiamo gestire la selezione nel pannello di selezione senza richiamare il modulo delle impostazioni del report.
  • "Documento tabellare (DocumentResult)": il documento tabellare effettivo in cui vengono visualizzati i dati del report
Quando si apre per la prima volta un report personalizzato, viene creata un'istanza dell'oggetto "GeneralReport". È necessario comprendere chiaramente che nell'ambito di un report personalizzato operiamo con due oggetti "GeneralReport" - un'istanza dell'oggetto report generale e "ThisReport" - un'istanza dell'oggetto report personalizzato.
Cioè, se è necessario chiamare la procedura del modulo di report personalizzato “Fill in InitialSettings()”, scrivere la seguente costruzione: “ThisReport.Fill inInitialSettings()” e chiamare la procedura generale del report “Fill in the MainAttributeFields() ”, scrivi “Rapporto Generale. Compila i campi dei dettagli principali()". Tieni presente che nel modulo del modulo per chiamare le procedure di report generale, specifica semplicemente il nome della procedura e nel modulo dell'oggetto del report personalizzato devi scrivere "GeneralReport". e il nome della procedura.
Un esempio di utilizzo di un report personalizzato dalla directory "Controparti":
Account = Elenco degli elementi del modulo. Report = Report. Dichiarazione di regolamento reciproco con le controparti Create(); Modulo = Report.GetForm(); Form.ThisReport.FillInInitialSettings(); Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Usage = True; Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Valore = Account; Se Account.Questo è un gruppo, allora Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].ComparisonType = ComparisonType.VIierarchy; Altrimenti Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].ComparisonType = ComparisonType.Equals; finisci se; Form.UpdateReport(); Modulo.Apri();
Elenchiamo le principali procedure e funzioni del form principale di report utente:
  • Quando il modulo viene inizializzato, viene eseguita la procedura “Compila i campi degli attributi principali” che compila i campi e i dettagli dell'oggetto principale del modulo. Vengono impostate anche le variabili del modulo

  • "Visualizza aggiornamento" - procedura, modulo gestore aggiornamento dati
  • Prima di aprire il form viene richiamata la procedura del modulo report utente “Fill InitialSettings”, vengono ripristinati i valori dei parametri del form e viene effettuato il collegamento tra gli elementi del form e le selezioni del report builder: “SetLink of QuickFilterFieldsOnForm”

  • "OnOpening" - procedura del gestore eventi all'apertura di un modulo

  • Il salvataggio e il ripristino dei parametri del report vengono eseguiti utilizzando le seguenti procedure:
  • "AfterRestoringValues" - una procedura del gestore eventi dopo il ripristino dei valori salvati, chiama la procedura del modulo di report "RestoreSettingsFromStructure"
  • "Before SavingValues" - una procedura del gestore eventi prima di salvare i valori, chiama la funzione del modulo report "GenerateStructureForSavingSettings", in cui viene formata la struttura delle impostazioni salvate e assegnata all'attributo "SavedSettings"

  • In tutti i report basati su O&E o SKT, il salvataggio dei parametri delle impostazioni viene implementato come segue. Nelle proprietà del modulo indicare “Salva valori” e nell'elenco “Salva valori” selezionare l'attributo “SavedSettings”. Nel gestore eventi “Prima di salvare i valori”, “Dopo il ripristino dei valori”, viene inserito il codice che richiama le procedure del modulo generale del report: “GenerateStructureToSaveSettings” per salvare le impostazioni e “RestoreSettingsFromStructure” per ripristinare le impostazioni del report. La struttura delle impostazioni è già stata descritta nella sezione relativa ai report universali
    Esempio di utilizzo:
    Dopo aver generato il report, gli utenti possono regolare la larghezza delle colonne del documento del foglio di calcolo (premendo Ctrl + posizionando la larghezza con il cursore del mouse). Nei report generali, un array di larghezze di colonna viene archiviato nella variabile mArrayColumnWidths; quando il report viene aggiornato, le larghezze di colonna vengono regolate in base ai dati archiviati in questo array. L'attività consiste nel salvare una serie di larghezze di colonna alla chiusura di un report e, dopo aver aperto il report, ripristinare le larghezze delle colonne come specificate dall'utente prima della chiusura. Per fare ciò, prima di salvare i valori del modulo “Before SavingValues” nella struttura “SavedSettings”, aggiungi un array al gestore eventi, che è formato come segue:
// Dovrebbe essere ricordato se il documento non lo è Se FormElements.DocumentResult.TableHeight > 0 Quindi vuoto For Count=1 Da FormElements.DocumentResult.TableWidth Loop ArrayColumnWidths.Add(FormElements.DocumentResult.Area(1 ,ColumnWidth); FineCiclo; finisci se; SavedSettings.Insert(" ArrayWidthColumns", ArrayWidthColumns);
Nella procedura del gestore "AfterValuesRestoration", inserire il seguente codice:
ThisReport.RestoreSettingsFromStructure(SavedSettings, ShowTitle); SavedSettings.Property(" ArrayWidthColumns", GeneralReport.mArrayofColumnWidths); // Ripristina l'array delle larghezze delle colonne
  • "OnClose" è una procedura del gestore eventi quando il modulo viene chiuso. A questa procedura vengono solitamente aggiunte funzioni per il salvataggio dei parametri del modulo.
  • "Elaborazione delle notifiche" è una procedura di gestione dei messaggi. Utilizzato per aggiornare gli elementi di selezione nel modulo se le impostazioni di selezione nel generatore di report sono cambiate quando si richiama il modulo delle impostazioni

  • "DocumentResultTranscriptProcessing" è una procedura di gestione per l'evento "TranscriptProcessing" del campo del documento del foglio di calcolo DocumentResult. Richiama la procedura del modulo di report generale “ProcessingDecryption”
  • Il modulo del modulo contiene anche gestori di procedure per eventi di selezione di elementi, selezione di date, ecc., la composizione di questi gestori dipende dal tipo di report utente
  • Procedure e funzioni generali:

    • "Gestisci parametri di visualizzazione degli elementi del modulo": controlla le etichette dei pulsanti sulla barra degli strumenti

    • “UpdateReport” - aggiorna la tabella del report, viene chiamato quando si fa clic sul pulsante “Genera”, nonché quando è necessario rimuovere/impostare il titolo del report (il pulsante “Titolo”), in quest'ultimo caso viene visualizzato solo il titolo del report visualizzata La procedura contiene una chiamata alla procedura del modulo report “GenerateReport”.
    • “OutputHeader” - procedura – controlla l'output dell'intestazione, richiama la procedura “GenerateReport” dal modulo report

    • “GenerateFormHeader” è una procedura che configura il titolo del form e richiama la funzione del modulo generale “GenerateMainFormHeader”. Il titolo restituito da questa funzione è costituito dal nome del report, dalla data di inizio e dalla data di fine della generazione del report. In genere, "GenerateFormHeader" chiama il gestore dell'evento di aggiornamento della visualizzazione del modulo

    Modulo report

    Diamo un'occhiata al modulo di report personalizzato. La procedura più importante del modulo del report “Compila le impostazioni iniziali”, questa procedura viene richiamata prima di aprire il form e contiene i comandi che configurano l'elenco degli indicatori, raggruppamenti, selezioni e ordine che saranno presenti nel report:
    • Inizializzazione delle variabili:
      "FieldRepresentationStructure" è una struttura in cui vengono inserite le rappresentazioni dei campi, dove la chiave è il nome dell'indicatore/raggruppamento/campo dall'origine dati e il valore è la rappresentazione testuale dell'indicatore/raggruppamento/campo.
      Esempio di utilizzo:
      StructureFieldRepresentation.Insert(" CaratteristicheNomenclature", "Caratteristiche della nomenclatura"); StructureFieldRepresentation.Insert(" Una base di documenti", "Una base di documenti");
      "Array di selezione" è un array di selezione, un array in cui includiamo le selezioni presenti nelle impostazioni del report per impostazione predefinita.
      Esempio di utilizzo:
      Aggiungiamo due selezioni per articolo e magazzino; queste selezioni possono essere collegate agli elementi nel pannello di selezione del modulo principale. Quando si aggiungono elementi di accesso rapido alle selezioni sul modulo del report, nelle impostazioni del report è consigliabile aggiungere i nomi di queste selezioni alla “Matrice di selezione”
      Selezione Array.Add("Nomenclatura"); Selezione Array.Add("Magazzino");
    • Parametri del rapporto:
      “GeneralReport.RegisterName” - se stiamo generando un rapporto basato su un registro specifico, indicare il nome di questo registro.
      "GeneralReport.mReportName": il nome del report, che verrà visualizzato nell'intestazione del documento del foglio di calcolo.
      Esempio di utilizzo:
      GeneralReport.RegisterName = " Prodotti Nei Magazzini"; GeneralReport.mReportName = " Analisi della disponibilità della merce nei magazzini";
    • Query del generatore di report:
      I report offrono la possibilità di generare testo di query per il generatore di report in base a tre origini: registrare metadati, metadati di layout e assegnare direttamente il testo di query al generatore di report.
      - Query basata sui metadati del registro
      Se abbiamo specificato il nome del registro in “GeneralReport.RegisterName”, allora richiamando la procedura “Fill InitialSettingsByRegisterMetadata” possiamo compilare le impostazioni del query builder e i dettagli del report generale
      Esempio di utilizzo:
      Genera il testo di una richiesta al registro “ProductsInWarehouses” e compila i dettagli generali del report con le impostazioni:
      GeneralReport.RegisterName = " Prodotti Nei Magazzini"; Compila le impostazioni iniziali in base ai metadati del registro (struttura di rappresentazione del campo, matrice di selezione, rapporto generale, " ListCrossTable");
      - Richiesta in base al layout
      Come descritto nella sezione "Progettazione universale del report", le opzioni di personalizzazione del report possono essere specificate in un layout personalizzato. La comodità del layout è che puoi regolare la visualizzazione di indicatori, raggruppamenti e campi senza ricorrere alla creazione di una query tramite il costruttore.
      Esempio di utilizzo:
      ReportBuilder = RapportoGenerale.ReportBuilder; Compila InizialSettingsByLayout(GetLayout(" ParametriReportProdottiOrganizzazioni"), Campi di rappresentazione della struttura, Array di selezione, Report generale, " ListCrossTable");
      - Specifica di una query come origine dati del generatore di report
      Utilizzo i report universali per generare moduli di output personalizzati; puoi creare la tua query e specificarne il testo come origine per il generatore di report. Questo metodo è molto conveniente perché puoi creare query di qualsiasi complessità e struttura.
      Esempio di utilizzo:
      ReportBuilder.Text = " SELEZIONA | Fatturato delle vendite.Nomenclatura AS Nomenclatura, | Fatturatodellevendite.CostoFatturato AS CostoFatturato |(SELECT | Nomenclatura.*, | Fatturatodellevendite.CaratteristicheNomenclatura.* |//PROPRIETÀ |) |FROM | RegisterAccumulations.Sales.Fatturato(&DataInizio, &DataFine,) AS Fatturato Vendite |//CONNESSIONI |GRUPPO PER | Fatturato delle vendite.Nomenclatura | //RAGGRUPPA PER|(DOVE | Fatturato.Nomenclatura.*, | Fatturato.Nomenclatura.Caratteristiche.* |//PROPRIETÀ |//CATEGORIE |) |(ORDINE PER | Nomenclatura.*, | Fatturato.Nomenclatura.* |//PROPRIETÀ |) |RISULTATI | SOMMA(CostoFatturato) |PO | GENERALE, | Nomenclatura |(RISULTATI PER | Fatturato.Nomenclatura.*, | Fatturato.CaratteristicheNomenclatura.* |//PROPRIETÀ |)"
      Quando crei le richieste, dovresti seguire diverse regole:
      o Nella richiesta è possibile specificare due parametri predefiniti: “Data di inizio” e “Data di fine”, nei quali viene passato il valore del dettaglio del report corrispondente. Questi parametri vengono utilizzati per limitare i campioni dai dati per periodo.
      o Il rapporto deve sempre contenere risultati generali: “RISULTATI... IN GENERALE”
      o Per poter gestire le impostazioni del report dal modulo delle impostazioni, è necessario specificare le impostazioni appropriate per il generatore di report, tra virgolette graffe "(" e ")" o nella scheda "Generatore" del progettista query.
      o È possibile specificare direttive speciali nella richiesta: “//PROPERTS”, “//CATEGORIES”, “//CONNECTIONS”, “//GROUP BY”. Successivamente, utilizzando la procedura “AddToTextPropertiesAndCategories”, le selezioni dei campi delle proprietà e delle categorie di oggetti vengono aggiunte alla query.
      Esempio di utilizzo:
      Nella query sopra riportata con la direttiva “//PROPERTIES”, indichiamo che la selezione, il raggruppamento e le condizioni per proprietà dell'oggetto devono essere aggiunti al testo della richiesta, “//CATEGORIES” - aggiungiamo una condizione per categoria, e con la direttiva “//PROPERTIES” aiuto di "//CONNECTION" forniamo connessioni al registro delle informazioni "ObjectPropertyValues", "//GROUP BY" - raggruppa per proprietà dell'oggetto selezionate
    • Procedure per compilare i campi del generatore di report:
      Dopo che la richiesta è stata generata, è necessario inserire i dettagli appropriati per il generatore di report e il report generale.
      Nel “Selection Array” inseriamo un array di selezioni; per riempire le selezioni nel report builder utilizziamo la procedura “Fill Selection”.
      Se intendiamo utilizzare proprietà e categorie, dobbiamo aggiungere la procedura “AddToTextPropertiesAndCategories”.
      Esempio di utilizzo:
      AddToTextPropertiesAndCategories(FieldTable, Text, StructureFieldRepresentation, mAssignment Matching, StructureParameters, TextInformationSources="", CategoriesFieldText="", PropertyFieldText="", FieldTextGroupBy = "", replaceProperties=" //Proprietà", SostituisciCategorie = "//CATEGORIE", SostituisciConnessioni = " //CONNESSIONI", SostituisciGroupBy = "//GROUPBY", Identificatori dei parametri per la selezione per categoria = "") Esportazione
      Per popolare le rappresentazioni di campo “FillRepresentationsFields”, è possibile utilizzare anche la procedura “FillRepresentations”.
      Esempio di utilizzo:
      FillView("Nomenclatura", "Nomenclatura", TRUE, TRUE); RiempiVista(" CaratteristicheNomenclature", "Caratteristiche della nomenclatura", FALSO, FALSO);
    • Ulteriori procedure per impostare un report:
      “Clear Additional BuilderFields” è una procedura obbligatoria; rimuove indicatori e raggruppamenti dall'attributo “Report Builder.SelectedFields”.
      "GeneralReport.OutputIndicatorsInLine = True" - visualizza gli indicatori in una riga
      “mStruttura dei collegamenti tra indicatori e dimensioni” - compila la struttura dei collegamenti tra indicatori e dimensioni
      Esempio di utilizzo:
      È necessario visualizzare l'indicatore “Quantità Rimanente” solo per le dimensioni “Articolo” e “Caratteristiche Articolo”:
      GeneralReport.mStruttura dei collegamenti di indicatori e dimensioni.Insert(" Quantità rimanente", Nuova struttura("Nomenclatura, Caratteristiche della nomenclatura"));
      Se è necessario visualizzare tutti i risultati indipendentemente dalle impostazioni della struttura “mStruttura delle relazioni di indicatori e dimensioni”, impostare i seguenti dettagli:
      Rapporto generale.Riepiloga tutti i livelli = Vero
      Se è necessario saltare alcuni raggruppamenti, è necessario compilare la struttura "mStructure of Ignorable Groups".
      Esempio di utilizzo:
      Dobbiamo visualizzare le dimensioni “Caratteristiche della nomenclatura” insieme alla dimensione “Nomenclatura” per fare ciò, aggiungere la seguente chiamata di funzione;
      GeneralReport.mStruttura dei raggruppamenti non visualizzabili.Insert("Nomenclatura ",Nuova struttura(" CaratteristicheNomenclature"));
      Di conseguenza, il report mostrerà le misurazioni separate da una virgola: “Articolo, Caratteristiche articolo”

    • Altre procedure del modulo report personalizzati sono simili a quelle dei report universali, descritte nella sezione “Report Universali”. Ciò a cui dovresti prestare attenzione sono i parametri nella richiesta; prima di generare il report (la procedura “GenerateReport”), dovresti specificare questi parametri per il generatore di report:
      Esempio di utilizzo:
      ReportBuilder.Parameters.Insert(ParameterName,ParameterValue);

    Conclusione

    Utilizzare OiO e SKT per generare moduli di output personalizzati è abbastanza semplice se componi correttamente una richiesta nel progettista e la passi al costruttore, riceveremo un report già pronto. Inoltre, un grande vantaggio derivante dall'utilizzo dei report generali è l'unificazione dell'output dei dati nel modulo del report, impostazioni flessibili per raggruppamenti, selezioni e ordinamento, presentazione di misurazioni e indicatori.
    La pratica dimostra che il 90% delle funzionalità per la creazione di qualsiasi modulo personalizzato è implementato nei report universali; è inoltre possibile prendere come base report standard già pronti e “modificarli” in base alle esigenze del cliente.

    Elenco dei collegamenti

    Di seguito è riportato un elenco di alcuni collegamenti ad articoli del "Libro della Conoscenza" (