This commit is contained in:
2021-12-28 19:01:28 +00:00
parent b6e4878269
commit 9085b6e88d
6 changed files with 114 additions and 100 deletions

View File

@@ -873,54 +873,6 @@ export default {
vm.rendering = false;
window.$gz.errorHandler.handleFormError(ex, vm);
}
},
async xxrender() {
const vm = this;
if (vm.$route.params.recordid == 0) {
return;
}
const reportDataOptions = vm.$route.params.reportDataOptions;
if (!reportDataOptions) {
throw new Error(
"Missing report data: to view report must come here from an object edit form or list so data can be provided for viewing the report"
);
}
reportDataOptions.ReportId = vm.obj.id;
//Meta data from client for use by report script
reportDataOptions.ClientMeta = window.$gz.api.reportClientMetaData();
window.$gz.form.setFormState({
vm: vm,
loading: true
});
try {
window.$gz.form.deleteAllErrorBoxErrors(vm);
vm.rendering = true;
const res = await window.$gz.api.upsert(
"report/render",
reportDataOptions
);
vm.rendering = false;
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
const reportUrl = window.$gz.api.reportDownloadUrl(res.data);
if (window.open(reportUrl, "Report") == null) {
vm.formState.serverError =
"Problem displaying report in new window. Browser must allow pop-ups to view reports; check your browser setting";
window.$gz.form.setErrorBoxErrors(vm);
}
}
} catch (ex) {
vm.rendering = false;
window.$gz.errorHandler.handleFormError(ex, vm);
} finally {
vm.rendering = false;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
}
}
};

View File

@@ -0,0 +1,43 @@
<template>
<div>
<span>📖...</span>
<gz-report-selector ref="reportSelector"></gz-report-selector>
</div>
</template>
<script>
//THIS FORM IS USED WHEN CLICKING ON A REPORT URL FROM A NOTIFICATION EMAIL ETC
//it's only ever called from the router directly
export default {
data() {
return {};
},
async created() {
const vm = this;
//open report links have url format /viewreport/[objectid]/[reportid]
//path: "/viewreport/:oid/:rid",
const objectId = parseInt(vm.$route.params.oid);
const reportId = parseInt(vm.$route.params.rid);
if (!objectId || !reportId) {
throw new Error(
"Missing report data: oid or rid are not set, unable to render report"
);
}
const reportDataOptions = {
ReportId: reportid,
SelectedRowIds: [objectid],
ClientMeta: window.$gz.api.reportClientMetaData()
};
try {
await vm.$refs.reportSelector.open(reportDataOptions, reportid);
} catch (ex) {
vm.rendering = false;
window.$gz.errorHandler.handleFormError(ex, vm);
}
}
};
</script>

View File

@@ -589,9 +589,20 @@ export default {
(async function() {
//open report links have a query string /viewreport?oid=[objectid]&rid=[reportid]
const searchParams = new URLSearchParams(vm.$route.params.search);
const objectId = parseInt(searchParams.get("oid"));
//const objectId = parseInt(searchParams.get("oid"));
const reportId = parseInt(searchParams.get("rid"));
await window.$gz.api.renderReport(objectId, reportId); //objectid,reportid
//await window.$gz.api.renderReport(objectId, reportId); //objectid,reportid
const reportDataOptions = {
ReportId: reportId,
SelectedRowIds: [parseInt(searchParams.get("oid"))],
ClientMeta: window.$gz.api.reportClientMetaData()
};
try {
await vm.$refs.reportSelector.open(reportDataOptions, reportId);
} catch (ex) {
window.$gz.errorHandler.handleFormError(ex, vm);
}
})();
vm.$router.push(vm.$store.state.homePage);
} else {