前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Salesforce Apex 自定义排序类(一)

Salesforce Apex 自定义排序类(一)

原创
作者头像
repick
修改于 2022-05-25 11:31:11
修改于 2022-05-25 11:31:11
73200
代码可运行
举报
文章被收录于专栏:SalesforceSalesforce
运行总次数:0
代码可运行

使用【lightning-datatable】表示ListView数据时,当表示Opportunity表中Amount项目,需要排序功能时,可以直接在SOQL中使用ORDER BY进行排序,也可以在自定义Apex中实现。

1.自定义排序类

SortableOpportunityWrapper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SortableOpportunityWrapper implements Comparable {
    public Opportunity opp;
    public SortableOpportunityWrapper(Opportunity t) {
        opp = t;
    }
    public Integer compareTo(Object compareTo) {
        SortableOpportunityWrapper compareToOpportunity = (SortableOpportunityWrapper) compareTo;
        Integer returnValue = 0;

        if (opp.Amount < compareToOpportunity.opp.Amount) {
            returnValue = -1;
        }
        if (opp.Amount > compareToOpportunity.opp.Amount) {
            returnValue = 1;
        }
        return returnValue;
    }
}

2.调用排序类进行排序

OpportunityListViewController.cls

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public with sharing class OpportunityListViewController {
    @AuraEnabled(cacheable=true)
    public static List<OpportunityWrapper> getOpportunityListView(){
        List<OpportunityWrapper> inputWappers = new List<OpportunityWrapper>();

        List<Opportunity> resultList = [SELECT Id,
                                            Name,
                                            StageName,
                                            Amount,
                                            CloseDate,
                                            RecordTypeId
                                            FROM Opportunity
                                            ORDER BY LastModifiedDate DESC
                                            LIMIT 10
                                            ];

        List<SortableOpportunityWrapper> oppSortList = new List<SortableOpportunityWrapper>();
        for (Opportunity t : resultList) {
            oppSortList.add(new SortableOpportunityWrapper(t));
        }
        oppSortList.sort();
        for (SortableOpportunityWrapper opSort : oppSortList) {
            OpportunityWrapper wapper = new OpportunityWrapper();
            wapper.id = opSort.opp.Id;
            wapper.idLink = '/opportunity/'+ opSort.opp.Id;
            wapper.name = opSort.opp.Name;
            wapper.stageName = opSort.opp.StageName;
            wapper.amount = String.valueOf(opSort.opp.Amount);
            wapper.closeDate = opSort.opp.CloseDate;
            inputWappers.add(wapper);
        }

        return inputWappers;
    }
    public class OpportunityWrapper {
        @AuraEnabled
        public String id;
        @AuraEnabled
        public String idLink;
        @AuraEnabled
        public String name;
        @AuraEnabled
        public String stageName;
        @AuraEnabled
        public String amount;
        @AuraEnabled
        public Date closeDate;
    }
}

opportunityListView.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div class="slds-card__body">
        <lightning-datatable
            key-field="id"
            data={records}
            show-row-number-column
            row-number-offset={rowOffset}
            hide-checkbox-column
            columns={columns}
            >
        </lightning-datatable>
        <template if:false={loaded}>
            <lightning-spinner alternative-text="Loading"></lightning-spinner>
        </template>
    </div>
</template>

opportunityListView.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { LightningElement, track, wire } from 'lwc';
import getOpportunityListView from '@salesforce/apex/OpportunityListViewController.getOpportunityListView';

const columns = [
    { label: '案件名', fieldName: 'idLink', type: 'url', sortable: true, typeAttributes: { label: { fieldName: 'name' }, target: '_self' }, initialWidth: 300 },
    { label: 'フェーズ', fieldName: 'stageName', type: 'text', editable: true },
    { label: '保険料', fieldName: 'amount', type: 'currency' },
    { label: '完了予定日', fieldName: 'closeDate', type: 'date' },
    ];

export default class OpportunityListView extends LightningElement {

    @track columns = columns;
    @track records;
    @track prospectRecords;

    @track wiredRecordList;
    @track error;
    @track rowOffset = 0;
    @track loaded = false;

    @wire(getOpportunityListView)
    recordList(result) {
        this.wiredRecordList = result;
        if (result.data) {
            this.records = result.data;
            this.error = undefined;
            this.loaded = true;
        } else if (result.error) {
            this.error = result.error;
            this.records = [];
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入解析:HarmonyOS Design设计语言的核心理念
在当今数字化迅速发展的时代,用户对操作系统的体验要求越来越高。华为的HarmonyOS(鸿蒙操作系统)应运而生,旨在为用户提供全场景、全设备的智慧体验。其背后的设计语言——HarmonyOS Design,融合了深厚的设计哲学和创新理念,致力于构建一个和谐的数字世界。
猫头虎
2025/04/01
530
深入解析:HarmonyOS Design设计语言的核心理念
Apple 的设计哲学 · 交互篇
如今,当我们谈论起产品设计、谈论起用户体验,总是离不开苹果,它所坚持的设计哲学是对细节和质量的极致追求。下面,我就带大家看看 Apple 在交互方面做的努力。
用户5009027
2019/11/12
1.1K0
Apple 的设计哲学 · 交互篇
基于机器视觉的智能人机交互技术
机器人视觉和机器人技术已被广泛地使用在我们的生活当中,智能机器人技术逐渐成熟。在传统的机器人技术应用过程中,没有做到机器视觉和机器控制的技术统一,只实现了某一技术的应用,极大地制约了智能机器人的发展工作,因此如何统一机器视觉、机器人控制以及人工智能三大要素,成为了人机交互功能实现的主要限制。
小白学视觉
2021/08/06
2.2K0
微软Office 2021将于10月5日推出上市,和Windows 11同一天推出
今天 9月17日 ,微软为商业客户推出下一个永久版本的微软Office,并表示将在10月5日推出面向消费者的Office 2021版本(适用于Windows和Mac的微软Office长期服务渠道(LTSC))今天将面向商业和政府用户推出,提供不需要订阅的Office锁定时间版本。
office小助手
2022/04/27
1.7K0
微软Office 2021将于10月5日推出上市,和Windows 11同一天推出
Windows 10 全新界面要来了:焕然一新!
据悉,微软将在 2021 年的 21H2 更新中启用全新的 UI 界面。新界面的风格看起来更加清爽、简洁,整个系统也将更多的使用 Fluent Design 设计语言,这样看起来也更加统一,感觉也更好。
GitHubDaily
2020/12/15
5740
Windows 10 全新界面要来了:焕然一新!
抢占智能应用世界的新入口:从Build 2016大会第一天看创业新风口
将门联合创始人兼CTO,前微软创投加速器CTO 作者简介 沈强,将门联合创始人兼CTO。创业之前,他是微软创投加速器的创始团队成员及CTO,主要负责微软创投加速器在中国的技术策略与方向,加速器在三年
新智元
2018/03/15
6430
抢占智能应用世界的新入口:从Build 2016大会第一天看创业新风口
陈希章(O365开发指南):Office 365平台及其价值主张
从今天开始我会给大家带来一个《Office 365开发入门指南》的视频教程。在2018年9月,我出版了这本迄今为止唯一的专门讲解Office 365开发的中文图书,这本书除了较为系统地给大家介绍了Office 365提供给开发人员的全新机遇,并且有大量实例代码外,还有一个比较独特的价值是对比了国际版和国内版的一些差异,这也弥补了官方文档在这方面的空白。该书推出以来,感谢大家的支持,也给了很多反馈,其中有些朋友就提到,希望有一套视频教程便于在移动设备上利用平时碎片化的时间进行学习。于是,在刚刚过去的2019年春节假期,我重新梳理了一下思路,这套课程的录制工作也就提上了日程。
寒树Office与RPA
2019/11/29
9400
微软新版Office焕然一新的UI设计
微软今天宣布,将在Office应用中引入新的用户界面设计,如Word、Excel、PowerPoint和Outlook。这一新UI将与该公司去年推出的Fluent设计系统保持一致,并将在未来几个月内推出Office.com在线应用程序和Office桌面工具。 除了全面切换到Fluent设计系统(这基本上是微软对谷歌在材料设计方面的应用)之外,Office应用程序的设计还有三个主要变化。 最明显的是经过重新设计和简化的Ribbon——尽管微软采取了非常谨慎的方式,将这个新功能推出给所有用户。虽然它在2007年
程序你好
2018/07/20
1.3K0
最新攻略:免费申请 Office365 开发者帐号,带25帐户的E3企业版 ,终生可续
不是标题党哦,我要告诉您这是迄今为止,最可行(全免费、全自助、可再续)的,正常情况下(happy path)只需5分钟内获得 Office 365 帐户的简便方法。这个试用订阅是全局管理,Office 365 E3 级帐户,能够支持 Office 桌面版,可创建25个账号,每个账号可同时在6台电脑上使用!并且,每个账号(除管理员帐号默认为 1TB 外)均可以获得最高 5TB 的 OneDrive 存储空间!(1TB 用于管理员帐户,5TB 用户帐户用于 24 个用户)
寒树Office与RPA
2019/11/28
31.2K0
陈希章(O365开发指南):所有人都可以是开发人员——《Office 365开发入门指南》
今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊。这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光和不同的过年方式。在这个春节假期里呢,我还做了一件特殊的事情,就是准备了这套《Office 365开发入门指南》的视频教程。大家知道,2018年9月份我的这本书正式上市发行了,这是我的第一本书,自己觉得写的水平一般,还有很多可以改进的地方。承蒙大家抬爱,我今年很可能会出第二版。这一方面是因为Office 365本身在不断进化,书中有些内容需要更新,另外我自己在这一年左右时间又有不少进步,总是按捺不住想要分享给大家的。与此同时,有不少热心朋友也跟我反馈,希望有一套视频教程,便于在移动设备上面,利用碎片化时间进行学习,为此我利用这个假期先准备了这一套视频教程,并且将以此为蓝本筹划书籍的第二版。
寒树Office与RPA
2019/11/29
5830
在线协作文档综合评测:Notion、FlowUs、Wolai、飞书、语雀、微软 Office、谷歌文档、金山文档、腾讯文档、石墨文档、Dropbox Paper
如今,在线协作文档已经成为效率办公的必备产品。然而,面临各种各样的在线文档产品,应该如何选择呢?
数字花园
2022/06/26
7.2K0
在线协作文档综合评测:Notion、FlowUs、Wolai、飞书、语雀、微软 Office、谷歌文档、金山文档、腾讯文档、石墨文档、Dropbox Paper
Office2019 (办公套件全家桶)
Microsoft Office 2019 是微软在Mac发行的Office办公软件套件。包含的五个办公套件可以让你在职场游刃有余,包含Word mac版 — 全球最流行的文本编辑软件,Excel mac版 — 最流的表格处理软件,PowerPoint mac版 — 最流行的ppt幻灯片制作软件,Outlook mac版 — 老牌的邮件收发管理客户端,OneNote mac版 — 微软开发的数字笔记应用,以及OneDrive mac版 — 微软推出的云存储应用,Office 2019 Mac 激活版作为微软的一个庞大的办公软件集合,是一款最好用,功能最全面的办公软件。
Mac小小心
2023/02/23
2K0
Office2019 (办公套件全家桶)
AI赋能开发者?微软用边缘计算解决问题,谷歌FB亚马逊却主要卖广告 | Build 2017
【新智元导读】 2017年微软开发者大会(Build),人工智能自然成为最大看点。新智元受邀全程参加了微软本年度的Build大会,带来大会盛况的现场直击。如果用一句话总结微软在该公司年度开发者大会Microsoft Build 2017上想要强调的微软AI发力方向,可以说是“最好的AI是让用户感受不到的AI”。 2017年5月11日,微软一年一度的开发者大会Build 2017 在西雅图举行。微软 CEO 萨提亚·纳德拉、微软全球执行副总裁兼云计算与企业事业部负责人 Scott Guthrie 以及微软全
新智元
2018/03/28
1.3K0
AI赋能开发者?微软用边缘计算解决问题,谷歌FB亚马逊却主要卖广告 | Build 2017
在线协作产品哪家强?微软 Loop 、Notion、FlowUs
微软 Loop 发布。这款借鉴 Loop 的新产品,与以往的 Notion、FlowUs等产品有什么区别呢?
数字花园
2022/07/05
1.3K0
在线协作产品哪家强?微软 Loop 、Notion、FlowUs
微软深夜放炸弹!GPT-4 Office全家桶发布,10亿打工人被革命
---- 新智元报道   编辑:编辑部 【新智元导读】AI桌面革命深夜打响,GPT-4全面接入微软Office全家桶,势必颠覆人类办公! 硅谷大厂们的战争,已经进入了白热化阶段。 谷歌前脚刚宣布AI工具整合进Workspace,微软后脚就急匆匆召开了发布会,人狠话不多地祭出了办公软件王炸——Microsoft 365 Copilot,再次闪瞎全世界。 从此,不管是Word、PPT、Excel,还是Outlook、Teams、Microsoft Viva、Power Platform,所有这些办公软件,
新智元
2023/03/29
1.8K0
微软深夜放炸弹!GPT-4 Office全家桶发布,10亿打工人被革命
微软Build 2019大会来了!跨空间多人协作亮相;对话小娜如同真人
一年一度的Microsoft Build 2019终于来了!大会于今日正式在美国西雅图拉开了帷幕。
AiTechYun
2019/05/15
6000
微软Build 2019大会来了!跨空间多人协作亮相;对话小娜如同真人
阿里UCAN设计论坛 · 会议纪要
用户体验背景下ued未来的两个关键词是创意与智能。从产品的角度来说是与用户的交互和视觉表达,依赖于三个部分:
宇相
2018/08/06
8330
阿里UCAN设计论坛 · 会议纪要
2024年10大Linux桌面环境盘点
在2024年,Linux桌面环境领域继续保持着其多样化的特点,并且随着技术的发展,越来越多的桌面环境变得更加强大、更加智能化。今天给大家介绍2024年最佳的10个Linux桌面环境,帮助你找到最适合自己的选择。
小明互联网技术分享社区
2025/01/21
2070
2024年10大Linux桌面环境盘点
8、互联网产品的用户体验设计(UED)
1、学习理解互联网产品用户体验设计(UED)相关知识 – 什么是UED – UED具体包含什么内容 – 普通产品团队的UED工作流程是什么样子的 – UED团队是怎么分工的 – 每个UED的职能 ->主要工作内容 ->主要输出 – UED团队间的相互协作 2、用户体验设计(User Experience Design) – UED的通常理解,就是“我们做的一切都是为了呈现在您眼前的产品”。 – UED是针对用户心灵,眼睛,耳朵,触感的设计 – 用户体验就是用户在使用一款互联网产品的整体感受度 3
陈树义
2018/04/13
2.8K0
8、互联网产品的用户体验设计(UED)
谈谈软件交互设计
交互设计(Interaction Design)这一概念,最初是由IDEO创始人之一Bill.Moggridge(莫格里奇)1984年在一次会议上提出。他设计了世界上第一台笔记本电脑Compass,并写作出版了在交互设计领域影响深远的《Designing Interactions》一书,被称为交互设计之父。
netkiller old
2022/03/30
1K0
谈谈软件交互设计
推荐阅读
相关推荐
深入解析:HarmonyOS Design设计语言的核心理念
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验