add drill down support to reports (#183)
* add drill down support to reports * add validations and service implementation for get report output * add parameters for change report output * add service implementation for report output and add change print format * fix send parameters of report * add support to change view report * bugfix names of properties * minor bugfix * add support to list drill tables by reports * modify styles for childs menu * open drill report in other container * bugfix route definition * bugfix default report format * bugfix to generate reports Co-authored-by: EdwinBetanc0urt <EdwinBetanc0urt@hotmail.com>pull/3759/head
parent
28b93fb80b
commit
da3fad95a6
|
@ -334,6 +334,7 @@ export function unlockPrivateAccessFromServer({ tableName: tableName, recordId:
|
|||
export function getFavoritesFromServer(userUuid) {
|
||||
return Instance.call(this).requestFavorites(userUuid)
|
||||
}
|
||||
|
||||
export function getPendingDocumentsFromServer(userUuid, roleUuid) {
|
||||
return Instance.call(this).requestPendingDocuments(userUuid, roleUuid)
|
||||
}
|
||||
|
@ -345,3 +346,35 @@ export function requestReportViews({ tableName, processUuid }) {
|
|||
export function requestPrintFormats({ tableName, reportViewUuid, processUuid }) {
|
||||
return Instance.call(this).requestPrintFormats({ tableName: tableName, reportViewUuid: reportViewUuid, processUuid: processUuid })
|
||||
}
|
||||
|
||||
export function requestDrillTables(tableName) {
|
||||
return Instance.call(this).requestDrillTables(tableName)
|
||||
}
|
||||
|
||||
export function getReportOutput({
|
||||
criteria: criteria,
|
||||
printFormatUuid: printFormatUuid,
|
||||
reportViewUuid: reportViewUuid,
|
||||
isSummary: isSummary,
|
||||
reportName: reportName,
|
||||
reportType: reportType,
|
||||
tableName: tableName
|
||||
}) {
|
||||
const criteriaForReport = getCriteria(tableName)
|
||||
if (criteria && criteria.length) {
|
||||
criteria.forEach(parameter => {
|
||||
var isAddCodition = true
|
||||
if (parameter.isRange && criteria.some(param => param.columnName === `${parameter.columnName}_To`)) {
|
||||
parameter.valueTo = criteria.find(param => param.columnName === `${parameter.columnName}_To`).value
|
||||
}
|
||||
const convertedParameter = Instance.call(this).convertCondition(parameter)
|
||||
if (parameter.isRange && !parameter.hasOwnProperty('valueTo')) {
|
||||
isAddCodition = false
|
||||
}
|
||||
if (isAddCodition) {
|
||||
criteriaForReport.addConditions(convertedParameter)
|
||||
}
|
||||
})
|
||||
}
|
||||
return Instance.call(this).getReportOutput({ criteria: criteriaForReport, printFormatUuid: printFormatUuid, reportViewUuid: reportViewUuid, isSummary: isSummary, reportName: reportName, reportType: reportType })
|
||||
}
|
||||
|
|
|
@ -22,9 +22,11 @@
|
|||
<template slot="title">
|
||||
{{ action.name }}
|
||||
</template>
|
||||
<el-menu-item v-for="(child, key) in action.childs" :key="key" :index="child.uuid" @click="runAction(child)">
|
||||
{{ child.name }}
|
||||
</el-menu-item>
|
||||
<el-scrollbar wrap-class="scroll-child">
|
||||
<el-menu-item v-for="(child, key) in action.childs" :key="key" :index="child.uuid" @click="runAction(child)">
|
||||
{{ child.name }}
|
||||
</el-menu-item>
|
||||
</el-scrollbar>
|
||||
</el-submenu>
|
||||
<el-menu-item v-else v-show="!action.hidden" :key="index" :index="action.name" :disabled="action.disabled" @click="runAction(action)">
|
||||
{{ action.name }}
|
||||
|
@ -60,7 +62,7 @@
|
|||
</el-menu-item>
|
||||
</template>
|
||||
</el-submenu>
|
||||
<el-menu-item v-show="$route.name === 'Report Viewer'" index="9" @click="$router.push({ name: ROUTES.PRINT_FORMAT_SETUP_WINDOW.uuid })">
|
||||
<el-menu-item v-show="$route.name === 'Report Viewer'" index="9" @click="redirect">
|
||||
{{ $t('components.contextMenuPrintFormatSetup') }}
|
||||
</el-menu-item>
|
||||
<el-menu-item v-if="panelType !== 'process'" index="8" @click="refreshData">
|
||||
|
|
|
@ -159,6 +159,9 @@ export const contextMixin = {
|
|||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
metadataReport() {
|
||||
return this.$store.getters.getCachedReport(this.$route.params.instanceUuid)
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -424,6 +427,38 @@ export const contextMixin = {
|
|||
}
|
||||
})
|
||||
}
|
||||
} else if (action.type === 'updateReport') {
|
||||
var updateReportParams = {
|
||||
instanceUuid: action.instanceUuid,
|
||||
processUuid: action.processUuid,
|
||||
tableName: action.tableName,
|
||||
processId: action.processId,
|
||||
printFormatUuid: action.printFormatUuid,
|
||||
reportViewUuid: action.reportViewUuid,
|
||||
isSummary: false,
|
||||
reportName: this.$store.getters.getProcessResult.name,
|
||||
reportType: this.$store.getters.getReportType,
|
||||
option: action.option
|
||||
}
|
||||
this.$store.dispatch('getReportOutputFromServer', updateReportParams)
|
||||
.then(response => {
|
||||
if (!response.isError) {
|
||||
var link = {
|
||||
href: undefined,
|
||||
download: undefined
|
||||
}
|
||||
|
||||
const blob = new Blob([response.outputStream], { type: response.mimeType })
|
||||
link = document.createElement('a')
|
||||
link.href = window.URL.createObjectURL(blob)
|
||||
link.download = response.fileName
|
||||
if (response.reportType !== 'pdf' && response.reportType !== 'html') {
|
||||
link.click()
|
||||
}
|
||||
response.url = link.href
|
||||
}
|
||||
this.$store.dispatch('finishProcess', { processOutput: response, routeToDelete: this.$route })
|
||||
})
|
||||
}
|
||||
},
|
||||
setShareLink() {
|
||||
|
@ -489,6 +524,15 @@ export const contextMixin = {
|
|||
duration: 1500
|
||||
})
|
||||
},
|
||||
redirect() {
|
||||
this.$router.push({
|
||||
name: ROUTES.PRINT_FORMAT_SETUP_WINDOW.uuid,
|
||||
query: {
|
||||
action: this.metadataReport.output.printFormatUuid,
|
||||
tabParent: ROUTES.PRINT_FORMAT_SETUP_WINDOW.tabParent
|
||||
}
|
||||
})
|
||||
},
|
||||
validatePrivateAccess(response) {
|
||||
if (response.isLocked) {
|
||||
this.actions.find(item => item.action === 'unlockRecord').hidden = false
|
||||
|
|
|
@ -146,6 +146,10 @@ export default {
|
|||
max-height: 400px;
|
||||
}
|
||||
|
||||
.scroll-child {
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.el-icon-more {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
|
|
@ -161,7 +161,8 @@ export default {
|
|||
unsupportedInfo: 'Please check that the view is supported in this version, or click the button below to return to the homepage.',
|
||||
unsupportedButton: 'Back to dashboard',
|
||||
reportView: 'Report Views',
|
||||
printFormat: 'Print Formats'
|
||||
printFormat: 'Print Formats',
|
||||
drillTable: 'Drill Down'
|
||||
},
|
||||
report: {
|
||||
ExportXlsx: '(xlsx) Excel File Extension',
|
||||
|
|
|
@ -161,7 +161,8 @@ export default {
|
|||
unsupportedInfo: 'Verifique que la vista sea compatible con esta versión, o haga clic en el botón a continuación para volver a la página de inicio.',
|
||||
unsupportedButton: 'Volver al Panel de control',
|
||||
reportView: 'Vistas de Reporte',
|
||||
printFormat: 'Formatos de Impresión'
|
||||
printFormat: 'Formatos de Impresión',
|
||||
drillTable: 'Entrar en Detalle'
|
||||
},
|
||||
report: {
|
||||
ExportXlsx: '(xlsx) Extencion de Archivo Excel',
|
||||
|
|
|
@ -107,7 +107,7 @@ export default {
|
|||
generateTitle, // generateTitle by vue-i18n
|
||||
isActive(route) {
|
||||
if (route.name === 'Report Viewer') {
|
||||
if (route.params.processId === this.$route.params.processId) {
|
||||
if (route.params.processId === this.$route.params.processId && route.params.tableName === this.$route.params.tableName) {
|
||||
return route.params.processId === this.$route.params.processId
|
||||
} else {
|
||||
return route.path === this.$route.path
|
||||
|
@ -158,7 +158,7 @@ export default {
|
|||
this.$nextTick(() => {
|
||||
for (const tag of tags) {
|
||||
if (this.$route.name === 'Report Viewer') {
|
||||
if (this.$route.params && tag.to.params && tag.to.params.processId === this.$route.params.processId) {
|
||||
if (this.$route.params && tag.to.params && tag.to.params.processId === this.$route.params.processId && tag.to.params.tableName === this.$route.params.tableName) {
|
||||
this.$refs.scrollPane.moveToTarget(tag)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,10 +39,10 @@ const staticRoutes = [
|
|||
path: '/report-viewer',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
redirect: 'report-viewer/:processId/:instanceUuid/:fileName',
|
||||
redirect: 'report-viewer/:processId/:instanceUuid/:fileName/:tableName?',
|
||||
children: [
|
||||
{
|
||||
path: ':processId/:instanceUuid/:fileName',
|
||||
path: ':processId/:instanceUuid/:fileName/:tableName?',
|
||||
component: () => import('@/views/ADempiere/ReportViewer'),
|
||||
name: 'Report Viewer',
|
||||
meta: {
|
||||
|
|
|
@ -6,12 +6,11 @@ import {
|
|||
getDefaultValueFromServer,
|
||||
convertValueFromGRPC,
|
||||
getContextInfoValueFromServer,
|
||||
getFavoritesFromServer,
|
||||
getPrivateAccessFromServer,
|
||||
lockPrivateAccessFromServer,
|
||||
unlockPrivateAccessFromServer,
|
||||
getFavoritesFromServer,
|
||||
getPendingDocumentsFromServer,
|
||||
requestPrintFormats
|
||||
getPendingDocumentsFromServer
|
||||
} from '@/api/ADempiere'
|
||||
import { convertValuesMapToObject, isEmptyValue } from '@/utils/ADempiere/valueUtils'
|
||||
import { showMessage } from '@/utils/ADempiere/notification'
|
||||
|
@ -27,8 +26,7 @@ const data = {
|
|||
pendingDocuments: [],
|
||||
inGetting: [],
|
||||
contextInfoField: [],
|
||||
recordPrivateAccess: {},
|
||||
printFormatList: []
|
||||
recordPrivateAccess: {}
|
||||
},
|
||||
mutations: {
|
||||
addInGetting(state, payload) {
|
||||
|
@ -115,9 +113,6 @@ const data = {
|
|||
},
|
||||
setPrivateAccess(state, payload) {
|
||||
state.recordPrivateAccess = payload
|
||||
},
|
||||
setPrintFormatList(state, payload) {
|
||||
state.printFormatList.push(payload)
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
@ -987,29 +982,6 @@ const data = {
|
|||
})
|
||||
console.error(error)
|
||||
})
|
||||
},
|
||||
requestPrintFormats({ commit }, parameters) {
|
||||
return requestPrintFormats({
|
||||
processUuid: parameters.processUuid
|
||||
})
|
||||
.then(response => {
|
||||
const printFormatList = response.getPrintformatsList().map(printFormat => {
|
||||
return {
|
||||
uuid: printFormat.getUuid(),
|
||||
name: printFormat.getName(),
|
||||
description: printFormat.getDescription(),
|
||||
isDefault: printFormat.getIsdefault()
|
||||
}
|
||||
})
|
||||
commit('setPrintFormatList', {
|
||||
containerUuid: parameters.processUuid,
|
||||
printFormatList: printFormatList
|
||||
})
|
||||
return printFormatList
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error)
|
||||
})
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
|
@ -1153,13 +1125,6 @@ const data = {
|
|||
}
|
||||
return undefined
|
||||
}
|
||||
},
|
||||
getPrintFormatList: (state) => (containerUuid) => {
|
||||
var printFormatList = state.printFormatList.find(list => list.containerUuid === containerUuid)
|
||||
if (printFormatList) {
|
||||
return printFormatList.printFormatList
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1227,6 +1227,7 @@ const panel = {
|
|||
return {
|
||||
columnName: parameterItem.columnName,
|
||||
value: value,
|
||||
isRange: parameterItem.isRange,
|
||||
values: values
|
||||
}
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { runProcess, requestProcessActivity, requestReportViews } from '@/api/ADempiere'
|
||||
import { runProcess, requestProcessActivity } from '@/api/ADempiere'
|
||||
import { showNotification } from '@/utils/ADempiere/notification'
|
||||
import { isEmptyValue, convertMapToArrayPairs } from '@/utils/ADempiere'
|
||||
import language from '@/lang'
|
||||
|
@ -14,8 +14,7 @@ const processControl = {
|
|||
process: [], // process to run finish
|
||||
sessionProcess: [],
|
||||
notificationProcess: [],
|
||||
inRequestMetadata: [],
|
||||
reportViewList: []
|
||||
inRequestMetadata: []
|
||||
},
|
||||
mutations: {
|
||||
// Add process in execution
|
||||
|
@ -57,7 +56,12 @@ const processControl = {
|
|||
},
|
||||
setReportValues(state, payload) {
|
||||
state.reportObject = payload
|
||||
state.reportList.push(payload)
|
||||
if (state.reportList.some(report => report.instanceUuid === payload.instanceUuid)) {
|
||||
var reportIndex = state.reportList.findIndex(report => report.instanceUuid === payload.instanceUuid)
|
||||
state.reportList.splice(reportIndex, 1, payload)
|
||||
} else {
|
||||
state.reportList.push(payload)
|
||||
}
|
||||
},
|
||||
setSessionProcess(state, payload) {
|
||||
state.sessionProcess = payload.processList
|
||||
|
@ -74,9 +78,6 @@ const processControl = {
|
|||
state.sessionProcess = []
|
||||
state.notificationProcess = []
|
||||
state.inRequestMetadata = []
|
||||
},
|
||||
setReportViewsList(state, payload) {
|
||||
state.reportViewList.push(payload)
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
@ -208,7 +209,7 @@ const processControl = {
|
|||
outputStream: '',
|
||||
reportType: ''
|
||||
}
|
||||
if (response.getOutput()) {
|
||||
if (response.hasOutput()) {
|
||||
const responseOutput = response.getOutput()
|
||||
output = {
|
||||
uuid: responseOutput.getUuid(),
|
||||
|
@ -218,7 +219,14 @@ const processControl = {
|
|||
mimeType: responseOutput.getMimetype(),
|
||||
output: responseOutput.getOutput(),
|
||||
outputStream: responseOutput.getOutputstream(),
|
||||
reportType: responseOutput.getReporttype()
|
||||
reportType: responseOutput.getReporttype(),
|
||||
dataCols: responseOutput.getDatacols(),
|
||||
dataRows: responseOutput.getDatarows(),
|
||||
footerName: responseOutput.getFootername(),
|
||||
headerName: responseOutput.getHeadername(),
|
||||
printFormatUuid: responseOutput.getPrintformatuuid(),
|
||||
reportViewUuid: responseOutput.getReportviewuuid(),
|
||||
tableName: responseOutput.getTablename()
|
||||
}
|
||||
}
|
||||
var logList = []
|
||||
|
@ -253,15 +261,22 @@ const processControl = {
|
|||
option: 'reportView'
|
||||
}
|
||||
reportViewList.childs = getters.getReportViewList(processResult.processUuid)
|
||||
if (!reportViewList.childs.length) {
|
||||
if (reportViewList && !reportViewList.childs.length) {
|
||||
dispatch('requestReportViews', {
|
||||
processUuid: processResult.processUuid
|
||||
processUuid: processResult.processUuid,
|
||||
instanceUuid: response.getInstanceuuid(),
|
||||
processId: processDefinition.id,
|
||||
tableName: output.tableName,
|
||||
printFormatUuid: output.printFormatUuid,
|
||||
reportViewUuid: output.reportViewUuid
|
||||
})
|
||||
.then(response => {
|
||||
reportViewList.childs = response
|
||||
// Get contextMenu metadata and concat print report views with contextMenu actions
|
||||
var contextMenuMetadata = rootGetters.getContextMenu(processResult.processUuid)
|
||||
contextMenuMetadata.actions.push(reportViewList)
|
||||
if (reportViewList.childs.length) {
|
||||
// Get contextMenu metadata and concat print report views with contextMenu actions
|
||||
var contextMenuMetadata = rootGetters.getContextMenu(processResult.processUuid)
|
||||
contextMenuMetadata.actions.push(reportViewList)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -274,17 +289,54 @@ const processControl = {
|
|||
option: 'printFormat'
|
||||
}
|
||||
printFormatList.childs = rootGetters.getPrintFormatList(processResult.processUuid)
|
||||
if (!printFormatList.childs.length) {
|
||||
if (printFormatList && !printFormatList.childs.length) {
|
||||
dispatch('requestPrintFormats', {
|
||||
processUuid: processResult.processUuid
|
||||
processUuid: processResult.processUuid,
|
||||
instanceUuid: response.getInstanceuuid(),
|
||||
processId: processDefinition.id,
|
||||
tableName: output.tableName,
|
||||
printFormatUuid: output.printFormatUuid,
|
||||
reportViewUuid: output.reportViewUuid
|
||||
})
|
||||
.then(response => {
|
||||
printFormatList.childs = response
|
||||
// Get contextMenu metadata and concat print Format List with contextMenu actions
|
||||
var contextMenuMetadata = rootGetters.getContextMenu(processResult.processUuid)
|
||||
contextMenuMetadata.actions.push(printFormatList)
|
||||
if (printFormatList.childs.length) {
|
||||
// Get contextMenu metadata and concat print Format List with contextMenu actions
|
||||
var contextMenuMetadata = rootGetters.getContextMenu(processResult.processUuid)
|
||||
contextMenuMetadata.actions.push(printFormatList)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Drill Tables to context menu
|
||||
var drillTablesList = {
|
||||
name: language.t('views.drillTable'),
|
||||
type: 'summary',
|
||||
action: '',
|
||||
childs: [],
|
||||
option: 'drillTable'
|
||||
}
|
||||
if (!isEmptyValue(output.tableName)) {
|
||||
drillTablesList.childs = rootGetters.getDrillTablesList(processResult.processUuid)
|
||||
if (drillTablesList && isEmptyValue(drillTablesList.childs)) {
|
||||
dispatch('requestDrillTables', {
|
||||
processUuid: processResult.processUuid,
|
||||
instanceUuid: response.getInstanceuuid(),
|
||||
processId: processDefinition.id,
|
||||
tableName: output.tableName,
|
||||
printFormatUuid: output.printFormatUuid,
|
||||
reportViewUuid: output.reportViewUuid
|
||||
})
|
||||
.then(response => {
|
||||
drillTablesList.childs = response
|
||||
if (drillTablesList.childs.length) {
|
||||
// Get contextMenu metadata and concat print Format List with contextMenu actions
|
||||
var contextMenuMetadata = rootGetters.getContextMenu(processResult.processUuid)
|
||||
contextMenuMetadata.actions.push(drillTablesList)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
// assign new attributes
|
||||
Object.assign(processResult, {
|
||||
|
@ -294,7 +346,7 @@ const processControl = {
|
|||
isError: response.getIserror(),
|
||||
isProcessing: response.getIsprocessing(),
|
||||
summary: response.getSummary(),
|
||||
ResultTableName: response.getResulttablename(),
|
||||
resultTableName: response.getResulttablename(),
|
||||
lastRun: response.getLastrun(),
|
||||
logs: logList,
|
||||
output: output
|
||||
|
@ -463,13 +515,24 @@ const processControl = {
|
|||
}
|
||||
if (parameters.processOutput.isReport && !parameters.processOutput.isError) {
|
||||
// open report viewer with report response
|
||||
if (isEmptyValue(parameters.processOutput.menuParentUuid)) {
|
||||
parameters.processOutput.menuParentUuid = parameters.processOutput.processUuid
|
||||
}
|
||||
|
||||
var tableName
|
||||
if (parameters.processOutput.option && !isEmptyValue(parameters.processOutput.option)) {
|
||||
if (parameters.processOutput.option === 'drillTable') {
|
||||
tableName = parameters.processOutput.tableName
|
||||
}
|
||||
}
|
||||
router.push({
|
||||
name: 'Report Viewer',
|
||||
params: {
|
||||
processId: parameters.processOutput.processId,
|
||||
instanceUuid: parameters.processOutput.instanceUuid,
|
||||
fileName: parameters.processOutput.output.fileName,
|
||||
menuParentUuid: parameters.processOutput.menuParentUuid
|
||||
fileName: isEmptyValue(parameters.processOutput.output.fileName) ? parameters.processOutput.fileName : parameters.processOutput.output.fileName,
|
||||
menuParentUuid: parameters.processOutput.menuParentUuid,
|
||||
tableName: tableName
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -485,27 +548,6 @@ const processControl = {
|
|||
},
|
||||
clearProcessControl({ commit }) {
|
||||
commit('clearProcessControl')
|
||||
},
|
||||
requestReportViews({ commit }, parameters) {
|
||||
return requestReportViews({ processUuid: parameters.processUuid })
|
||||
.then(response => {
|
||||
const reportViewList = response.getReportviewsList().map(reportView => {
|
||||
return {
|
||||
uuid: reportView.getUuid(),
|
||||
name: reportView.getName(),
|
||||
tableName: reportView.getTablename(),
|
||||
description: reportView.getDescription()
|
||||
}
|
||||
})
|
||||
commit('setReportViewsList', {
|
||||
containerUuid: parameters.processUuid,
|
||||
viewList: reportViewList
|
||||
})
|
||||
return reportViewList
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error)
|
||||
})
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
|
@ -550,13 +592,6 @@ const processControl = {
|
|||
return state.reportList.find(
|
||||
item => item.instanceUuid === instanceUuid
|
||||
)
|
||||
},
|
||||
getReportViewList: (state) => (containerUuid) => {
|
||||
var reportViewList = state.reportViewList.find(list => list.containerUuid === containerUuid)
|
||||
if (reportViewList) {
|
||||
return reportViewList.viewList
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,216 @@
|
|||
import { requestReportViews, requestPrintFormats, requestDrillTables, getReportOutput } from '@/api/ADempiere'
|
||||
import { isEmptyValue } from '@/utils/ADempiere'
|
||||
const contextMenu = {
|
||||
state: {
|
||||
reportFormatsList: [],
|
||||
reportViewsList: [],
|
||||
drillTablesList: [],
|
||||
reportOutput: {}
|
||||
},
|
||||
mutations: {
|
||||
setReportFormatsList(state, payload) {
|
||||
state.reportFormatsList.push(payload)
|
||||
},
|
||||
setReportViewsList(state, payload) {
|
||||
state.reportViewsList.push(payload)
|
||||
},
|
||||
setDrillTablesList(state, payload) {
|
||||
state.drillTablesList.push(payload)
|
||||
},
|
||||
setNewReportOutput(state, payload) {
|
||||
state.reportOutput = payload
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
requestPrintFormats({ commit }, parameters) {
|
||||
return requestPrintFormats({ processUuid: parameters.processUuid })
|
||||
.then(response => {
|
||||
const printFormatList = response.getPrintformatsList().map(printFormat => {
|
||||
return {
|
||||
printFormatUuid: printFormat.getUuid(),
|
||||
name: printFormat.getName(),
|
||||
description: printFormat.getDescription(),
|
||||
isDefault: printFormat.getIsdefault(),
|
||||
tableName: printFormat.getTablename(),
|
||||
reportViewUuid: printFormat.getReportviewuuid(),
|
||||
type: 'updateReport',
|
||||
option: 'printFormat',
|
||||
instanceUuid: parameters.instanceUuid,
|
||||
processUuid: parameters.processUuid,
|
||||
processId: parameters.processId
|
||||
}
|
||||
})
|
||||
commit('setReportFormatsList', {
|
||||
containerUuid: parameters.processUuid,
|
||||
printFormatList: printFormatList
|
||||
})
|
||||
return printFormatList
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error)
|
||||
})
|
||||
},
|
||||
requestReportViews({ commit }, parameters) {
|
||||
return requestReportViews({ processUuid: parameters.processUuid })
|
||||
.then(response => {
|
||||
const reportViewList = response.getReportviewsList().map(reportView => {
|
||||
return {
|
||||
reportViewUuid: reportView.getUuid(),
|
||||
name: reportView.getName(),
|
||||
tableName: reportView.getTablename(),
|
||||
description: reportView.getDescription(),
|
||||
type: 'updateReport',
|
||||
option: 'reportView',
|
||||
instanceUuid: parameters.instanceUuid,
|
||||
printFormatUuid: parameters.printFormatUuid,
|
||||
processUuid: parameters.processUuid,
|
||||
processId: parameters.processId
|
||||
}
|
||||
})
|
||||
commit('setReportViewsList', {
|
||||
containerUuid: parameters.processUuid,
|
||||
viewList: reportViewList
|
||||
})
|
||||
return reportViewList
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error)
|
||||
})
|
||||
},
|
||||
requestDrillTables({ commit }, parameters) {
|
||||
return requestDrillTables(parameters.tableName)
|
||||
.then(response => {
|
||||
const drillTablesList = response.getDrilltablesList().map(drillTable => {
|
||||
return {
|
||||
name: drillTable.getPrintname(),
|
||||
tableName: drillTable.getTablename(),
|
||||
type: 'updateReport',
|
||||
option: 'drillTable',
|
||||
instanceUuid: parameters.instanceUuid,
|
||||
printFormatUuid: parameters.printFormatUuid,
|
||||
reportViewUuid: parameters.reportViewUuid,
|
||||
processUuid: parameters.processUuid,
|
||||
processId: parameters.processId
|
||||
}
|
||||
})
|
||||
commit('setDrillTablesList', {
|
||||
containerUuid: parameters.processUuid,
|
||||
drillTablesList: drillTablesList
|
||||
})
|
||||
return drillTablesList
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error)
|
||||
})
|
||||
},
|
||||
getReportOutputFromServer({ commit, getters, rootGetters }, parameters) {
|
||||
if (isEmptyValue(parameters.printFormatUuid)) {
|
||||
parameters.printFormatUuid = getters.getDefaultPrintFormat(parameters.processUuid).printFormatUuid
|
||||
}
|
||||
const {
|
||||
tableName,
|
||||
printFormatUuid,
|
||||
reportViewUuid,
|
||||
isSummary,
|
||||
reportName,
|
||||
reportType,
|
||||
processUuid,
|
||||
processId,
|
||||
instanceUuid,
|
||||
option
|
||||
} = parameters
|
||||
const processParameters = rootGetters.getParametersToServer({ containerUuid: processUuid })
|
||||
return getReportOutput({
|
||||
criteria: processParameters,
|
||||
printFormatUuid: printFormatUuid,
|
||||
reportViewUuid: reportViewUuid,
|
||||
isSummary: isSummary,
|
||||
reportName: reportName,
|
||||
reportType: reportType,
|
||||
tableName: tableName
|
||||
})
|
||||
.then(response => {
|
||||
const reportOutput = {
|
||||
uuid: response.getUuid(),
|
||||
processName: response.getName(),
|
||||
description: response.getDescription(),
|
||||
fileName: response.getFilename(),
|
||||
output: response.getOutput(),
|
||||
mimeType: response.getMimetype(),
|
||||
dataCols: response.getDatacols(),
|
||||
dataRows: response.getDatarows(),
|
||||
headerName: response.getHeadername(),
|
||||
footerName: response.getFootername(),
|
||||
printFormatUuid: response.getPrintformatuuid(),
|
||||
reportViewUuid: response.getReportviewuuid(),
|
||||
tableName: response.getTablename(),
|
||||
outputStream: response.getOutputstream(),
|
||||
reportType: response.getReporttype(),
|
||||
processId: processId,
|
||||
processUuid: processUuid,
|
||||
isError: false,
|
||||
instanceUuid: instanceUuid,
|
||||
isReport: true,
|
||||
option: option
|
||||
}
|
||||
commit('setNewReportOutput', reportOutput)
|
||||
return reportOutput
|
||||
})
|
||||
.catch(error => {
|
||||
const reportOutput = {
|
||||
uuid: '',
|
||||
processName: '',
|
||||
description: '',
|
||||
fileName: '',
|
||||
output: '',
|
||||
mimeType: '',
|
||||
dataCols: null,
|
||||
dataRows: null,
|
||||
headerName: '',
|
||||
footerName: '',
|
||||
printFormatUuid: '',
|
||||
reportViewUuid: '',
|
||||
tableName: '',
|
||||
outputStream: [],
|
||||
reportType: '',
|
||||
processId: null,
|
||||
processUuid: '',
|
||||
isError: true,
|
||||
instanceUuid: '',
|
||||
isReport: true,
|
||||
option: ''
|
||||
}
|
||||
console.error(error)
|
||||
return reportOutput
|
||||
})
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
getPrintFormatList: (state) => (containerUuid) => {
|
||||
var printFormatList = state.reportFormatsList.find(list => list.containerUuid === containerUuid)
|
||||
if (printFormatList) {
|
||||
return printFormatList.printFormatList
|
||||
}
|
||||
return []
|
||||
},
|
||||
getDefaultPrintFormat: (state, getters) => (containerUuid) => {
|
||||
return getters.getPrintFormatList(containerUuid).find(printFormat => printFormat.isDefault)
|
||||
},
|
||||
getReportViewList: (state) => (containerUuid) => {
|
||||
var reportViewList = state.reportViewsList.find(list => list.containerUuid === containerUuid)
|
||||
if (reportViewList) {
|
||||
return reportViewList.viewList
|
||||
}
|
||||
return []
|
||||
},
|
||||
getDrillTablesList: (state) => (containerUuid) => {
|
||||
var drillTablesList = state.drillTablesList.find(list => list.containerUuid === containerUuid)
|
||||
if (drillTablesList) {
|
||||
return drillTablesList.viewList
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default contextMenu
|
|
@ -6,7 +6,11 @@ const state = {
|
|||
const mutations = {
|
||||
ADD_VISITED_VIEW: (state, view) => {
|
||||
if (view.name === 'Report Viewer') {
|
||||
if (state.visitedViews.some(v => v.params && v.params.processId === view.params.processId)) return
|
||||
if (state.visitedViews.some(v =>
|
||||
v.params &&
|
||||
v.params.processId === view.params.processId &&
|
||||
v.params.tableName === view.params.tableName
|
||||
)) return
|
||||
state.visitedViews.push(
|
||||
Object.assign({}, view, {
|
||||
title: view.meta.title || 'no-name'
|
||||
|
|
|
@ -204,7 +204,7 @@ export function generateProcess({ processToGenerate, containerUuidAssociated = u
|
|||
description: processToGenerate.description,
|
||||
isReport: processToGenerate.isReport,
|
||||
isDirectPrint: processToGenerate.isDirectPrint,
|
||||
reportExportType: undefined
|
||||
reportExportType: 'html'
|
||||
}, {
|
||||
name: language.t('components.ChangeParameters'),
|
||||
processName: processToGenerate.name,
|
||||
|
|
|
@ -105,10 +105,10 @@ export default {
|
|||
showNotification,
|
||||
displayReport(reportResult) {
|
||||
if (!reportResult.isError) {
|
||||
this.reportFormat = reportResult.output.reportType
|
||||
this.reportContent = reportResult.output.output
|
||||
this.reportHeader = reportResult.output.name
|
||||
this.name = reportResult.output.fileName
|
||||
this.reportFormat = this.isEmptyValue(reportResult.output.reportType) ? reportResult.reportType : reportResult.output.reportType
|
||||
this.reportContent = this.isEmptyValue(reportResult.output.output) ? reportResult.output : reportResult.output.output
|
||||
this.reportHeader = this.isEmptyValue(reportResult.output.name) ? reportResult.processName : reportResult.output.name
|
||||
this.name = this.isEmptyValue(reportResult.output.fileName) ? reportResult.fileName : reportResult.output.fileName
|
||||
this.isLoading = true
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue