function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SamuelRobertSamuelRobert 

Salesforce VF Dashboard

Hi, We have dashboard that was created in Visual force page, over last 2 weeks we see a date in the x-axis is showing in a misplaced manner.

Please find the highlighted date

I tried to do order by as well still this Data is Showing at the end of the chart.


 

Please advise.#
SamuelRobertSamuelRobert
This is the class for this dashboard.
public class TriageInOutController {
    
    public List<AggregateResult> caseInTriageList{get; set;}
    public List<AggregateResult> caseOutTriageList{get; set;}
    public List<AggregateResult> caseAddedInRallyList{get; set;}
    public List<AggregateResult> caseAverageClosingList{get; set;}
    public Integer openCaseInTriageQueue{get; set;}
    
    public List<DataContactReason> InTCRData{get; set;}
    public List<DataContactReason> OutTCRData{get; set;}
    
    public TriageInOutController()
    {                
        outYField = 'fuid';
        outYFieldLabel = 'Forgot User-id';
        inYField = 'fuid';
        inYFieldLabel = 'Forgot User-id';
        
        InTCRData = getInDataContactReason();
        OutTCRData = getOutDataContactReason();
    }
    
    public List<Data> getData()
    {
        return fetchTriageCase();
    }       
    
    public List<Data> fetchTriageCase()
    {                
        caseInTriageList = [select count(Id) counting, Date_Swap_Triage_New__c from case where Date_Swap_Triage_New__c != null and Createddate >= 2016-03-01T00:00:00Z group by Date_Swap_Triage_New__c order by Date_Swap_Triage_New__c asc ];       
        
        caseOutTriageList = [select count(Id) counting, Date_Out_of_Triage__c from case where Date_Out_of_Triage__c !=null and Date_Swap_Triage_New__c !=null and Createddate >= 2016-03-01T00:00:00Z group by Date_Out_of_Triage__c order by Date_Out_of_Triage__c asc];                    
        
        return prepareTriageInOutChartData(caseInTriageList,caseOutTriageList);        
    } 
    
    public List<Data> prepareTriageInOutChartData(List<AggregateResult> caseInTriageList,List<AggregateResult> caseOutTriageList)
    {
        Map<String,Data> mapBeans = new Map<String,Data>();
        
        System.debug('caseInTriageList :: ' + caseInTriageList.size());
        System.debug('caseOutTriageList :: ' + caseOutTriageList.size());
        
        Date startDate = date.newInstance(2016, 03, 25);
        for(AggregateResult result : caseInTriageList)
        {            
            date inDate = (date)result.get('Date_Swap_Triage_New__c');
   
            Integer inD = (Integer) result.get('counting');
            if(inDate!=null){
                
                if(mapBeans.containsKey(inDate.format()))
                {
            Data bean = new Data(inDate.format(),inD,0,0, inDate);   
            bean.InTriage = (inD==null ? 0 : inD);        
            mapBeans.put(inDate.format(),bean);
           } 
                else
                {
                    Data bean = new Data(inDate.format(),0,inD,0,inDate);
                    bean.InTriage = (inD==null ? 0 : inD);
                    mapBeans.put(inDate.format(),bean); 
                }
         }       
        }
        
        for(AggregateResult result : caseOutTriageList)
        {            
            date outDate = (date)result.get('Date_Out_of_Triage__c');            
            
            
            Integer outD = (Integer) result.get('counting');
            if(outDate!=null){
                if(mapBeans.containsKey(outDate.format()))
                {
                    Data bean = mapBeans.get(outDate.format());
                    bean.OutTriage = (outD==null ? 0 : outD);
                    mapBeans.put(outDate.format(),bean);  
                }
                else
                {
                    Data bean = new Data(outDate.format(),0,outD,0,outDate);
                    bean.OutTriage = (outD==null ? 0 : outD);
                    mapBeans.put(outDate.format(),bean); 
                }
            }
        }
        
        if(inYField!=null && inYField.trim().length()>1){
            inYField = inYField.substring(0, inYField.length()-1);
            inYFieldLabel = inYFieldLabel.substring(0, inYFieldLabel.length()-1);
        }
        else
        {
            inYField = 'fuid';
            inYFieldLabel = 'Forgot User-id';
        }
        
        Set<String> keys = mapBeans.keySet();
        List<Data> TriageInOutBeans = new List<Data>();
        Integer cInD = 0;
        Integer cOutD = 0;
        
        /* for(String key : keys)
{

Data bean = mapBeans.get(key);
cInD += bean.InTriage;
cOutD += bean.OutTriage;
Integer openD = cInD - cOutD;
bean.OpenTriage = openD;
openCaseInTriageQueue = openD;           
if(bean.NameDate>= startDate)            
TriageInOutBeans.add(bean);

}     */  
        
        List<TriageInOutDetail__c> trlist = fetchCaseOpenList();        
        if(trlist!=null && !trlist.isEmpty())
        {
            openCaseInTriageQueue = trlist.size();
            for(String key : keys)
            {
                Data bean = mapBeans.get(key);
                boolean status = false;
                for(TriageInOutDetail__c tiod : trlist)
                {                
                    if(bean.Name == tiod.CurrentDate__c.format())
                    {
                        status = true;
                        decimal val= tiod.TotalOpen__c;
                        bean.OpenTriage = val.intValue();
                        openCaseInTriageQueue =  val.intValue();          
                        if(bean.NameDate>= startDate)            
                            TriageInOutBeans.add(bean);
                        break;
                    }                    
                }
                if(!status && bean.NameDate>= startDate)
                    TriageInOutBeans.add(bean);
            } 
        }
        else
        {
            for(String key : keys)
            {            
                Data bean = mapBeans.get(key);
                cInD += bean.InTriage;
                cOutD += bean.OutTriage;
                Integer openD = cInD - cOutD;
                bean.OpenTriage = openD;
                openCaseInTriageQueue = openD;           
                if(bean.NameDate>= startDate)            
                    TriageInOutBeans.add(bean);            
            }
        }
        
        system.debug('TriageInOutBeans :: ' + TriageInOutBeans.size());
        return TriageInOutBeans;
    }
    
    public List<TriageInOutDetail__c> caseOpenTriageList{get; set;}
    public List<TriageInOutDetail__c> fetchCaseOpenList()
    {
        List<TriageInOutDetail__c> trlist = [select CurrentDate__c, TotalIn__c, TotalOut__c, TotalOpen__c from  TriageInOutDetail__c order by CurrentDate__c asc];
        return trlist;
    }
    
    
    public List<CumulativeData> getCumulativeData()
    {
        return fetchRallyAddedInCase();
    }        
    
    public List<CumulativeData> fetchRallyAddedInCase()
    {        
        caseAddedInRallyList = [select count(Id) counting, Date_Added_To_Rally__c from case where Date_Swap_Triage_New__c != null and Date_Added_To_Rally__c != null and Createddate >= 2015-12-01T00:00:00Z group by Date_Added_To_Rally__c order by Date_Added_To_Rally__c asc]; 
        return prepareRallyAddedInCase(caseAddedInRallyList);
    }
    
    public Integer cumulativeCount{get; set;}
    public List<CumulativeData> prepareRallyAddedInCase(List<AggregateResult> caseAddedInRallyList)
    {
        List<CumulativeData> addedInRally = new List<CumulativeData>();
        
        cumulativeCount =0;
        System.debug('caseAddedInRallyList :: ' + caseAddedInRallyList.size());
        for(AggregateResult result : caseAddedInRallyList)
        {            
            date inDate = (date)result.get('Date_Added_To_Rally__c');            
            Integer inD = (Integer) result.get('counting');
            cumulativeCount +=inD;
            CumulativeData bean = new CumulativeData(inDate.format(),inD,cumulativeCount);            
            addedInRally.add(bean);
        }        
        System.debug('addedInRally : ' + addedInRally.size());
        return addedInRally;
    }
    
    public List<AverageData> getAverageData()
    {
        return fetchAverageClosingData();
    }
    
    public List<AverageData> fetchAverageClosingData()
    {
        //caseAverageClosingList = [select count(Id) counting, calendar_year(Date_Out_of_Triage__c) year, calendar_month(Date_Out_of_Triage__c) month from case where Date_Out_of_Triage__c != null and Createddate >= 2015-12-01T00:00:00Z group by calendar_year(Date_Out_of_Triage__c), calendar_month(Date_Out_of_Triage__c) order by calendar_year(Date_Out_of_Triage__c), calendar_month(Date_Out_of_Triage__c) ];                    
        
        caseAverageClosingList = [select count(Id) counting,AVG(Number_of_days_to_close_Triage_Case__c) numofdays, calendar_year(ClosedDate) year, calendar_month(ClosedDate) month from case where ClosedDate != null and Createddate >= 2015-12-01T00:00:00Z and status='Closed' and Date_Swap_Triage_New__c!=null  group by calendar_year(ClosedDate), calendar_month(ClosedDate) order by calendar_year(ClosedDate), calendar_month(ClosedDate) ];        		        
        
        return prepareAverageClosingData(caseAverageClosingList);
    }
    
    public List<AverageData> prepareAverageClosingData(List<AggregateResult> caseAverageClosingList)
    {
        List<AverageData> averageClosingList = new List<AverageData>();
        
        cumulativeCount =0;
        System.debug('caseAverageClosingList : ' + caseAverageClosingList.size());    
        for(AggregateResult result : caseAverageClosingList)
        {                        
            Integer year  =(Integer)result.get('year');
            Integer Month = (Integer)result.get('month');
            Integer daysInMonth = Date.daysInMonth(year, Month);
            Decimal inD = (Decimal)(result.get('numofdays'));                   
            AverageData bean = new AverageData(String.valueOf(year) + '-' + String.valueOf(Month),inD);            
            averageClosingList.add(bean);
        }                        
        return averageClosingList;
    }
    
    public List<DataPriority> getDataPriority()
    {
        return fetchDataPriority();
    }
    
    public List<DataPriority> fetchDataPriority()
    {                
        caseInTriageList = [select count(Id) counting, Date_Swap_Triage_New__c, priority from case where Date_Swap_Triage_New__c != null and Createddate >= 2016-03-01T00:00:00Z group by Date_Swap_Triage_New__c,priority order by Date_Swap_Triage_New__c asc ];       
        
        caseOutTriageList = [select count(Id) counting, Date_Out_of_Triage__c,priority from case where Date_Out_of_Triage__c !=null and Date_Swap_Triage_New__c !=null and Createddate >= 2016-03-01T00:00:00Z group by Date_Out_of_Triage__c,priority order by Date_Out_of_Triage__c asc ];                    
        
        return prepareTriageInOutChartDataPriority(caseInTriageList,caseOutTriageList);        
    }
    
    private List<DataPriority> prepareTriageInOutChartDataPriority(List<AggregateResult> caseInTriageList,List<AggregateResult> caseOutTriageList)
    {
        Map<String,DataPriority> mapBeans = new Map<String,DataPriority>();
        
        System.debug('caseInTriageList :: ' + caseInTriageList.size());
        System.debug('caseOutTriageList :: ' + caseOutTriageList.size());
        
        Date startDate = date.newInstance(2016, 03, 25);
        for(AggregateResult result : caseInTriageList)
        {            
            date inDate = (date)result.get('Date_Swap_Triage_New__c');  
            
            
            String priority = (String)result.get('Priority');  
            Integer inD = (Integer) result.get('counting');
            if(inDate!=null){
                if(mapBeans.containsKey(inDate.format()))
                {
                    DataPriority bean = mapBeans.get(inDate.format());                    
                    if(priority=='Urgent')
                        bean.InTriageUrgent = (inD==null ? 0 : inD);                                          
                    else if(priority=='High')
                        bean.InTriageHigh = (inD==null ? 0 : inD);
                    else if(priority=='Normal')
                        bean.InTriageNormal = (inD==null ? 0 : inD);
                    else if(priority=='Low')
                        bean.InTriageLow = (inD==null ? 0 : inD);
                    System.debug('in old bean :: ' + bean.Name);
                    mapBeans.put(inDate.format(),bean);  
                }
                else
                {                                        
                    DataPriority bean = new DataPriority(inDate.format(),0,0,0,0,inDate);
                    if(priority=='Urgent')
                        bean.InTriageUrgent = (inD==null ? 0 : inD);                                          
                    else if(priority=='High')
                        bean.InTriageHigh = (inD==null ? 0 : inD);                    
                    else if(priority=='Normal')
                        bean.InTriageNormal = (inD==null ? 0 : inD);                    
                    else if(priority=='Low')
                        bean.InTriageLow = (inD==null ? 0 : inD); 
                    
                    System.debug('in new bean :: ' + bean.Name);
                    mapBeans.put(inDate.format(),bean);  
                }
            }            
        }
        
        for(AggregateResult result : caseOutTriageList)
        {            
            date outDate = (date)result.get('Date_Out_of_Triage__c');                        
                     
            
            String priority = (String)result.get('Priority');  
            Integer outD = (Integer) result.get('counting');
            if(outDate!=null){
                if(mapBeans.containsKey(outDate.format()))
                {
                    DataPriority bean = mapBeans.get(outDate.format());                    
                    if(priority=='Urgent')
                        bean.OutTriageUrgent = (outD==null ? 0 : outD);                                          
                    else if(priority=='High')
                        bean.OutTriageHigh = (outD==null ? 0 : outD);
                    else if(priority=='Normal')
                        bean.OutTriageNormal = (outD==null ? 0 : outD);
                    else if(priority=='Low')
                        bean.OutTriageLow = (outD==null ? 0 : outD);
                    System.debug('Out old bean :: ' + bean.Name);
                    mapBeans.put(outDate.format(),bean);  
                }
                else
                {                                        
                    DataPriority bean = new DataPriority(outDate.format(),outDate,0,0,0,0);
                    if(priority=='Urgent')
                        bean.OutTriageUrgent = (outD==null ? 0 : outD);                                          
                    else if(priority=='High')
                        bean.OutTriageHigh = (outD==null ? 0 : outD);                    
                    else if(priority=='Normal')
                        bean.OutTriageNormal = (outD==null ? 0 : outD);                    
                    else if(priority=='Low')
                        bean.OutTriageLow = (outD==null ? 0 : outD);                                         
                    
                    System.debug('out new bean :: ' + bean.Name);
                    mapBeans.put(outDate.format(),bean);  
                }
            }
        }   
        
        if(inYField!=null && inYField.trim().length()>1){
            inYField = inYField.substring(0, inYField.length()-1);
            inYFieldLabel = inYFieldLabel.substring(0, inYFieldLabel.length()-1);
        }
        else
        {
            inYField = 'fuid';
            inYFieldLabel = 'Forgot User-id';
        }
        
        List<DataPriority> TriageInOutBeans = new List<DataPriority>();
        Integer cInD = 0;
        Integer cOutD = 0;
        Set<String> keys = mapBeans.keySet();
        for(String key : keys)
        {        
            DataPriority bean = mapBeans.get(key);    
            if(bean.NameDate>= startDate) 
                TriageInOutBeans.add(bean);        
        }     
        
        system.debug('New TriageInOutBeans :: ' + TriageInOutBeans.size());        
        return TriageInOutBeans;
    }
    
    public List<DataContactReason> getInDataContactReason()
    {
        return fetchInDataContactReason();
    }
    
    public List<DataContactReason> fetchInDataContactReason()
    {                
        caseInTriageList = [select count(Id) counting, Date_Swap_Triage_New__c, Contact_Reason__c from case where Date_Swap_Triage_New__c != null  and Contact_Reason__c!=null and Createddate >= 2016-03-25T00:00:00Z group by Date_Swap_Triage_New__c,Contact_Reason__c order by Date_Swap_Triage_New__c ];                               
        return prepareTriageInDataContactReason(caseInTriageList);        
    }
    
    public String inYField{get; set;}
    public String inYFieldLabel{get; set;}
    public String outYField{get; set;}
    public String outYFieldLabel{get; set;}
    private List<DataContactReason> prepareTriageInDataContactReason(List<AggregateResult> caseInTriageList)
    {
        Map<String,DataContactReason> mapBeans = new Map<String,DataContactReason>();
        
        Date startDate = date.newInstance(2016, 03, 25);
        inYField = '';
        inYFieldLabel = '';
        for(AggregateResult result : caseInTriageList)
        {            
            date inDate = (date)result.get('Date_Swap_Triage_New__c');  
            
            
            if(inDate>= startDate) 
            {
                DataContactReason dcr = null;
                if(mapBeans.containsKey(inDate.format()))               
                    dcr =  mapBeans.get(inDate.format());                                    
                else                
                    dcr = new DataContactReason(inDate.format(), inDate);                    
                
                String creason = (String)result.get('Contact_Reason__c');  
                Integer value = (Integer) result.get('counting');
                dcr = setContactReasonValue(dcr, creason,value, true);  
                mapBeans.put(inDate.format(), dcr);
            }
        }   
        
        if(inYField!=null && inYField.trim().length()>1){
            inYField = inYField.substring(0, inYField.length()-1);
            inYFieldLabel = inYFieldLabel.substring(0, inYFieldLabel.length()-1);
        }
        else
        {
            inYField = 'fuid';
            inYFieldLabel = 'Forgot User-id';
        }
        
        List<DataContactReason> TriageInBeans = new List<DataContactReason>();
        Set<String> keys = mapBeans.keySet();
        for(String key : keys)
        {        
            DataContactReason bean = mapBeans.get(key);    
            TriageInBeans.add(bean);        
        } 
        
        return TriageInBeans;
    }
    
    
    public List<DataContactReason> getOutDataContactReason()
    {
        return fetchOutDataContactReason();
    }
    
    public List<DataContactReason> fetchOutDataContactReason()
    {                
        caseOutTriageList = [select count(Id) counting, Date_Out_of_Triage__c,Contact_Reason__c from case where Date_Swap_Triage_New__c !=null and Date_Out_of_Triage__c!=null   and Contact_Reason__c!=null and Createddate >= 2016-03-25T00:00:00Z group by Date_Out_of_Triage__c,Contact_Reason__c order by Date_Out_of_Triage__c ];                    
        return prepareTriageOutDataContactReason(caseOutTriageList);        
    }
    
    private List<DataContactReason> prepareTriageOutDataContactReason(List<AggregateResult> caseOutTriageList)
    {
        Map<String,DataContactReason> mapBeans = new Map<String,DataContactReason>();
        
        Date startDate = date.newInstance(2016, 03, 25);
        outYField = '';
        outYFieldLabel = '';
        for(AggregateResult result : caseOutTriageList)
        {            
            date outDate = (date)result.get('Date_Out_of_Triage__c');  
            if(Test.isRunningTest())            
                outDate = Date.newInstance(2016, 03, 25);
            
            if(outDate>= startDate) 
            {
                DataContactReason dcr = null;
                if(mapBeans.containsKey(outDate.format()))               
                    dcr =  mapBeans.get(outDate.format());                                    
                else                
                    dcr = new DataContactReason(outDate.format(), outDate);                    
                
                String creason = (String)result.get('Contact_Reason__c');  
                Integer value = (Integer) result.get('counting');
                dcr = setContactReasonValue(dcr, creason,value, false);  
                mapBeans.put(outDate.format(), dcr);
            }
        }   
        
        if(outYField!=null && outYField.trim().length()>1){
            outYField = outYField.substring(0, outYField.length()-1);
            outYFieldLabel = outYFieldLabel.substring(0, outYFieldLabel.length()-1);
        }
        else
        {
            outYField = 'fuid';
            outYFieldLabel = 'Forgot User-id';
        }
        
        List<DataContactReason> TriageOutBeans = new List<DataContactReason>();
        Set<String> keys = mapBeans.keySet();
        for(String key : keys)
        {        
            DataContactReason bean = mapBeans.get(key);    
            System.debug('bean : ' + bean);
            TriageOutBeans.add(bean);        
        } 
        
        return TriageOutBeans;
    }
    
    public class Data
    {
        public String Name { get; set; }
        public Date NameDate{get; set;}
        public Integer InTriage{get; set;}
        public Integer OutTriage{get; set;}
        public Integer OpenTriage{get; set;}
        
        public Data(String Name, Integer InTriage, Integer OutTriage, Integer OpenTriage, Date NameDate )
        {
            this.Name = Name;
            this.InTriage = InTriage;
            this.OutTriage = OutTriage;
            this.OpenTriage = OpenTriage;
            this.NameDate = NameDate;
        }
    }
    
    public class CumulativeData
    {
        public String Name { get; set; }
        public Integer InRally{get; set;}
        public Integer cumulative{get; set;}
        public CumulativeData(String Name, Integer InRally, Integer cumulative)
        {
            this.Name = Name;
            this.InRally = InRally;
            this.cumulative = cumulative;
        }
    }
    
    public class AverageData
    {
        public String Name { get; set; }
        public Decimal averageClosing{get; set;}        
        public AverageData(String Name, Decimal averageClosing)
        {
            this.Name = Name;
            this.averageClosing = averageClosing.round(System.RoundingMode.UP);            
        }
    }
    
    public class DataPriority
    {
        public String Name { get; set; }
        public Date NameDate{get; set;}
        public Integer InTriageUrgent{get; set;}
        public Integer InTriageHigh{get; set;}
        public Integer InTriageNormal{get; set;}
        public Integer InTriageLow{get; set;}                
        
        public Integer OutTriageUrgent{get; set;}      
        public Integer OutTriageHigh{get; set;}  
        public Integer OutTriageNormal{get; set;}  
        public Integer OutTriageLow{get; set;}  
        
        public DataPriority(String Name, Integer InTriageUrgent,Integer InTriageHigh,Integer InTriageNormal,Integer InTriageLow, Date NameDate )
        {
            this.Name = Name;
            this.InTriageUrgent = InTriageUrgent;
            this.InTriageHigh= InTriageHigh;
            this.InTriageNormal= InTriageNormal;
            this.InTriageLow = InTriageLow;
            this.OutTriageUrgent = 0;
            this.OutTriageHigh = 0;   
            this.OutTriageNormal=0;
            this.OutTriageLow = 0;
            this.NameDate = NameDate;
        }
        
        public DataPriority(String Name, Date NameDate, Integer OutTriageUrgent,Integer OutTriageHigh,Integer OutTriageNormal,Integer OutTriageLow )
        {
            this.Name = Name;
            this.OutTriageUrgent = OutTriageUrgent;
            this.OutTriageHigh = OutTriageHigh;   
            this.OutTriageNormal=OutTriageNormal;
            this.OutTriageLow = OutTriageLow;
            
            this.InTriageUrgent = 0;
            this.InTriageHigh= 0;
            this.InTriageNormal= 0;
            this.InTriageLow = 0;
            this.NameDate = NameDate;
        }                
    }
}

 
SamuelRobertSamuelRobert
This is the VF page for this Class
<apex:page Controller="TriageInOutController" sidebar="false" standardStylesheets="false" id="chartform" showChat="false" >    
    <apex:pageBlock >        
        <apex:pageBlockSection title="Current Open Case in Triage Queue" columns="1" >                
            <apex:chart height="600" width="95%" animate="true" data="{!data}" >
                <apex:legend position="bottom" padding="3" />
                <apex:axis type="Numeric" position="left" fields="InTriage,OutTriage,OpenTriage" 
                           title="In and Out Record Count" grid="true" id="leftAxis" >
                    <apex:chartLabel />
                </apex:axis>                
                <apex:axis type="Category" position="bottom"
                           title="The Current Open Case in Triage Queue : {!openCaseInTriageQueue}" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>
                <apex:barSeries axis="left" xField="Name" yField="InTriage,OutTriage" orientation="vertical" showInLegend="true" stacked="true" tips="true" title="In Triage, Out Triage"> 
                    <apex:chartLabel display="insideStart" field="InTriage" color="#333"/>                             
                    <apex:chartLabel display="insideEnd" field="OutTriage" color="#333"/>                             
                </apex:barSeries>
                <apex:lineSeries axis="left" xField="Name" yField="OpenTriage" strokeColor="#FFA500" 
                                 markerType="circle" markerSize="4" markerFill="#FFA500" highlight="true" title="Open Triage" tips="true">                    
                    <apex:chartLabel display="over" field="OpenTriage"  color="#333" />                     
                </apex:lineSeries>
            </apex:chart>            
        </apex:pageBlockSection>     
        <apex:pageBlockSection title="Cases IN Triage" columns="1" >                
            <apex:chart height="600" width="95%" animate="true" data="{!DataPriority}" >
                <apex:legend position="bottom" padding="3" />
                <apex:axis type="Numeric" position="left" fields="InTriageUrgent,InTriageHigh,InTriageNormal,InTriageLow" 
                           title="In Triage Record Count" grid="true" id="leftAxis" >
                    <apex:chartLabel />
                </apex:axis>
                <apex:axis type="Category" position="bottom"
                           title="Triage cases with Priority" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>
                <apex:barSeries axis="left" xField="Name" yField="InTriageUrgent,InTriageHigh,InTriageNormal,InTriageLow" 
                                orientation="vertical" showInLegend="true" stacked="true" tips="true" colorSet="#F33D16,#FFCC00,#4B8DEE,#DADCDC" title="Urgent, High, Normal, Low">  
                    <apex:chartLabel display="over" field="InTriageUrgent"  color="#333" />                                        
                </apex:barSeries>                
            </apex:chart>            
        </apex:pageBlockSection>
        <apex:pageBlockSection title="Cases OUT Triage" columns="1" >                
            <apex:chart height="600" width="95%" animate="true" data="{!DataPriority}" >
                <apex:legend position="bottom" padding="3" />                
                <apex:axis type="Numeric" position="left" fields="OutTriageUrgent,OutTriageHigh,OutTriageNormal,OutTriageLow" 
                           title="Out Triage Record Count" grid="true" id="rightAxis" >
                    <apex:chartLabel />
                </apex:axis>
                <apex:axis type="Category" position="bottom"
                           title="Triage cases with Priority" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>                
                <apex:barSeries axis="left" xField="Name" yField="OutTriageUrgent,OutTriageHigh,OutTriageNormal,OutTriageLow" 
                                orientation="vertical" showInLegend="true" stacked="true" tips="true" colorSet="#F33D16,#FFCC00,#4B8DEE,#DADCDC" title="Urgent, High, Normal, Low">                      
                    <apex:chartLabel display="insideEnd" field="OutTriageUrgent" color="#333"/>
                </apex:barSeries>
            </apex:chart>            
        </apex:pageBlockSection>        
        <apex:pageBlockSection title="Cases IN Triage : Contact Reason" columns="1" >                
            <apex:chart height="950" width="95%" animate="true" data="{!InTCRData}" >
                <apex:legend position="right" padding="3" />
                <apex:axis type="Numeric" position="left" fields="arapprovals,atemployee,amTime,adminFunction,cihourstime,cantlogin,cantregister,cncommreport,clockproblem,clocksetup,duplicatecase,Emailreminder,expensesque,fixpunch,fpassword,fuid,ghostcall,impissue,misdirected,missingpunches,needreports,Other,pfwornotrec,paypaycheckw2,pslowdown,questrainme,refereshIssue,relabels,spam,timeapproval,usersetup" 
                           title="In Triage Record Count" grid="true" id="leftAxis" >
                    <apex:chartLabel />
                </apex:axis>
                <apex:axis type="Category" position="bottom"
                           title="Triage cases with Contact Reason" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>
                <apex:barSeries axis="left" xField="Name" yField="arapprovals,atemployee,amTime,adminFunction,cihourstime,cantlogin,cantregister,cncommreport,clockproblem,clocksetup,duplicatecase,Emailreminder,expensesque,fixpunch,fpassword,fuid,ghostcall,impissue,misdirected,missingpunches,needreports,Other,pfwornotrec,paypaycheckw2,pslowdown,questrainme,refereshIssue,relabels,spam,timeapproval,usersetup" 
                                orientation="vertical" showInLegend="true" stacked="true" tips="true" title="Add/Remove Approvers,Add/Terminate Employees,Adjust/Modify Time,Admin Functions,Can't Input Hours / Time,Can't Login,Can't Register,Clock Not Comm Report,Clock Problem,Clock Setup,Duplicate Case,Email Reminder,Expenses Question,Fix Punch,Forgot Password,Forgot User-id,Ghost Call,Implementation Issue,Misdirected,Missing Punches,Need Reports,Other,Pay File wrong or not received,Pay/Pay Check/W2,Peoplenet Slow/Down,Question / Train me,Refresh Issue,Return Labels,Spam,Time Approval,User Setup">                      
                </apex:barSeries>                
            </apex:chart>            
        </apex:pageBlockSection>        
        <apex:pageBlockSection title="Cases OUT Triage : Contact Reason" columns="1" >                
            <apex:chart height="950" width="95%" animate="true" data="{!OutTCRData}" >
                <apex:legend position="right" padding="3" />                
                <apex:axis type="Numeric" position="left" fields="arapprovals,atemployee,amTime,adminFunction,cihourstime,cantlogin,cantregister,cncommreport,clockproblem,clocksetup,duplicatecase,Emailreminder,expensesque,fixpunch,fpassword,fuid,ghostcall,impissue,misdirected,missingpunches,needreports,Other,pfwornotrec,paypaycheckw2,pslowdown,questrainme,refereshIssue,relabels,spam,timeapproval,usersetup" 
                           title="Out Triage Record Count" grid="true" id="rightAxis" >
                    <apex:chartLabel />
                </apex:axis>
                <apex:axis type="Category" position="bottom"
                           title="Triage cases with Contact Reason" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>                
                <apex:barSeries axis="left" xField="Name" yField="arapprovals,atemployee,amTime,adminFunction,cihourstime,cantlogin,cantregister,cncommreport,clockproblem,clocksetup,duplicatecase,Emailreminder,expensesque,fixpunch,fpassword,fuid,ghostcall,impissue,misdirected,missingpunches,needreports,Other,pfwornotrec,paypaycheckw2,pslowdown,questrainme,refereshIssue,relabels,spam,timeapproval,usersetup" 
                                orientation="vertical" showInLegend="true" stacked="true" tips="true" title="Add/Remove Approvers,Add/Terminate Employees,Adjust/Modify Time,Admin Functions,Can't Input Hours / Time,Can't Login,Can't Register,Clock Not Comm Report,Clock Problem,Clock Setup,Duplicate Case,Email Reminder,Expenses Question,Fix Punch,Forgot Password,Forgot User-id,Ghost Call,Implementation Issue,Misdirected,Missing Punches,Need Reports,Other,Pay File wrong or not received,Pay/Pay Check/W2,Peoplenet Slow/Down,Question / Train me,Refresh Issue,Return Labels,Spam,Time Approval,User Setup" >                                          
                </apex:barSeries>
            </apex:chart>            
        </apex:pageBlockSection>        
        <apex:pageBlockSection title="Average Days for closing Triage cases" columns="1">
            <apex:chart height="600" width="95%" animate="true" data="{!AverageData}" >
                <apex:legend position="bottom" padding="3" />
                <apex:axis type="Numeric" position="left" fields="averageClosing" 
                           title="Average Count" grid="true" id="leftAxis"  />        
                <apex:axis type="Category" position="bottom"  
                           title="Average Days for closing Triage cases" id="bottomAxis" fields="Name">                    
                    <apex:chartLabel rotate="315"/>
                </apex:axis>
                <apex:lineSeries axis="left" xField="Name" yField="averageClosing" strokeColor="#AAA500"
                                 markerType="circle" markerSize="4" markerFill="#AAA500" tips="true" >
                    <apex:chartTips height="20" width="120"/>
                    <apex:chartLabel display="over" field="averageClosing"  color="#333" /> 
                </apex:lineSeries>
            </apex:chart>     
            <!--<analytics:reportChart reportId="00OE00000032Pbe" size="large"></analytics:reportChart> -->
        </apex:pageBlockSection>
        <apex:pageBlockSection title="Triage Cases added in Rally Since Dec-2015" columns="1">
            <apex:chart height="600" width="95%" animate="true" data="{!CumulativeData}" >
                <apex:legend position="bottom" padding="3" />
                <apex:axis type="Numeric" position="left" fields="InRally,cumulative" 
                           title="Record Count" grid="true" id="leftAxis"  />        
                <apex:axis type="Category" position="bottom"  
                           title="Triage Cases added in Rally Since Dec-2015 = {!cumulativeCount}" id="bottomAxis" fields="Name">
                    <apex:chartLabel rotate="315"/>
                </apex:axis>
                <apex:lineSeries axis="left" xField="Name" yField="InRally" strokeColor="#AAA500"
                                 markerType="circle" markerSize="4" markerFill="#AAA500"  >
                    <apex:chartTips height="20" width="120"/>
                    <apex:chartLabel display="insideEnd" field="InRally"  color="#333" /> 
                </apex:lineSeries>
                <apex:lineSeries axis="left" xField="Name" yField="cumulative" strokeColor="#FFA500"
                                 markerType="circle" markerSize="4" markerFill="#FFA500">
                    <apex:chartTips height="20" width="120"/>
                    <apex:chartLabel display="over" field="cumulative"  color="#333" /> 
                </apex:lineSeries>
            </apex:chart>            
        </apex:pageBlockSection>                
    </apex:pageBlock>
    <style type="text/css">    
        text tspan{
        font-size:13px!important;           
        }
        
        .vf-reset .vf-surface {
        border-width: thin!important;
        border: 1px solid #ccc!important;        	
        }
        
        .homeTab .tertiaryPalette, .individualPalette .homeBlock .tertiaryPalette, .layoutEdit .individualPalette .homeBlock .tertiaryPalette {
        background-color: #1797c0!important;
        border-color: #1797c0!important;
        }        
    </style>
</apex:page>