12

皆さん、

私は、多くのアプリケーションに共通していると確信しているPHP5 UIの一部を構築しようとしています。基本的に、これはユーザーが次のように論理演算子 (AND/OR) を介して結合された式を指定できるようにする式ビルダーです。

  • FieldX > 3 AND FieldY = 5
  • FieldY = "bob" かつ FieldZ が null ではない
  • FieldX > '5/23/2007' OR (FieldY = 5 AND FieldY が null でない)

理想的には、このようなシステムにより、プログラマーとして、ユーザーが選択できるパラメーター (列) のリストとそれぞれのデータ型を指定できるようになります。また、そのような式を定義するための使いやすいインターフェイスを提供します。各行に複数のピッカーがあるテーブルのようなものを想像しています。

[列] [条件] [値] [AND/OR] [列] [条件] [値] [AND/OR] ...

そのようなことをするオープンソースのコンポーネントを知っていますか? それとも、この種の機能の一部ですか?

4

8 に答える 8

12

注意の言葉。これらのタイプの一般的な式ビルダーは、さまざまなユーザーの問題に対する優れたソリューションと一般的に考えられています。考え方は次のような傾向があります。

  • ユーザーはこれらすべての異なるレポートを必要としています
  • SQL アクセスを許可する方法はありません (たとえ理解できたとしても)。
  • これらすべてのカスタム レポートを作成する時間がありません
  • したがって、特定の構文、テーブル、およびフィールドを知らなくてもクエリを作成できる簡単な方法を作成します。

これは必ずしも悪い考えではありませんが、私の会社でわかったことは、技術に詳しくないユーザーは、ANDS のグループや ORS のグループよりも複雑な式を理解して構築するのが驚くほど困難であるということです。私たちプログラマーにとって、これを理解するのは困難です。なぜなら、私たちのほとんどは、プログラミングを学ぶ前からブール論理を直感的に理解していたからです。

彼らが望むどんな表現でも作成できる完全な柔軟性を彼らに与えようとするのではなく、代わりに、プログラマーがバックエンドでより複雑なものを定義できるようにし、フロントでユーザーに簡単な選択肢を提供できるようにする UI をまとめることをお勧めします。終わり。これは言うは易く行うは難しです。

覚えておいてください - エンドユーザーにとっての困難は、自分のアイデアを表現するための正しい構文を知らないという事実ではないことがあります.これを行う簡単な方法が提供されました。

注: エンド ユーザーが常にバカだと言っているのではありません。

于 2009-06-16T20:27:56.203 に答える
1

これをチェックしてください:http://www.codeproject.com/KB/custom-controls/SqlWhereBuilder.aspx

コンポーネントのクライアント側 JavaScript ライブラリ バージョンをダウンロードし、必要に応じてカスタマイズします。乾杯。

于 2010-09-17T12:25:45.863 に答える
1

これは非常に興味深いアイデアだと思います。このプロジェクトに個人的な使用または仕事を通じて取り組む予定はありますか?

このプロジェクトに個人的に取り組むことを計画している場合は、自分で作成してオープン ソース プロジェクトにする必要があります。すでにこの分野に興味を持っているようで、良い勉強になると思います。

そうでなければ、企業がこのようなものにどのように価値を見いだすことができるかがわかります。それは、プログラマーに、彼らの仕事を少し楽にし、長期的に見返りをもたらすのに役立つ別のユーティリティを提供します.

いずれにせよ、このプロジェクトは勝利です。多くのことを学び、他の人が役立つと思うものを作成します。

于 2009-06-12T15:32:24.487 に答える
1

これは正確にはコンポーネントではありませんが、Magento のショッピング カート ルール ビルダーの [Conditions (条件)] タブを参照して、このタイプの機能の確実な PHP 実装を確認してください。これは e コマース向けにカスタマイズされているため、一般的なデータベース オーバーレイではありませんが、優れた条件ビルダー インターフェイスを備えています。

于 2009-06-12T15:37:38.780 に答える
0

オブジェクト指向のクエリ モデルを作成することから始めます。例えば。基準オブジェクト。次のステップは、このモデル構造を操作できる UI を作成することです。

于 2009-06-09T11:56:38.343 に答える
0

私は最近、そのような機能を自分で作成しましたが、私見ですが、独自の実装を作成する方が簡単です。

于 2009-06-09T13:50:15.883 に答える
-1

これは一般的にPHPよりもUIに関連していると思います。質問にタグを付け直したほうがいいです。PHPでこれらの定義を解析したいだけかもしれません。この場合、preg_replace_callbackを使用することをお勧めします。

于 2009-06-09T08:32:49.630 に答える
-5

テンプレートエンジンであるsmartyを使ってみませんか。ユーザー入力を取得して解析するだけです。

私が考えている今、これを行うには、インジェクションを避けるためにユーザー入力をチェックする必要があります。

于 2009-06-09T03:14:56.980 に答える