FAQ-146 レイヤ内容でカスタム条件を元にデータセットをフィルタするには?
最終更新: 2018/07/08
複数のワークブックやシートがあり、レイヤ内容 ダイアログでデータを追加したり削除する場合、左パネルで目的の列を見つけるのに時間がかかることがあります。組み込みの利用可能なデータドロップダウンリストを使用する方法のほかに、このリストにカスタム条件を追加して、より効果的にフィルタをかけることができます。
同じプロジェクト内のすべての列から、ショートネームがA (例: Col A )のというフィルタを、レイヤ内容 ダイアログの左パネルで使用したい場合を考えます。 カスタム条件を追加するには、
- コードビルダを開き、新しいCファイルを作成して以下の関数を入力します。
BOOL MySelection(OriginObject& obj, int nType) { switch ( nType ) { case QUERYRESULTS_FILTER_ELEMENTTYPE__FOLDER: return TRUE; case QUERYRESULTS_FILTER_ELEMENTTYPE__PAGE: { WorksheetPage wksPage; wksPage = (WorksheetPage)obj; return wksPage.IsValid(); } case QUERYRESULTS_FILTER_ELEMENTTYPE__LAYER: { Worksheet wks; wks = (Worksheet)obj; return wks.IsValid(); } case QUERYRESULTS_FILTER_ELEMENTTYPE__COLUMN: { Column col; col = (Column)obj; if ( !obj ) return FALSE; string strName; col.GetName(strName); return strName.Compare("A") == 0; } } return FALSE; }
- このファイルをコンパイルして、ワークスペースをビルドします。
- レイヤの内容 ダイアログの、利用可能なデータのドロップダウンリストにカスタム条件を追加するには、User FilesフォルダにあるOrigin.ini を、テキストエディタで開いて、このファイルの最後に以下のスクリプトを貼り付けます。保存してファイルを閉じます。
[DatasetFilterFuncs] ShowColAOnly=MySelection|Column User Defined=Oubtn.ini
- グラフ操作: レイヤ内容を選択し、レイヤ内容をクリックします。 を選択してダイアログを開き、左パネルにある利用可能なデータドロップダウンをクリックします。リストの最後にShowColAOnly という項目が追加されていることがわかります。
- ドロップダウンリストからShowColAOnlyを選択します。プロジェクト内の、ショートネームがA であるすべての列が左パネルに表示されます。
Note:コードビルダー内でシステムフォルダに作成したCファイルを追加することでOriginを立ち上げるとすぐに利用できるようになります。
Origin 2018bでは、ワークシートのタブを右クリックし、作図ダイアログから除外を選択し、作図セットアップとレイヤ内容ダイアログで表示されるワークシートを制限できます。 |
キーワード: フィルタ, レイヤ内容, 列