単価の変更

kintoneの初心者です。よろしくお願いたします。

ルックアップで取得した商品単価を変更可能にしたいのですが、どうすればいいのでしょうか?

よろしくお願いいたします。

こちらのプログラムをアプリに設定すればできますよ!

「商品単価」のところは御自身のアプリの当該フィールドコードに変更してくださいね。

(function() {
    "use strict";
    kintone.events.on(["app.record.index.edit.show", "app.record.edit.show", "app.record.create.show", "mobile.app.record.edit.show", "mobile.app.record.create.show"], function(event) {
        event.record["商品単価"].disabled = false;
        return event;
    });
})();

たねまき様

大変ありがとうございます。

JSEdit for kintoneというプラグインを設定して、そこに上記プログラムをコピーするという手順でしました。

そして、名前も、"tanka"と変更しました。

しかし、うまくいきません。

「こちらのプログラムをアプリに設定すればできますよ!」という点が、理解できていないので、うまくいかないのでしょうか?

よろしくお願いいたします。

「運用環境に反映する」にチェックを入れて保存していますか?
また、設定先はPCのJavaScriptですか?

もし正しく反映されていて、尚且つフィールドコードも間違いない場合は、こちらの記事を参考にエラーメッセージをご確認いただけますでしょうか。
https://developer.cybozu.io/hc/ja/articles/207613916-%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84-%E3%81%9D%E3%82%93%E3%81%AA%E6%99%82%E3%81%AF%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-%E5%85%A5%E9%96%80%E7%B7%A8

下記のエラーが出力されています。

これが対象のエラーなのかどうかわからいのではありますが。

 

スクリーンショットの御提供ありがとうございます。
「disabledが見当たらない」というエラーメッセージですが、やはりフィールドコードが実際の設定と異なっているのではないでしょうか。
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/fieldcode.html

ちなみに下記のような入力画面です。

商品単価はとりあえず初期値として商品マスターの値をセットして、必要に応じて変更するという仕様です。

伝票イメージなので複数行が発生します。テストでは一行ですが。

テーブルの場合は下記コードのようにする必要があります。

event.record["テーブル"].value[0].value["tanka"].disabled = false;

「0」のところはテーブルの表示行数分行う必要がありますし、行追加された場合の編集可能処理も必要になります。

詳細はこちらの記事が参考になるかと思います。

たねまき様

大変お世話になります。

どうにかテーブルの単価を入力可能にするところまで、おかげさまでできました。

あとは、複数対応です。大変ありがとうございました。ちなみに下記のとおりです。

おまじないのようで、何がどんな意味なのかはほとんどわかりません。

暇なときにでも、文法を簡単に書き込んでいただければありがたいです。頼りすぎですいません。

初心者の感想

kintoneは素人にはハードル高すぎる感じがします。

しばらくトライしてみようと思いますが。

反町様

kintoneがというよりもこちらはJavaScriptという言語になりますので、まずはそちらを基本から学習されるとより理解が深まると思います。

その上で、本developer networkサイトのAPIドキュメント等をお読みいただくという方が良いかもしれませんね。

 

ちなみに、上記コードは、

レコード作成・編集時に、「明細」テーブルの1行目にある「単価」フィールドを編集可能にする

という内容となっています。

kintoneのテーブルフィールドはJSで言うところの配列にて管理されているので、複数行対応するにはその配列全てに処理を行うということになってきます。