Crearea unei casete listă în cascadă
Se aplică la
Casetele listă în cascadă ajută utilizatorii să completeze mai rapid formulare și să se asigure că utilizatorii introduc corect datele. Acest articol descrie cum să creați și să populați casete listă în cascadă cu date. În Microsoft Office InfoPath, puteți completa o listă cu date care utilizează valori din formular, valori dintr-un document XML (Extensible Markup Language) extern sau valori dintr-o bază de date Microsoft Office Access.
În acest articol
- Ce este o casetă listă în cascadă?
- Pasul 1: Inserarea unei casete listă în cascadă
- Pasul 2: Furnizați datele
Ce este o casetă listă în cascadă?
O casetă listă în cascadă este o casetă listă cu opțiuni care se modifică pe baza valorii pe care un utilizator o selectează în altă casetă listă. De exemplu, dacă un utilizator face clic pe Condimente în caseta Categorii afișată în ilustrația următoare, caseta Produse va afișa o listă de condimente.
Secțiunile următoare vă arată cum să proiectați un șablon formular cu două casete listă, unde a doua casetă listă este filtrată pe baza valorii pe care o selectează un utilizator din prima casetă listă. Atunci când valoarea din prima casetă listă se modifică, filtrul se aplică automat la a doua casetă listă, care îi modifică valorile.
Considerente de compatibilitate
Filtrele se pot utiliza numai în șabloane formular care sunt proiectate să fie completate în InfoPath. Filtrele nu sunt disponibile în șabloanele formular compatibile cu browserul.
Pasul 1: Inserarea unei casete listă în cascadă
Pentru a crea o casetă listă în cascadă, trebuie să inserați două casete listă în șablonul formular.
Notă
Când inserați o casetă listă în cascadă în șablonul formular, asigurați-vă că cele două casete listă nu se află într-o secțiune sau un tabel repetabil.
- Dacă panoul de activități Controale nu este vizibil, faceți clic pe Mai multe controale pe meniul Inserare sau apăsați ALT+I, C.
- Sub Inserare controale în panoul de activități Controale , faceți clic pe Casetă listă verticală. Atunci când un utilizator completează un formular care se bazează pe șablonul de formular, selecția din această casetă listă verticală va determina opțiunile disponibile în a doua casetă listă.
- Faceți clic pe Casetă listă. Șablonul formular ar trebui să conțină acum o casetă listă verticală și o casetă listă standard.
- Faceți dublu clic pe caseta listă verticală pe care ați inserat-o în șablonul de formular la pasul 2.
- În caseta de dialog Proprietăți casetă listă verticală , faceți clic pe fila Date .
- În caseta Nume câmp , tastați listBox1, apoi faceți clic pe OK.
- Faceți dublu clic pe caseta listă inserată în șablonul de formular la pasul 3.
- În caseta de dialog Proprietăți casetă listă , faceți clic pe fila Date .
- În caseta Nume câmp , tastați listBox2Cascade, apoi faceți clic pe OK.
Pasul 2: Furnizați datele
Acum că ați inserat casetele listă în șablonul de formular, trebuie să furnizați datele pe care le vor afișa. Apoi trebuie să aplicați un filtru, astfel încât opțiunile din a doua casetă listă să se bazeze pe selecția utilizatorului din prima casetă listă.
Această secțiune vă arată cum să conectați casetele listă la date utilizând trei metode comune: adăugarea datelor la formularul propriu-zis; conectarea formularului la un document XML existent care conține datele; sau conectarea formularului la o bază de date care conține datele. Pentru a termina de creat caseta listă în cascadă, faceți clic pe metoda pe care doriți să o utilizați în lista următoare.
Conectarea la datele din formular
În această secțiune, veți afla cum să completați casetele listă cu date din formular. Pentru a face acest lucru, trebuie să configurați mai întâi câmpurile din șablonul formular astfel încât să puteți introduce numele categoriilor și un set de produse pentru fiecare categorie.
Configurarea câmpurilor în șablonul formular
- Dacă panoul de activități Sursă de date nu este vizibil, faceți clic pe Sursă de date în meniul Vizualizare .
- În panoul de activități Sursă de date , faceți clic dreapta pe grupul Câmpurile mele , apoi faceți clic pe Adăugare.
- În caseta Nume , în caseta de dialog Adăugare câmp sau grup , tastați CategoriesAndProducts.
- În lista Tip , faceți clic pe Grupare.
- Bifați caseta de selectare Repetare , apoi faceți clic pe OK.
- În panoul de activități Sursă de date , faceți clic dreapta pe grupul Categorii ȘiProducts .
- În caseta Nume , în caseta de dialog Adăugare câmp sau grup , tastați Categorie, apoi faceți clic pe OK. Acest câmp va conține numele categoriilor pentru prima casetă listă.
- Faceți clic dreapta pe grupul Categorii ȘiProducts , apoi faceți clic pe Adăugare.
- În caseta Nume , în caseta de dialog Adăugare câmp sau grup , tastați Produs.
- Bifați caseta de selectare Repetare , apoi faceți clic pe OK. Acest câmp va conține numele produselor pentru a doua casetă listă.
Deoarece această casetă listă este completată cu date din formular, datele trebuie adăugate la formular. Pentru a face acest lucru, va trebui să creați valori implicite pentru câmpurile Produs și Categorie .
Sfat
De asemenea, puteți crea casete listă care afișează valorile pe care utilizatorii le tastează chiar în formular. Pentru a face acest lucru, asociați caseta listă cu câmpurile legate la controalele din formular. Atunci când un utilizator introduce valori în controale, opțiunile din caseta listă se modifică.
Crearea valorilor implicite
- În meniul Instrumente , faceți clic pe Valori implicite.
- În caseta de dialog Editare valori implicite , în grupul CategoriiȘiProduse , selectați câmpul Categorie (nu debifați caseta de selectare), apoi, în caseta Valoare implicită , tastați Fructe de mare.
- Selectați câmpul Produs (nu debifați caseta de selectare), apoi, în caseta Valoare implicită , tastați Carne de crab.
- Faceți clic dreapta pe câmpul Produs , apoi faceți clic pe Adăugați un alt produs mai sus. Acest lucru vă permite să adăugați un al doilea produs pentru Fructe de mare ca valoare implicită.
- Faceți clic dreapta pe a doua instanță a câmpului Produs (nu debifați caseta de selectare), apoi, în caseta Valoare implicită , tastați Somon.
- Faceți clic dreapta pe grupul Categorii ȘiProduse , apoi faceți clic pe Adăugați alte categorii și produse de mai jos. Acest lucru vă permite să adăugați o a doua categorie ca valoare implicită.
- Utilizați pașii anteriori pentru a specifica valorile implicite pentru a doua instanță a câmpurilor Categorie și Produs în Lactate, Cheddar și, respectiv, Lapte de ciocolată.
- Faceți clic pe OK.
Acum că ați introdus valorile implicite pentru câmpurile Produs și Categorie , puteți conecta prima casetă listă la datele pe care tocmai le-ați introdus.
Conectarea primei casete listă la date
- În șablonul formular, faceți dublu clic pe caseta listă verticală pe care ați inserat-o anterior.
- Faceți clic pe fila Date.
- În caseta de dialog Proprietăți casetă listă verticală , sub Intrări casetă listă, faceți clic pe Căutare valori în sursa de date a formularului.
- Faceți clic pe Selectare XPath
lângă caseta Intrări . - În caseta de dialog Selectați un câmp sau un grup , în grupul CategoriiȘiProduse , faceți clic pe câmpul Categorie , apoi faceți clic pe OK de două ori.
Acum trebuie să conectați a doua casetă listă la date. În timp ce creați această conexiune de date, se recomandă să aplicați un filtru la a doua casetă listă. Acest filtru va completa a doua casetă listă cu produsele corespunzătoare, pe baza categoriei selectate în prima casetă listă. Filtrul compară valoarea selectată în prima casetă listă (câmp casetă listă1) cu lista de categorii salvate în formular (câmpul Categorie).
Conectarea celei de-a doua casete listă la date
- În șablonul formular, faceți dublu clic pe caseta listă standard pe care ați inserat-o anterior.
- Faceți clic pe fila Date.
- În caseta de dialog Proprietăți casetă listă , sub Intrări casetă listă, faceți clic pe Căutare valori în sursa de date a formularului.
- Faceți clic pe Selectare XPath
lângă caseta Intrări . - În caseta de dialog Selectați un câmp sau un grup , în grupul CategoriiȘiProduse , faceți clic pe câmpul Produs , apoi faceți clic pe Filtrare date.
- În caseta de dialog Filtrare date , faceți clic pe Adăugare.
- În caseta de dialog Specificare condiții filtru , faceți clic pe Selectare câmp sau grup în prima casetă.
- În caseta de dialog Selectare câmp sau grup , faceți clic pe casetă listă1, apoi faceți clic pe OK.
- În caseta de dialog Specificare condiții filtru , faceți clic pe Selectare câmp sau grup în a treia casetă.
- În caseta de dialog Selectare câmp sau grup , faceți clic pe câmpul Categorie , apoi faceți clic pe OK pentru a închide toate casetele de dialog deschise.
Acum că ați conectat a doua casetă listă la date și ați aplicat filtrul, sunteți gata să testați casetele listă pentru a vă asigura că funcționează corect.
Testați casetele listă
Pentru a testa modificările, faceți clic pe Previzualizare pe bara de instrumente Standard sau apăsați CTRL+SHIFT+B.
În caseta listă verticală, faceți clic pe Fructe de mare. Caseta listă standard ar trebui să afișeze o linie necompletată, carne de crab și somon.
Notă
Linia necompletată le permite utilizatorilor să își golească opțiunea din caseta listă.
În cazul în care casetele listă nu funcționează corect, revizuiți filtrul pentru a doua casetă listă pentru a vă asigura că compară câmpul listBox1 cu câmpul Categorie .
Conectarea la un document XML extern
În această secțiune, veți afla cum să creați o conexiune de date la un document XML care conține valori de produs și categorie. Documentul XML va fi sursa de date secundară. Pentru a crea această conexiune de date, va trebui să creați documentul XML, să asociați casetele listă din șablonul formular cu documentul XML, apoi să aplicați un filtru la a doua casetă listă, astfel încât lista de produse să se modifice corespunzător.
Înainte de a asocia formularul cu o sursă de date secundară, trebuie să creați documentul XML.
Crearea documentului XML
Porniți Notepad sau alt editor de text.
Copiați și lipiți următoarele date XML în editorul de text:
<?xml version="1.0" encoding="UTF-8"?> <ListBoxData> <CategoriesAndProducts> <Categories>Seafood</Categories> <Products> <Product>Crab meat</Product> </Products> <Products> <Product>Salmon</Product> </Products> </CategoriesAndProducts> <CategoriesAndProducts> <Categories>Dairy</Categories> <Products> <Product>Chocolate milk</Product> </Products> <Products> <Product>Cheddar</Product> </Products> </CategoriesAndProducts> </ListBoxData>Salvați fișierul pe computer ca listBoxData.xml.
Acum că ați creat un document XML, îl puteți conecta la șablonul formular. Aceasta va crea o sursă de date secundară.
Conectarea documentului XML la șablonul formular
- În meniul Instrumente , faceți clic pe Conexiuni de date.
- În caseta de dialog Conexiuni de date , faceți clic pe Adăugare.
- În Expert conexiune de date, faceți clic pe Primire date, apoi faceți clic pe Următorul.
- Pe pagina următoare a expertului, faceți clic pe Document XML, apoi faceți clic pe Următorul.
- Pe pagina următoare a expertului, faceți clic pe Răsfoire, selectați fișierul listBoxData.xml pe care l-ați salvat pe computer, apoi faceți clic pe Deschidere.
- Pe pagina următoare a expertului, faceți clic pe Se includ datele ca fișier de resurse în șablonul formular sau în partea de șablon, apoi faceți clic pe Următorul.
- Pe pagina următoare a expertului, în caseta Introduceți un nume pentru această conexiune de date , tastați listBoxDataXMLFile.
- Bifați caseta de selectare Regăsire automată date la deschiderea formularului . Acest lucru garantează că datele casetei listă vor fi disponibile de fiecare dată când se deschide formularul, în loc să solicite unui utilizator să interogheze în acest sens.
- Faceți clic pe Terminare.
- În caseta de dialog Conexiuni de date , faceți clic pe Închidere.
Acum sunteți gata să conectați prima casetă listă din șablonul formular la datele din documentul XML.
Conectarea primei casete listă la date
În șablonul formular, faceți dublu clic pe caseta listă verticală pe care ați inserat-o anterior.
Faceți clic pe fila Date.
În caseta de dialog Proprietăți casetă listă verticală , sub Intrări casetă listă, faceți clic pe Căutare valori dintr-o sursă de date externă.
În caseta Sursă de date , faceți clic pe listBoxDataXMLFile.
Faceți clic pe Selectare XPath
lângă caseta Intrări .În caseta de dialog Selectare câmp sau grup , în grupul CategoriiȘiProduse , faceți clic pe câmpul Categorii .
Notă
Fundalul galben din caseta de dialog Selectare câmp sau grup indică faptul că lucrați cu o sursă de date secundară.
Faceți clic pe OK de două ori.
Acum va trebui să conectați a doua casetă listă la documentul XML. În timp ce creați această conexiune de date, se recomandă să aplicați un filtru la a doua casetă listă. Acest filtru va completa a doua casetă listă cu produsele corespunzătoare, pe baza categoriei selectate în prima casetă listă. Filtrul compară valoarea selectată în prima casetă listă (câmp casetă listă1) cu lista de categorii salvate în formular (câmpul Categorie).
Conectarea celei de-a doua casete listă la date
- În șablonul formular, faceți dublu clic pe caseta listă standard pe care ați inserat-o anterior.
- Faceți clic pe fila Date.
- În caseta de dialog Proprietăți casetă listă , sub Intrări casetă listă, faceți clic pe Căutare valori dintr-o sursă de date externă.
- În caseta Sursă de date , faceți clic pe listBoxDataXMLFile.
- Faceți clic pe Selectare XPath
lângă caseta Intrări . - În caseta de dialog Selectați un câmp sau un grup , în grupul Categorii ȘiProduse , extindeți grupul Produse , apoi faceți clic pe câmpul Produs .
- Faceți clic pe Filtrare date.
- În caseta de dialog Filtrare date , faceți clic pe Adăugare.
- În caseta de dialog Specificare condiții filtru , faceți clic pe Selectare câmp sau grup în prima casetă.
- În caseta Sursă de date , în caseta de dialog Selectare câmp sau grup , faceți clic pe Principal.
- Faceți clic pe casetă listă1, apoi faceți clic pe OK.
- În caseta de dialog Specificare condiții filtru , faceți clic pe Selectare câmp sau grup în a treia casetă.
- În caseta Sursă de date , în caseta de dialog Selectare câmp sau grup , faceți clic pe listBoxDataXMLFile (secundar), apoi faceți clic pe Categorii.
- Faceți clic pe OK pentru a închide toate casetele de dialog deschise.
Acum că ați conectat a doua casetă listă la documentul XML și ați aplicat filtrul, sunteți gata să testați casetele listă pentru a vă asigura că funcționează corect.
Testați casetele listă
Pentru a testa modificările, faceți clic pe Previzualizare pe bara de instrumente Standard sau apăsați CTRL+SHIFT+B.
În caseta listă verticală, faceți clic pe Fructe de mare. Caseta listă standard ar trebui să afișeze doar o linie necompletată, carne de crab și somon.
Notă
Linia necompletată le permite utilizatorilor să își golească opțiunea din caseta listă.
În cazul în care casetele listă nu funcționează corect, revizuiți filtrul pentru a doua casetă listă pentru a vă asigura că compară câmpul listBox1 cu câmpul Categorie .
Conectarea la o bază de date
În această secțiune, veți afla cum să creați o conexiune de date la două tabele dintr-o bază de date Access. Pentru a face acest lucru, asociați casetele listă din șablonul formular cu baza de date, apoi aplicați un filtru la a doua casetă listă, astfel încât lista afișată în a doua casetă listă să se modifice corespunzător pe baza valorii selectate în prima casetă listă. Pentru acest exemplu, vom presupune că baza de date Access conține două tabele denumite Categorii și Produse și că cele două tabele sunt corelate între ele prin câmpul ID Categorie, care este utilizat în fiecare tabel.
Tabel Categorii
| IDCategorie | Nume Categorie |
|---|---|
| 1 | Fructe |
| 2 | Lactate |
Tabel Produse
| Productid | IDCategorie | NumeProdus |
|---|---|---|
| 1 | 1 | Carne de crab |
| 2 | 1 | Somon |
| 3 | 2 | Ciocolată cu lapte |
| 4 | 2 | Cheddar |
Conectarea șablonului formular la sursa de date
Mai întâi, trebuie să creați o conexiune de date între șablonul formular și tabelele din baza de date. Deoarece afișați doar datele din baza de date, în loc să le modificați direct, baza de date Access va fi o sursă de date secundară pentru șablonul formular.
În meniul Instrumente , faceți clic pe Conexiuni de date.
În caseta de dialog Conexiuni de date , faceți clic pe Adăugare.
În Expert conexiune de date, faceți clic pe Primire date, apoi faceți clic pe Următorul.
Pe pagina următoare a expertului, faceți clic pe Bază de date (doar Microsoft SQL Server sau Microsoft Office Access), apoi faceți clic pe Următorul.
Pe pagina următoare a expertului, faceți clic pe Selectare bază de date, apoi răsfoiți la baza de date Access de pe hard disk și faceți dublu clic pe aceasta.
În caseta de dialog Selectare tabel , faceți clic pe tabelul care conține datele pe care doriți să le afișați în prima listă (în acest exemplu, tabelul Categorii), apoi faceți clic pe OK. Acesta specifică tabelul ca tabel principal pentru conexiunea de date.
În expert, faceți clic pe Adăugare tabel.
În caseta de dialog Adăugare tabel sau interogare , faceți clic pe tabelul care conține datele pe care doriți să le afișați în a doua listă (în acest exemplu, tabelul Produse), apoi faceți clic pe Următorul.
În caseta de dialog Editare relație , asigurați-vă că sunt corecte câmpurile de conectare. În acest exemplu, tabelele sunt corelate între ele după câmpul ID CategoryID.
Sfat
În cazul în care câmpurile de conectare sunt incorecte, selectați câmpurile, apoi faceți clic pe Eliminare relație. Apoi faceți clic pe Adăugare relație, selectați câmpurile corecte, apoi faceți clic pe OK.
Faceți clic pe Terminare.
Notă
În acest exemplu, tabelul de categorii are o relație de tip unu-la-mai-mulți cu tabelul de produse, ceea ce înseamnă că pentru fiecare categorie pot exista mai multe produse. Într-o bază de date, acest tip de relație se stabilește de obicei utilizând câmpuri cheie. În acest caz, câmpul cheie CATEGORYID permite Access să asocieze setul corect de produse cu categoria corespunzătoare.
În expert, examinați structura sursei de date. Ar trebui să vedeți două tabele conectate între ele: tabelul principal și tabelul secundar. Pentru a vedea câmpurile individuale din tabel, bifați caseta de selectare Afișare coloane tabel . După ce ați terminat revizuirea structurii de date, faceți clic pe Următorul.
Debifați caseta de selectare Stocați o copie a datelor în șablonul formular , apoi faceți clic pe Următorul.
În caseta Introduceți un nume pentru această conexiune de date , pe pagina următoare a expertului, tastați un nume pentru conexiunea de date.
Bifați caseta de selectare Regăsire automată date la deschiderea formularului .
Faceți clic pe Terminare, apoi pe Închidere în caseta de dialog Conexiuni de date .
Conectarea primei casete listă la date
Acum, că ați creat o conexiune de date la sursa de date secundară, puteți conecta prima casetă listă din șablonul formular la tabelele din baza de date.
În șablonul formular, faceți dublu clic pe caseta listă verticală pe care ați inserat-o anterior.
Faceți clic pe fila Date.
În caseta de dialog Proprietăți casetă listă verticală , sub Intrări casetă listă, faceți clic pe Căutare valori dintr-o sursă de date externă.
În caseta Sursă de date , asigurați-vă că este selectată conexiunea de date pe care ați creat-o.
Faceți clic pe Selectare XPath
lângă caseta Intrări .În caseta de dialog Selectare câmp sau grup , faceți clic pe numele tabelului care conține datele pe care doriți să le afișați în lista verticală (în acest exemplu, d:Categorii ), apoi faceți clic pe OK.
Notă
Fundalul galben din caseta de dialog Selectare câmp sau grup indică faptul că lucrați cu o sursă de date secundară.
Faceți clic pe Selectare XPath
lângă caseta Valoare .În caseta de dialog Selectați un câmp sau un grup , asigurați-vă că este selectat câmpul de conectare (în acest exemplu, :CategoryID), apoi faceți clic pe OK. Aceasta este valoarea care va fi salvată atunci când utilizatorul face o selecție în caseta listă.
Faceți clic pe Selectare XPath
lângă caseta Nume afișat .În caseta de dialog Selectați un câmp sau un grup , faceți clic pe numele câmpului pe care doriți să-l afișați în lista verticală (în acest exemplu, :Nume Categorie).
Faceți clic pe OK de două ori.
Conectarea celei de-a doua casete listă la date
Acum va trebui să conectați a doua casetă listă la baza de date. În timp ce creați această conexiune de date, se recomandă să aplicați un filtru la a doua casetă listă. Acest filtru va completa a doua casetă listă cu valorile corespunzătoare, pe baza valorii care sunt selectate în prima casetă listă.
În șablonul formular, faceți dublu clic pe caseta listă standard.
Faceți clic pe fila Date.
În caseta de dialog Proprietăți casetă listă , sub Intrări casetă listă, faceți clic pe Căutare valori dintr-o sursă de date externă.
În caseta Sursă de date , asigurați-vă că este selectată conexiunea de date pe care ați creat-o.
Faceți clic pe Selectare XPath
lângă caseta Intrări .În caseta de dialog Selectare câmp sau grup , extindeți grupul principal (în acest exemplu, d:Categorii), apoi faceți clic pe grupul secundar care corespunde tabelului care conține datele care doriți să se afișeze în caseta listă în cascadă (în acest exemplu, Produse).
Faceți clic pe Filtrare date.
În caseta de dialog Filtrare date , faceți clic pe Adăugare.
În caseta de dialog Specificare condiții filtru , în prima casetă , asigurați-vă că este selectat câmpul de conectare din tabelul secundar (în acest exemplu, Produse).
Important
În cazul în care câmpurile de conectare au același nume în ambele tabele, asigurați-vă că îl selectați pe cel corect. Câmpurile din fiecare tabel sunt sortate împreună în listă. Prin urmare, puteți utiliza numele câmpurilor înconjurătoare pentru a determina care este cel corect. În acest exemplu, selectam câmpul ID CategoryID care apare cu celelalte câmpuri din tabelul Produse.
În a treia casetă, faceți clic pe Selectare câmp sau grup.
În caseta Sursă de date , în caseta de dialog Selectare câmp sau grup , faceți clic pe Principal, pe câmpul Casetă listă1 , apoi pe OK.
Acum ați configurat un filtru care compară valoarea selectată în caseta listă verticală (câmp casetă listă1) cu lista de valori din caseta listă standard.Faceți clic pe OK de trei ori pentru a reveni la caseta de dialog Proprietăți casetă listă .
Faceți clic pe Selectare XPath
lângă caseta Valoare .În caseta de dialog Selectare câmp sau grup , selectați valoarea pe care doriți să o salvați atunci când utilizatorul efectuează o selecție în caseta listă. În acest exemplu, dorim să salvăm câmpul IDProdus pentru utilizare ulterioară. Prin urmare, selectăm grupul :P roductID , apoi faceți clic pe OK.
Faceți clic pe Selectare XPath
lângă caseta Nume afișat .În caseta de dialog Selectare câmp sau grup , faceți clic pe numele câmpului pe care doriți să-l afișați în caseta listă (în acest exemplu, :P roductName).
Faceți clic pe OK de două ori.
Testați casetele listă
Acum că ați conectat a doua casetă listă la baza de date și ați aplicat filtrul, sunteți gata să testați casetele listă pentru a vă asigura că funcționează corect.
- Pentru a testa modificările, faceți clic pe Previzualizare pe bara de instrumente Standard sau apăsați CTRL+SHIFT+B.
- Selectați o valoare în caseta listă verticală. Caseta listă standard ar trebui să afișeze valorile corespunzătoare din tabelul secundar, în funcție de câmpul de conectare pe care l-ați ales.
Sfat
În cazul în care casetele listă nu funcționează corect, revizuiți filtrul pentru a doua casetă listă pentru a vă asigura că compară câmpul listBox1 cu câmpul CATEGORYID .