いいね!数

0

閲覧数
98

いつもお世話になっております。

 

基本的なことで恐縮です。

ソートキーSEQ、カテゴリ名、名前

のようなフィールドがあります。

ソートキーは桁に意味を持たせず、文書に対してひたすら1から順番に振られています。

この文書をビュー表示する際、

ソートキーSEQ列(最終的には非表示)でソートしたのち、

カテゴリ名でカテゴリ化したいのですが、

カテゴリ名がうまくカテゴリ化されず、バラけて表示されてしまいます。

バラけて表示されるビューのカテゴリ

 

Category_BBBならば1、Category_AAAならば2

のような列を追加し、あらかじめソートすれば、意図したものになるのですが、

ハードコーディングせねばならず、またカテゴリが一定ではないため、この実装はキビシメです。

ハードコードでうまく表示できるが...

 

連携元データがあるので、

カテゴリソートキーをもらえればいいのですが、

事情により厳しいので、できればノーツの機能で実装できればと考えております。

ちなみに、カテゴリ名はソートキーSEQで並べれば、飛び飛びにはならず、

必ずかたまっています。

 

以上、なにかいい方法があれば、教えていただきたく存じます。

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

 

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - Notes アプリ | タグ:
  | 質問日時:Feb 27, 2017 12:35:51 PM

回答・コメント

いいね!数

0

こんにちわ。

カテゴリー列をどの順序でソートしたいのか、ハッキリと書いてないので回答がつかないのかも。

普通はカテゴリ列を1列目にして、文字コード順にソートするのが、よくあるパタンだけど、BBBのほうがAAAより先に来てるのがよくわからない。

予想だけど、新たなカテゴリ名が出現した順ということかしらん。

/Yac

 

回答日時:Feb 28, 2017 8:10:50 AM

いいね!数

0

yac4423さま

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

カテゴリの並び順は

ソートキーSEQで並べたときの出現順

ということになるかと思います。

例であげたケースだと、

SEQ8の文書があったとすると、"BBB"や"AAA"がカテゴリになることはありません。

 

連携元でカテゴリの並び順を決めていて、

おそらく「カテゴリでソート、明細でソート」

したものに対して、一気通貫したソートキーSEQを付加しているのではないかと思われます。

(が、内部ロジックを知る術がなく。。。)

この順番を崩したくない、というユーザ部門からの要望があり、

困っているしだいです。

 

回答日時:Feb 28, 2017 9:58:45 AM

いいね!数

1

ということは、Notes側で新たに文書を新規作成して、新しいカテゴリを入力するようなことはなくて、連携元の表示順序をそのまま引き継ぎたい、ということでよろしい?

連携元の表示順は、単にSeqNoで並べればよくて、カテゴリは必ず固まるというルールがある。

連携元からの取り込み処理は何かのプログラムでやってるんですよね。

そこに新しいカテゴリが登場するたびにCategorySeqを生成して、Notes側文書内に書き込めば良さそうな。

もしくは、いったん取り込んだ後で、SeqNo順に並べといて、カテゴリが変化するごとにカウンターをインクリメントしながら、文書内のCategorySeqに書き込んでいく、という手もありそう。

/Yac

回答日時:Feb 28, 2017 1:04:58 PM

いいね!数

0

yac4423さま

ご回答ありがとうございます。

やはり文書をどうにかするしかなさそうですね。

ビューでどうにでもできると思ってたのが甘かった~。

 

元データ(CSV)自体が、実はソートキーSEQとは別キーでソートされており。(汗)

ブレイク処理はなかなか手間がかかりそう、と思っていたところでした。

>もしくは、いったん取り込んだ後で、SeqNo順に並べといて、カテゴリが変化するごとにカウンターをインクリメントしながら、文書内のCategorySeqに書き込んでいく、という手もありそう。

この方法ならわりとスムーズに実装できそうです。

ご助言ありがとうございました!

 

回答日時:Feb 28, 2017 1:54:18 PM

いいね!数

0

念のため、追記です。

>ということは、Notes側で新たに文書を新規作成して、新しいカテゴリを入力するようなことはなくて、連携元の表示順序をそのまま引き継ぎたい、ということでよろしい?

Notes側ではユーザによる文書の新規作成は発生しません。

もし発生していたらさらにややこしいですね。(^^;;

回答日時:Feb 28, 2017 2:06:12 PM