<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Non-communicative data filter after sorting rows in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922353#M108116</link>
    <description>&lt;P&gt;I have a window with a dynamic data filter. The filter is used to distill a table down before going to an external python function for post processing. The filter dynamically updates well when deleting rows. However, if I sort the rows in my data table by certain column values it seems like the table is disconnected /non-communicative with the window since changing the filter no longer triggers a python call. Even if I undo the sorting it still persists. I have a feeling that this is due to the fact that sorting function replaces the current data table and it may be necessary to somehow resync the filter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Current Data Table();

// Python execution function
run_python_func = Function( { dt },
	Python Send( dt );
	Python Execute(
		{ },
		{ output },
		"\[
import jmp

# Do some stuff&lt;BR /&gt;output = 4 + 4
		]\"
	);&lt;BR /&gt;   Show( output );
);

plot_window = New Window( "Python post process",
	Data Filter Context Box(
		H List Box(
			cb = Check Box( "Enable real-time filtering" ),
			filter = (dt &amp;lt;&amp;lt; Data Filter( Local, Add Filter( columns( :DIE_ID, :MACRO, :TEST_NAME ) ) ) )
			)
		)
	)
);

// Do real-time filtering
refresh_filter = Function( { do_filt },
	If( do_filt,
		// Get selected rows and filter input data table
		rows = filter &amp;lt;&amp;lt; get filtered rows;
		dt_filt = dt &amp;lt;&amp;lt; Subset( Rows(rows), selected columns(0) );
		dt_filt &amp;lt;&amp;lt; Show Window(0);
		
		// Run python function
		run_python_func( dt_filt );
		Close( dt_filt, NoSave);
	);
);

rs = filter &amp;lt;&amp;lt; Make Filter Change Handler( refresh_filter( cb &amp;lt;&amp;lt; Get() ) );

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 07 Jan 2026 06:56:25 GMT</pubDate>
    <dc:creator>ClassDendrogram</dc:creator>
    <dc:date>2026-01-07T06:56:25Z</dc:date>
    <item>
      <title>Non-communicative data filter after sorting rows</title>
      <link>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922353#M108116</link>
      <description>&lt;P&gt;I have a window with a dynamic data filter. The filter is used to distill a table down before going to an external python function for post processing. The filter dynamically updates well when deleting rows. However, if I sort the rows in my data table by certain column values it seems like the table is disconnected /non-communicative with the window since changing the filter no longer triggers a python call. Even if I undo the sorting it still persists. I have a feeling that this is due to the fact that sorting function replaces the current data table and it may be necessary to somehow resync the filter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dt = Current Data Table();

// Python execution function
run_python_func = Function( { dt },
	Python Send( dt );
	Python Execute(
		{ },
		{ output },
		"\[
import jmp

# Do some stuff&lt;BR /&gt;output = 4 + 4
		]\"
	);&lt;BR /&gt;   Show( output );
);

plot_window = New Window( "Python post process",
	Data Filter Context Box(
		H List Box(
			cb = Check Box( "Enable real-time filtering" ),
			filter = (dt &amp;lt;&amp;lt; Data Filter( Local, Add Filter( columns( :DIE_ID, :MACRO, :TEST_NAME ) ) ) )
			)
		)
	)
);

// Do real-time filtering
refresh_filter = Function( { do_filt },
	If( do_filt,
		// Get selected rows and filter input data table
		rows = filter &amp;lt;&amp;lt; get filtered rows;
		dt_filt = dt &amp;lt;&amp;lt; Subset( Rows(rows), selected columns(0) );
		dt_filt &amp;lt;&amp;lt; Show Window(0);
		
		// Run python function
		run_python_func( dt_filt );
		Close( dt_filt, NoSave);
	);
);

rs = filter &amp;lt;&amp;lt; Make Filter Change Handler( refresh_filter( cb &amp;lt;&amp;lt; Get() ) );

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2026 06:56:25 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922353#M108116</guid>
      <dc:creator>ClassDendrogram</dc:creator>
      <dc:date>2026-01-07T06:56:25Z</dc:date>
    </item>
    <item>
      <title>Re: Non-communicative data filter after sorting rows</title>
      <link>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922359#M108117</link>
      <description>&lt;P&gt;Data filter will get "disconnected" from the table.&amp;nbsp;If you just create a global data filter to a table and then try to sort it, JMP will give you following message&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1767769796710.png" style="width: 999px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/90319i11D5C18E9FFD6A97/image-size/large?v=v2&amp;amp;px=999" role="button" title="jthi_0-1767769796710.png" alt="jthi_0-1767769796710.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1); 

dt = Open("$SAMPLE_DATA/Big Class.jmp");

plot_window = New Window("Python post process",
	Data Filter Context Box(
		H List Box(
			cb = Check Box("Enable real-time filtering"), 
			filter = (dt &amp;lt;&amp;lt; Data Filter(Global, Add Filter(columns(:age, :sex, :name))))
		)
	)
);

// Do real-time filtering
refresh_filter = Function({do_filt},
	show(Today());
);

rs = filter &amp;lt;&amp;lt; Make Filter Change Handler(refresh_filter(cb &amp;lt;&amp;lt; Get()));

Write();&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;There might be some ways around this, but implementation will depend on your use case.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2026 07:12:27 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922359#M108117</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2026-01-07T07:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: Non-communicative data filter after sorting rows</title>
      <link>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922361#M108119</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Deleting rows works fine, but many other changes to the data table aren’t allowed when reports are open or when a linked subset exists. To be honest, t&lt;/SPAN&gt;&lt;SPAN&gt;his is quite unexpected for JMP "19" — it feels like 199x.&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;JMP is already powerful—but being able to freely modify a data table even when reports or linked subsets exist would be a huge productivity boost.&lt;/DIV&gt;
&lt;P&gt;In particular:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;sorting the data table&lt;/LI&gt;
&lt;LI&gt;adding rows&lt;/LI&gt;
&lt;LI&gt;concatenating tables&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;should be possible without forcing the user to manually tear down the analysis context:&lt;LI-MESSAGE title="Sort data table + add rows + concatenate -- make it possible" uid="724336" url="https://community.jmp.com/t5/JMP-Wish-List/Sort-data-table-add-rows-concatenate-make-it-possible/m-p/724336#U724336" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-idea-thread lia-fa-icon lia-fa-idea lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;If you’re running into the same problem, just follow the link and support the wish with a Kudo *)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;At the very least, JMP should:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Make dependencies transparent
&lt;UL&gt;
&lt;LI&gt;What exactly is blocking the operation?&lt;/LI&gt;
&lt;LI&gt;Which report, subset, or data filter holds the lock?&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Provide a clear way to apply the requested change
&lt;UL&gt;
&lt;LI&gt;e.g., by offering to close and re-open the affected report(s) or subset(s) automatically&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*) NB: Unfortunately, the Kudos here don't affect the status of the wish.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1767819506685.png" style="width: 21px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/90367i51AD225A423B176E/image-dimensions/21x23?v=v2" width="21" height="23" role="button" title="hogi_0-1767819506685.png" alt="hogi_0-1767819506685.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 07 Jan 2026 21:09:20 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Non-communicative-data-filter-after-sorting-rows/m-p/922361#M108119</guid>
      <dc:creator>hogi</dc:creator>
      <dc:date>2026-01-07T21:09:20Z</dc:date>
    </item>
  </channel>
</rss>

