Modificări ale bazei de date și câmpurile de afișare

Crystal Reports 8: Efectuarea de modificări la câmpurile bazei de date și afișare

Uneori este necesar să-l modifice în baza de date pentru care creați raportul. Există cazuri când baza de date este într-o stare de flux, de exemplu, se schimbă dinamic pe măsură ce creați raportul. Sau poate doriți să creați un raport pentru baza de date de testare, și apoi conectați-l la o bază de date reală. Astfel, este de dorit să se poată face cu ușurință aceste modificări pe măsură ce actualizarea bazei de date, fără a fi nevoie de a re-crea orice proprietăți sau funcții în raport.

Un astfel de tip de modificări de baze de date pot fi redenumirea câmpuri dezvoltator sau administrator de baze de date. Crystal Reports, pentru a găsi aceste modificări, vă oferă posibilitatea de a schimba trimiterea la câmpul din raportul dvs., astfel încât noile nume de câmp poate fi conectat automat la cele anterioare. Acest câmp de cartografiere vă eliberează de a adăuga noi câmpuri raportul sau de a modifica formulele care se referă la câmpul modificat.

Există mai multe modalități de a reconcilia modificările aduse bazei de date:
  • Verificarea bazei de date
  • Modificare bază de date conducător auto
  • Specificați locația bazei de date

Toate acestea sunt descrise în acest articol.

Verificați sau schimba locația bazei de date

Când efectuați o modificare a structurii bazei de date (schimbarea numelor de câmpuri, tipuri de date, etc.), în cazul în care vă mutați baza de date într-o altă locație, sau dacă este necesar, cu caracter obligatoriu raportul său într-o altă bază de date, va trebui să utilizați Crystal Reports Caracteristici recunoscând aceste schimbări.

Verificarea bazelor de date

Atunci când se fac modificări în baza de date, care se bazează pe raportul dvs. (de exemplu, un designer de baze de date a adăugat un nou câmp, elimina vechi, a schimbat numele sau tipurile de câmpuri de date existente), apoi la deschiderea acestui raport, modificările nu vor fi recunoscute în mod automat. Chiar și după raportul de actualizare, Crystal Reports nu detectează aceste modificări. Singura soluție în această situație - nu a verifica baza de date.

Pentru a face acest lucru, selectați baza de date I Verificați baza de date (Verificare bază de date) din meniul drop-down. În cazul în care baza de date nu a fost schimbat, veți vedea următorul dialog:

În caz contrar, adică, în cazul în care baza de date a fost schimbat, veți primi următorul mesaj:

Dacă faceți clic pe „Yes“, Crystal Reports citește din nou structura bazei de date și să facă modificările necesare în numele tabel, numele câmpurilor și tipurile de date. Când executați Field Explorer, puteți vedea modificările. În plus, dacă ați conectat anterior la fiecare alte tabele și structura acestor tabele sa schimbat în mod semnificativ, va avea, cel mai probabil să re-link tabelul utilizând Visual Expert Linking. Dacă ați schimbat numele de câmp, veți vedea harta Fields (a se vedea. De mai jos) caseta de dialog.

Verificați dacă pe fiecare imprimare Dacă verificarea nu trece baza de date după efectuarea de modificări, raportul poate conține date incorecte (în cazul mutării sau redenumi câmpuri) sau un mesaj de eroare (dacă ștergeți sau să redenumiți tabelele). Fii extrem de atent când lucrați cu baza de date, care poate fi modificată. Este recomandabil să se verifice baza de date cât mai des posibil. Este necesar să se identifice toate modificările.

O modalitate de a realiza acest lucru - alege din meniul derulant Baza de date I Verificați dacă pe fiecare imprimare. Dacă această opțiune este selectată, Crystal Reports va verifica baza de date de fiecare dată când este actualizat. Condiție (.. Pornit / Oprit) Verificați dacă la fiecare opțiuni de imprimare vor fi salvate cu raportul - în cazul în care a fost încorporat, menținând în același timp un raport adecvat, acesta va fi pornit atunci când îl deschideți.

Modificarea driverului bazei de date

Uneori, trebuie să modificați tipul de cele mai multe, dar nu și numele bazei de date. De exemplu, se întâmplă de multe ori că raportul, care a fost proiectat inițial pentru date de bază pe ecranul PC-stil, apoi evoluează într-un fel de baze de date client / server, sau baze de date SQL Server. În acest caz, trebuie să modificați driverul bazei de date pentru raport. Baza de date driver - este o bibliotecă de c legare dinamică (fișier de date special pentru Windows cu extensia .DLL), care Crystal Reports folosește pentru a comunica cu diferitele niveluri ale bazei de date de pe PC. Pentru fiecare tip de baze de date care este recunoscut Crystal Reports, există un driver special.

Selectați drop-down Baza de date I Conversia Baza de date driver (converti driverul de baze de date). Veți vedea caseta de dialog Conversie Bază de date driver:

Odată ce este bifată caseta de Conversie Bază de date driver pe Next Refresh (de conversie a driverului bazei de date în următoarea actualizare), veți vedea numele raportului curent, lista drop-down conducător auto a tuturor conducătorilor auto, care poate converti raportul. Selectați un driver nou pe care doriți să o utilizați. Alegerea ta va depinde de tipul de bază de date la care doriți să convertiți. După ce faceți clic pe OK, veți fi întrebat dacă doriți să se mute într-o nouă bază de date sau selectați o nouă sursă de date ODBC (în funcție de driverul selectat).

Folosind setul de comenzi Locație (Set Locul de amplasare)

În plus față de discutat anterior, există alte situații în mișcarea fizică a unei rețele de baze de date, care se bazează pe raportul dumneavoastră. Poate vă dezvolta un raport cu privire la baza de date de test care utilizează ODBC, și apoi trebuie să-l transfere într-o anumită bază de date reale ODBC. În aceste cazuri, tipul de bază de date nu se schimba (deci nu se schimba driver-ul bazei de date), trebuie să specificați doar raportul noua locație a bazei de date. În acest scop, Locația setată opțiunea.

Selectați baza de date I Locația meniul drop-down. Set caseta de dialog apare Locație cu o listă cu toate tabelele din raportul:

Selectați tabelul pentru care doriți să instalați o nouă locație. Apoi faceți clic pe butonul Set Locul de amplasare. Open Data Explorer (Data Explorer), acesta va afișa toate bazele de date sunt conectate, precum și oferă posibilitatea de a alege, sau pentru a se conecta cu alte baze de date. Apoi selectați tabelul de care aveți nevoie pentru a înlocui selectat anterior în caseta de dialog Locație Set.

Odată locația noii baze de date indică faptul că vă poate fi întrebat dacă doriți să extindă modificările la alte tabele cu aceeași sursă de informații.

Dacă apăsați „Da“, atunci toate celelalte mese ale raportului, care sa bazat inițial pe modificate doar baza de date se va referi în mod automat la noua locație. Dacă faceți clic pe „Nu“, celălalt tabel se va referi la locația sa originală.

Dacă modificați locația unei baze de date, Crystal Reports este necesar pentru a verifica baza de date. Dacă ați fost conectat anterior unul cu celălalt tabel,
și structura tabelului sa schimbat în mod semnificativ, este posibil să trebuiască să conectați din nou tabelul utilizând Visual Expert Linking. Dacă ați schimbat numele de câmp, veți vedea harta Fields (a se vedea. De mai jos) caseta de dialog.

Butonul Opțiune La fel ca raport (La fel ca o înregistrare) în aceeași ca caseta de dialog Locație Raport set se aplică numai rapoartelor cu privire la bazele de date PC-stil. Făcând clic pe aceasta duce la informații cu privire la numele discului și scoateți calea locația bazei de date. După aceea, Crystal Reports va căuta baza de date de pe aceeași unitate și în același folder în care se află raportul.

Cartografierea formatului UNC (Universal Naming acord) Conversia butonul UNC în caseta de dialog Locație Set se aplică numai pentru rapoartele baza de date PC-stil. Făcând clic pe ea duce la numele discului este înlocuit și calea pentru baza de date pe numele în uniformă Naming format Convention (UNC), care poate fi ușor de găsit de către orice calculator pe rețeaua locală, indiferent de special afișajul discului. UNC - o modalitate de a face referire la un fișier de pe o unitate de rețea, fără a utiliza o literă de unitate. Luați în considerare următorul scenariu:

Două PC-uri conectate la același server LAN, dar folosesc nume diferite pentru disc pentru a accesa serverul. Dacă primul PC-ul va crea un raport bazat pe baza datelor Accounts.MDB în acest raport vor fi salvate sub forma codificate, numele discului și numele fișierului H: \ Accounts.MDB. Când încercați să deschideți al doilea Raport de PC-o eroare: nu a fost găsit în baza de date corespunzătoare de pe disc H.

Pentru a evita astfel de probleme, puteți utiliza numele UNC:

\\<Имя сервера>\<Имя сетевого диска>\<Путь и Имя файла>
  • Nume server - numele real al computerului sau serverul în care se află fișierul (aici - Groucho). nume de server precedat de două backslash.
  • Numele unei unități de rețea - numele dat LAN-administrator al grupului corespunzător de fișiere și foldere partajate pe server. Când PC-ul afișează numele de rețea al discului pe numele discului LAN-server va fi afișată se potrivește cu numele unei unități de rețea (aici - Baze de date). Backslash separă numele serverului de la unitatea de rețea.
  • Calea și numele de fișier este similar cu calea și numele de fișier de pe hard disk-ul PC-ul local, cu excepția cazului în care acestea sunt situate pe LAN-server. (Aici - fișierul Accounts.MDB localizat în directorul rădăcină al discului de rețea Baze de date). backslash separă numele unității de rețea de la calea și numele fișierului (calea poate conține mai multe caractere backslash).

Conform acestor norme, Accounts.MDB corespunzătoare nume de fișier în format UNC ar arata astfel:

Rețineți că numele discului a fost eliminat. Acum, de la orice computer din rețea poate găsi un fișier cu numele în format UNC ca un utilizator al acelui computer nu trebuie să știe numele discului pentru a se referi la LAN-server.

Utilizarea comenzii Set Alias ​​(alias Set)

Atunci când creați un nou raport bazat pe anumite tabele de baze de date, în câmpul Explorer, în Visual raport Linking Expert și în alte locuri va arăta primul tabel real ați selectat numele. Deși este posibil ca Crystal Reports trebuie să se refere la un tabel de bază de date cu numele său fizic, încă mai trebuie să fie capabil de a schimba numele prin care Crystal Reports se referă la acest tabel.

În astfel de cazuri, este rezonabil să se utilizeze pseudonime. Crystal Reports poate utiliza un alias pentru a face referire la tabelul de la numele ales, indiferent de numele fișierului real, sau un tabel. În mod implicit, atunci când raportul este deschis pentru prima dată, Crystal Reports ca alias ia numele real. Pentru a modifica un alias, faceți clic pe Bază de date am setat Alias ​​din meniul drop-down. Apare caseta de dialog Set Alias:

Aici puteți vedea o listă cu toate tabelele de raport. Selectați alias-ul tabelei pentru care doriți să modificați și faceți clic pe butonul Set Alias. După aceea, vi se va cere să numească un nou alias pentru masă. Ar trebui să alegeți un nume care nu este utilizat de alte tabele (în caz contrar, ecranul veți vedea un avertisment), și faceți clic pe OK. Set pseudonime pentru toate tabelele bazei de date pe care le-ar dori să o facă, și apoi faceți clic pe Done, caseta de dialog Set Alias ​​este închis. Ca rezultat, veți vedea un nume nou, care se aplică la un tabel specific în toate casetele de dialog și formule în Visual Expert Linking.

Uneori aceeași masă pe care doriți să le adăugați la raportul de mai multe ori. În acest caz, puteți utiliza un tabel de căutare cu mai mult de un tabel primar, sau necesitatea de a utiliza o auto-plus, atunci când o masă trebuie să fie adăugat de două ori și atașat la sine, în raportul corespunzător. Și ar putea fi necesar să adăugați cele două tabele cu aceleași nume din diferite baze de date. Când se întâmplă acest lucru, vi se va cere să atribui un pseudonim pentru a doua copie a tabelului. Pur și simplu definiți noul alias. Ca urmare, raportul va fi de două tabele cu nume diferite.

Armonizarea câmpurilor vechi cu nume noi

Modificările aduse bazei de date poate duce la incoerențe în numele câmpurilor în raport. De exemplu, raportul original poate fi proiectat în baza de date „Număr de cont“ Microsoft Access care conține câmpul (nota spațiul dintre cuvinte este important pentru Crystal Reports). Poate fi necesar același raport de muncă într-o bază de date SQL Server, care este un câmp numit „ACCOUNT_NUMBER“ (rețineți că există un spațiu este înlocuit cu un caracter de subliniere).

Ce se poate face în cazul unui nume de tabelă schimbare

În cazul în care administratorul sau dezvoltator de baze de date schimbă numele tabelului,
data viitoare când încercați să actualizați raportul va face un mesaj de eroare indică faptul că tabela nu poate fi găsit. Din păcate, raportul de actualizare a bazei de date sau de verificare nu va rezolva această problemă:
un mesaj va fi repetată, iar raportul nu poate fi imprimată în mod corespunzător.

Pentru a rezolva această problemă, urmați trebuie efectuată acești pași simpli:
  1. Executați comanda Locație Set. caseta de dialog Locație Set, selectați tabelul al cărui nume a fost schimbat. Apoi introduceți noul nume al tabelului
    în caseta de text din partea de jos a casetei de dialog. (Nu uita semnul exclamării, care separă numele tabelului în numele bazei de date în cazul unei baze de date pentru PC). Astfel, tabelul este mapat la un nume nou în baza de date.
  2. Pentru acest nume nou a apărut peste tot în raport, schimba alias
    masa vechi la un nume nou utilizând comanda Set Alias. echipă
    Setați locația specifică în mod corect noul nume al tabelului la raport, dar nu schimbă numele raportului: acesta este încă numit de numele vechi. echipă
    Setați modificări pseudonim ca nume de masă și faptul că utilizează acum masa.

Ori de câte ori Crystal Reports detectează astfel de modificări, nu se poate determina ce obiectul raportului vechi pentru a lega domeniul de bază de date nouă. Prin utilizarea Maparea câmpurilor, puteți specifica obiectele vechi câmp de baze de date noi. Maparea câmpurilor vă permite să schimbați pur și simplu numele domeniului de referință de raport, astfel încât, de exemplu, toate obiectele asociate cu „Număr de cont“, va fi acum asociat cu „ACCOUNT_NUMBER“. Nu este nevoie de a schimba formula, șterge elementele vechi sau adăuga altele noi.

Funcția de cartografiere câmp nu poate fi selectat din meniu. Ea începe atunci când Crystal Reports recunoaște face orice modificări în numele câmpurilor bazei de date. Crystal Reports verifică aceste modificări de fiecare dată când verificați baza de date, schimba driverul acestuia sau executa setul de comenzi de amplasare. Dacă Crystal Reports detectează este afișată absența oricăror câmpuri raport în baza de date, fereastra de dialog prezentată în figura 1.

Caseta de dialog Harta Câmpurile este împărțit în patru câmpuri, sau listă. Lista din stânga sus arată raportul necartata Fields câmpurile care nu se potrivesc cu oricare dintre numele câmpului în noua bază de date. Lista din dreapta sus oferă o gamă de domeniu în noua bază de date, pe care le puteți mapa câmpurile raportului. Pentru a compara raportul cu noul câmp în baza de date, selectați câmpul de raport din lista din stânga-sus, selectați câmpul de bază de date corespunzător din lista de sus, și apoi faceți clic pe butonul Harta. Câmpurile se va muta de la partea superioara lista de jos:

Listă de câmpuri de baze de date variază în funcție de faptul dacă caseta Tip de potrivire este setat pe partea dreaptă a casetei de dialog. Dacă indicatorul este setat, câmpul va afișa numai același tip de date (șir de caractere, numărul, data, etc.), și că raportul câmp selectat. Acest lucru ajută la evitarea potrivire incorectă, de exemplu, un câmp șir într-un număr de raport sau data în noua bază de date (deși, uneori, poate fi necesară, și așa mai departe). Din cauza nepotrivirii tipurilor de date din lista din dreapta nu poate fi câmpul pe care doriți să o modificați. De exemplu, atunci când conversia câmpurilor dintr-o bază de date Microsoft Access la baza de date SQL Server, probabil nu veți găsi un singur câmp de același câmp moneda de bază de date Access. În acest caz, debifați tipul de potrivire și găsiți câmpul pentru comparație.

Când deschideți mai întâi caseta de dialog, unele câmpuri pot fi deja prezente în cele două liste mai mici. Din stânga jos prezintă lista de câmpuri de raport, care au deja câmpurile corespunzătoare din baza de date noi. Iar atunci când comparați domeniul de sus a listei, acestea vor fi mutate în lista de jos. În cazul în care cartografierea propusă de Crystal Reports existente (din cauza numelor de câmpuri identice), sau în comparație greșit câmpurile care nu se potrivesc, puteți selecta câmpul din lista din dreapta din stânga jos sau de jos. Într-o altă listă vor fi alocate câmp cartografiate. Puteți apăsa butonul pentru a anula Anulare globală mapare maparea câmpurilor și le-a reveni la partea de sus a listei.

Când ați terminat câmpurile de cartografiere, faceți clic pe OK. Caseta de dialog Harta câmpuri vor fi închise. Crystal Reports leagă apoi câmpuri mapate la noua bază de date. fila Proiectare, precum și alte formule se vor afișa noile nume de câmp. Dacă tabele suplimentare au câmpuri nepotrivite pentru fiecare tabel apare caseta de dialog Harta câmpuri.

Toate câmpurile care nu mai există în baza de date sursă trebuie să fie re-mapat la noi domenii. Daca nu sunt comparabile cu vechile denumiri ale câmpurilor cu noi câmpuri, câmpuri vechi și obiecte pe care se bazează, vor fi eliminate din raportul dvs.!