I am using ASP.NET MVC controller to write a export service for gantt control. UI team is using gantt control of EJS version 1. I am getting the following exception when trying to export. I have attached sample service code. The data model in service is exactly same as the ui. It's not clear if there is any property mismatch or some settings.
Any help will be appreciated.
Object reference not set to an instance of an object.
at Syncfusion.EJ.Export.GanttExcelExport.ProcessRecordCell(Object row, GanttColumn column, Boolean indentColumn)
at Syncfusion.EJ.Export.GanttExcelExport.\u003c\u003ec__DisplayClass36.\u003cProcessRecordRow\u003eb__35(GanttColumn column)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Syncfusion.EJ.Export.GanttExcelExport.ProcessRecordRow(Object row, Int32 level)
at Syncfusion.EJ.Export.GanttExcelExport.ProcessHierarchyData(IEnumerable dataSource, Int32 level)
at Syncfusion.EJ.Export.GanttExcelExport.ProcessGanttContent(IEnumerable dataSource, Int32 level)
at Syncfusion.EJ.Export.GanttExcelExport.ExecuteResult(GanttProperties ganttModel, IEnumerable dataSource)
at Syncfusion.EJ.Export.GanttExcelExport.ExportHelper(GanttProperties ganttModel, IEnumerable dataSource)
at Syncfusion.EJ.Export.GanttExcelExport.Export(GanttProperties ganttModel, IEnumerable dataSource, Boolean multipleExport)
at SGT5.External.Service.ScheduleExporter.ExportToExcel(String title, SchedulePlanData planData, IReadOnlyList`1 resources)
at SGT5.Web.Controllers.ExportController.ExportSchedulePlanToExcel(Int32 projectId)
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.\u003cBeginInvokeSynchronousActionMethod\u003eb__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.\u003cInvokeActionMethodFilterAsynchronouslyRecursive\u003eb__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.\u003c\u003ec__DisplayClass46.\u003cInvokeActionMethodFilterAsynchronouslyRecursive\u003eb__3f()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.\u003c\u003ec__DisplayClass21.\u003c\u003ec__DisplayClass2b.\u003cBeginInvokeAction\u003eb__1c()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.\u003c\u003ec__DisplayClass21.\u003cBeginInvokeAction\u003eb__1e(IAsyncResult asyncResult)
Gantt settings in ui
protected readonly staticOptions: EjGanttModel = {
taskIdMapping: 'id',
taskNameMapping: 'text',
startDateMapping: 'start',
progressMapping: 'completePercentage',
durationMapping: 'duration',
resourceInfoMapping: 'resources',
resourceNameMapping: 'Name',
resourceIdMapping: 'Id',
resourceUnitMapping: 'Work',
predecessorMapping: 'predecessor',
parentTaskIdMapping: 'parentId',
endDateMapping: 'finish',
// notesMapping: 'notesContent',
taskSchedulingMode: ej.Gantt.TaskSchedulingMode.Auto,
dayWorkingTime: [{'from': '00:00 AM', 'to':
this.getWorkingTimeEnd(sg.config.HoursPerManday)}],
showColumnChooser: true,
allowColumnResize: true,
allowSorting: true,
allowSelection: true,
enableWBS: true,
allowGanttChartEditing: true,
enableProgressBarResizing: true,
// allowMultiSorting: true,
enableContextMenu: true,
enableVirtualization: true,
connectorlineWidth: 2,
connectorLineBackground: '#d8d8d8',
rowHeight: 32,
taskbarHeight: 24,
// this part leads to huge delay if false by default
// includeWeekend: false,
// this part leads to huge delay if true by default
// enableCollapseAll: true,
// this part leads to huge delay
// enableWBSPredecessor: true,
// this part leads to huge delay if true
enablePredecessorValidation: false,
showTaskNames: false,
treeColumnIndex: 2,
toolbarSettings: {
showToolbar: true,
toolbarItems: [
ej.Gantt.ToolbarItems.Add,
// ej.Gantt.ToolbarItems.Edit,
ej.Gantt.ToolbarItems.ExpandAll,
ej.Gantt.ToolbarItems.CollapseAll,
ej.Gantt.ToolbarItems.Indent,
ej.Gantt.ToolbarItems.Outdent,
ej.Gantt.ToolbarItems.ExcelExport,
ej.Gantt.ToolbarItems.PdfExport,
ej.Gantt.ToolbarItems.CriticalPath,
],
customToolbarItems: [
{
templateID: '#linkIn',
tooltipText: customToolbarItems.LinkIn
},
{
templateID: '#linkOut',
tooltipText: customToolbarItems.LinkOut
},
{
templateID: '#ganttZoomIn',
tooltipText: customToolbarItems.ZoomIn
},
{
templateID: '#ganttZoomOut',
tooltipText: customToolbarItems.ZoomOut
}
]
},
stripLines: [
{
day: moment().format('MM/DD/YYYY'),
label: 'Today',
lineStyle: 'solid',
lineColor: '#f3ae3a',
lineWidth: '2'
}
],
editSettings: {
allowEditing: true,
allowAdding: true,
allowDeleting: true,
allowIndent: true,
editMode: 'cellEditing'
},
selectionMode: ej.Gantt.SelectionMode.Cell,
selectionType: ej.Gantt.SelectionType.Multiple,
isResponsive: true
};
I have tried solutions give in KB's but no solution.
Attachment:
GanttExport_30ec034e.zip