テーブル・条件分岐

はじめまして。

Kintoneの開発からJavascriptを勉強始めた初心者です。

下記条件文におけるアドバイスを頂けないでしょうか。

テーブルに[寸法A]と[寸法B]の入力欄があり、下記の条件を組みたいと考えております。

寸法AとBが1000以下の場合は価格=X

それ以外は価格=X*1.2

寸法AとBに値が入っていない場合は[価格]欄を非表示にする

 

よろしくお願いします。

shu-chan-sanさん、こんにちは。

同じくJavaScript勉強中です。自分の勉強も兼ねて詳しめに書かせていただきます。
すでにご存知でしたらご容赦ください。また、間違っていたり、さらに良い考え方があればみなさまコメントよろしくお願いします。

 

価格 = X * f  として、

①AとBが1000以下の場合、f = 1.0 → 価格 = X * 1
②それ以外の場合、 f = 1.2 → 価格 = X * 1.2

という考え方でよろしいでしょうか。

上記の①②の場合分けについては、IF文を用いた場合(解説記事

if (条件①){
    条件①のときの処理; // ここに f = 1 の処理を書く
} else {
    それ以外の場合の処理; // ここに f = 1.2 の処理を書く
}

となると思います。

条件①のカッコの中は、寸法Aが1000以下 かつ 寸法Bが1000以下 なので、

A <= 1000 && B <= 1000

演算子の使い方は、こちら(比較演算子論理演算子)を参考にしてみてください。

 

上記のif文の中で、fを決めてあげて、
その後で、価格を計算し、価格フィールドを更新してあげる、という手順となります。

フィールドの更新については、こちらの記事などを参考にしてください。

 

 

Matsuda様

コメント、ありがとうございます。

頂いたアドバイスをもとに構築を進めたところ、テーブル内の情報取得に失敗していることがわかりました。

根本的な部分で大変恐れ入りますが、下記のアドバイスを頂けませんでしょうか。

*上記AとBはLとWに置き換えております。

 

よろしくお願いします。

こんにちは。

サブテーブルの行は複数あるものなので、

https://developer.cybozu.io/hc/ja/articles/202166330

のテーブルのところに記載があるように、配列で各行のデータを持っています。

 

なので、サブテーブルのあるフィールドの値を取得または更新する場合は、

こちらの記事等で説明されているように、行数(配列数)を取得し、行数のぶんループを回して処理する必要があると思います。

上記記事で李さんが記載されているソースの中で、[i]が配列番号となります。

このソースがまるまる参考になると思います。

 

 

Matsuda様

早速の返信、ありがとうございます。

> サブテーブルの行は複数あるものなので、

ループ処理を回している理由がやっとわかりました。

配列番号を付与してループを組み込んだところ、当初の目標通りに動きました。

誠にありがとうございます。

 

また、追加のアドバイスを頂きたいのですが、お願いできませんでしょうか。

①テーブルの列が増えてしまい、単価が見辛くなってしまいました。

列を並び替えることは可能でしょうか?

②本番環境では、もっと列を増やす予定でおります。

表示不要な項目は非表示にしたいのですが、こちらも可能であるか、アドバイス頂けませんでしょうか?

 

よろしくお願いします。

shu-chan-san さん、 Shotaro Matsuda さん

横から失礼します。 それぞれ参考リンクをご紹介します。

>①テーブルの列が増えてしまい、単価が見辛くなってしまいました。
>列を並び替えることは可能でしょうか?

API で、設定可能です。

フォームのレイアウトを変更する

>②本番環境では、もっと列を増やす予定でおります。
>表示不要な項目は非表示にしたいのですが、こちらも可能であるか、アドバイス頂けませんでしょうか?

DOM操作でサブテーブルの列を複数行非表示にしたい

ただ、どちらも結構面倒なので、有償ですがプラグインで対応可能です。

テーブルレイアウト設定プラグイン

項目非表示プラグイン