E
SSENTIALS
45
Query Objects
A query object is referred to a group of objects that provide query functionality in TheRaiser’s Edge object model. 
These objects include:
• CQueryObject
• CQueryObjects
• CQuerySet
• CStaticQ 
These four objects allow programatic access to existing queries, access to the output of a query, and the ability to 
create a new static query that can be used elsewhere in TheRaiser’s Edge. A solid understanding of these objects 
work goes along way to making your projects faster and more efficient. 
Opening a Query
Opening an existing query is quite easy and similar to the data objects that you learned about previously. You 
access information about a query through the CQueryObject. First, you must initialize the object and then load it. 
Like data objects, there is a Load method if you know the database ID of the query. There is also a CQueryObjects 
collection you can loop through to find the correct query. After you load the query, you can access its result set. 
The following code sample shows how this is done. 
Processing a Query Result Set
By processing a query result set, you can move line-by-line through the results of a query. You can access a query 
result set in two ways. 
If we are already using a CQueryObject, we can access its resultset by using the Queryset method: 
Dim oQuery as CQueryObject
Set oQuery = New CQueryObject
oQuery.Init REApplication.SessionContext 
'Load the query using the Query name
oQuery.LoadByField uf_QUERY_NAME,"Major Donors Query"
'Load the query using the Database ID
oQuery.Load 5
Dim oQueryObject as CQueryObject 
Set oQueryObject = New CQueryObject 
oQueryObject.Init REApplication.SessionContext  
'Load the using the Query name 
oQueryObject.LoadByField uf_QUERY_NAME,"Major Donors Query" 
'This opens the resultset for access 
oQueryObject.QuerySet.OpenQuerySet 
Pdf text select tool - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
can't select text in pdf file; searching pdf files for text
Pdf text select tool - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
pdf make text searchable; find and replace text in pdf
C
HAPTER
1
46
Or, if you know the query’s database ID, you can start with a CQueryset object.
Both of these examples accomplish the same task. In either case, we have a reference to a query resultset. You can 
use a few properties that help to actually access the data from the result set: 
Code Sample
Creating Static Queries
You can create queries through code by using the CStaticQ query service object. Static queries are lists of unique 
IDs. If you create a static query via code, you cannot open it in Query because it has no sort, filter, or output fields. 
Other queries, and any process that uses a query (such as Mail or Reports) can use static queries. Static queries are 
ordered and have no duplicates. To create a static query, you use 3 methods and the Init and CloseDown methods 
that you use with every object. 
Dim oQuerySet as CQuerySet 
Set oQuerySet = New CQuerySet 
oQuerySet.Init REApplication.SessionContext  
'This uses the database ID of the query 
oQuerySet.QueryID = 10 
'This opens the resultset for access 
oQuerySet.OpenQuerySet 
Property
Returns
FieldCount
The number of fields in the output of the query
FieldName
An array of the field names in the output
FieldType
An array of the field type (for example, Date, Double, Long, Memo, Text)
FieldValue
An array of the actual data for the current row
RowNum
The number of the current row.
Debug.Print oQuerySet.FieldName(1) & " " & oQuerySet.FieldName(2) 
Do While Not oQuerySet.EOF 
'This is where you would access the fields 
Debug.Print oQuerySet.FieldValue(1) & " " & oQuerySet.FieldValue(2) 
oQuerySet.MoveNext 
Loop 
'Clean up 
oQuerySet.CloseDown 
Set oQuerySet = Nothing 
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
pdf search and replace text; search pdf files for text programmatically
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
pdf find and replace text; pdf text search tool
E
SSENTIALS
47
1. Use the Create method to create a new query. This method displays the same Create Query form used in 
TheRaiser’s Edge. The end-user can specify the name of the query and other information about the query. 
The Create method returns a False if the user clicks Cancel. You should abort your process in this case.The 
following table shows the parameters for the Create method.
2. To add the database IDs of the records you want to include in the query, use the AddRecord method and 
pass the ID as the only parameter. The AddRecord method checks to make sure it is not a duplicate ID and 
then adds it to the query. This is the only step required to add a record to the query.
3. To finish creating the query and write the information to the database, call the EndCreate method. Until 
this is called, the IDs are just stored in memory. EndCreate has three parameters:
• FormToCenterOn accepts an object. When EndCreate is called, it normally displays a Writing Static Records 
form while it is writing the IDs to the database. This parameter specifies the form on which you would like the 
Writing Static Records form to center itself. 
• bCancel is an optional parameter that defaults to False if nothing is passed. If your code allows the end-user to 
cancel the creation of the query after the Create method is called, it is important to call the EndCreate method 
and pass True for this parameter. The query is not created, but this frees the memory used to track the IDs for 
the query.
• bNoUI is an optional parameter. For the program not to display the Writing Static Records, set this to True.
Parameter
Variable Type
Description
SearchType
bbSearch Types
Determines the type of the query. For example, what types of 
records are included
aFromProcess Name
String
Each query stores from the area of the program it was 
created. You may put the name of your application here.
FormToCenter On
Object
The Create Query form displays itself centered over the 
object specified here.
sDescription
String
Optional: Allows you to input a default Description for the 
new query.
lSystemID
Long
Included in parameters, but not applicable. 
sDefaultQName
String
Optional: Allows you to input a default Query name for the 
new query.
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
and use the PDF page(s) extraction tool. As String = Program.RootPath + "\\" 1.pdf" Dim doc As PDFDocument = New PDFDocument(inputFilePath) ' Select pages.
pdf find highlighted text; pdf text searchable
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Default create. Click to select drawing annotation with default properties. Other Tab. 17. Text box. Click to add a text box to specific location on PDF page.
how to select text in pdf; search text in multiple pdf
C
HAPTER
1
48
This code sample loops through the records to find the ones you need if want a query of couples in the database 
who have different last names from each other. 
Dim oRecord2 As CRecord
Set oRecord2 = New CRecord
Dim oRecord1 As CRecord
Set oRecord1 = New CRecord
Dim oRecords As CRecords
Set oRecords = New CRecords
oRecords.Init oAPI.SessionContext
Dim oStaticQuery As CStaticQ
Set oStaticQuery = New CStaticQ
oRecord2.Init oAPI.SessionContext
oStaticQuery.Init oAPI.SessionContext
'This will prompt the user for a Query Name but
' everything will already be filled in
If oStaticQuery.Create(SEARCH_CONSTITUENT, "Custom App", Nothing, _
"List of couples who have different last names", , _
"Spouses W\Different Last Names") Then
For Each oRecord1 In oRecords
'This checks first to see if they even have a spouse on their record
If Val(oRecord1.Fields(RECORDS_fld_SPOUSE_ID)) > 0 Then
oRecord2.Load oRecord1.Fields(RECORDS_fld_SPOUSE_ID)
If oRecord1.Fields(RECORDS_fld_SPOUSE_ID) <> "" Then
'Compares the constituent's last name with the spouse's last name
If oRecord1.Fields(RECORDS_fld_LAST_NAME) <> _
oRecord2.Fields(RECORDS_fld_LAST_NAME) Then
'This adds this ID to our query
oStaticQuery.AddRecord oRecord2.Fields(RECORDS_fld_ID)
End If
End If
End If
oRecord1.CloseDown
Next oRecord1
Set oRecord1 = Nothing
oRecords.CloseDown
Set oRecords = Nothing
'Once we have all our records in our query,
' we write the data to the database
oStaticQuery.EndCreate Nothing, False, False
oStaticQuery.CloseDown
Set oStaticQuery = Nothing
Else
'This means the user canceled when entering the query name
MsgBox "No query created", vbOKOnly
End If
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Default create. Click to select drawing annotation with default properties. Other Tab. 17. Text box. Click to add a text box to specific location on PDF page.
search text in pdf image; search text in pdf using java
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit OpenOffice
Office PowerPoint (.ppt, .pptx) on webpage, Convert CSV to PDF file online C#.NET RasterEdge HTML5 Viewer particular text tool can select text on all
pdf searchable text converter; pdf select text
E
SSENTIALS
49
Report Objects
Report objects are a group of objects that work together to provide the ability to access Raiser’s Edge Reports and 
Mail functionality through code. Since the mail functions also use Crystal Decision’s Crystal Reports, it makes 
sense to provide one set of objects that can be used to print reports and process mail functions. 
These objects appear in a hierarchy that represent the way they are accessed in TheRaiser’s Edge. When you 
access Reports, you are presented with a list of categories, such as Financial Reports. After you click the category, 
you are given a list of the different types of reports in that category, such as the Gift Entry Validation. When you 
create a new report, a screen opens containing tabs on which you define parameters for a report. Report objects 
follow the same hierarchy; however, depending on the needs of your project, you can enter the object model from 
any object.and create each class independently. You do not directly create report objects as you do the other 
objects. In order to create a new ReportCategories or ReportCategory object, use the REServices object. 
In this hierarchy, IBBReportCategories is a collection of IBBReportCategory objects. These represent the 
categories of Reports or Mail options present in TheRaiser’s Edge (such as Financial ReportsAction Reports
or Letters in the Mail section). 
The next level is the IBBReportTypes and the IBBReportType objects; these represent the specific reports (such as 
the Gift Entry Validation and Action Detail Report, or Follow-up Letters in Mail). 
The last level of the hierarchy is the IBBReportInstances and IBBReportInstance objects. These correspond to the 
individual parameter files that you can save for each report. When you are at this level, you can allow your 
end-user to preview or print the report or even create a new set of parameters for the report type. The next three 
sections review each of these objects in detail.
Reports Categories Collection
TheRaiser’s Edge Reports and Mail breaks down by similar functionality into categories such as Financial 
ReportsPledge Reports, and Forms (in Mail). Each one of these categories is represented by an 
IBBReportCategory object. Use the REService object to create both IBBReportCategories and IBBReportCategory 
objects (for more in formation, see the following “Report Objects Sample” on page54). After you create an 
IBBReportCategories collection, use the Init method. This is similar to the Init method used for other objects to 
initialize them. However, in this case, there are other parameters (see the following table).
Parameter
Variable Type
Description
SessionContext
IBBSessionContext
This is the same SessionContext 
used to initialize all objects.
lSubCategoryOfCategoryID
Long
Optional: This is not used but is 
included for future expandability.
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
then apply PPT slide getting method to select the target PowerPoint PDF 417 barcode library is a mature and offers users the human readable text setting option
select text in pdf; convert pdf to searchable text
TIFF to PDF Converter | Convert TIFF to PDF, Convert PDF to TIFF
for TIFF-PDF Conversion; Able to preserve text and PDF Open TIFF to PDF Converter first; Load a TIFF Select "Convert to PDF"; Select "Start" to start conversion
search multiple pdf files for text; cannot select text in pdf file
C
HAPTER
1
50
When you initialize the IBBReportCategories collection, you can use a “For Each” construct to loop through it or 
use the Item property to access the IBBReportCategory objects in the collection.
If you enter the Report hierarchy directly from an IBBReportCategory object, you need to Init it first. Some Init 
parameters for the IBBReportCategory are similar to the parameters for the IBBReportCategories, but they work 
differently. The IBBReportCategory object contains a ReportTypes method. This returns a IBBReportTypes 
collection of IBBReportType objects. The ShowMembersBasedOnSecuritySettings and ShowCannedReportsOnly 
parameters filter the IBBReportType objects included in the IBBReportCategory.ReportTypes collection.
CategoryFilter
EReR_ReportCategoryFilters
Optional: This is used to specify 
ReportsMail, or both 
IBBReportCategory objects in the 
collection. This defaults to include 
Report IBBReportCategory objects 
only.
QueMode
Boolean
Optional: This establishes how 
errors are handled when using the 
collection. If it is set to True, a log 
file is created containing any 
errors, but the program continues 
to process. If set to False (which is 
the default) a trappable error is 
raised.
ShowMembersBasedOnSecuritySettin
gs
Boolean
Optional: Use this to include 
IBBReportCategory objects in the 
collection an end-user has the 
security to view. If set to False, the 
collection includes all objects, 
regardless of the users security. 
However, at any point the end-user 
would still be unable to run a report 
they did not the security to access. 
This defaults to True.
ShowCannedReportsOnly
Boolean
Optional: There are some 
IBBReportCategory objects that 
represent reports not accessed via 
Reports, such as query control 
reports or Global Add reports. If 
this is set to True (the default), only 
the IBBReportCategory objects 
that represent categories found in 
Reports are in the collection.
Parameter
Variable Type
Description
SessionContext
IBBSessionContext
This is the same SessionContext used to 
initialize all objects.
CategoryID
EReR_ReportCategories
This is a Enum of all the different categories 
of reports using in the Raiser’s Edge.
Parameter
Variable Type
Description
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
NET developers to search text-based documents, like PDF, Microsoft Office The well built-in text search tool is compatible with most Text Select, Copy & Paste.
how to select all text in pdf; find text in pdf files
VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
tiff, VB.NET read PDF, VB.NET convert PDF to text, VB.NET Export PDF to Tiff file. Users are allowed to set scaling value and select compress mode: UnCompressed
how to select text in pdf image; make pdf text searchable
E
SSENTIALS
51
When you initialize the object, you can access the ReportTypes property to move farther down the hierarchy of 
Report objects. For more information, see the “Report Objects Sample” on page54 for an example of how to create 
and use these objects. Refer to Programming Reference to learn more about the other properties and methods of 
these two objects.
Reports Types Collection
You can access collections and objects that represent the highest level of the Reports hierarchy—the Report 
Categories. First, use the REServices object to create either an IBBReportTypes or IBBReportType object (see 
“Report Objects Sample” on page54). Next, call the Init method. The Init method has some parameters that can 
filter the IBBReportType objects to be included in the collection (see the following table).
QueMode
Boolean
Optional: This establishes how errors are 
addressed when using the object. If it is set 
to True, a log file is created containing any 
errors, but the program continues to process. 
If set to False (which is the default) a 
trappable error is raised.
ShowMembersBasedOnSecuritySettings
Boolean
Optional: Use this to include only the 
IBBReportCategory.ReportTypes collection 
objects an end-user has the security to view. 
If set to False, the collection includes all 
objects, regardless of the user’s security. 
However, at any point the user is unable to 
run a report he did not have the security to 
access. This defaults to True.
ShowCannedReportsOnly
Boolean
Optional: Some IBBReportType objects 
represent reports that are not accessed via 
Reports. If set to True (which is the default), 
only the IBBReportType objects that 
represent reports found in Reports is 
included in the 
IBBReportCategory.ReportTypes 
collection.
Parameter
Variable Type
Description
SessionContext
IBBSessionContext
This is the same SessionContext used to 
initialize all objects.
CategoryID
EReR_ReportCategories
This is a Enum of all Report categories so 
only ReportTypes that are a part of this 
category are included in the collection.
QueMode
Boolean
Optional: This establishes how errors are 
addressed when using the object. If set to 
True, a log file is created containing any 
errors, but the program continues to process. 
If set to False (which is the default) a 
trappable error is raised.
Parameter
Variable Type
Description
C
HAPTER
1
52
After initializing the IBBReportTypes collection, you can iterate through the collection or select an 
IBBReportType object by using the Item method.
If you already know the type of report you want to access, enter the report hierarchy at the IBBReportType object. 
As always, call the Init method and provide a couple of parameters in order to access the correct report (see the 
following table).
When the IBBReportType object is initialized, you can access its read-only properties to get more information 
about this particular report. It also has a ReportInstances property so you can access the last levels of the Report 
hierarchy. Here, you can actually process a report.
Report Instances Collection
It is only at the lowest level of the Report object hierarchy that you can process a report. Using the 
IBBReportInstances and IBBReportInstance objects you can access any parameter files already created and allow 
end-users to create new ones using the same forms they are used to seeing in TheRaiser’s Edge.
ShowMembersBasedOnSecuritySettings
Boolean
Optional: This includes only the 
IBBReportCategory.ReportTypes collection 
objects an end-user has the security to view. 
If this is set to False, the collection includes 
all objects, regardless of the users security. 
However, at any point the user is unable to 
run a report he does not have the security to 
access. This defaults to True.
ShowCannedReportsOnly
Boolean
Optional: Some IBBReportType objects 
represent reports that are not accessed via 
Reports. If this is set to True (which is the 
default), only the IBBReportType objects 
that represent reports found in Reports are 
included in the 
IBBReportCategory.ReportTypes 
collection.
Parameter
Variable Type
Description
SessionContext
IBBSessionContext
This is the same SessionContext used to initialize all 
objects.
CategoryID
EReR_ReportCategories
This is a Enum of all the Report types so you can specify 
which report to access.
ShowOnlyMyReports
Boolean
Optional: This establishes how errors are addressed 
when using the collection. If set to True, a log file is 
created containing any errors, but the program continues 
to process. If set to False (which is the default) a 
trappable error is raised.
Parameter
Variable Type
Description
E
SSENTIALS
53
The IBBReportInstances object is a collection that represents all the parameter files for a particular type of report. 
As with the Report objects, it is created using the REServices object (see “Report Objects Sample” on page54). 
When you create the object, use the Init method to initialize it. The following table shows the parameters for the 
Init method.
After you initialize the collection, you can use any standard process to iterate through the collection.
If you use the IBBReportInstance object to enter the hierarchy, use the Init method. The following table shows the 
parameters for the Init method.
After you initialize an IBBReportInstance, you can either load an existing parameter file or create a new one. To 
load an existing IBBReportInstance, all you need to know is the ReportParameterID, which is the database ID of 
the parameter file. After you use the Load method, or if you are creating a new parameter file, call the Process 
method. The following table explains the parameters for this method.
Parameter
Variable Type
Description
SessionContext
IBBSessionContext
This is the same SessionContext used to initialize all 
objects.
ReportTypesID
EReR_ReportCategories
This is a Enum of all the Report types so only 
ReportInstances for the type specified here are included 
in the collection.
QueMode
Boolean
Optional: This establishes how errors are addressed 
when using the object. If set to True, a log file is created 
containing any errors, but the program continues to 
process. If set to False (which is the default) a trappable 
error is raised.
ShowOnlyMyReports
Boolean
Optional: If set to True, the collection contains only 
IBBReportInstances objects that represent parameter 
files created by the end-user. If set to False (the default), 
all parameter files available to the end-user are 
represented in the collection.
Parameter
Variable Type
Description
SessionContext IBBSessionContext This is the same SessionContext used to initialize all objects.
QueMode
Boolean
Optional: This establishes how errors are addressed when using the 
object. If set to True, a log file is created containing any errors, but the 
program continues to process. If set to False (which is the default) a 
trappable error is raised.
Parameter
Variable Type
Description
Action
EReR_ProcessOptions
This is an Enum of the process options available. 
ShowModal
Boolean
Optional: This determines if the Process form (this varies 
depending on the action) is displayed modally. This defaults to 
False.
FormToCenterOn
Object
Optional: This determines which object the Process form 
displays.
C
HAPTER
1
54
The Process method supports a number of actions that are enumerated as EReR_ProcessOptions. These include 
ReR_ProcessOption_ShowParameterForm which shows the parameter form for the particular report type you are 
using. If you have not called the Load method, a new parameter form displays that allows the end-user to complete 
the parameters and save and run the report from the parameter form. If you have called the Load method, the form 
appears with the parameters already displayed, allowing an end-user to edit the parameters and run the report. If 
you do not want to display the parameters, you can use the other EReR_ProcessOptions to directly print, print 
preview, export, send as mail, or view the report layout. The Process method returns a Long integer which is a 
unique handle to a Crystal Report file. This is used internally by TheRaiser’s Edge for the Web and can be 
disregarded. For more information about other properties and methods available, see Programming Reference.
It is important that when you finish using an IBBReportInstance that you call the CloseDown method. Even though 
it may return False, indicating that it cannot be closed at this time, it sets an internal flag and cleans everything as 
soon as the end-user closes the report. For example, after you call the Process method with an action of Preview, 
you can call the CloseDown. When the user closes the preview window or exits the application, the object releases 
the resources it was using. However, you should make sure you do not need to access any property or method from 
the object. Once CloseDown is called, the object acts as if it is closed down, even if the preview window or 
parameter form still displays.
Report Objects Sample
This code sample illustrates how to use the Report objects. In this example, you add all the possible report 
categories, types, and instances to a treeview.
RunFromWeb
EReR_WebReportType Optional: This is used internally for the TheRaiser’s Edge for 
the Web. This parameter should be left blank.
Option Explicit
Private REService As REServices
Private Sub Form_Load()
Dim oReportCategories As IBBReportCategories
Dim oReportCategory As IBBReportCategory
Dim oReportTypes As IBBReportTypes
Dim oReportType As IBBReportType
Dim oReportInstances As IBBReportInstances
Dim oReportInstance As IBBReportInstance
'This is the class that we use to create the Report objects
Set REService = New REServices
REService.Init REApplication.SessionContext
Set oReportCategories = REService.CreateServiceObject(bbsoReportCategories)
oReportCategories.Init REApplication.SessionContext, , _
ReR_ReportCategoryFilter_Reports, False, True, True
For Each oReportCategory In oReportCategories
Parameter
Variable Type
Description
Documents you may be interested
Documents you may be interested