-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
0Questions
-
1Replies
VF Chart is not working?
My Controller:
My VF Page:
The JS Debug Log:
global class AR_RepWorkingReport { //public Map<ID,User> reps; // // //DeclinedLeads: Invoice Status='Lead Refunded' //AcceptedLeads: Invoice Status='Lead Sold/Charged' public List<User> repsList; public String selectedRep{get;set;} public String startdate{get;set;} public String enddate{get;set;} public repstats statistics{get;set;} public List<clients> clientscount{get;set;} public List<PieWedgeData> ActivitiesPieData{get;set;} public List<PieWedgeData> ClientsPieData{get;set;} public boolean renderPie{get;set;} public AR_RepWorkingReport() { repsList=[select ID,Name from User where isActive=true and type_rep__c in ('Junior','Senior') order by Name ]; statistics=new repstats(); clientscount =new List<clients>(); ActivitiesPieData=new List<PieWedgeData>(); ClientsPieData=new List<PieWedgeData>(); renderPie=false; } public List<PieWedgeData> getAcPieData() { return ActivitiesPieData; } public List<PieWedgeData> getclPieData() { return ClientsPieData; } public class PieWedgeData { public String name { get; set; } public Integer data { get; set; } public PieWedgeData(String name, Integer data) { this.name = name; this.data = data; } } public void getClientsPieData() { ClientsPieData = new List<PieWedgeData>(); //List<PieWedgeData> clientsPie = new List<PieWedgeData>(); For(clients c : clientscount) { if(Integer.valueOf(c.count)!=0){ String chartclientName=c.Name==null?'None':C.name; ClientsPieData.add(new PieWedgeData(chartclientName, Integer.valueOf(c.count)));} } } public void getActivitiesPieData() { ActivitiesPieData = new List<PieWedgeData>(); //List<PieWedgeData> clientsPie = new List<PieWedgeData>(); if(Integer.valueOf(statistics.voiceMail)!=0){ ActivitiesPieData.add(new PieWedgeData('Voice Mail', Integer.valueOf(statistics.voiceMail))); } if(Integer.valueOf(statistics.ConversationCSuite)!=0){ ActivitiesPieData.add(new PieWedgeData('Conversation with C Suite', Integer.valueOf(statistics.ConversationCSuite))); } if(Integer.valueOf(statistics.ConversationHR)!=0){ ActivitiesPieData.add(new PieWedgeData('Conversation with HR', Integer.valueOf(statistics.ConversationHR))); } if(Integer.valueOf(statistics.ConversationOther)!=0){ ActivitiesPieData.add(new PieWedgeData('Conversation - Other', Integer.valueOf(statistics.ConversationOther))); } if(Integer.valueOf(statistics.NML)!=0){ ActivitiesPieData.add(new PieWedgeData('No Message Left', Integer.valueOf(statistics.NML))); } if(Integer.valueOf(statistics.FollowUpReminder)!=0){ ActivitiesPieData.add(new PieWedgeData('Follow Up Reminder', Integer.valueOf(statistics.FollowUpReminder))); } if(Integer.valueOf(statistics.AcceptedLeads)!=0){ ActivitiesPieData.add(new PieWedgeData('Accepted Leads', Integer.valueOf(statistics.AcceptedLeads))); } if(Integer.valueOf(statistics.DeclinedLeads)!=0){ ActivitiesPieData.add(new PieWedgeData('Declined Leads', Integer.valueOf(statistics.DeclinedLeads))); } if(Integer.valueOf(statistics.RFI)!=0){ ActivitiesPieData.add(new PieWedgeData('RFI', Integer.valueOf(statistics.RFI))); } } /* public void getActivitiesPieData() { ActivitiesPieData = new List<PieWedgeData>(); //List<PieWedgeData> clientsPie = new List<PieWedgeData>(); ActivitiesPieData.add(new PieWedgeData('Voice Mail', 1)); ActivitiesPieData.add(new PieWedgeData('Conversation with C Suite',2)); ActivitiesPieData.add(new PieWedgeData('Conversation with HR', 3)); ActivitiesPieData.add(new PieWedgeData('Conversation - Other',4)); ActivitiesPieData.add(new PieWedgeData('No Message Left',5)); ActivitiesPieData.add(new PieWedgeData('Follow Up Reminder', 6)); ActivitiesPieData.add(new PieWedgeData('Accepted Leads', 7)); ActivitiesPieData.add(new PieWedgeData('Declined Leads', 8)); ActivitiesPieData.add(new PieWedgeData('RFI', 9)); } */ public void fetchRepBehaviors() { statistics=new repstats(); clientscount =new List<clients>(); Map<String,integer> clientsmp=new Map<String,integer>(); if(startdate!=null&&enddate!=null&&selectedRep!=null){ Date statsstart=date.parse(startdate); Date statsend=date.parse(enddate); List<Task> repTasks=[select CallType__c,Contact_Type__c,whatId from Task where OwnerId=:selectedRep and createddate>=:statsstart and createddate<=:statsend]; //IDs of Prospects List<ID> whatids=new LIst<ID>(); List<Opportunity> repopps=[select Opportunity_Type__c,Opportunity_stage__c,Invoice_Status__c from Opportunity where (OwnerId=:selectedRep or Lead_sharing__c=:selectedRep) and createddate>=:statsstart and createddate<=:statsend]; statistics.totalActivities=repTasks.size(); System.debug('Number of Tasks: '+repTasks.size()); for(Task t : repTasks) { if(t.CallType__c=='Conversation'){ if(t.Contact_Type__c=='Other'){statistics.ConversationOther++;} else if(t.Contact_Type__c=='HR'){statistics.ConversationHR++;} else if(t.Contact_Type__c=='C-Suite'){statistics.ConversationCSuite++;} } else if(t.CallType__c=='Left Voicemail'){ statistics.voiceMail++; } else if(t.CallType__c=='NML'){ statistics.NML++; } else if(t.CallType__c=='Follow up reminder'){ statistics.FollowUpReminder++; } whatids.add(t.whatid); } List<Account> prospects=[select Name,client_territories__c from Account where ID in :whatids]; For(Account a: prospects) { if(clientsmp.containsKey(a.client_territories__c)){ Integer num=clientsmp.get(a.client_territories__c)+1; clientsmp.put(a.client_territories__c, num); } else { clientsmp.put(a.client_territories__c, 1); } } For(String acctname : clientsmp.keySet()){ clients c=new clients(); c.count=clientsmp.get(acctname); c.name=acctname; clientscount.add(c); } For(Opportunity o : repopps){ if(o.Opportunity_Type__c=='RFI'){ statistics.RFI++; } else if(o.Opportunity_Type__c=='Lead'){ if(o.Invoice_Status__c=='Lead Sold/Charged'){ statistics.AcceptedLeads++; } else if(o.Invoice_Status__c=='Lead Refunded'){ statistics.DeclinedLeads++; } } } } renderPie=true; getActivitiesPieData(); System.debug(ActivitiesPieData); getClientsPieData(); System.debug(ClientsPieData); } //get the reps' names for the dropdown list public List<SelectOption> getReps(){ List<SelectOption> options=new List<SelectOption>(); for(User u : repsList){ options.add(new SelectOption(u.id,u.name)); } return options; } public class repstats { public repstats() { totalActivities=0;voiceMail=0;ConversationCSuite=0;ConversationHR=0;ConversationOther=0;AcceptedLeads=0; RFI=0;NML=0;FollowUpReminder=0;DeclinedLeads=0; } public integer totalActivities{get;set;} public integer voiceMail{get;set;} public integer ConversationCSuite{get;set;} public integer ConversationHR{get;set;} public integer ConversationOther{get;set;} public integer AcceptedLeads{get;set;} public integer RFI{get;set;} public integer NML{get;set;} public integer FollowUpReminder{get;set;} public integer DeclinedLeads{get;set;} } public class clients{ public String Name{get;set;} public integer count{get;set;} public String ID{get;set;} } }
My VF Page:
<apex:page controller="AR_RepWorkingReport" showHeader="false" sidebar="false" standardStylesheets="false" docType="html-5.0"> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"/> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <script> var startdate,enddate; $(document).ready(function(){ $("#arstart").datepicker({ onSelect:function(dateText,inst){ startdate=$(this).val(); if(typeof enddate!=='undefined'){ callActionMethod(); } }}); $("#arend").datepicker({ onSelect:function(dateText,inst){ enddate=$(this).val(); if(typeof startdate!=='undefined'){ callActionMethod(); } }}); }); </script> <script> function callActionMethod() { echo(startdate,enddate); } </script> <style type="text/css"> .pointer { cursor:pointer; border:1px solid #ccc; padding: 5px; } </style> </head> <body> <div class="container"> <div class="row well"> <apex:form > <div class="col-sm-2"> <apex:selectList value="{!selectedRep}" styleClass="form-control" size="1"> <apex:selectOptions value="{!Reps}"></apex:selectOptions> <apex:actionSupport event="onchange" reRender="resultPanel" action="{!fetchRepBehaviors}" status="myStatus"/> </apex:selectList> </div> <div style="float:left;">From:</div> <div class="col-sm-2 form-search"> <input id="arstart"/> </div> <div style="float:left;">To:</div> <div class="col-sm-2"> <input id="arend" /> </div> <apex:actionfunction name="echo" action="{!fetchRepBehaviors}" reRender="resultPanel" status="myStatus"> <apex:param name="startdate" assignTo="{!startdate}" value=""/> <apex:param name="enddate" assignTo="{!enddate}" value=""/> </apex:actionFunction> </apex:form> </div> </div> <apex:outputPanel id="resultPanel"> <apex:actionstatus startText="Requesting..." stopText="" id="myStatus" styleclass="hassuccess"/> <div class="container"> <div class="row"> <div class="col-md-3"> <table class="table table-hover"> <tr> <td style="color:orange"><apex:outputLabel value="Activity Type"/></td> <td style="color:orange"><apex:outputLabel value="Count"/></td> </tr> <tr> <td><apex:outputLabel value="Voice Mail"/></td> <td><apex:outputText value="{!statistics.voiceMail}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Conversation with C Suite"/></td> <td><apex:outputText value="{!statistics.ConversationCSuite}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Conversation with HR"/></td> <td><apex:outputText value="{!statistics.ConversationHR}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Conversation - Other"/></td> <td><apex:outputText value="{!statistics.ConversationOther}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="No Message Left"/></td> <td><apex:outputText value="{!statistics.NML}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Follow Up Reminder"/></td> <td><apex:outputText value="{!statistics.FollowUpReminder}"></apex:outputText></td> </tr> <tr> <td><b><apex:outputLabel value="Total Activities" style="color:red;"/></b></td> <td><apex:outputText value="{!statistics.totalActivities}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Accepted Leads"/></td> <td><apex:outputText value="{!statistics.AcceptedLeads}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="Declined Leads"/></td> <td><apex:outputText value="{!statistics.DeclinedLeads}"></apex:outputText></td> </tr> <tr> <td><apex:outputLabel value="RFI"/></td> <td><apex:outputText value="{!statistics.RFI}"></apex:outputText></td> </tr> </table> </div> <div class="col-md-5"> <table class="table table-striped"> <thead> <tr> <th style="color:orange">Client Territory</th> <th style="color:orange">Count</th> </tr> </thead> <tbody> <apex:repeat value="{!clientscount}" var="List"> <tr> <td><apex:outputLabel value="{!List.Name}"></apex:outputLabel></td> <td><apex:outputLabel value="{!List.count}"></apex:outputLabel></td> </tr> </apex:repeat> </tbody> </table> </div> </div> </div> <div> <apex:chart height="350" width="450" data="{!AcPieData}" rendered="{!renderPie}"> <apex:pieSeries dataField="data" labelField="name"/> <apex:legend position="right"/> </apex:chart> </div> <div> </div> </apex:outputPanel> <div class="navbar navbar-default navbar-fixed-bottom"> <div class="container"> <p class="navbar-text pull-left">Site Built by Jack Wang, Dallas TX, 2014</p> <a class="navbar-btn btn-info btn pull-right" href="mailto:jack.wang@accelerationretirement.com">Contact Me</a> </div> </div> </body> </html> </apex:page>
The JS Debug Log:
- Lee Sin
- January 06, 2015
- Like
- 1