<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bishopphillips.com/riskwiki/index.php?action=history&amp;feed=atom&amp;title=BpcSMScriptLibrary_15</id>
	<title>BpcSMScriptLibrary 15 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.bishopphillips.com/riskwiki/index.php?action=history&amp;feed=atom&amp;title=BpcSMScriptLibrary_15"/>
	<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_15&amp;action=history"/>
	<updated>2026-08-19T01:00:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_15&amp;diff=163&amp;oldid=prev</id>
		<title>Bishopj: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_15&amp;diff=163&amp;oldid=prev"/>
		<updated>2026-04-12T06:37:07Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:37, 12 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bishopj</name></author>
	</entry>
	<entry>
		<id>https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_15&amp;diff=162&amp;oldid=prev</id>
		<title>Bishopj: Created page with &quot;==TDBAdvGrid  Routines==  Language: Delphi 7 - 2007   These routines provide additional manipulation and support for the TMS TDBAdvGrid and TAdvGrid components from TMS Softwa...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.bishopphillips.com/riskwiki/index.php?title=BpcSMScriptLibrary_15&amp;diff=162&amp;oldid=prev"/>
		<updated>2019-09-11T16:52:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==TDBAdvGrid  Routines==  Language: Delphi 7 - 2007   These routines provide additional manipulation and support for the TMS TDBAdvGrid and TAdvGrid components from TMS Softwa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==TDBAdvGrid  Routines==&lt;br /&gt;
&lt;br /&gt;
Language: Delphi 7 - 2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These routines provide additional manipulation and support for the TMS TDBAdvGrid and TAdvGrid components from TMS Software.  They require these components to function.  The TMS components are available from TMS Software [http://tmssoftware.com/ http://tmssoftware.com/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////// TDBAdvGrid  Routines&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses Classes, Types, DB, Grids, BaseGrid, AdvGrid, DBAdvGrid, AdvObj;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
  TbpcTMSHiddenRowList = class (TIntList )&lt;br /&gt;
  public&lt;br /&gt;
      function MapRowToRealRow( VisRow: Integer; VisRowCount: integer): integer;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
// Returns the index of a TDBAdvGrid column given the name. -1 on failure&lt;br /&gt;
function bpcGetDBAdvGridColumnIndex( ColCollection: TDBGridColumnCollection; ColName : string) : Integer;&lt;br /&gt;
// Returns the TDBAdvGrid column given the name. nil on failure&lt;br /&gt;
function bpcGetDBAdvGridColumn( ColCollection: TDBGridColumnCollection; ColName : string) : TDBGridColumnItem;&lt;br /&gt;
// Returns the index of a TDBAdvGrid column given the field name. -1 on failure&lt;br /&gt;
function bpcGetDBAdvGridColumnByFieldIndex( ColCollection: TDBGridColumnCollection; FieldName : string) : Integer;&lt;br /&gt;
// Returns the TDBAdvGrid column given the Field name. nil on failure&lt;br /&gt;
function bpcGetDBAdvGridColumnByField( ColCollection: TDBGridColumnCollection; FieldName : string) : TDBGridColumnItem;&lt;br /&gt;
&lt;br /&gt;
// Group and Filter Safe DBAdvGrid Page Mode Reload (Reloads Non page mode grid from dataset, after optional dataset refresh&lt;br /&gt;
// Reestablishes groups and filters and position.&lt;br /&gt;
function bpcDBAdvGridSafeReload( DBAdvGrid1: TDBAdvGrid; WithDataSetRefresh : boolean=False ) : TDBAdvGrid;&lt;br /&gt;
// Similar to TDBAdvGrid.Narrow, except that this one adds (logical and) filters rather than replacing filters, so with&lt;br /&gt;
// each call the additional filter applies to the last filtered result.  To clear the filters simply assign a condition of &amp;#039;&amp;#039;.&lt;br /&gt;
// FLastFilter is used to store the last filter string for the current filter.  If the new codition varies by only a character from the previous filter,&lt;br /&gt;
// it updates the previous filter rather than adding an additional filter. Clearing FLastFilter with each call prevents this behaviour.&lt;br /&gt;
function bpcDBAdvGridNarrowDown( MyGrid : TDBAdvGrid; Var FLastFilter : string; ACondition: string; AColumn: integer = -1) : TDBAdvGrid;&lt;br /&gt;
// Safe vis row to real row index conversion (This handles incrementally applied filters where the hidden row list is an accumulated list of multiple&lt;br /&gt;
// succeeding ordered hidden row lists.  It essentially deconstructs that portion of the rows it needs by reversing algorythmically the&lt;br /&gt;
// row visibility changes applied to date.  The second routine allows a marginal performance saving where mutliple access are&lt;br /&gt;
// required to the same grid filter state. Note bpcDBAdvGridSafeReload without dataset refresh rebuilds the hidden list from scratch and makes&lt;br /&gt;
// the TMS real coord routines safe to use again - as an alternative to this routine.&lt;br /&gt;
function bpcDBAdvGridVisRowToRealRow( DBAdvGrid1: TDBAdvGrid;  VisRow : integer ) : integer; overload;&lt;br /&gt;
function bpcDBAdvGridVisRowToRealRow( DBAdvGrid1: TDBAdvGrid;  VisRow : integer; var ListHidden: TbpcTMSHiddenRowList ) : integer; overload;&lt;br /&gt;
// Return the values for a column as a comma separated list of rows&lt;br /&gt;
function bpcDBAdvGridVisColToRowList( DBAdvGrid1: TDBAdvGrid; const FieldName : string; Sep : string=&amp;#039;&amp;#039;; const QuoteMe : string=&amp;#039;&amp;#039; ) : string;&lt;br /&gt;
function bpcDBAdvGridVisColToQuotedRowList( DBAdvGrid1: TDBAdvGrid; const FieldName : string; Sep : string=&amp;#039;&amp;#039; ) : string;&lt;br /&gt;
// True if the grid is currently empty of datarows - equivalent to tdatasource is empty.&lt;br /&gt;
function bpcDBAdvGridIsEmpty( DBAdvGrid1: TDBAdvGrid ) : boolean;&lt;br /&gt;
&lt;br /&gt;
function bpcDBAdvGridGetFieldList( DBAdvGrid1: TDBAdvGrid; bKeepEmptyFields : boolean=False; StartAtCol : integer=1 ) : TStringDynArray ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=BackLinks=&lt;br /&gt;
&lt;br /&gt;
{{#dpl: linksto={{FULLPAGENAME}} }}&lt;/div&gt;</summary>
		<author><name>Bishopj</name></author>
	</entry>
</feed>