Rapoartele sunt construite folosind componenta DevExpress Report Designer bazată pe date primite de la server.
Pentru a compila raportul, trebuie:
- Desenați un raport folosind elemente vizuale standard pentru a obține aspectul dorit.
- Din lista de câmpuri, adăugați atributele necesare pentru generarea raportului.
- Utilizând scripturi, compuneți o interogare pentru a obține datele necesare utilizând API pentru a crea rapoarte.
La începutul oricărui raport:
- Apelați meniul contextual din poziția goală a Designer-ului de rapoarte.
- Faceți clic pe Adăugați subreport:
- Sarcini. dacă raportul se bazează pe sarcini;
- Obiecte. dacă raportul este construit pe obiecte;
Comanda "Add Subreport" este necesară pentru a prelua date din baza de date. Doar după aceea, puteți continua să lucrați la formarea raportului.
Exemplu de generare de rapoarte prin sarcini
Să luăm în considerare un exemplu de a crea un raport privind sarcinile care vi-au fost date.
- Apelați meniul contextual din poziția goală a Designer-ului de rapoarte și selectați comanda Add Sarcini.
- Selectați tabelul din cutia de instrumente și trageți-l în zona DetailReport - "Tasks".
- În lista de câmpuri, extindeți lista Sarcini. Selectați câmpul Titlu și trageți-l în prima celulă.
- Apoi selectați câmpul Descriere și trageți-l în a doua celulă.
- În celula a treia, trageți câmpul DeadlineDate.
Astfel, am compilat un raport simplu care conține informații despre toate sarcinile: titlul lucrării. descrierea locului de muncă și termenul limită.
Creați un antet al tabelului:
- Faceți clic dreapta pe zona Detail1. Selectați secțiunea Adăugare - Titlul raportului din meniul contextual.
- Adăugați masa în zona ReportHeader.
- Completați și formatați antetul tabelului.
Completați raportul cu informațiile despre inițiator și sarcinile de grup de către inițiatori.
- Faceți clic dreapta pe zona Detail1. Selectați secțiunea Adăugare - Comandă titlul grupului din meniul contextual.
- Pentru a seta regulile de grup de lângă antetul grupului GroupHeader1, extindeți proprietățile grupului făcând clic pe.
- Setați câmpul Gruparea inițiatorului → Id. Faceți clic pe OK.
- Selectați instrumentul Text și adăugați text în zona GroupHeader1.
- În lista câmpuri, extindeți Tasks → Initiator → Person. Selectați câmpul DisplayName și trageți-l în antetul grupului.
Pentru a obține informații despre locurile de muncă atunci când construiți un raport, trebuie să compuneți o interogare către server utilizând scriptul:
- În Bara de instrumente, faceți clic pe Scripturi.
- Scrieți un script care solicită date pentru atributele specificate în designerul de rapoarte. Ar trebui să se obțină un raport privind sarcinile atribuite utilizatorului actual. Pentru a face acest lucru, utilizați metoda PilotReport_DataSourceDemanded, care solicită datele de pe server pentru raport:
privat void PilotReport_DataSourceDemanded (expeditor obiect, System.EventArgs e)
LongRunning.Start (aceasta, () => <
var currentPerson = context.CurrentPerson;
var tasksBuilder = QueryBuilder.CreateTaskQueryBuilder ();
tasksBuilder.Must (TaskFields.ExecutorPositionId.Be (currentPerson.MainPosition.Id));
context.Tasks = context.GetTasks (tasksBuilder);
Pentru a arăta vizual că sarcina nu este finalizată la timp, specificați regulile de formatare.
Dacă inițiatorul nu a stabilit termenul limită pentru sarcină, raportul afișează o valoare specială a sistemului din 31.12.9999. Această valoare poate fi convertită în text, de exemplu, fără o limită de timp. Pentru a face acest lucru, creați un câmp calculat:
De asemenea, puteți vedea șabloane de eșantioane de rapoarte prin descărcarea rapoartelor dezvoltate de la Centrul de descărcări pilot ICE. de la site-ul Pilot-ICE. Dacă le deschideți pentru editare, puteți studia alte exemple de interogări de scriere și descrierea câmpurilor calculate.
Exemplu de formare a unui raport privind documentele
Luați în considerare un exemplu simplu de a crea un raport de proiect utilizând parametrii. În acest raport, toate documentele proiectului selectat vor fi afișate.
- Apelați meniul contextual din spațiul gol al Designer-ului de rapoarte și selectați comanda Add Subreport - Objects.
- Selectați tabelul din cutia de instrumente și trageți-l în zona DetailReport - "Obiecte".
- Ștergeți a treia celulă.
- În lista de câmpuri, extindeți lista Obiecte. Selectați câmpul Titlu și trageți-l în a doua celulă.
- Selectați prima celulă. Extindeți proprietățile celulei dând clic pe.
- În câmpul Rezumat, faceți clic pe. . Selectați funcția Sumar. Numărul de înregistrări. Intervalul de numărare - Raport. Apoi faceți clic pe OK.
Masa a fost pregătită. Pentru a permite utilizatorilor să selecteze proiectul pentru care doriți să primiți raportul, trebuie să creați parametrul:
- În lista de câmpuri, faceți clic pe Opțiuni.
- Faceți clic dreapta pe meniul contextual și selectați Adăugare parametru.
- În fereastra Add New Parameter. specificați numele parametrului proiectului. Descriere proiect :.
- Selectați tipul de obiect Pilot din listă.
- Setați valoarea implicită care va fi oferită la crearea raportului.
- Faceți clic pe OK pentru a termina.
Scrieți un script care va interoga datele despre documentele existente în proiectul selectat de utilizator:
privat void PilotReport_DataSourceDemanded (expeditor obiect, System.EventArgs e)
LongRunning.Start (aceasta, () => var builder = QueryBuilder.CreateObjectQueryBuilder ();
constructor.Must (ObjectFields.TypeId.Be (documentType.Id));
var selectProiect = (RObject) Parametri ["Proiect"] Valoare;
context.Objects = context.GetObjects (constructor, selectProiect.Id);
DataSource = context;
Pentru detalii privind toate caracteristicile Designerului de rapoarte DevExpress, consultați documentația DevExpress.