値のコピー

お世話になっております。

kintoneの標準機能で文字列1行を自動計算にして、他フィールドの値をコピーする方法があります。

【日時】【文字列】【数値】のように3つの項目をコピーして表示する場合は、

日時 & 文字列 & 数値 のように設定すると思うのですが、3つの項目の内1つでも空白があると【#N/A!】で値が表示されます。

これを、空白があっても下記例のように表示できるようにする方法はありますでしょうか?

*-----------------------------------*

例:文字列が空白の場合

2017/07/28 10

例:数値が空白の場合

2017/07/28 あああ

例:日付が空白の場合

あああ 10

*-----------------------------------*

お手数でございますが、ご教授お願いします。

 

Naoさん

こんにちは。
お役に立つかはわかりませんが、数値フィールド/日付フィールドを文字列フィールドに変更して
お使いいただけるようであれば、質問くださった内容は標準機能でも一応実現できます。

詳しくはこちらのURLをご参照ください。

https://developer.cybozu.io/hc/ja/community/posts/115018284883

李智恩様

ご返信ありがとうございます。

色々調べて、現在下記コードで対応しているのですが、

(function () {
    "use strict";
    
    moment.locale('ja');
    
    var events = [
        'app.record.detail.show',
        'app.record.create.show',
        'app.record.edit.show',
        'app.record.create.change.日付',
        'app.record.edit.change.日付',
        'app.record.create.change.文字列',
        'app.record.edit.change.文字列',
        'app.record.create.change.数値',
        'app.record.edit.change.数値'
    ];
    
    kintone.events.on(events, function(event) {
        kintone.app.record.setFieldShown('文字列表示用', false);
        var record = event.record;
        var val1 = record['日付']['value']
        var val2 = record['文字列']['value']
        var val3 = record['数値']['value']
        record['文字列表示用']['value'] = val1 + val2 + val3;
        var val4 = record['文字列表示用']['value']
        val4.replace(/undefined/g, "");
        return event;
    });
})();

新たに問題がございまして、上記コードですと空白があると「undefined」の値が返って表示されてしまいます。。。

val4.replace(/undefined/g, "");

replace関数で文字置換で対応しようとしているのですが、やはり「undefined」で値が表示される状況です。

何かよい方法があれば、ご教授いただければ幸いです。

度々お手数でございますが、ご確認お願い致します。

 

 

Nao さん、李智恩さん 横から失礼します。

undefined 対応として、よく使うのが下記のようなコードです。
項目値が undefined の場合、‘’ を設定します。

kintone.events.on(events, function(event) {
kintone.app.record.setFieldShown('文字列表示用', false);
var record = event.record;
var val1 = record['日付']['value'] || '';
var val2 = record['文字列']['value'] || '';
var val3 = record['数値']['value'] || '';
record['文字列表示用']['value'] = val1 + val2 + val3;
return event;
});

rex0220様

ご返信ありがとうございます。

ご教授いただいたように設定し、undefinedの表示を消すことができました。

ありがとうございます。

今後ともよろしくお願いいたします。