creatingfilters.htm

来自「Absolute Database 5.12 src. Absolute Da」· HTM 代码 · 共 244 行 · 第 1/2 页

HTM
244
字号
<html>
<head>
   <title>Creating Filters</title>
</head>

<!--#include virtual="/inc/header.php"-->


<table width="100%" border="0" cellspacing="0" cellpadding="2" bgcolor="#FFFFFF">
  <tr>
    <td align="left">
      
<span style="font-family:Helvetica,Arial; font-size:12pt; color:#000000"><b>Creating Filters
<br>
</b></span>
    </td>
    <td align="right">
     <font face="Arial" size="2">
     <a href="searchingdatasets.htm">Previous</a>&nbsp;
     <a href="overview.htm">Top</a>&nbsp;
     <a href="addingnewrecords.htm">Next</a>
     </font>
    </td>
  </tr>
</table>
<br><br>



<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
There are two ways to create a filter for an active dataset:
<br>

<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td width="14"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><font face="Symbol" size="2" color="#000000">&#183;</font></span></td><td><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Set the <a href=tdataset_filter.htm>Filter</a> property. <i>Filter</i> is especially useful for creating and applying filters at runtime.
&nbsp;<br>
</span></td></tr></table><table width="100%" border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td width="14"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><font face="Symbol" size="2" color="#000000">&#183;</font></span></td><td><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Write an <a href=tdataset_onfilterrecord.htm>OnFilterRecord</a> event handler for simple or complex filter conditions. With <i>OnFilterRecord</i>, you specify filter conditions at design time. Unlike the <i>Filter </i>property, which is restricted to a single string containing filter logic, an <i>OnFilterRecord</i> event can take advantage of branching and looping logic to create complex, multi-level filter conditions.
&nbsp;<br>
</span></td></tr></table><table width="100%" border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"></span></td><td></td></tr></table><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
The main advantage to creating filters using the <i>Filter</i> property is that your application can create, change, and apply filters dynamically, (for example, in response to user input). Its main disadvantages are that filter conditions must be expressible in a single text string, cannot make use of branching and looping constructs, and cannot test or compare its values against values not already in the dataset.
<br>

<br>
The strengths of the <i>OnFilterRecord</i> event are that a filter can be complex and variable, can be based on multiple lines of code that use branching and looping constructs, and can test dataset values against values outside the dataset, such as the text in an edit box. The main weakness of using OnFilterRecord is that you set the filter at design time and it cannot be modified in response to user input. (You can, however, create several filter handlers and switch among them in response to general application conditions.)
<br>

<br>

<br>
<b>Setting the Filter property
<br>
</b><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">
<br>
To create a filter using the </span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"><i>Filter</i></span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"> property, set the value of the property to a string that contains the filter conditions. The string contains the filter's test condition. For example, the following statement creates a filter that tests a table's State field to see if it contains a value for the state of California:
<br>

<br>
ABSTable1.Filter := 'State = ' + QuotedStr('CA');
<br>

<br>
you can also supply a value for </span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"><i>Filter</i></span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"> based on the text entered in a control. For example, the following statement assigns the text from an edit box to </span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"><i>Filter</i></span></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">:
<br>

<br>
ABSTable1.Filter := Edit1.Text;
<br>

<br>
you can also create a condition for boolean fields:
<br>

<br>
ABSTable1.Filter := 'Married = TRUE';
<br>

<br>
you can also create a string based both on hard-coded text and on data entered by a user in a control:
<br>

<br>
ABSTable1.Filter := 'State = ' + QuotedStr(Edit1.Text);
<br>
you can also compare field values to literals, and to constants using the following logical and comparison operators:
<br>

<br>
<table border="0" cellpadding="1"><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"><b><u>Operator       </u></b></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td><td align="left" valign="top" width="407">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100"><b><u>Meaning                                                                            </u></b></span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td></tr><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">&lt;</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td><td align="left" valign="top" width="407">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Less <span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">than</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td></tr><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">&gt;</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td><td align="left" valign="top" width="407">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Greater <span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">than</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td></tr><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">&gt;=</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td><td align="left" valign="top" width="407">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Greater <span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">than or equal to</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td></tr><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000"><span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">&lt;=</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td><td align="left" valign="top" width="407">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">Less <span style="font-family:Helvetica,Arial; font-size:10pt; color:#010100">than or equal to</span><span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">
<br>
</span></span></td></tr><tr><td align="left" valign="top" width="94">
<span style="font-family:Helvetica,Arial; font-size:10pt; color:#000000">=
<br>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?