2010年11月14日日曜日

カスタマイズオブジェクトを取得

Apex Class:XNShowObjectCtl.cls
public with sharing class XNShowObjectCtl {
 public String objName{get;set;}
 public List<SelectOption> getObjNames(){
  List<SelectOption> options = new List<SelectOption>();  
    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
    for (Schema.SObjectType st : gd.values()) {
     Schema.DescribeSObjectResult r = st.getDescribe();
     if(r.isCustom() && r.isQueryable()){
       options.add(new SelectOption(r.getName(), r.getLabel()));
     }
    }
  return options;
 }
}

VF Page:XNShowObject.page

<apex:page controller="XNShowObjectCtl" showHeader="true" sidebar="false" >
 <apex:form >
   <apex:selectList value="{!objName}" size="10" multiselect="false">
       <apex:selectOptions value="{!ObjNames}"/>
   </apex:selectList>
  </apex:form>
</apex:page>

2010年11月9日火曜日

CSS Page

File1:CSS.page

<apex:page cache="true" showHeader="false" contentType="text/css">
body  {
    -x-system-font: none;
    background: #E3E3E3 none repeat scroll 0 0;
    font-size-adjust: none;
    font-stretch: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
}
body, h1, h2, h3, h4, h5, h6, hr12, hb12  {
    font-family: Arial, Helvetica, sans-serif;
}
</apex:page>



File2:VF_Page

<apex:page controller="CatalogCtl" sidebar="false">
<apex:stylesheet value="{!$Page.CSS}" />


</apex:page>

Send Mail

public with sharing class SendMailCtl {
public List toAddress{get;set;}
public String subject{get;set;}
public String content{get;set;}
public void doSend(){
try{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setUseSignature(false);
mail.setSaveAsActivity(false);
if (toAddress.size() > 0)mail.setToAddresses(toAddress);
mail.setTargetObjectId(UserInfo.getUserId());
//mail.setWhatId(pObjId);
//mail.setTemplateId(mailTemplate.Id);
mail.setSubject(subject);
mail.setPlainTextBody(content);
mail.setSenderDisplayName('test mail');
Messaging.sendEmailResult[] results = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
for ( Messaging.sendEmailResult result : results ) {
if ( !result.isSuccess () ) {
Apexpages.Message msg = new Apexpages.Message(ApexPages.Severity.ERROR,'Send mail fail.');
Apexpages.addMessage(msg);
}
}
}
catch(Exception ex){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.FATAL, 'Send mail fail:' + ex.getMessage()));
}
}
}

Test Class

@isTest
private class ClsTest {
static testMethod void testMethodl() {
System.assert(true);
System.assertEquals('Expected value', 'Actual value');
}
}

2010年10月20日水曜日

多言語対応VF Page

1)通訳有効化
1-1)設定>トランスレーションワークベンチ>翻訳設定>有効化
1-2)「追加」(言語=英語、有効=Check)→「保存」

2)カスタム表示ラベルを追加
2-1)設定>作成>カスタム表示ラベル>「新規カスタム表示ラベル」
2-2)「新規カスタム表示ラベル」(簡単な説明=Language_Text、値=日本語で表示する)→「保存」
2-3)「翻訳」(言語=英語、通訳テキスト=Show English Text.)
2-4)「新規カスタム表示ラベル」(簡単な説明=Language_Label、値=English)→「保存」
2-3)「翻訳」(言語=英語、通訳テキスト=日本語)
名前/簡単な説明/値/通訳(英語)
Language_Label/Language Label/English/日本語
Language_Text/Language Text/日本語で表示する。/Show English Text.

3)クラスを作成LanguageTestCls.cls
public with sharing class LanguageTestCls {
//apex:page's language attriber
public String lng{get;set;}
//class's text
public String showLabel{get;set;}
//vf page's text
public String showText{get{return System.Label.Language_Text;}set;}
//Change language aciton
public void changeLanguage(){
if(lng == 'en')
lng='ja';
else
lng='en';
}
}
4)VF Pageを作成LanguageTestPage.page
<apex:page controller="LanguageTestCls" language="{!lng}">
<h1>
<apex:form >
<apex:commandButton value="{!$Label.Language_Label}" action="{!changeLanguage}"/>
</apex:form>
</h1>
<br/>
<apex:outputtext value="{!showText}"></apex:outputtext>
</apex:page>
5)出来ましたか
http://browser_current_url/apex/LanguageTestPage

2010年10月4日月曜日