1 ApexCodeで、下記ソースを書きました
2 // 月頭のLocal日付を定義する(Asia/Japan)
3 Date startDt = Date.parse(‘2012/03’ + ‘/31’);
4 // 書式化するため、DateTime定義します(Local TimeZone)
5 DateTime formatter = DateTime.newInstance(startDt , Time.newInstance(0,0,0,0));
6 formatter = formatter.addMonths(6);
7 System.debug(formatter.format(‘yyyy/MM/dd));
予想は2012/09/30を表するべき、実際は 2012/10/01を表示されました
原因調べると、 5行目のformatter定義する場合、LocalTimeZoneで2012/03/31:00:00:00で変数定義します
6行目Apex計算する場合、先に formatter はGMT (2012/03/30:15:00:00)に変更して、+6ヶ月で計算しました
そすると、計算結果は GTMの 2012/09/30:15:00:00になりました、format関数で、Local変更すると、2012/10/01を表示しました
———————————————————————————–
一回対応しました
5行目定義する場合、DateTime formatter = DateTime.newInstance(startDt , Time.newInstance(0,0,0,0));
->
DateTime formatter = DateTime.newInstanceGMT(startDt , Time.newInstance(0,0,0,0));で定義する
APEXのSOQLのDistanct
for (AggregateResult r : [ SELECT Field3 FROM Table
WHERE Field1= :strModality
AND Field2= ‘Active’
GROUP BY Field3 ORDER BY Field3 ]) {
}
Groupの合計関数利用して、Field3 Distanct可能になる
PickList定義制限
Additional Limits for Custom Picklists
You can create custom picklists that have up to 1000 entries and 255 characters per entry.
Custom multi-select picklists can contain 150 values of 40 characters per value, and users can select up to 100 at a time on a record.
标准按钮的覆盖方法
如果想覆盖标准的button机能,只需要做一个VF,覆盖掉button调用就可以了
但是如果根据需要,例如: 客户A 需要看VF做的特殊画面
系统管理员看原来的标准画面
这种情况下,可以用下面的方法来解决
方法1:
<apex:page standardController="DistributorOrderItem__c" extensions="DistributorOrderEditForCSR" action="{!if($Profile.Name !='System Administrator', urlFor($Action.DistributorOrderItem__c.Edit, DistributorOrderItem__c.id, null, true), null)}">
利用urlFor跳转,可以防止死循环的调用
方法2:
vfPageRecordType=('/' + CallActivity_ID+ '?nooverride=1' + '&retURL=' + retURL );
注意:nooverride=1 意思是调用原来的标准画面,不要覆盖的意思
参考’
http://developer.force.com/cookbook/recipe/overriding-a-page-for-some-but-not-all-users
http://boards.developerforce.com/t5/Visualforce-Development/Visualforce-page-edit-button-override-and-page-redirect-not/td-p/88160/page/2