Salesforce Apex类控制器随机接触记录

Salesforce Apex类控制器随机接触记录,salesforce,apex-code,visualforce,apex,force.com,Salesforce,Apex Code,Visualforce,Apex,Force.com,我期待着从一个特定的角度选择一个随机接触小组。如果活动状态设置为“已发送”,则记录将显示在该视图中。我已经创建了一个apex类,我认为它可以工作,但是我正在尝试将这个类作为一个控制器,并构建一个可视化的force页面。我熟悉salesforce和apex。在做了一些研究之后,我想我必须使用getter和setter来调用这些信息。我的课程是 公共类MyController{ 整数计数=[从联系人中选择计数]; 整数rand=Math.floorMath.random*count.intValue

我期待着从一个特定的角度选择一个随机接触小组。如果活动状态设置为“已发送”,则记录将显示在该视图中。我已经创建了一个apex类,我认为它可以工作,但是我正在尝试将这个类作为一个控制器,并构建一个可视化的force页面。我熟悉salesforce和apex。在做了一些研究之后,我想我必须使用getter和setter来调用这些信息。我的课程是

公共类MyController{ 整数计数=[从联系人中选择计数]; 整数rand=Math.floorMath.random*count.intValue; 设置联系人ID=新设置{ forCampaignMember cm:[从CampaignMember中选择Id、ContactId,其中状态='To Call'和Campaign.Name='2014/15吉祥物数据']{ ContactId.addcm.ContactId; List orderBys=新列表{'Email Asc'、'Email Desc'、'Lastname Asc'、'Firstname Desc'、'LastModifiedDate Desc'、'LastModifiedDate Asc'、'CreatedDate Asc'、'CreatedDate Desc'、'Id Desc'; 字符串orderBy=orderBys.getMath.modrand,orderBys.size; List contacts=ListDatabase.query“从联系人中选择姓名,其中ID位于:contactIds Order By'+orderBy+”Limit 5 OFFSET:rand'; } } }
非常感谢

请尝试以下代码:

Visualforce页面:

<apex:page controller="MyController">
   <apex:form>
      <apex:pageblock id="pb" title="Contact Information">
         <apex:commandButton value="Get Random Contacts" action="{!getContacts}" rerender="randomContacts"/> 
         <apex:outputPanel id="randomContacts">
          <apex:pageblock> 
              <apex:PageBlockTable value="{!contacts}" var="item">
                  <apex:column headerValue="Contact Name" value="{!item.Name}"/>
                   --display columns you wish to show.
              </apex:PageBlockTable>  
           </apex:pageblock> 
         </apex:outputPanel>
      </apex:pageBlock>
   </apex:form>
</apex:page>      
顶点类:

public class MyController 
{
   public List<Contact> contacts{get;set;}

   public MyController()
   {
        getContacts();
   }

   public void getContacts()
   {
        Integer count = [SELECT COUNT() FROM Contact];
        Integer rand = Math.floor(Math.random() * count).intValue();
        Set<Id> contactIds = new Set<Id>();
        contacts = new List<Contact>();

        for(CampaignMember cm : [Select Id, ContactId from CampaignMember where Status = 'To be Called' and Campaign.Name = '2014/15 Mascot Data'])
        {
           contactIds.add(cm.ContactId);
        }
        List<String> orderBys = new List<String>{'Email Asc','Email Desc','Lastname Asc','Firstname Desc','LastModifiedDate Desc','LastModifiedDate Asc','CreatedDate Asc','CreatedDate Desc','Id Asc','Id Desc'};

        String orderBy = orderBys.get(Math.mod(rand,orderBys.size()));

        contacts = Database.query('Select Name From Contact where ID in :contactIds Order By ' + orderBy + ' Limit 100 OFFSET :rand');
    }
}
第一次加载数据时,页面加载并点击按钮获得下一个随机联系人


希望对您有所帮助。

您希望在哪个控件中显示数据?你想展示什么样的信息呢?我不太清楚是哪一个控制器,对不起,我是新来的。我有一个特定视图中的联系人记录列表。我希望创建一种随机查看少量联系人的方法。只是我想展示的记录信息。谢谢。您想在PageBlockTable中显示联系信息还是只在下拉控件中显示联系信息?谢谢您的回复。我希望将联系信息保存在PageBlockTable中。非常感谢。