Hi guys,
Im trying to implement the pdf generator but in the final part that im doing its becaming a nightmare i have 2 repeaters that need to be displayed but it dont do it on the pdf here is the code please help:
This one shows the code function
This one shows the pdf in blank
import { session } from 'wix-storage';
import wixData from 'wix-data';
$w.onReady(function () {
// Retrieve `queryResults` from session storage
let queryResults2 = JSON.parse(session.getItem('queryResults'));
console.log("Data on Session", queryResults2);
// Preprocess data to remove repetitions and handle undefined values
let uniqueMesRelatorio = Array.from(new Set(queryResults2.map(item => item.mesRelatorio))).filter(Boolean);
let uniqueAnoRelatorio = Array.from(new Set(queryResults2.map(item => item.anoRelatorio))).filter(Boolean);
// Set the values of input1 and input2 with the unique and non-undefined values
$w('#input1').value = uniqueMesRelatorio.join(', '); // Join if there are multiple values
console.log("Mes de relatorio", uniqueMesRelatorio);
$w('#input2').value = uniqueAnoRelatorio.join(', '); // Join if there are multiple values
console.log("Ano de relatorio", uniqueAnoRelatorio);
});
function search() {
// Getting input values
let mes = $w('#input1').value;
let ano = $w('#input2').value;
// Helper function to get unique items by a key
function getUniqueItems(items, key) {
const uniqueKeys = new Set();
return items.filter(item => {
const isNew = !uniqueKeys.has(item[key]);
if (isNew) {
uniqueKeys.add(item[key]);
}
return isNew;
});
}
// Creating the query
let query = wixData.query("PdfData")
.eq("mesRelatorio", mes)
.and(wixData.query("PdfData").eq("anoRelatorio", ano));
// Executing the query
query.find()
.then(results => {
if (results.items.length > 0) {
// Getting IDs of items found
let itemIds = results.items.map(item => item._id);
// Filtering the datasetPdfData to match the found IDs
return $w('#datasetPdfData').setFilter(wixData.filter().hasSome("_id", itemIds))
.then(() => $w('#datasetPdfData').refresh())
.then(() => results.items);
} else {
console.log("No results found");
// Clearing repeater data
$w('#rptViewDados').data = [];
$w('#rptPresentation').data = [];
return Promise.reject("No results found");
}
})
.then(items => {
// Getting unique items for rptPresentation
let uniqueItems = getUniqueItems(items, 'yourUniqueKey'); // replace 'yourUniqueKey' with the actual key
// Setting the repeater data to show filtered results
$w('#rptViewDados').data = items;
$w('#rptPresentation').data = uniqueItems.slice(0, 1); // Display only 1 unique item
})
.catch(err => {
console.error("Query or data fetch failed", err);
});
}
export function input2_change(event) {
search()
}
export function input1_change(event) {
search()
}
Hi Eitan,
Yes iam using PDF Generator App
Yes, the code shared is on my template page. This is the url of the live page, www.vemprobus.co.mz/baixar-relatorio
Sure here it goes
Hi Hugo, Thanks for reaching out. A few questions: 1. Are you using the PDF Generator App? 2. Is the code you shared on your template page? Can you please share the url or an example url? 3. Can you please share the settings or code on the page where the generate PDF button is? Eitan