mls-hashimoto さま
お世話になってます。色々調べたらライブラリがおかしいかもと思い、
https://unpkg.com/dayjs
https://unpkg.com/dayjs@1.7.7/locale/ja.js
の代わりに
https://cdn.jsdelivr.net/npm/dayjs@1.10.8/dayjs.min.js
こちらを組み込んだらエラーは出ませんが、計算がおかしいので引き続き検証してみます。
mls-hashimoto さま
お世話になってます。色々調べたらライブラリがおかしいかもと思い、
https://unpkg.com/dayjs
https://unpkg.com/dayjs@1.7.7/locale/ja.js
の代わりに
https://cdn.jsdelivr.net/npm/dayjs@1.10.8/dayjs.min.js
こちらを組み込んだらエラーは出ませんが、計算がおかしいので引き続き検証してみます。
FURUNO.T さま
画面に出すかコンソールに出すかで解決するかもしれません。一度こちらを試してみてください。
// 予定日数に応じて利用料金を決定
alert('予定日数は' + rec['予定日数'].value + 'で、料金テーブルから取得したレコードの日数は' + respRecord['日数'].value + 'です');
if (rec['予定日数'].value > respRecord['日数'].value) {
if (rec['条件'].value == '通常') {
rec['利用料金'].value = respRecord['M'].value;
} else if (rec['条件'].value == '特約') {
rec['利用料金'].value = respRecord['特約M'].value;
}
} else {
rec['利用料金'].value = unitPrice * rec['予定日数'].value;
}
mls-hashimoto さま
お世話になってます。
上記アラートに
‘で、特約日数は、’ + respRecord[‘特約日数’].value
と組み込んで実行したところ、
前述質問の① 症状はそのままで(3~9の際の予定日数、料金テーブルの日数とも正常に引いてます)、
②特約時は、料金テーブルの特約日数ではなく日数を参照しています。
また、
https://cdn.jsdelivr.net/npm/dayjs@1.10.8/dayjs.min.js
こちらのライブラリと差し替えて、出発日を入力すると、
”カスタマイズ用のJavaScriptの実行時にエラーが発生しました”
調べてますが、ギブします。
宜しくお願い致します。
FURUNO.T さま
アラートには何が表示されていますか?最初の書き込み時から仕様が変わっているようなので、私の現在の認識と相違ないかの確認のつもりでアラートを組み込みました。一度本当に実現したいことを整理したいと考えています
「カスタマイズ用のJavaScriptの実行時に…」は、JavaScriptの処理自体は成功しているものの、kintoneのフィールドに代入できない値を入れようとした時に出ることが多いエラーという認識です(例として日付フィールドに文字を代入したり、サブテーブルの存在しない行に代入したり等)
代入しようとしている値をconsole.log等で確認することで問題が分かるかと存じます。
また、エラーの確認方法ですが、コンソールサイドバー(FURUNO.T さまが添付している画像だと右上にある矢印のマーク)から見るとエラーの原因や場所がより分かりやすくなるかと存じます。
mls-hashimoto さま
お世話になってます。(どうすればコンソールを日本語に出来るのでしょうか?(当方Chromeです))
このようにコンソールにはエラーがありません。このまま入力を続け保存もできます。
また、おっしゃるとおり実現したいことのおさらいを致します(因みにこのスクリプトでもコンソールにはエラーがありません)。
①請求appの出発日と予定日数から帰着日を求めます。時刻はイコールです。
②請求appのクラス=料金TELのクラス(ユニークキー)が同じの場合、
a. 請求appの条件が通常の場合は料金TBLの単価を、 特約の場合は料金TBLの特約単価を請求appの単価に表引き
b. 請求appの利用料金は、
・請求appの条件が通常 and 予定日数 >料金TBLの日数が
falseの場合、 単価 × 予定日数 // aで求めた単価
trueの場合、料金TBLのM
・請求appの条件が特約 and 予定日数 >料金TBLの日数が
falseの場合、 単価 × 予定日数 // aで求めた単価
trueの場合、料金TBLの特約M
をそれぞれ請求appの利用料金にセット
以上になります。解りにくい場合は再度ご連絡下されば幸いです。
宜しくお願い致します。
こんばんは!
すごく横槍で申し訳ないのですが、
Day.js がうまく動かないようですが、Day.jsについて調べたり検証をするよりは
Cybozu CDN で準備されている Luxon.js を使うのをおすすめしたいです。
Luxon を使って kintone の日付や日時フィールドのフォーマットをカスタマイズする
また、kintoneカスタマイズのJavaScriptを勉強したいということでしたら
チュートリアルを一通りやってみたり
https://developer.cybozu.io/hc/ja/articles/360024370392
kintone dev campに参加されてみたり
https://page.cybozu.co.jp/-/kintone-devcamp-stepup
するのをおすすめしたいです^^
それと、
Chromeのコンソールの日本語化は、実はグーグル検索すればやり方がヒットしますので
ぜひ検索してみてください^^
やりたいことが整理されたら、プログラミングを少しずつ実行して動作確認しての繰り返しで組み立てていくと上達すると思いますので、ファイトです
横槍失礼しました応援しております~!
juridon さま
レス遅くなりすみません。
日付計算は非常にめんどくさいのですね。どのやり方が最適なのか、Luxon が最適なのかすら理解できてない超初心者です。Luxon のサンプルコードを漁って検証してみます。
コンソールの日本語化、簡単にできました。kintone dev campは、平日午後の2時間くらいとのことでしたので、参加したのはやまやまですが、勤務時間帯なので難しいかもです。
色々とありがとうございます。
juridon さま
Luxon の件、以下のように一行ですっきり収まるので、Luxon は良いですね。
日付計算はこれでOKです。次は表引き計算が未だ解決できず困ってます。
var yoDay = record[‘予定日数’].value;
if (event.record[‘予定日数’].value) {
record[‘帰着日’].value = luxon.DateTime.fromISO(strDate).plus({days: yoDay}).toFormat(‘yyyy-MM-dd’)};