何を実現したいのかを書きましょう
お世話になっております。
kViewerとFormBridgeを連携させており、
フォームブリッジの中に入れたテーブルの中の項目をバブルソートで降順で並べさせているのですが、うまくいかないパターンがありアドバイスをいただきたいです。
下記の事象が仕様なのか、ソースに改善点があるのか悩んでいます。
■使用ツールとページ
kViewer
FormBridge
■やっていること
①kViewerを入口として任意のレコードをFormBridgeで編集する
②確認ボタンを押した際にJSでテーブル内の当年売上総額を基準に降順で並び変える
発生した問題やエラーメッセージを具体的に書きましょう
■困っていること
当年売上総額の項目について、新規入力した行は問題ないが、既存で入力してある行についてはうまくソートされない
既存で入力してある行を並び替えする(確認ボタンを押す)と右図のようにおかしくなる
■仮説
いくつかのパターンで検証したところ、
当年売上総額の項目を少しでも数字を編集した場合は問題なく並び替えが走るが、
既存で入力された行を並び替えする場合はおかしくなるようです。
実行したコードをコピー&ペーストしましょう
(function(){
"use strict";
fb.events.form.confirm = [function(state){
//デバックログ
console.log(state.record);
//console.log(state.record.テスト.value.length);
for ( let outer = 0; outer < state.record.テスト.value.length-1; outer++ ) {
console.log(outer + 1 + "週目");
for ( let i = state.record.テスト.value.length-1; i > outer; i-- ) {
console.log('現在のインデックス:' + i);
console.log('比較:i('+state.record.テスト.value[i].value.当年売上総額.value + '):i-1(' + state.record.テスト.value[i-1].value.当年売上総額.value +')' );
if ( state.record.テスト.value[i].value.当年売上総額.value > state.record.テスト.value[i-1].value.当年売上総額.value ) {
//log
console.log('swapped');
let tmp = state.record.テスト.value[i];
state.record.テスト.value[i] = state.record.テスト.value[i-1];
state.record.テスト.value[i-1] = tmp;
}
}
}
return state;
}];
})();
よろしくお願いいたします。