Lietotāja vadītu parametru integrēšana tabulu iegultajos informācijas paneļos
Tableau informācijas paneļu iegulšana tīmekļa lietojumprogrammās, izmantojot Tableau Embedding API, ļauj izstrādātājiem nodrošināt dinamiskus, uz datiem balstītus risinājumus. Viens spēcīgs veids, kā uzlabot lietotāja pieredzi, ir iespējot mijiedarbību ar informācijas paneļa parametriem, izmantojot nolaižamās izvēlnes.
Šajā piemērā uzdevums ir konfigurēt nolaižamo izvēlni, lai manipulētu ar konkrētu izsauktu Tableau parametru "Moeda". Atšķirībā no filtriem, kurus ir vieglāk integrēt, parametriem ir nepieciešama precīza apstrāde, lai pareizi ielādētu un atjauninātu, izmantojot JavaScript.
Lai gan Tableau API nodrošina metodes, kā piekļūt parametriem, var būt sarežģīti pareizi parādīt pieejamās parametru vērtības kā nolaižamās izvēlnes opcijas un nodrošināt vienmērīgus atjauninājumus, kad lietotāji veic atlasi.
Šī raksta mērķis ir sniegt norādījumus par iestatīšanas darbībām "Moeda" parametrs ar nolaižamo izvēlni. Jūs uzzināsit, kā iegūt pieļaujamās vērtības, parādīt tās nolaižamajā izvēlnē un nodrošināt parametru efektīvu atjaunināšanu, kad tiek veikta atlase, risinot izplatītās problēmas, ar kurām saskaras izstrādātāji.
Komanda | Lietošanas piemērs |
---|---|
viz.workbook.getParametersAsync() | Šī asinhronā metode izgūst visu Tableau darbgrāmatā pieejamo parametru sarakstu. Pirms mijiedarbības ar tiem iegultajā informācijas panelī ir svarīgi dinamiski ielādēt parametru datus. |
viz.workbook.changeParameterValueAsync() | Atjaunina noteikta parametra vērtību tabulā Tableau. Tas nodrošina, ka tad, kad lietotājs maina nolaižamās izvēlnes atlasi, darbgrāmatas parametrs tiek atjaunināts reāllaikā. |
allowableValues | Šis rekvizīts satur Tableau parametra pieļaujamās vērtības. To izmanto, lai aizpildītu nolaižamo izvēlni ar visām derīgajām parametru opcijām, no kurām lietotāji var izvēlēties. |
currentValue.value | Piekļūst tabulas parametra pašreizējai vērtībai. Tas nodrošina, ka nolaižamās izvēlnes noklusējuma atlase atbilst pašreizējam parametra stāvoklim informācijas panelī. |
document.createElement("select") | Dinamiski izveido |
dropdown.addEventListener("change") | Nolaižamajai izvēlnei pievieno notikumu uztvērēju, lai noteiktu lietotāja atlases izmaiņas. Kad tas tiek aktivizēts, tas sāk parametru atjaunināšanas procesu Tableau darbgrāmatā. |
find((p) =>find((p) => p.name === "Moeda") | Izmanto metodi find() parametru masīvā, lai atrastu konkrēto "Moeda" parametru. Tas nodrošina, ka atjauninājumiem tiek atlasīts pareizais parametrs. |
viz.addEventListener(TableauEventType.FirstInteractive) | Šī komanda nodrošina, ka parametru nolaižamā saraksta ielādes funkcija tiek izpildīta tikai tad, kad Tableau informācijas panelis ir pilnībā ielādēts, izvairoties no laika problēmām. |
option.value = value.value | Iestata elementa |
jest.fn().mockResolvedValue() | Izmanto vienību testos, lai izsmietu asinhrono funkciju uzvedību. Tas nodrošina, ka testēšanas laikā parametru atjaunināšanas loģika tiek pareizi simulēta, neizmantojot reāllaika Tableau vidi. |
Kā dinamiski kontrolēt tabulas parametrus, izmantojot JavaScript
Iepriekš sniegtie skripti ir izstrādāti, lai nodrošinātu vienmērīgu mijiedarbību starp Tableau informācijas paneli un pielāgotu HTML nolaižamajā izvēlnē izvēlne. Šie skripti izmanto Tableau Embedding API, kas ļauj izstrādātājiem iegult Tableau informācijas paneļus tīmekļa lietojumprogrammās un paplašināt to interaktivitāti. Galvenais uzdevums ir manipulēt ar parametru “Moeda”, izmantojot JavaScript, iegūstot tā pieļaujamās vērtības un dinamiski atjauninot parametru, kad lietotājs veic atlasi.
Pirmā skripta daļa sākas ar funkciju, lai ielādētu parametru "Moeda". Šī funkcija izmanto getParametersAsync() metode, lai izgūtu visus darbgrāmatā pieejamos parametrus. Kad parametri ir ielādēti, skripts identificē konkrēto "Moeda" parametru, izmantojot atrast () metodi. Ja parametrs netiek atrasts, tas reģistrē kļūdu, lai izvairītos no pārējā koda pārrāvuma. Tas ir ļoti svarīgi, jo, strādājot ar parametriem, pirms tālākas loģikas ir jāzina, vai tie pastāv.
Pēc parametra noteikšanas a nolaižamajā izvēlnē izvēlne tiek dinamiski izveidota, izmantojot JavaScript DOM manipulācijas metodes. Katra vērtība no parametra pieļaujamajām vērtībām tiek pievienota kā opcija nolaižamajā izvēlnē. Skripts nodrošina, ka nolaižamajā izvēlnē tiek atspoguļots parametra pašreizējais stāvoklis, iestatot atlasīto opciju uz parametra pašreizējo vērtību. Šī darbība ir būtiska, lai nodrošinātu, ka lietotājs informācijas panelī redz jaunāko vērtību, nodrošinot konsekvenci starp informācijas paneļa stāvokli un nolaižamās izvēlnes noklusējuma opciju.
Pēdējā skripta daļa ietver notikumu klausītāja pievienošanu nolaižamajai izvēlnei. Šis notikumu uztvērējs nosaka, kad lietotājs maina atlasīto opciju, un aktivizē changeParameterValueAsync() funkcija, lai atjauninātu parametru Tableau. Turklāt skripts nodrošina, ka nolaižamā izvēlne tiek atveidota tikai pēc tam, kad informācijas panelis ir pilnībā ielādēts, izmantojot FirstInteractive notikumu. Tas nodrošina, ka nolaižamā izvēlne netiek aizpildīta priekšlaicīgi, novēršot kļūdas vai trūkstošos parametru vērtības. Risinājums ir gan modulārs, gan mērogojams, tādēļ to ir viegli pielāgot citiem parametriem vai informācijas paneļiem, atkārtoti izmantojot to pašu loģisko struktūru.
Interaktīvas nolaižamās izvēlnes izveide, lai kontrolētu tabulas parametrus
JavaScript izmantošana ar Tableau Embedding API, lai dinamiski ielādētu un atjauninātu parametrus
// Solution 1: Basic Implementation Using Async/Await and Tableau API
async function loadMoedaParameter() {
try {
const parameters = await viz.workbook.getParametersAsync();
const moedaParam = parameters.find((p) => p.name === "Moeda");
if (!moedaParam) {
console.error("Parameter 'Moeda' not found!");
return;
}
const dropdown = document.createElement("select");
moedaParam.allowableValues.forEach((value) => {
const option = document.createElement("option");
option.text = value.formattedValue;
option.value = value.value;
dropdown.appendChild(option);
});
dropdown.value = moedaParam.currentValue.value;
dropdown.addEventListener("change", async (e) => {
const selectedMoeda = e.target.value;
try {
await viz.workbook.changeParameterValueAsync("Moeda", selectedMoeda);
console.log("Moeda changed to:", selectedMoeda);
} catch (error) {
console.error("Error changing the Moeda parameter:", error);
}
});
document.getElementById("Moeda-container-desktop").appendChild(dropdown);
} catch (error) {
console.error("Error loading the Moeda parameter:", error);
}
}
viz.addEventListener(TableauEventType.FirstInteractive, loadMoedaParameter);
Modulārās nolaižamās loģikas ieviešana tabulas parametru atjauninājumiem
Optimizēta pieeja, izmantojot modulāras funkcijas un uzlabotu kļūdu apstrādi
// Solution 2: Modular and Reusable Code with Error Handling
function createDropdown(options, onChangeCallback) {
const dropdown = document.createElement("select");
dropdown.style.cssText = "border:none; width:100%; height:40px; background:#FFF;";
options.forEach(({ text, value }) => {
const option = document.createElement("option");
option.text = text;
option.value = value;
dropdown.appendChild(option);
});
dropdown.addEventListener("change", (e) => onChangeCallback(e.target.value));
return dropdown;
}
async function updateParameter(parameterName, value) {
try {
await viz.workbook.changeParameterValueAsync(parameterName, value);
console.log(\`${parameterName} changed to: \${value}\`);
} catch (error) {
console.error("Error updating parameter:", error);
}
}
async function loadParameterDropdown(containerId, parameterName) {
try {
const parameters = await viz.workbook.getParametersAsync();
const param = parameters.find((p) => p.name === parameterName);
if (!param) throw new Error(\`Parameter '\${parameterName}' not found!\`);
const options = param.allowableValues.map((val) => ({
text: val.formattedValue,
value: val.value,
}));
const dropdown = createDropdown(options, (value) => {
updateParameter(parameterName, value);
});
document.getElementById(containerId).appendChild(dropdown);
} catch (error) {
console.error("Error loading parameter dropdown:", error);
}
}
viz.addEventListener(TableauEventType.FirstInteractive, () => {
loadParameterDropdown("Moeda-container-desktop", "Moeda");
});
Tabulas parametru mijiedarbības pārbaude dažādās vidēs
Vienību testu rakstīšana, izmantojot JavaScript, lai apstiprinātu parametru atjauninājumus
// Solution 3: Unit Test to Validate Parameter Changes
function mockVizWorkbook() {
return {
parameters: [{
name: "Moeda",
allowableValues: [{ value: "USD", formattedValue: "USD" }],
currentValue: { value: "USD" },
}],
changeParameterValueAsync: jest.fn().mockResolvedValue(),
};
}
test("Dropdown updates Moeda parameter correctly", async () => {
const vizMock = { workbook: mockVizWorkbook() };
const updateSpy = vizMock.workbook.changeParameterValueAsync;
document.body.innerHTML = '<div id="Moeda-container-desktop"></div>';
await loadParameterDropdown("Moeda-container-desktop", "Moeda");
const dropdown = document.querySelector("select");
dropdown.value = "USD";
dropdown.dispatchEvent(new Event("change"));
expect(updateSpy).toHaveBeenCalledWith("Moeda", "USD");
});
Paraugprakse tabulu parametru apstrādei, izmantojot JavaScript
Iegulstot Tableau informācijas paneļus tīmekļa lietojumprogrammās, izstrādātājiem bieži ir jāpadara parametri dinamiski, lai uzlabotu lietotāju interaktivitāti. Viens no galvenajiem izaicinājumiem ir rīkoties ar tādiem parametriem kā "Moeda" izmantojot nolaižamo izvēlni, nevis izmantojot filtrus. Parametri ir sarežģītāki, jo tiem ir nepieciešami API izsaukumi, lai izgūtu to pieļaujamās vērtības, un tie ir jāatjaunina, izmantojot funkcijas, piemēram, changeParameterValueAsync(). Šī pieeja sniedz lietotājiem lielāku kontroli pār konkrētiem datu skatiem informācijas panelī, neatsvaidzinot lapu.
Parametru pārvaldība Tableau informācijas paneļos ietver to pareizu identificēšanu ar getParametersAsync(). Izplatīta kļūme ir tāda, ka daži parametri var nebūt pieejami vai tiem var būt nepieciešami dažādi piekļuves līmeņi atkarībā no darbgrāmatas konfigurācijas. Tāpēc ir svarīgi iekļaut kļūdu apstrādi, lai novērstu nolaižamās izvēlnes loģikas pārtraukšanu, ja parametrs netiek atrasts. Vēl viens aspekts, kas jāņem vērā, ir nolaižamās izvēlnes atveidošana tikai pēc informācijas paneļa pilnīgas ielādes. Izmantojot FirstInteractive notikums nodrošina, ka informācijas paneļa elementi ir gatavi pirms pielāgojumu piemērošanas.
Izšķiroša nozīme ir arī veiktspējas optimizācijai, jo īpaši, strādājot ar lielām datu kopām vai informācijas paneļiem ar vairākiem parametriem. JavaScript darbojas kā atrast () palīdz sašaurināt parametru meklēšanu, taču kodam ir jāpaliek modulāram, lai nodrošinātu mērogojamību nākotnē. Izstrādātājiem ir arī jāpārbauda parametru vērtības pirms to atjaunināšanas, lai izvairītos no neatbilstībām starp lietotāja interfeisu un informācijas paneļa datiem. Izmantojot šīs stratēģijas, kļūst vieglāk efektīvi pārvaldīt Tableau parametrus un izveidot informācijas paneļus ar nevainojamu lietotāja pieredzi.
Bieži uzdotie jautājumi par parametru izmantošanu Tableau API
- Kāda ir atšķirība starp parametru un filtru Tableau?
- Parametri ļauj lietotājiem nodot konkrētas vērtības informācijas panelim, savukārt filtri ierobežo rādītos datus, pamatojoties uz kritērijiem. Filtri iedarbojas uz datu kopām, savukārt parametri ietekmē konkrētus laukus vai aprēķinus.
- Kāpēc, ienesot parametrus, mana nolaižamā izvēlne paliek tukša?
- Pārliecinieties, ka getParametersAsync() funkcija veiksmīgi izgūst parametru. Ja tā nav, parametrs var būt paslēpts vai nav pieejams darbgrāmatas ierobežojumu dēļ.
- Kā nodrošināt, ka nolaižamā izvēlne atbilst parametra pašreizējam stāvoklim?
- Izmantojiet currentValue.value rekvizītu, lai nolaižamajā izvēlnē iestatītu noklusējuma opciju. Tādējādi lietotāja saskarne un informācijas panelis tiek saskaņoti.
- Kā es varu rīkoties ar kļūdām, atjauninot parametrus programmā Tableau?
- Aptiniet changeParameterValueAsync() zvaniet iekšā a try-catch bloku, lai apstrādātu visas kļūdas, kas rodas, kad parametrs tiek atjaunināts.
- Kāds notikums nodrošina, ka informācijas panelis ir gatavs pirms pielāgošanas?
- The FirstInteractive notikums Tableau API norāda, ka informācijas panelis ir pilnībā ielādēts un ir gatavs turpmākai mijiedarbībai, piemēram, nolaižamās izvēlnes pievienošanai.
Pēdējās domas par interaktīvo parametru apstrādi
Interaktīvu informācijas paneļu iegulšana ar parametrizētām nolaižamajām izvēlnēm nodrošina lietotājiem lielāku elastību. Ar pareizu iestatīšanu izstrādātāji var iegūt tādus parametrus kā Moeda un izmantojiet Tableau API, lai uzlabotu informācijas paneļa vadību. Šī iestatīšana ļauj lietotājiem efektīvāk izpētīt datus.
Galvenie elementi, piemēram, FirstInteractive notikumu un stabila kļūdu apstrāde nodrošina, ka nolaižamās izvēlnes lietojumprogrammā darbojas nevainojami. Ievērojot šo pieeju, izstrādātāji var efektīvi pārvaldīt parametrus un piedāvāt galalietotājiem dinamisku un atsaucīgu informācijas paneļa pieredzi.
Avoti un atsauces tabulas parametru ieviešanai
- Sīkāku informāciju par informācijas paneļu iegulšanu un mijiedarbību ar parametriem sniedza amatpersona Tableau JavaScript API dokumentācija .
- Ieskati notikumu klausītājos, piemēram FirstInteractive, tika iegūti no piemēriem, kas atrodami vietnē Tableau kopienas forums .
- Vispārīgie jēdzieni un paraugprakse darbam ar dinamiskiem lietotāja interfeisa elementiem JavaScript ir ņemti no MDN tīmekļa dokumenti .