1.31 FAQ-146 如何根据 Layer Contents 中的自定义条件筛选数据?

Last Update: 11/13/2018

当使用多个工作簿和工作表中的数据在 图层内容 对话框中添加或删除绘图时, 在左侧面板中找到目标数据列将是一项耗时的工作。除了使用软件内置的 可用数据下拉列表 进行操作之外,还可以在此列表中添加自定义的条件来进一步提高效率。

假如想要在 图层内容 对话框的左侧面板中筛选出该工程中所有短名称为 A (i.e. Col A) 的列。首先需要添加自定义的条件:

  1. 打开 Code Builder, 新建一个 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;
    }
  2. 编译文件并生成工作区
  3. 要把自定义的条件添加到 图层内容 对话框的可用数据下拉列表中,首先关闭 Origin,然后在电脑资源管理器中找到 User File Folder 并打开 Origin.ini 文件,最后把以下代码粘贴到此文件的末尾。保存并关闭文件。
    [DatasetFilterFuncs]
    ShowColAOnly=MySelection|Column 
    User Defined=Oubtn.ini
  4. 单击 图:图层内容... 菜单以打开 图层内容 对话框,然后再点击左侧面板中的可用数据下拉列表。就可以看到再弹出列表的底部显示有 ShowColAOnly 选项。
  5. 在下拉菜单中选择 ShowColAOnly ,则可以在左侧面板中选出工程中所有短名称都是 A 的项。


注意: 可以 在系统文件夹中添加创建的 C 文件 至代码编辑器,这样每次 Origin 启动时都会运行所定义的函数功能。


从 Origin 2018b 开始, 如果希望某些工作表不出现在 图表绘制 and 图层内容 对话框的 可用数据下拉列表中。可以在所需剔除的工作表标签的右键菜单中选择 从绘图对话框中排除


Keywords:filter, layer content, column,筛选,图层内容管理,列