2017.05.23

SkyVisualEditor製品サポート直伝、数式利用で解決できるあれこれ!

皆さんこんにちは!製品開発部の河本です。今回はSkyVisualEditorの製品サポートにお問合せいただいた中から 「数式を利用することにより解決できますよ」と回答はするものの、「数式につきましてはサポートの対象外ですので ご了承ください。」と回答してきたもののいくつかをあくまで一例ではございますが数式を紹介しながら 解決策の提案をさせていただけたらと思います。

※ 数式のコードについてはあくまで一つの例でございます。ご利用になられる際にはテストを行っていただき、自己責任でご利用ください。

PDF出力の際に利用できる数式

「日付型項目の表示を和暦にしたい (平成○○年○○月○○日形式)」

PDFで和暦表示

PDFで見積りなど作成したときに、普通に参照用の日付項目を配置したのでは、「2016/07/19」このような表示になります。 そんなときに、よく和暦で表示したいといったお問合せを受けることがあります。そのような場合は、戻り値がテキスト型の数式項目を作成して対応し、 以下の内容をお試しください。

日付項目のAPI参照名はdate__cとします

IF (ISNULL(date__c),"",
    IF (AND( date__c >=DATE(1868,09,08), date__c<DATE(1912,07,30)),"明治"& TEXT(YEAR(date__c)-1867),
        IF (AND( date__c >=DATE(1912,07,30), date__c<DATE(1926,12,25)),"大正"& TEXT(YEAR(date__c)-1911),
            IF (AND( date__c >=DATE(1926,12,25), date__c<DATE(1989,01,08)),"昭和"& TEXT(YEAR(date__c)-1925),
                IF (date__c >=DATE(1989,01,08),"平成"& TEXT(YEAR(date__c)-1988),
                   TEXT(YEAR(date__c))
                )
            )
        )
    )
    &"年"&LPAD(TEXT(MONTH(date__c)),2,"0")&"月"&LPAD(TEXT(DAY(date__c)),2,"0")&"日"
)

上記のコードでは「07月」というように表示されますが「0」はいらない場合には、
「LPAD(中略)」箇所を「TEXT(中略)」へ編集してください。

「日付型項目の表示を年は西暦で年月日表示したい (○○○○年○月○日形式)」

おまけですが、年の部分だけ西暦で表示したい場合はシンプルに以下をお試しください。

日付項目のAPI参照名はdate__cとします

IF (ISNULL(date__c),"",
    TEXT(YEAR(date__c)) & "年" & TEXT(MONTH(date__c)) & "月" & TEXT(DAY(date__c)) & "日"
)

このように数式項目を作成して、日付表示を変えてみてください。設定の際には「空白項目を空白として処理」を選択するのを忘れずに!

「PDF作成時に宛名が法人か個人かで敬称を変えて表示したい」

こんなお問合せがありました。見積りをPDFで出力しています。商談に取引先への参照項目(標準項目)、取引先責任者を参照するカスタム項目を作成しています。 取引先に値が入っている場合には敬称を「御中」に、 取引先に値がなく、取引先責任者に値がある場合は敬称を「様」で表示したい。というものです
では早速解決していきましょう。

敬称を変える

取引先「標準」の項目のAPI参照名がAccountId、取引先責任者「カスタム項目」のAPI参照名がcontact__cとします。

IF (
  NOT( ISBLANK( AccountId ) ) ,
  Account.Name & " 御中", 
  IF ( AND(ISBLANK( AccountId ) ,NOT( ISBLANK(  contact__c ) ) ) ,
      contact__r.LastName  & " " &  contact__r.FirstName & " 様", "")
)

個人取引先を有効にしている場合などもIF関数の条件を工夫していただけると良いかと思います。

ちなみに、長さが異なる宛名の位置をなるべく右寄せで表示をしたい場合など、 SkyVisualEditorではパネルグリッドを使って以下の図のように配置を工夫することができます。

配置の工夫

検索画面で利用できる数式

「複数の項目のいずれかに値が入っていたら表示したい」

「テンプレート」検索画面を利用しているお客様でこんなお問合せがありました。見積りの明細オブジェクトに仕入先1、仕入先2、仕入先3・・・といった複数の参照項目があります。 この複数の参照項目のいずれかに、例として「テラスカイ」という仕入先が含まれているレコードを絞り込みたいというご要望でした。
そんな場合の数式を使った解決方法を紹介したいと思います。

まず本来であればSkyVisalEditorの検索画面の検索条件にはORのブロックを作成する機能があります。

SkyVisalEditorでのスタジオでの設定
OR条件の設定

そして、デプロイ後Salesforceで確認します。この例では検索条件項目が1つしか配置してないのでまだ良いですが項目が多いと 条件のブロックが画面の多くを占領することになってしまいますね。 それにすべてのブロックに同じ条件を選ばないといけないのでこれもまた面倒ですね。

デプロイ後Salesforceで確認
OR条件の設定後のSalesforceでの表示

ではこちらを、数式項目で解決しましょう!とっても簡単です。 戻り値がテキスト型の数式項目を作成します。それぞれの項目のName項目を連結します。

仕入先1がField1、仕入先2がField2、仕入先3がField3というAPI参照名としてみてください。

 Field1__r.Name & Field2__r.Name & Field3__r.Name

作成できましたらSkyVisualEditorに戻って検索条件に設定します。ポイントは検索条件を含むにしておくことです。
複数の項目を検索条件に使用する

さあデプロイ後の画面で確認してみましょう!検索条件に「テラスカイ」と入力して、検索ボタンを押してみましょう。 仕入先1の項目にテラスカイ、仕入先3の項目にテラスカイと入ったレコードが抽出されているのが確認できるかと思います。

参照画面で利用できる数式

「数式項目を設定して画面遷移」

こちらも明細行などに使いたいのでとお問合せのあるものになります。以下のようなハイパーリンク関数を利用することによって画面遷移リンクを表示できます。

 HYPERLINK("/" & Id & "/d", "詳細")

「入力時に接頭語・接尾語は設定できるが表示時にはなくなる」

SkyVisualEditorの入力項目にはパネルグリッドに配置した際に接頭語・接尾語を設定できる機能があります。 主には金額の項目などに「円」など単位を表示したり、 人数を入力する欄に「人」と表示したりできます。 ただしこの機能は参照項目では使えないので、入力と同じように接頭語・接尾語がほしいとお問合せいただくことがあります。




こちらは、戻り値テキスト型の項目に接頭語・接尾語を&で連結してください。

  TEXT(Amount) & "円"

以上、SkyVisualEditorの製品サポートでお問合せの多い数式を利用することで解決できるものを紹介させていただきました。皆様のお役に立てれば幸いです。 また、次の機会にも紹介できればと思います。

-----イベント情報-----
明日、TerraSkyDay2016開催です! 詳細・お申込みはこちら!

1 件
     
  • banner
  • banner

関連する記事