[Salesforce]カスタム表示ラベルをApexクラスで表示
result = System.Label.HelloLabel;
kinkun's blog
[Salesforce]カスタム表示ラベルをApexクラスで表示
result = System.Label.HelloLabel;
カスタム表示ラベルをVisualforceページで表示例です。
<apex:page>
<h1>{!$Label.HelloLabel}</h1>
</apex:page>
wait(10000);//Wait
//Wait
public static void wait(Integer millisec) {
if(millisec == null || millisec < 0) {
millisec = 0;
}
Long startTime = DateTime.now().getTime();
Long finishTime = DateTime.now().getTime();
while ((finishTime - startTime) < millisec) {
//sleep for parameter x millisecs
finishTime = DateTime.now().getTime();
}
// System.debug(‘>>> Done from ‘ + startTime + ‘ to ‘ + finishTime);
}
String searchObjLabelName = '取引先企業';
String targetObjectName = '';
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
for (String sKey : gd.keySet()) {
Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();
if(targetObject.getLabel() == searchObjLabelName){
targetObjectName = targetObject.getName();
System.debug('targetObject.getLabel()----->targetObject.getName()::::::'+targetObject.getLabel()+'----->'+targetObject.getName());
}
}
String objName = targetObjectName;
schema.sObjectType sObjType = Schema.getGlobalDescribe().get(objName);
system.debug('prefix:'+(sObjType.getDescribe().getKeyPrefix()));
String searchObjLabelName = '取引先企業';
String targetObjectName = '';
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
for (String sKey : gd.keySet()) {
Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();
if(targetObject.getLabel() == searchObjLabelName){
targetObjectName = targetObject.getName();
System.debug('targetObject.getLabel()----->targetObject.getName()::::::'+targetObject.getLabel()+'----->'+targetObject.getName());
}
}
String objName = targetObjectName;
schema.sObjectType sObjType = Schema.getGlobalDescribe().get(objName);
system.debug('prefix:'+(sObjType.getDescribe().getKeyPrefix()));
Share to get the Prefix from Salesforce’s ObjectName.
Execute the following on the “Open Execute Anonymous Window” screen of the “Debug” tab on the development console screen.
String objName ='Account';
schema.sObjectType sObjType = Schema.getGlobalDescribe().get(objName);
system.debug('prefix:'+(sObjType.getDescribe().getKeyPrefix()));
The DebugLog result is below.
prefix:001
Here is an example of getting an object display label from an object API reference name.
String searchObjLabelName = '取引先';
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
for (String sKey : gd.keySet()) {
Schema.DescribeSObjectResult targetObject = gd.get(sKey).getDescribe();
if(targetObject.getLabel() == searchObjLabelName){
System.debug('targetObject.getLabel()----->targetObject.getName()::::::'+targetObject.getLabel()+'----->'+targetObject.getName());
}
}
商談から取引先名取得数式
IF(Account.IsPersonAccount,
Account.LastName + ' ' + Account.FirstName,
Account.Name
)
レコードコピー例を紹介します。
List<Account> InsertAccs = new List<Account>();
for(Account acc : this.selectedAccs){
Account a = acc.clone(false,true,false,false);
InsertAccs.add(a);
}
if(InsertAccs.size() > 0){
insert InsertAccs;
}
リストビューで表示されたレコードを一括してコピー例を紹介します。
コントローラ
public with sharing class CustomAccountSetController {
public List<Account> selectedAccs {get;set;}
public CustomAccountSetController(ApexPages.StandardSetController controller) {
List<Account> accs = controller.getSelected();
this.selectedAccs = [SELECT Id, Name FROM Account WHERE Id IN :(new Map<Id, Account>(accs)).keySet()];
}
public void execute() {
system.debug('execute');
}
}
Visualforceページ
<apex:page standardController="Account" recordSetvar="accs" extensions="CustomAccountSetController">
<apex:form>
<apex:pageBlock title="選択済み取引先" >
<apex:pageBlockButtons location="bottom">
<apex:commandButton action="{!execute}" value="実行" oncomplete="history.back();" />
</apex:pageBlockButtons>
<apex:pageBlockTable value="{!selectedAccs}" var="acc">
<apex:column value="{!acc.Name}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
カスタムボタン
取引先リストビュー