Salesforce简单练习案例 – 适合初学者

以下练习适合刚刚接触Saleforce平台,并已经做完官方salesforce文档中招聘事例,对Apex语言有一些基础认知,需要练习的童鞋。

需要文档的请移步官方网站:https://developer.salesforce.com/docs/

懒人网盘链接:http://pan.baidu.com/s/1bp1oGqz 密码:b0zm

进入正题:

1.对象字段配置:

新建一个对象:对象名为会员(Member)。

上面新建几个字段:

记录编号(自动编号)autoNum__c,编号样式MM-0001;

性别(选项列表):gender__c,选项列表值(男,女,未知),设置默认值为 ‘男’;

成为会员日期(日期类型):memdate__c,默认值今天;

已购商品(选项列表):buyedgoods__c; 选项列表值(洗发素,沐浴露,洗衣液);

是否已购商品(复选框):ifbuyed__c;

客户(查找字段,查找客户):account__c;

客户地址 address__c;

标准对象:客户

新建字段:

会员数量(数字):mennum__c;默认值为0;

2.新建工作流:

新建或更新会员记录时,如果‘已购商品’字段为空,则‘是否已购商品’值变为未勾选,如果‘已购商品’字段选择了值,则‘是否已购商品’值变为已勾选。

3、配置实现:

会员对象上的客户地址 address__c;取客户上的地址

4.Trigger和Class:

1、 利用trigger和class,来实时统计该客户下有多少个会员。新建,更新,删除会员时,统计该客户的会员记录数量,给客户上的‘会员数量’字段赋值。

2、当会员上的是否已购商品打钩时,在该客户下创建一条任务。主题为”您有新的会员任务需要跟进”、到期日期取当前日期的后三天。

5.简单页面:

做一个会员展示页面,分页显示所有会员记录,每页显示2条记录,需要展示会员所有自定义字段。

前三题,对于做过官方文档招聘事例的童鞋都是温故的内容,后面两题给大家提供下本人的解决方法。

第四题,第一小题

trigger:

trigger MemberTrigger on Member__c (after insert,after update,after delete,after undelete){    if(trigger.isAfter){        Cbl_MemberCount memberCount=new Cbl_MemberCount();        if(trigger.isInsert){            memberCount.memberCount(trigger.new);        }        if(trigger.isUpdate){            memberCount.memberCount(trigger.new,trigger.old);        }        if(trigger.isDelete){            memberCount.memberCount(trigger.old);        }        if(trigger.isUndelete){            memberCount.memberCount(trigger.new);        }    }}

trigger辅助类:

public class Cbl_MemberCount{    //适用于新建、删除时的操作    public void memberCount(List<Member__c> list_Member){        Set<ID> set_ID=new Set<ID>();        List<ID> list_id=new List<id>();        //遍历得到的集合,去重复得到操作过的客户ID        for(Member__c objMember:list_Member){            set_ID.add(objMember.account__c);        }        //将最终结果用list保存        list_id.addAll(set_ID);        //重新查询进行操作过的客户ID下有多少个会员        AggregateResult[] memberNum=[select Count(Member__c.autoNum__c) from Member__c                                      where Member__c.account__c in :list_id];        system.debug(memberNum.size());        //将查询结果放入List中        List<Account> list_updateAccout=new List<Account>();        for(Integer i=0;i<memberNum.size();i++){           Account account=new Account();           system.debug(memberNum[i]);           account.menNum__c=(Decimal)memberNum[i].get('expr0');           account.id=list_id.get(i);           list_updateAccout.add(account);        }        system.debug(list_updateAccout);        //更新        update list_updateAccout;    }    //适用于修改操作    public void memberCount(List<Member__c> list_Member,List<Member__c> oldlist_Member){        Cbl_MemberCount memberCount=new Cbl_MemberCount();        memberCount.memberCount(list_Member);        memberCount.memberCount(oldlist_Member);    }}


第四题,第二小题

这个问题本人能力有限,不知道如何用代码实现,暂时通过salesforce进程生成器配置完成了

点击:设置-》创建-》工作流和批准-》进程生成器

新建一个进程,然后配置如下所示:

注意相关项ID选择会员所属客户ID,这样一旦是否购物记录为True,就会新建一条任务记录,分配到相关的客户下显示。

第五题

本人分页参考了zero大大一篇博客,大家可以移步去看看,写的比较详细http://www.cnblogs.com/zero-zyq/p/5343287.html

分页控制类:

public class MemberController{    //实例化StandardSetController查询定位器    public ApexPages.StandardSetController con{        get{            if(con==null){                con=new ApexPages.StandardSetController(Database.getQueryLocator([select Name,autoNum__c, gender__c,memdate__c,                                  buyedgoods__c, ifbuyed__c,  account__c, address__c from Member__c]));                con.setPageSize(2);             }            return con;        }        set;    }    public List<Member__c> getMember(){        return (List<Member__c>)con.getRecords();    }    //首页    public void first(){        con.first();    }    //尾页    public void last(){        con.last();    }    //上一页    public void previous(){        con.previous();    }    //下一页    public void next(){        con.next();    }    //当前页码    public Integer getPageNumber(){        return con.getPageNumber();    }    //总共页数    public Integer getPageCount(){        if(con.getResultSize()<=2){            return 1;        }        if(math.mod(con.getResultSize(),con.getPageSize())==0){            return con.getResultSize()/con.getPageSize();        }        return con.getResultSize()/con.getPageSize()+1;    }    //当前页记录数    public Integer getPageSize(){        return con.getPageSize();    }}    

visualforce页面代码:

<apex:page Controller="MemberController">    <apex:form >        <apex:pageBlock title="会员展示页面">            <!--表格内容 下面的Member对应get后的方法名-->            <apex:pageBlockTable value="{!Member}" var="mem">                <apex:column value="{!mem.autoNum__c}" />                <apex:column value="{!mem.Name}"/>                <apex:column value="{!mem.gender__c}"/>                    <apex:column value="{!mem.buyedgoods__c}"/>                <apex:column value="{!mem.ifbuyed__c}"/>                <apex:column value="{!mem.memdate__c}"/>                <apex:column value="{!mem.account__c}"/>                <apex:column value="{!mem.address__c}"/>            </apex:pageBlockTable>        </apex:pageBlock>        <table style="margin:0 auto;width:120%;">            <tr>                <td style="width:30%"></td>                <!--页面信息展示-->                <td style="width:40%;text-align:justify">                    <apex:outputText >第{!PageNumber}页,</apex:outputText>                    <apex:outputText >共{!PageCount}页,</apex:outputText>                    <apex:outputText >每页{!PageSize}条</apex:outputText>                </td>                   <!--分页组件-->                <td style="width:30%;text-align:right">                    <apex:panelGrid columns="5" >                        <apex:commandLink action="{!first}" value="首页"/>                        <apex:commandLink action="{!previous}" value="上一页"/>                        <apex:outputText >{!PageNumber}</apex:outputText>                        <apex:commandLink action="{!next}" value="下一页"/>                        <apex:commandLink action="{!last}" value="尾页"/>                    </apex:panelGrid>                </td>            </tr>        </table>        <apex:detail />    </apex:form></apex:page>

本人初出茅庐程序员一只,学习Salesforce为今半个多月,代码写得不好请多多包涵,有什么不足的地方也请评论指出,一起学习共同进步。

回首往事,日子里竟全是斑澜的光影,

Salesforce简单练习案例 – 适合初学者

相关文章:

你感兴趣的文章:

标签云: