Я хочу отобразить гистограмму из 10 учетных записей с максимальным количеством контактов.каждая гистограмма должна быть кликабельной и перенаправлять на соответствующий аккаунт - PullRequest
0 голосов
/ 21 апреля 2019

Я могу показать гистограмму, используя статические данные в vfp - apex. Однако есть в основном две проблемы - 1. Получение динамических данных нет. контактов в каждой учетной записи и 2. сделать каждую панель кликабельной и перенаправить на учетную запись

Попытался сделать динамический, используя следующую ссылку https://hub.appirio.com/tech-blog/building-dynamic-stacking-bar-charts-in-visualforce

Справка Barchart от - https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_charting_appearance_bar_charts.htm

Схожий вопрос по общности, связанный с кликом https://salesforce.stackexchange.com/questions/119774/showing-each-account-with-number-of-contact-if-i-click-on-contact-count-it-has-t

VF

 <apex:page controller="ChartController">
<apex:chart height="400" width="700" data="{!data}">
      <apex:axis type="Numeric" position="left" fields="data1" 
        title="Opportunities Closed" grid="true"/>
      <apex:axis type="Category" position="bottom" fields="name" 
        title="Month of the Year">
    </apex:axis>
    <apex:barSeries axis="left"  xField="name" yField="data1" 
  orientation="vertical" />
</apex:chart>
</apex:page>

Код контроллера

public class ChartController {
// Return a list of data points for a chart
public List<Data> getData() {
    return ChartController.getChartData();
}

// Make the chart data available via JavaScript remoting
@RemoteAction
public static List<Data> getRemoteData() {

 return ChartController.getChartData();
    //List<Account> accList=[select id,Name from account];
 //return accList;
 }

// The actual chart data; needs to be static to be
// called by a @RemoteAction method
 public static List<Data> getChartData() {
    List<Account> accList=[select id,Name from account];
    List<Data> data = new List<Data>();
    data.add(new Data('Jan', 30 ));
    data.add(new Data('Feb', 44 ));
    data.add(new Data('Mar', 25));

    return data;
  }

// Wrapper class
  public class Data {
    public String name { get; set; }
    public Integer data1 { get; set; }

    public Data(String name, Integer data1) {
        this.name = name;
        this.data1 = data1;

    }
   }
  }
...