REPORT QGIS: UN ESEMPIO AVANZATO

L’atlas di QGIS permette di creare una stampa in serie definendo un SOLO vettore di copertura. I Report di QGIS permettono di usare un numero non ben precisato di vettori di copertura e quindi di creare una articolata stampa in serie, unico requisito richiesto è che i vari vettori abbiano un campo comune oppure che si utilizzino vettori sovrapposti.

Il miglior modo per spiegare i report è facendo un esempio: realizzare una stampa in serie utilizzando due vettore di copertura: le regioni ISTAT e le province ISTAT (avrei potuto aggiungere un terzo vettore con i comuni ISTAT) ed esportare in PDF.

Il primo vettore di coperture creerà tante pagine quante sono le regioni e il secondo creerà tante pagine quante sono le province, ma questi due vettori sono tra loro legati dal campo COD_REG (è un legame che interpreta QGIS e i report, non occorre far altro) che ci permetterà di incrociare le pagine delle regioni con quelle delle province. Naturalmente è possibile aggiungere altre pagine come l’intestazione o il piè di pagina, ma questo è descritto nel mio primo blog post sui report.

ecco il risultato:

Iniziamo caricando in QGIS due strati: regioni e province ISTAT.

QGIS e strati ISTAT

Prepariamo tutto ciò che ci serve per creare i report:

  • duplichiamo il layer regioni due volte perché ci servirà come panoramica per le regioni e per le province;
PANORAMICHE
  • tematizziamo i layer usando delle regole: questo permetterà di visualizzare solo l’elemento corrente
TEMATIZZAZIONE TRAMITE REGOLE
  • creiamo delle viste in modo da visualizzare un layer per volta: questo è molto utile nel compositore di stampe
VISTE
  • creaiamo un report:
Menu progetto | Nuovo report
  • aggiungo un gruppo (che sarebbe il primo vettore di copertura)
aggiungo gruppo
  • seleziono il layer regioni e come campo COD_REG:
aggiungo la mappa
  • aggiungo due riquadri mappa, la prima per le regioni, la seconda come panoramica (settare la panoramica, si procede come sempre):
definisco primo vettore
  • aggiungo sotto-gruppo per il layer province (settare il necessario):
definisco secondo vettore
  • prima prova di stampa 
esporto in PDF

queste sono le fasi fondamentali da seguire, per maggiori dettagli seguire il video:

video demo – report avanzato

PROGETTO E DATI

EDIT: in questo esempio ho utilizzato un DB spatialite, nel caso di shapefile occorre usare la variabile @atlas_featureid +1 (occorre sommare uno) altrimenti tutti i report sarebbero sfasati di uno in quanto la variabile inizia da zero;

EDIT2: Sempre nel caso degli shapefile ISTAT, il campo COD_PROV non è un vero campo univoco e quindi il report non funzionerebbe; per ovviare occorre creare un nuovo campo (PK_UID tipo integer 9) e popolarlo con la funzione row_number.

EDIT3: una alternativa all’uso della variabile @atlas_featureid è l’uso della variabile @atlas_feature assieme alla funzione attribute

Se l’articolo vi è stato utile mettete un like, grazie!!!

Potete contribuite a mantenere vivo il blog con una piccola donazione: PayPal (messaggio: report QGIS o blog Pigrecoinfinito)

30 pensieri su “REPORT QGIS: UN ESEMPIO AVANZATO

  1. Is it possible to write the report and read it again for other data?
    I can see that there is an option to save the report but I can only read it when I create a group (for one group). Is it possible to read all the report?

    Piace a 1 persona

  2. Siamo a luglio 2020. Peró mi pare di capire che ancora, non sia possibile far avanzare il report per vederlo in azione, Ma bisogna sempre ricorrere all’esportazione.
    Sai se ci sono sviluppi in corso sul report?
    GRazie!

    Piace a 1 persona

  3. Ciao, complimenti per i tuoi post, super utili!
    In un progetto ho usato le tue indicazioni sulla regola per moatrare la sola feature dell’Atlas (“field”=atlas_feature id+1) e stranamente funzionava solo per le prime pagine e dopo atlas_feature id (l’ho inserito in un testo come verifica) mostrava numeri a caso, non seguendo quelli del vettore di copertura.

    Chiedendo in rete un tenore mi ha suggerito di mettere $id=@atlas_feature Ihd nella regola del layer da accendere e ha funzionato.
    L’unica cosa è che non ho capito come mai (non ho capito neanche perché il sorting dell’Atlas fosse sballato)

    Per ovviare problemi di lettura dati, ho creato un campo virtuale con numeri interi, ma non è cambiato nulla

    Grazie in anticipo per un tuo riscontro

    "Mi piace"

  4. Ciao, complimenti per i tuoi video. Mi sono di grande aiuto.
    In particolare questo sui report mi ha aperto un mondo.
    Ho un problema però, cercherò di essere il più chiara possibile nell’esporlo.
    Il mio obiettivo è quello di creare un report che riporti un censimento ricettore ( per ogni pagina un ricettore identificato con un codice ID univoco).
    Ho seguito il tuo video e sono riuscita a compilare tutto.
    Nel report dovrei inserire anche la foto per ciascun ID, foto che io ho in formato JPG e il cui nome coincide ciascuno con il corrispettivo codice ID.
    Però non riesco in nessun modo a far comparire le foto sul report.

    "Mi piace"

      1. Le foto sono salvate in una cartella.
        Quello che vorrei fare è fare in modo che a ciascun ricettore (es ricettore ID 20) venisse associata la rispettiva foto ( che ho rinominato 20).
        Ho provato con: inserisci immagine e poi ad inserire la URL della cartella dove sono le foto ma non funziona (ovviamente aggiungerei :)!!! ).

        Nella tabella attributi ho anche un campo apposito per le foto in cui ( seguendo un altro tuo video) sono riuscita ad inserirle tramite ‘Tipo di widget’–> allegato–> percorso Predefinito. E’ un’azione manuale, per ciascun ricettore seleziono la corrispettiva foto. Nonostante questo, nel report poi non riesco a visualizzarle.

        "Mi piace"

  5. Grazie per i fantastici spunti, vorrei chiederti però se fosse possibile richiamare il report associato ad una feature specifica, ad ora l’unico modo che ho è quello di generare tutti i report stampandoli ed andando a cercare il report desiderato…

    "Mi piace"

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.