2011-10-20 11 views
5

Mathematicaのカラムが多いデータベースから、より少ない数のカラムに対してSQL SELECTクエリを行うための簡単なインタフェースを作りたいと思う。
私は、たとえば、列名の私のリストを持っている:私はやりたい何リストから操作する、チェックボックス

dbColumnNames={"name1","name2","name3",...."nameN"} 

は、リストの要素と同じ名前のこのリストの各要素のチェックボックスを持つことである、とするときチェックされた列名のリストを取得したことを確認しました。例えば、私は「NAME1」、「name50」、「name74」をクリックして
、リストは次のようになります。私はそのリストを持っていた場合

selectedNames={"name1","name50","name74"} 

、それはSQLクエリ文字列を作るのは簡単です。

答えて

5

CheckboxBarTogglerBarのヘルプをご覧ください。

dbColumnNames = {"name1", "name2", "name3", "name4", "name5", "nameN"}; 
TogglerBar[Dynamic[selected], dbColumnNames] 

Mathematica graphics

その後、評価、選択したいものをクリックしてください:

selected 

は、そのシンボルの現在の値を表示するにはここで

は実施例です。シンボル名selectedは任意です。


あなたは長い名前を持っている場合は、あなたが好むかもしれ:

CheckboxBar[Dynamic[selected], dbColumnNames, Appearance -> "Vertical"] 

Mathematica graphics

あなたが列名のたくさんを持っている場合は、あなたが好むかもしれ:

TextCell[ 
TogglerBar[Dynamic[selected], dbColumnNames, Appearance -> "Row"], 
LineIndent -> 0 
] 
+0

をTextCell [CheckboxBar [Dynamic [selected]、dbColumnNames]、を使用しましたLineIndent - > 0]、それほどきれいではありませんが、それは仕事をします。ありがとうMr.Wizard。 – enedene

+0

@enedene大歓迎です。受け入れてくれてありがとう。あなたは「あまりにもかわいい」と言っています - あなたはコードや出力を参照していますか?おそらくこれを改善することができます。 –

+0

あなたのコードは大丈夫です、私は330列を持っているので、出力が少し面倒です。しかし、私は欲しかったことを得ました。私は動的に、そして高速にSQLクエリーを変更できます。すべての美的改善のために、私は機能を失わないように何らかの方法でこれらの列をグループ化する必要があります。今はそれが優先事項ではありません。 – enedene