280 likes | 400 Views
Directions EMEA 2012 25 – 27 April 2011, Rome Mastering the Visualization AddIns in Dynamics NAV 2013. Mastering Visualizations in NAV 2013. Empowering end user to explore and understand Business Data. Empowering end user to explore and understand Business Data. Business data & processes.
E N D
Directions EMEA 201225 – 27 April 2011, RomeMastering the Visualization AddIns in Dynamics NAV 2013
Mastering Visualizations in NAV 2013 Empowering end user to explore and understand Business Data Empowering end user to exploreand understand Business Data
Business data & processes Insight Monitor Discover Act Query, O-Data Charting Client Extensibility Interop Async, Performance Managed data layer Dev tools Customize and utilize Scale our strategy
Enhancements in Dynamics NAV 2013 Generic Charts Specific Charts Business Data Visualizations Client Extension Framework
Add-in framework Custom Interfaces Tooling (from Blogs)
Charting capabilities in NAV 2013 • Rich set and combinations of chart typesColumn, Point, Line, ColumnStacked, ColumnStacked100, Area, AreaStacked, AreaStacked100, StepLine, Pie, Doughnut, Radar • Select dimension for X-Axis, and Z-Axis • Select any number / up to 6 measures for the Y-Axis
Empowering application developers to create powerful chart visualizations
”Hello World” code sample The Chart Add-In for developers
The Chart Add-In: App tooling • Standardized initialization (locale,…) • .NET interop code (Values, Measures,...) • Utility functions on top • Same fully tested code used by standard Microsoft functionality
Chart::AddInReady() DemoCashFlowChartMgt.GenerateData( BusinessChartBuffer); BusinessChartBuffer.Update(CurrPage.Chart); WITH BusChartBuf DO BEGIN Initialize; AddMeasure('Accounts Receivable', 1,"Data Type"::Decimal,"Chart Type"::StackedColumn); AddMeasure('Accounts Payable', 2,"Data Type"::Decimal,"Chart Type"::StackedColumn); AddMeasure('Forecasted Balance', 3,"Data Type"::Decimal,"Chart Type"::Line); AddMeasure('Credit Limit in Banks',4,"Data Type"::Decimal,"Chart Type"::StepLine); SetXAxis('Date',"Data Type"::DateTime); BalanceDate := WORKDATE - 1; // demo. Should be TODAY. CalcBankBalance(BalanceDate,TotalBalance,BankCreditLimit); FOR i := 1 TO 6 DO BEGIN // Generate 6 columns CustNetChange := CalcCustNetChange(BalanceDate,BalanceDate); VendNetChange := CalcVendNetChange(BalanceDate,BalanceDate); TotalBalance := TotalBalance + CustNetChange + VendNetChange; AddColumn(BalanceDate); // X-Axis value SetValueByIndex(1 - 1,i - 1,CustNetChange); // zero indexed. SetValueByIndex(2 - 1,i - 1,VendNetChange); SetValueByIndex(3 - 1,i - 1,TotalBalance); SetValueByIndex(4 - 1,i - 1,BankCreditLimit); BalanceDate := BalanceDate + 1; END; END;
Drill-down Chart::DataPointClicked(point : DotNet "Microsoft.Dynamics.Nav.Client.BusinessChart.BusinessChartDataPoint") BusinessChartBuffer.SetDrillDownIndexes(point); DemoCashFlowChartMgt.OnDataPointClicked(BusinessChartBuffer); OnDataPointClicked(VAR BusChartBuf : Record "Business Chart Buffer") DrillDownDate := BusChartBuf.GetXValueAsDate(BusChartBuf."Drill-Down X Index"); CASE BusChartBuf."Drill-Down Measure Index" + 1 OF 1 : DrillDownCust(DrillDownDate); 2 : DrillDownVend(DrillDownDate); 4 : DrillDownBank; END;
Relation to Generic Charts Specific charts with Chart AddIn Generic charts Identical rendering capabilities Based on a chart definition End user UI CAL tool: BusinessChartBuilder Platform data aggregation from Table & Query • Identical rendering capabilities • Custom API to CAL • CAL tool: BusinessChartData • Data: .Net Data Table filled by App developer
Controlling Generic Charts from CAL • Generic charts are defined by Chart Definition • Contains: • Data source, custom column filters (based on Query or Table) • Measures, custom totaling methods, chart type • Dimension (X / Z), custom titles • Tool for CAL developer available for creating and editing of chart definitions: BusinessChartBuilder • Used by Chart Configuration tool (Objects 918x)
Page Properties and triggers SourceTable = Item; OnAfterGetRecord() UpdateChart; UpdateChart() IF NOT AddinIsReady THEN EXIT; DemoItemSalesChartMgt.GenerateData(BusinessChartBuffer,Rec); BusinessChartBuffer.Update(CurrPage.Chart); Chart::DataPointClicked(point : DotNet "Microsoft.Dynamics.Nav.Client.BusinessChart.BusinessChartDataPoint") BusinessChartBuffer.SetDrillDownIndexes(point); DemoItemSalesChartMgt.OnDataPointClicked(BusinessChartBuffer,Rec); Chart::AddInReady() AddinIsReady := TRUE;
Timeline Visualization: End user explore and interact with Business Data
Empowering application developers to use the Timeline Visualization in partner scenarios
”Hello World” code sample The Timeline Add-In for developers