満足への果てしない旅
2018/08/22
IT 仕事jQueryのプラグインであるDataTablesで複数レコードの更新ができない…?!
山口建設では、効率的な業務運営のために様々なIT化の取組を実施しております。
数ある中の一つに、掛率管理というものがあります。
我々リフォーム会社は、直接メーカーから商品を買うことはなく、問屋さん経由で商品を買っています。
山口建設が取り扱う主要な商品だけでも200を超えます。
- どこのメーカーの商品が、どこの問屋さん経由だとどれぐらいで買えるのか?
- どこの問屋さんが一番効果的なのか?
などの判断をする必要がありますが、商品一覧を作って、入力したものを送ってもらって、一覧表に記載をしなおして、などとしていくとかなり大変になります。
そこで、掛率管理システムです。
このように各メーカーの商品の掛率が、問屋毎に一覧で分かるようになっています。
今夏は各メーカー、新商品が登場しているので、メーカーの担当者さんに、商品登録を実施してもらい、それに応じて問屋の担当者さんに、掛率の登録をお願いしたのですが、どうやらシステムとして登録できていなかった模様…。
DataTablesのエクセル出力を実施するために、CDNを公式ページを参考にして更新したのが影響したのか、全く不明。
200レコードぐらいはあるのに、POSTされるレコードが80で終わってしまっています。
上図の画面のようなスクロールバーを構成するために、DataTablesのオプションに下記のような記載を実施していました。
scroller: true,
scrollX: true,
scrollY: 500,
bPaginate: true,
この、scrollYの値を増やすと、POSTされるレコード数も増えるということが判明。
実際にページングは不要なのですが、bPaginateか?ということで、bPaginateをfalseにすると、下図のような警告が表示されてしまう…
フォーラムでも「New version of scroller error “Pagination must be enabled for Scroller” why should pagination be on?」として記載されていたので、bPagenateはtrueにしないといけないのかなーと思いつつ、試行錯誤の結果、下記であればDiv内にスクローラーが付き、さらにはレコードも全て送信することができました。
scroller: false,
scrollX: true,
scrollY: 500,
bPaginate: false,
scrollerがfalseなら、bPaginateもflaseにすればいいんですね。
そして、これらがfalseでも、Div内のスクロールは保たれたままでした。
Scrollerの扱いを根本的に勘違いしてそうですが、これで適切に運用を再開できそうで何よりです!