Implem / Implem.Pleasanter

Pleasanter is a no-code/low-code development platform that runs on .NET. You can quickly create business applications with simple operations.
https://pleasanter.org
GNU Affero General Public License v3.0
511 stars 81 forks source link

view.FiltersがOR条件でフィルター、または AND条件とOR条件の両方の組み合わせでは正しく機能しないようです。 #545

Open minhhn0205 opened 3 weeks ago

minhhn0205 commented 3 weeks ago

以下のリンクのマニュアルに従って表示レコードをフィルタリングしてみました。 https://pleasanter.org/manual/server-script-view-filters

ですが、 ● AND条件しかないでレコードをフィルタリングすると正しく機能すると思われます。

view.Filters.Status = '["900"]'; view.Filters.DateA = '["Today"]';

✖ OR条件でフィルター、または AND条件とOR条件の両方の組み合わせでは、結果が不正確になるように見えます。 ▲OR条件でフィルター

// 画面からのフィルタ操作を無効化 view.Filters.ClassA = ''; view.Filters.Status = ''; // OR条件の設定 let data = {}; data.Status = '["900"]'; data.ClassA = '["設計"]'; view.Filters.or_MyFilterName = JSON.stringify(data);

▲AND条件とOR条件の両方の組み合わせでフィルター

if (context.UserId !== 2) { let data1 = {}; data1.ClassA = '["設計"]'; data1.ClassD = '["3"]'; let data2 = {}; data2.ClassA = '["テスト"]'; data2.ClassD = '["7"]'; let data = {}; data.and_Filter1 = JSON.stringify(data1); data.and_Filter2 = JSON.stringify(data2); view.Filters.or_Filter = JSON.stringify(data); }

nagamune-implem commented 2 weeks ago

Issueありがとうございます。 まずはこちらで内容を確認させて頂こうと思います。

nagamune-implem commented 5 days ago

Issue内容に関して質問がございます。

ClassAに関しては、選択項目で定義されていますでしょうか?(フリーテキスト形式ではない。)

data.ClassA = '["設計"]';」とコードを書いた場合には選択項目と解釈されます。

テーブルの管理:エディタ:項目の詳細設定:選択肢一覧 | Pleasanter https://pleasanter.org/manual/table-management-choices-text

記述例2 の選択記載例で説明しますと AC7459,製品A 上記の場合には"AC7459"が一致した物がフィルター条件となり data.ClassA = '["AC7459"]'; コードで書くと上記となります。

文字列そのものをフィルター条件としたい場合には data.ClassA = '設計'; のように「設計」前後のカッコとダブルクォーテーションを外して記載してください。

もし私のIssue内容の認識に間違いがある場合には、お手数をおかけして申し訳ございませんが、具体的な不具合内容の情報を頂けますと嬉しく思います。