本部長は管理ができない

Salesforceに関わっているエンジニアの技術メモ。ときどきそれ以外。

Salesforce

一覧をソートしてみる

ガストロバル パロマ+1のハンバーグランチ。 どう食べれば良いか1分ほど悩んだ。 一覧のヘッダをクリックしたときに、クリックした項目でソートする処理を作ってみた。 姓項目を昇順でソートした状態 ソート結果はクエリを実行し取得 ヘッダの文字列部分はA…

EclipseでコーディングしたApexコードが文字化け

Eclipse、Force.comIDEを新規インストールし、Apexクラスをコーディングしていたら動作がおかしい。原因は文字列の記述。 Eclipseでは文字化けしていないが、Salesforceのエディタでは文字化けしている。 以下の「あいうえお」が文字化けする。 String tmp =…

apex:inputTextでカレンダーと日付リンクを表示

ステーキくにのランチハンバーグ。美味い。 日付型、日付/時間型の入力の際に表示されるカレンダーとリンクは、Visualforceページだとapex:inputFieldの場合に表示される。 apex:inputTextでコントローラのDate型変数をvalueに設定してもカレンダーとリンク…

コレクションの文字列化

一風堂 赤丸新味。 ※本文と何ら関係ありません。 コレクションの中身を、ループを使わず展開出来ないか試したら、String#valueOfでさっくり出来た。 system#debugで出力される文字列と同じになる。 List コード List<String> tmpList = new List<String>{'Red', 'Yellow', 'P</string></string>…

ファイルアップロード時のビューステートエラー対応

Apexでメモ&添付ファイルに135KB以上のファイルをアップロードした際に、ビューステートエラーになったので、対応方法をメモ。 public class uploadFileController{ public Attachment attach {get; set;} public uploadFileController(){ attach = new Att…

ページネーション

ApexとVisualforceでページネーション(ページング、ページ送り)を作ってみた。 ※この記事を参考にさせていただきました。 StandardSetController | Official Blog of CloudClickware 表示するリンク 最初のページ 最後のページ 前のページ 次のページ 現在ペ…

本番環境のインスタンスの確認(推測)

SalesforceのURLは https://<インスタンス>.salesforce.com/となっている SandboxのURL https://cs5.salesforce.com/インスタンスが「cs5」であることがわかる 本番環境のURL https://ap.salesforce.com/「ap0」なのか「ap1」なのかわからない本番環境でVisu…

Force.com IDEでpageファイルの文字コード一括変換

pageファイルはUTF-8だが、Shift-JISで開かれるので文字化けした状態で開かれる。 文字化けを回避するには、該当pageファイルのプロパティを開き、[Text file encording]→[Other]を選択し、プルダウンから「UTF-8」を選択する。 複数ファイルある場合、1ファ…

カスタム項目IDを抽出するブックマークレット

関連リストから新規作成時に、呼出元オブジェクトの値を初期値としてセットするために、カスタム項目IDが必要になったので作ったもの。 初期値はURLパラメータで渡している。 ※Salesforceでは、URLパラメータを指定した画面遷移はサポート対象外となっている…

apex:commandButtonを押下して別画面を起動する

以前の記事で、apex:commandButtonを使って別画面起動が出来なかったと書いたけど、色々試したら出来た。 <apex:page controller="foo"> <apex:form id="frmHide" target="_blank"> <apex:commandButton id="btnHide" value="別画面起動" action="{!openPage}" style="display:none;" /> </apex:form> <apex:form id="frmMain"> </apex:form></apex:page>

apex:commandLinkをボタン風に変更する

apex:commandButtonを使って別画面起動が出来なくて、苦肉の策でapex:commandLinkをボタン風にしてごまかした記録。やり方は、スタイルで「btn」をあてる。 押下不可状態にしたければ、スタイルは「btnDisabled」となる。 <apex:commandLink value="commandLink" styleClass="btn" /> <apex:commandLink value="commandLink" styleClass="btnDisabled" />これの結果。 これだけだと、リン</apex:commandlink></apex:commandlink>…

オブジェクトのAPI参照名を取得する

標準オブジェクトのSOQLを書こうとすると、あれ?API参照名何だっけ?となるので取得する処理を書いてみた。 標準オブジェクトと同名のカスタムオブジェクトを作成していた場合、カスタムオブジェクトが取得される可能性がある。まあ、そこはSchema#getGloba…

表の行番号表示

apex:variableを使う page内で使用可能な変数 文字列型(?)なので、VALUEを使用し数値に変換し加算する <apex:variable var="rowNum" value="1" /> <apex:repeat value="{!list}" var="detail"> <tr> <td> <apex:outputLabel value="{!rowNum}" /> </td> <td> <apex:outputLabel value="{!detail}" /> </td> </tr> </apex:repeat></apex:variable>

List、Mapの宣言時の初期化

List<String> listFoo = new List<String> { 'Red', 'Yellow', 'Pink', 'Green', 'Purple' }; Map<String, String> mapFoo = new Map<String, String>{ 'アントニオ猪木' => '猪木寛至', 'ジャイアント馬場' => '馬場正平', '北斗晶' => '佐々木久子', 'アジャ・コング' => '宍戸江利花' };</string,></string,></string></string>

Mapの中身の確認

Integer i = 0; Map<String, String> mapFoo = new Map<String, String>(); for (String sKey : mapFoo.keySet()) { System.debug('★' + (++i) + ' : '+ sKey + ' -> ' + mapFoo.get(sKey)); }</string,></string,>

VisualforceからCSV出力

VisualforceページからCSVを出力する場合、apex:pageのcontentType属性に記述する。 <apex:page contentType="text/csv;charset=Shift_JIS;#fileName.csv" standardController="Contact" recordSetVar="contacts">Id,Name <apex:repeat value="{!contacts}" var="con"> {!con.Id},{!con.Name} </apex:repeat> </apex:page> apex:page text/csv これで…