diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index c3ff1ca80c3bfd9b85ae0ecab2fbb575669f61c1..efb2194b52ca6f21efb761e2349ff2dabc1be28e 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -14,7 +14,7 @@ <useFavorites v="true" /> <iconId>VAADIN:BOOK_DOLLAR</iconId> <imageProcess>%aditoprj%/entity/Salesproject_entity/imageProcess.js</imageProcess> - <titlePlural>Salesprojects</titlePlural> + <titlePlural>Sales Projects</titlePlural> <recordContainer>db</recordContainer> <entityFields> <entityProvider> @@ -257,7 +257,7 @@ <dependency> <name>dependency</name> <entityName>Member_entity</entityName> - <fieldName>WithDistrictResponsibles</fieldName> + <fieldName>Links</fieldName> </dependency> <children> <entityParameter> @@ -595,7 +595,6 @@ </entityConsumer> <entityConsumer> <name>Classifications</name> - <refreshParent v="true" /> <dependency> <name>dependency</name> <entityName>Classification_entity</entityName> @@ -626,6 +625,13 @@ <title>Days running</title> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/runtime/valueProcess.js</valueProcess> </entityField> + <entityField> + <name>ClassificationResult</name> + <title>Classification</title> + <groupable v="false" /> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationresult/valueProcess.js</valueProcess> + </entityField> <entityConsumer> <name>SalesprojectForecastCharts</name> <dependency> @@ -666,6 +672,28 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>ClassificationGroups</name> + <dependency> + <name>dependency</name> + <entityName>ClassificationGroupAnalyses_entity</entityName> + <fieldName>GroupAnalyses</fieldName> + </dependency> + <children> + <entityParameter> + <name>ClassificationType_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationgroups/children/classificationtype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectRowid_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationgroups/children/objectrowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/classificationgroups/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> <entityField> <name>PHASEINFO</name> <title>phase information</title> @@ -746,10 +774,6 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> - <entityField> - <name>CLASSIFICATIONSTORAGE_ID</name> - <title>Classification</title> - </entityField> </entityFields> <recordContainers> <dbRecordContainer> @@ -763,19 +787,26 @@ <onDBDelete>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <linkInformation> <linkInformation> - <name>c8b6f1e0-630c-45d1-bdfb-d1eb3f6d6bef</name> + <name>75cc0cd9-09fc-46a8-b25d-369c4e9c0fd7</name> <tableName>SALESPROJECT</tableName> <primaryKey>SALESPROJECTID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> <linkInformation> - <name>5f687ee0-15eb-4e19-aa5a-461c446e7d91</name> + <name>a7b7adf3-c2fd-4688-9970-0000841712d7</name> <tableName>ORGANISATION</tableName> <primaryKey>ORGANISATIONID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> + <linkInformation> + <name>b14de4fd-28a8-4503-9c29-0c4dd8b31607</name> + <tableName>AB_KEYWORD_ENTRY</tableName> + <primaryKey>AB_KEYWORD_ENTRYID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> <linkInformation> <name>1c73b0de-0e70-421e-a8aa-660dbd177f81</name> <tableName>CLASSIFICATIONSTORAGE</tableName> @@ -789,25 +820,25 @@ <name>ENDDATE.value</name> <recordfield>SALESPROJECT.ENDDATE</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>INFO.value</name> <recordfield>SALESPROJECT.INFO</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>PHASE.value</name> <recordfield>SALESPROJECT.PHASE</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>PROBABILITY.value</name> <recordfield>SALESPROJECT.PROBABILITY</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>PROJECTCODE.value</name> @@ -829,19 +860,19 @@ <name>STARTDATE.value</name> <recordfield>SALESPROJECT.STARTDATE</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>VOLUME.value</name> <recordfield>SALESPROJECT.VOLUME</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>CONTACT_ID.value</name> <recordfield>SALESPROJECT.CONTACT_ID</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>CONTACT_ID.displayValue</name> @@ -859,13 +890,13 @@ <name>REASONS.value</name> <recordfield>SALESPROJECT.REASONS</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <consumerMapping> <name>Organisations</name> <filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/organisations/filterConditionProcess.js</filterConditionProcess> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> <filtertype>BASIC</filtertype> </consumerMapping> <consumerMapping> @@ -882,19 +913,13 @@ <name>STATUS.value</name> <recordfield>SALESPROJECT.STATUS</recordfield> <isFilterable v="true" /> - <isLookupFilter v="false" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <aggregateFieldDbMapping> <name>COUNT_aggregate.value</name> <recordfield>SALESPROJECT.SALESPROJECTID</recordfield> <aggregateType>COUNT</aggregateType> </aggregateFieldDbMapping> - <dbRecordFieldMapping> - <name>CLASSIFICATIONSTORAGE_ID.value</name> - <recordfield>CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE</recordfield> - <isFilterable v="true" /> - <isLookupFilter v="false" /> - </dbRecordFieldMapping> </recordFieldMappings> <filterExtensions> <filterExtensionSet> @@ -905,21 +930,17 @@ <filtertype>BASIC</filtertype> </filterExtensionSet> <filterExtensionSet> - <name>ClassificationType_filter</name> - <filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/filterFieldsProcess.js</filterFieldsProcess> - <filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/filterValuesProcess.js</filterValuesProcess> - <filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/filterConditionProcess.js</filterConditionProcess> - <isGroupable v="true" /> - <groupQueryProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationtype_filter/groupQueryProcess.js</groupQueryProcess> + <name>ClassificationSummary_filter</name> + <filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterFieldsProcess.js</filterFieldsProcess> + <filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterConditionProcess.js</filterConditionProcess> <filtertype>BASIC</filtertype> </filterExtensionSet> <filterExtensionSet> - <name>ClassificationGroup_filter</name> - <filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationgroup_filter/filterFieldsProcess.js</filterFieldsProcess> - <filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationgroup_filter/filterValuesProcess.js</filterValuesProcess> - <filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationgroup_filter/filterConditionProcess.js</filterConditionProcess> - <isGroupable v="true" /> - <groupQueryProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationgroup_filter/groupQueryProcess.js</groupQueryProcess> + <name>ClassificationScore_filter</name> + <filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterFieldsProcess.js</filterFieldsProcess> + <filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterConditionProcess.js</filterConditionProcess> <filtertype>BASIC</filtertype> </filterExtensionSet> </filterExtensions> diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/filterConditionProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/filterConditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f410cb6d05146ae82e7bbf5016ddcb5d32cae509 --- /dev/null +++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/filterConditionProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Sql_lib"); +import("system.vars"); + +result.string(newWhereIfSet( "SALESPROJECT.PHASE", vars.get("$local.rawvalue"))); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..341994efdf214b16a3c8dc9ba3e222c61f1323f8 --- /dev/null +++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/phase_filterextention/groupQueryProcess.js @@ -0,0 +1,31 @@ +import("system.logging"); +import("Sql_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); + +var order = vars.get("$local.order"); +var sqlHelper = new SqlMaskingUtils(); +var groupedList = "SALESPROJECT.PHASE" +var condition = vars.get("$local.condition"); +var stmt = new SqlBuilder().from("SALESPROJECT").join("AB_KEYWORD_ENTRY", newWhere("AB_KEYWORD_ENTRY.KEYID = SALESPROJECT.PHASE").and("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.salesprojectPhase())).groupBy(groupedList + ", AB_KEYWORD_ENTRY.SORTING, AB_KEYWORD_ENTRY.KEYID"); + +if (condition != " ") + stmt.where(condition); + +if (vars.get("$local.count")) // TRUE if the count of the records is needed +{ + stmt.select(["1 COUNT", groupedList]) //from ACTIVITY where " + condition + " group by "+groupedList+") X"; + stmt = newSelect("STMT.COUNT") + .from(stmt, "STMT") + +} +else +{ + stmt.select([groupedList , KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(),"AB_KEYWORD_ENTRY.KEYID"), "count(*)", "count(*)"]) + if (order != null) + stmt.orderBy("AB_KEYWORD_ENTRY.SORTING, " +order); +} + +result.string(stmt.toString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js index f7c4fec24f882837821e3546df7a8c5c0f5d1951..435ef5659c496dabc83c5ec578c05a94d5b4ed6a 100644 --- a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js @@ -1,5 +1,6 @@ import("system.vars"); import("system.result"); +import("KeywordRegistry_basic"); //CLASSIFICATIONSTORAGE is necessaray to make it possible to get the classifications of the organisations and making it possible to group by them result.string("SALESPROJECT \n\ diff --git a/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js b/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js index 71ac17c11183c3560820cbe2df01dccddd1e3b4d..319594ed7e2cd8b1860d7426852261155c9cf13b 100644 --- a/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.db"); - -result.object({ - "SALESPROJECT.PROJECTTITLE": db.ASCENDING +import("system.result"); +import("system.db"); + +result.object({ + "SALESPROJECT.PROJECTTITLE": db.ASCENDING }); \ No newline at end of file diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod index fc510061011c9a189deefff688d5284d4855b38f..4b997e115ae5c4e69f504b7c85f89b98a9327fb8 100644 --- a/neonContext/Salesproject/Salesproject.aod +++ b/neonContext/Salesproject/Salesproject.aod @@ -67,5 +67,13 @@ <name>50993084-896d-4d90-9f5e-cd84d3a4dce5</name> <view>SalesprojectMultiEdit_view</view> </neonViewReference> + <neonViewReference> + <name>70a70c7a-ac4e-4022-bfb5-5d13de4cfe6b</name> + <view>SalesprojectAnalysesPhases_view</view> + </neonViewReference> + <neonViewReference> + <name>079db4ee-86fc-4985-a253-249622d9f3ce</name> + <view>SalesprojectAnalyses_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/SalesprojectAnalyses/SalesprojectAnalyses.aod b/neonContext/SalesprojectAnalyses/SalesprojectAnalyses.aod index 686800c1bf8e835926a710699ae1436e58948fee..fcebed52c4331297779102d0fb40ecdb1cecc989 100644 --- a/neonContext/SalesprojectAnalyses/SalesprojectAnalyses.aod +++ b/neonContext/SalesprojectAnalyses/SalesprojectAnalyses.aod @@ -4,10 +4,6 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <entity>SalesprojectAnalyses_entity</entity> <references> - <neonViewReference> - <name>c50b2e10-86ca-4a5b-83d4-946a78c18786</name> - <view>SalesprojectPhases_view</view> - </neonViewReference> <neonViewReference> <name>ccb97c28-966a-4206-b981-140e87e680bf</name> <view>SalesprojectScoreCard_view</view> diff --git a/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod b/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod index 61143b9768b36969cd29c740cd09c8bb721faefa..0da4c5bde0e25f3d0a10fc155fce992f43ce1cf7 100644 --- a/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod +++ b/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod @@ -60,7 +60,7 @@ </neonDashlet> <neonDashlet> <name>Dashlet3</name> - <viewName>SalesprojectPhases_view</viewName> + <viewName>SalesprojectAnalyses_view</viewName> <configName>SalesprojectPhases</configName> <uiConfiguration> <name>uiConfiguration</name> diff --git a/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod b/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..86524aca75abcc6f73c19fd30aee8cc986ead6b1 --- /dev/null +++ b/neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>SalesprojectAnalysesPhases_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <dynamicSingleDataChartViewTemplate> + <name>PhaseFunnelChart</name> + <chartType>FUNNEL</chartType> + <entityField>#ENTITY</entityField> + <defaultGroupFields> + <element>#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT</element> + </defaultGroupFields> + <columns> + <neonDynamicSingleDataChartColumn> + <name>b9df936d-3079-41d2-a73d-4090b189eaa4</name> + <entityField>COUNT</entityField> + <aggregateEntityField>COUNT_aggregate</aggregateEntityField> + </neonDynamicSingleDataChartColumn> + </columns> + </dynamicSingleDataChartViewTemplate> + <dynamicSingleDataChartViewTemplate> + <name>PhasePieChart</name> + <chartType>PIE</chartType> + <entityField>#ENTITY</entityField> + <defaultGroupFields> + <element>#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT</element> + </defaultGroupFields> + <columns> + <neonDynamicSingleDataChartColumn> + <name>b9df936d-3079-41d2-a73d-4090b189eaa4</name> + <entityField>COUNT</entityField> + <aggregateEntityField>COUNT_aggregate</aggregateEntityField> + </neonDynamicSingleDataChartColumn> + </columns> + </dynamicSingleDataChartViewTemplate> + <dynamicSingleDataChartViewTemplate> + <name>PhasePyramidChart</name> + <chartType>PYRAMID</chartType> + <shareParent v="true" /> + <entityField>#ENTITY</entityField> + <defaultGroupFields> + <element>#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT</element> + </defaultGroupFields> + <columns> + <neonDynamicSingleDataChartColumn> + <name>b9df936d-3079-41d2-a73d-4090b189eaa4</name> + <entityField>COUNT</entityField> + <aggregateEntityField>COUNT_aggregate</aggregateEntityField> + </neonDynamicSingleDataChartColumn> + </columns> + </dynamicSingleDataChartViewTemplate> + </children> +</neonView> diff --git a/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..1228d3cc49bdac80030aec42937bcdb4fc9c643a --- /dev/null +++ b/neonView/SalesprojectAnalyses_view/SalesprojectAnalyses_view.aod @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>SalesprojectAnalyses_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>SalesprojectPhases</name> + <title>Salesproject phases</title> + <description>Shows how many sales projects are in the various sales phases</description> + <fragment>Salesproject/filter?search=eyJ0eXBlIjoiZ3JvdXAiLCJvcGVyYXRvciI6IkFORCIsImNoaWxkcyI6W3sidHlwZSI6InJvdyIsIm5hbWUiOiJQSEFTRSIsIm9wZXJhdG9yIjoiTk9UX0VRVUFMIiwidmFsdWUiOiJOZWdvdGlhdGlvbiIsImtleSI6IlNBTFBST0pQSEFTRU5FR08iLCJjb250ZW50dHlwZSI6IlRFWFQifV19&axes=COUNT&grouping=%23EXTENSION.Phase_filterExtention.Phase_filterExtention%23TEXT</fragment> + <singleton v="true" /> + <storeRoles> + <element>PROJECT_FieldStaff</element> + <element>PROJECT_OfficeStaff</element> + </storeRoles> + <icon>VAADIN:FUNNEL</icon> + <categories> + <neonDashletCategory> + <name>sales</name> + <title>Sales</title> + </neonDashletCategory> + <neonDashletCategory> + <name>charts</name> + <title>Charts</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <neonViewReference> + <name>807efd75-92f1-4e9b-83fa-05894a17eaec</name> + <entityField>#ENTITY</entityField> + <view>SalesprojectAnalysesPhases_view</view> + </neonViewReference> + <treeTableViewTemplate> + <name>Treetable</name> + <entityField>#ENTITY</entityField> + <linkedColumns> + <element>PROJECTCODE</element> + <element>PROJECTTITLE</element> + </linkedColumns> + <columns> + <neonTreeTableColumn> + <name>3440687e-1e9a-4c34-87f6-e1541e165d9d</name> + <entityField>IMAGE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>873e3b1d-a80c-40a0-83f4-3aec77bcc199</name> + <entityField>PROJECTCODE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>35bd61d9-a2b6-4b72-a622-e96599fdc302</name> + <entityField>PROJECTTITLE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>9c67056d-8d19-4f4c-9404-57bebc5aa021</name> + <entityField>CONTACT_ID</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>0ddf35d7-9690-47f3-8cad-ab2a1fbbac4f</name> + <entityField>STARTDATE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>8a0e6555-84dc-4272-b982-7674e38ef7ff</name> + <entityField>ENDDATE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>9f159348-ac27-40e5-a159-a35ca1b229c5</name> + <entityField>PHASE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>e80ae8ab-5910-430d-b743-89b4fb8a1849</name> + <entityField>STATUS</entityField> + </neonTreeTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/SalesprojectPhases_view/SalesprojectPhases_view.aod b/neonView/SalesprojectPhases_view/SalesprojectPhases_view.aod deleted file mode 100644 index 8489daf21cd02f33a96ef29fa7ecaa7b4e75f304..0000000000000000000000000000000000000000 --- a/neonView/SalesprojectPhases_view/SalesprojectPhases_view.aod +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> - <name>SalesprojectPhases_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <dashletConfigurations> - <neonDashletConfiguration> - <name>SalesprojectPhases</name> - <title>Salesproject phases</title> - <description>Shows how many sales projects are in the various sales phases</description> - <fragment>SalesprojectAnalyses/full</fragment> - <singleton v="true" /> - <storeRoles> - <element>PROJECT_FieldStaff</element> - <element>PROJECT_OfficeStaff</element> - </storeRoles> - <icon>VAADIN:FUNNEL</icon> - <categories> - <neonDashletCategory> - <name>sales</name> - <title>Sales</title> - </neonDashletCategory> - <neonDashletCategory> - <name>charts</name> - <title>Charts</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <singleDataChartViewTemplate> - <name>PhaseFunnelChart</name> - <chartType>FUNNEL</chartType> - <xAxis>X_PHASE</xAxis> - <yAxis>Y_COUNT</yAxis> - <parentField></parentField> - <entityField>#ENTITY</entityField> - </singleDataChartViewTemplate> - <singleDataChartViewTemplate> - <name>PhasePieChart</name> - <chartType>PIE</chartType> - <xAxis>X_PHASE</xAxis> - <yAxis>Y_COUNT</yAxis> - <parentField></parentField> - <entityField>#ENTITY</entityField> - </singleDataChartViewTemplate> - <singleDataChartViewTemplate> - <name>PhasePyramidChart</name> - <chartType>PYRAMID</chartType> - <xAxis>X_PHASE</xAxis> - <yAxis>Y_COUNT</yAxis> - <entityField>#ENTITY</entityField> - </singleDataChartViewTemplate> - </children> -</neonView>