E
SSENTIALS
75
Before you display the search screen, you need to tell it what types of records you want to be available in the Find 
combo frame. Call the AddSearchType method to add at least one search type before displaying the form. If you 
want to have more than one type of record available, there are two syntax styles supported (see the following code 
sample). If you have used the object previously, you may want to call the ClearSearchTypes method to clear any 
existing search types. 
Before you display the search screen form, you can set optional properties for the form. If you set the 
AllowAddNew property to True, when the form displays, there is an Add New button present. However, you must 
write the code that actually creates the new record. If you have added multiple search types, you can also set the 
DefaultSearchType property to determine the initial search type when the form displays.
When you are ready to display the search screen, call the ShowSearchForm method. This displays the form 
modally and returns False if the end-user clicks Cancel. When the end-user clicks any button that closes the form 
(OpenCancel or Add New), you need to find out what he has selected. The SelectedOption property returns the 
button the end-user selected. The enum bbSearchScreenOption lists options, simplifying your programing. If 
multiple search types were available, the SelectedSearchType property determines the search type the end-user 
selected. This returns a value from the enum bbSearchTypes. The SelectedDataObject property returns a reference 
to the actual data object the end-user selected. The following code shows an example of how you can use the search 
screen object. 
'Method 1
oSearchScreen.AddSearchType SEARCH_CAMPAIGN
oSearchScreen.AddSearchType SEARCH_FUND
oSearchScreen.AddSearchType SEARCH_APPEAL
'Method 2
oSearchScreen.AddSearchType SEARCH_CAMPAIGN,SEARCH_FUND,SEARCH_APPEAL
Private Sub UsingTheSearchScreen()
Dim REService As REServices
Set REService = New REServices
REService.Init REApplication.SessionContext
Dim oSearchScreen As IBBSearchScreen
Set oSearchScreen = REService.CreateServiceObject(bbsoSearchScreen)
oSearchScreen.Init REApplication.SessionContext
With oSearchScreen
.ClearSearchTypes
.AddSearchType SEARCH_CAMPAIGN, SEARCH_FUND, SEARCH_APPEAL
.DefaultSearchType = SEARCH_CAMPAIGN
.AllowAddNew = True
If .ShowSearchForm Then
Select Case .SelectedSearchType
Pdf find and replace text - 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
how to select text in pdf image; pdf find and replace text
Pdf find and replace text - 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
search text in multiple pdf; pdf text searchable
C
HAPTER
1
76
Using the search screen object properly in your custom applications not only simplifies your coding, but also 
provides a common interface for selecting records to your end-users. Other methods and properties available to use 
with this form are explained in Programming Reference.
Case SEARCH_CAMPAIGN
Dim oCampaign As CCampaign
Dim oCampaignForm As CCampaignForm
Set oCampaignForm = New CCampaignForm
oCampaignForm.Init REApplication.SessionContext
If oSearchScreen.SelectedOption = SRCH_FRM_OPEN Then
Set oCampaign = oSearchScreen.SelectedDataObject
Else
Set oCampaign = New CCampaign
oCampaign.Init REApplication.SessionContext
End If
Set oCampaignForm.CampaignObject = oCampaign
oCampaignForm.ShowForm True, Me, True
oCampaignForm.CloseDown
Set oCampaignForm = Nothing
oCampaign.CloseDown
Set oCampaign = Nothing
Case SEARCH_FUND
'Same as above except substitute Fund objects
Case SEARCH_APPEAL
'Same as above except substitute Appeal objects
End Select
End If
'Clean Up!
oSearchScreen.CloseDown
Set oSearchScreen = Nothing
REService.CloseDown
Set REService = Nothing
End Sub
VB.NET PDF replace text library: replace text in PDF content in vb
and ASP.NET webpage. Find and replace text in PDF file in preview without adobe PDF reader component installed. Able to pull text
select text in pdf reader; pdf search and replace text
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
When you have downloaded the RasterEdge Image SDK for .NET, you can unzip the package to find the RasterEdge.Imaging.PDF.dll in the bin folder under the root
pdf text search; pdf find text
E
SSENTIALS
77
MiscUI
As the name implies, this object gives you access to miscellaneous forms and functions that are helpful in 
designing your projects in TheRaiser’s Edge. For example, using the PromptForDataObject method provides your 
end-user with a simple form for selecting a record.
Using the MiscUI Object
1. Declare an object reference for the REServices object. Create a new instance of the REServices object and 
use the Init method (remember to call the CloseDown method when finished), passing a valid 
SessionContext to initialize it.
2. Declare an object reference for the IBBMiscUI object. Create a new instance of the IBBMiscUI object. 
3. Set the IBBMiscUI object equal to the REServices.CreateServiceObject method, passing the enum 
constant bbsoMiscUI.
4. Initialize the IBBMiscUI object, using the Init method (remember to call the CloseDown method when 
finished), passing a valid SessionContext.
This object has a number of helpful methods, one of which is the PromptForDataObject. This provides a form for 
your end-user to select a record. The method requires three parameters (see the following table) and returns a long 
integer that is the database ID of the record that the end-user selected (or a zero if the end-user canceled). If the 
search string the end-user enters in the textbox is not valid, he is automatically prompted with the standard search 
screen or prompted to enter the search string information again. 
Parameter
Variable 
Type
Description
lSearchType
bbSearchTyp
es
This is an enum of the record types available for searching. 
sObjectNameCaption String
This is the string that appears to the left of the search string textbox. It 
provides your end-user with an idea of the type of record she is 
searching for. 
sDescriptionCaption
String
This is the string that displays just below the title bar on the form.
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
document. If you find certain page in your PDF document is unnecessary, you may want to delete this page directly. Moreover, when
select text pdf file; how to select text in a pdf
VB.NET Create PDF Library SDK to convert PDF from other file
Create writable PDF file from text (.txt) file in VB.NET project. you can download the RasterEdge .NET Image SDK and find the PDF processing component DLL
make pdf text searchable; how to search pdf files for text
C
HAPTER
1
78
Another helpful method is the Quick Find method. If you provide a search string and the record type you want to 
search, this method returns True if it was able to find a record with the search string. You can also pass two 
variables by reference, representing the name and the database ID of the matching record. The following table lists 
the parameters for this method. 
Two methods that work similarly to provide a way to display the UI form for any data object are the 
ShowUIForDataObject and the ShowUIForDataObjectO methods. ShowUIForDataObject accepts the database ID 
of the record you want to display, but ShowUIForDataObjectO is passed a reference to the data object you want to 
show. The following table shows the other parameters for these two methods. These work the same way for both 
methods. 
Parameter
Variable Type
Description
lObjectType
bbDataObjConstants
This is an enum of the record types available for searching 
purposes. Note: Quick Find is designed to be used with 
constituents, gifts, campaigns, funds, appeals, events, and banks 
only.
sSearchString
String
This is the string you are searching for.
sFoundName
String
This is passed By Reference and is set to Name for the record 
that is found.
lFoundID
Long
This is passed By Reference and is set to the database ID for the 
record that is found.
bPromptIfNoMatch Boolean
Optional: If this is set to True (which is the default) a message 
box provides the end-user with the option to use the search 
screen again if the search string is not found.
Parameter
Variable Type
Description
lDataObjectType
bbDataObjConstants
This is an enum of the record types available. 
bModal
Boolean
If this is set to True the form is displayed modally.
lCallingHwnd
Long
Optional: You can pass a handle to a form and the method 
verifies this form is not already loaded before displaying the new 
form.
oMoveServer
IBBMoveServer
Optional: This establishes how the “VCR” buttons on the form 
function. This is covered in detail in Programming Reference.
FormToCenterOn
Object
Optional: This is the object for which the UI form is centered.
C# HTML5 PDF Viewer SDK deployment on Visual Studio .NET
Unzip the download package and you can find a project XDoc.PDF.HTML5 Viewer Demo or XDoc.PDF.HTML5 Editor Once done debugging with x86 dlls, replace the x86
how to select text in pdf reader; cannot select text in pdf file
VB.NET PDF - Deploy VB.NET HTML5 PDF Viewer on Visual Studio.NET
to How to Build Online VB.NET PDF Viewer in Unzip the download package and you can find a project named XDoc Once done debugging with x86 dlls, replace the x86
how to search text in pdf document; search text in pdf using java
E
SSENTIALS
79
Code Sample
These methods provide a simple way to incorporate powerful functions into your custom applications without 
writing a lot of new code. There are other methods available through the MiscUI object. These are documented in 
Programming Reference. 
Advanced Concepts and Interfaces
Review this section to learn about the IBBDataObjectInterface, a powerful VBA tool that supports the use of 
interfaces. You can also learn about the IBBMetaField interface, which provides a convenient way to find out and 
change information about the individual data fields used in TheRaiser’s Edge. Lastly, using transactions, you can 
add or remove a number of items from a collection or make changes to the fields in a data object temporarily. 
Dim sName As String
Dim lID As Long
Dim oRecord As CRecord
Set oRecord = New CRecord
oRecord.Init REApplication.SessionContext
Dim REService As REServices
Set REService = New REServices
REService.Init REApplication.SessionContext
Dim oMiscUI As IBBMiscUI
Set oMiscUI = REService.CreateServiceObject(bbsoMiscUI)
oMiscUI.Init REApplication.SessionContext
'This uses Text1.Text as the search string for a constituent.
If oMiscUI.QuickFind(bbdataConstituent, Text1.Text, sName, lID, False) Then
oRecord.Load lID
Else
'This will display a form for the user to search for a constituent.
IID = oMiscUI.PromptForDataObject(SEARCH_CONSTITUENT, "Constituent", _
“Search for a Constituent”)
If lID Then oRecord.Load lID
End If
'This will display the UI form for a constituent, if the user has not selected
'    a valid record by now then a blank form will be displayed.
oMiscUI.ShowUIForDataObjectO bbdataConstituent, oRecord, True, , , Me
'Clean Up!
oRecord.CloseDown
Set oRecord = Nothing
REService.CloseDown
Set REService = Nothing
oMiscUI.CloseDown
Set oMiscUI = Nothing
C# PDF File Permission Library: add, remove, update PDF file
Text: Replace Text in PDF. Image: Insert Image to PDF. Image: Remove Image from using RasterEdge.XDoc.PDF; In the following code table, you will find a piece of
find text in pdf files; how to select all text in pdf
VB.NET PDF File Permission Library: add, remove, update PDF file
to PDF. Text: Delete Text from PDF. Text: Replace Text in PDF. In the following code table, you will find a VB NET code sample for how to set PDF file permissions
search a pdf file for text; pdf select text
C
HAPTER
1
80
Using the IBBDataObject Interface
One of the powerful features of Visual Basic is that it supports the use of interfaces. Interfaces are advanced 
programming techniques that provide a way for the Raiser’s Edge developers to make the program code more 
efficient and easier to maintain. An interface is like a contract. Any class that implements a specific interface 
guarantees the class supports a certain type of behavior. Many objects in TheRaiser’s Edge object model 
implement other interfaces. For example, all data objects, such as CGift, or CEducation, implement the 
IBBDataObject interface. This provides a way for you to refer to any data object that implements IBBDataObject 
in a generic fashion. Referring to the IBBDataObject interface gives you access to some properties and methods 
that are not available when referring to the actual class. 
By referring directly to the IBBDataObject interface, you can use the Initialized property to find out if an object has 
been initialized. You can use the Dirty property to determine if an object has had changes made to it since it was 
saved. 
Another important property of the IBBDataObject interface is the ObjectName property. This returns the name of 
the class of object you are using. One of the most important properties is the MetaField property. This provides 
access to information about the types of data that any field expects and other important information. The below 
code sample shows how to use interfaces to generically refer to objects. Notice that it includes a reference to the 
IBBTopObject interface. All top-level objects implement this interface. Using this interface provides a way to refer 
to and access the methods and properties common to all top level objects.
Private Sub UsingInterfaces(oTopObject As IBBTopObject)
Dim oIBBDataObject As IBBDataObject
Set oIBBDataObject = oTopObject
'This makes sure that the object passed in has been initialized
If Not oIBBDataObject.Initialized Then
oTopObject.Init REApplication.SessionContext
End If
'Allows you to find out what class has been passed
Select Case oIBBDataObject.OBJECTNAME
Case "CAction"
oIBBDataObject.Fields(ACTION_fld_NOTES) = "Test Note"
Case "CGift"
oIBBDataObject.Fields(GIFT_fld_Reference) = "Test Note"
Case "CRecord"
oIBBDataObject.Fields(RECORDS_fld_BIRTHPLACE) = "North Carolina"
End Select
If oIBBDataObject.Dirty Then oTopObject.Save
'Clean Up!
Set oIBBDataObject = Nothing
End Sub
E
SSENTIALS
81
Using the IBBMetaField Interface
The IBBMetaField interface provides a convenient way to find out and change information about the individual 
data fields used in TheRaiser’s Edge. For example, in designing your programs, you may need to know if a 
particular field has been defined as required through Configuration in TheRaiser’s Edge or you may need to know 
the type of data a specific field requires (such as date, number, or percentage). 
Every data object in TheRaiser’s Edge object model provides an IBBMetaField interface to determine this 
information. Each data object has a Fields property, array of the actual data in each field, and most of the properties 
in the IBBMetaField interface return a similarly numbered array. This makes using the IBBMetaData and the 
actual data object together much simpler. The following table displays the most commonly used properties and 
what they represent. 
You can set some of the properties through your program. For example, DisplayText, UserHidden, and 
UserRequired can be changed. The Save method saves those changes to the database. The following code shows an 
example of how you might use these properties to load an array of textboxes and accompanying labels and also 
allow your end-user to change the Display Text by double-clicking on the label. Notice we use the “Using the 
IBBDataObject Interface” on page80 interface to return a reference to the IBBMetaField interface.
Parameter
Variable Type
Description
DisplayText
String
This returns the user-defined Display As text for this field.
FormatDescription
EFormatDescriptors
This returns the type of data contained in this field.
Required
Boolean
If returns True if the field is required.
UserRequired
Boolean
If returns True if this is a field the user has selected to make 
required.
FormToCenterOn
Object
Optional: This is the object for which the UI form is centered.
C
HAPTER
1
82
Code Sample 
Option Explicit
Private moAction As CAction
Private moMetaField As IBBMetaField
Private moDataObject as IBBDataObject
Private Sub Form_Load()
Dim i As Integer
Set moAction = New CAction
moAction.Init REApplication.SessionContext
'Provides access to the IBBMetaField interface for the moAction object
Set moDataObject = moAction
Set moMetaField = moDataObject.MetaField
For i = 1 to moMetaField.Count
'If the field should be hidden we want to skip it.
If Not moMetaField.UserHidden(i) Then
'This is determined in Configuration.
Label1(i).Caption = moMetaField.DisplayText(i)
'You need to check if it is system-required or
'    if it is user-required.
If moMetaField.Required(i) Or moMetaField.UserRequired(i) Then
Label1(i).ForeColor = vbRed
End If
If moMetaField.FormatDescriptor(i) = fmtAMOUNT Then
Text1(i).Text = "$" & Text1(i).Text
End If
End If
Next i
End Sub
Private Sub Label1_DblClick(Index As Integer)
Dim s As String
s = InputBox("Enter the new Display Text")
If Len(s) Then
moMetaField.DisplayText(Index) = s
'This must be called to save the user's changes.
moMetaField.Save
End If
End Sub
E
SSENTIALS
83
Transactions
In TheRaiser’s Edge object model, there are a number of collections that support the use of transactions. Also, any 
object that implements IBBDataObject supports transactions. With transactions, you can add or remove any 
number of items from a collection or make changes to the fields in a data object temporarily until you decide to 
permanently make those changes. At any point in a transaction, you can select to undo the changes you made. 
Three methods and one property work together to provide the transactions functionality.
The BeginCollectionTransaction (or BeginFieldsTransaction for data objects) method signals the collection or 
object you want to begin a transaction at this point. If later you select to undo the changes, the collection or object 
returns to exactly the same state it is in at this time.
Calling the CommitCollectionTransaction (or CommitFieldsTransaction for data objects) method tells the 
collection or object you are finished with this transaction, and you want to make any changes made to the 
collection or object since the BeginCollectionTransaction became permanent. However, this does not make any 
changes to the database itself; those changes can be made only by calling the parent record’s Save method.
To return the collection or the object to the state it was in when you started the transaction, call the 
RollbackCollectionTransaction (or RollbackFieldsTransaction for data objects) method. After calling this method, 
the collection or object is exactly as it was when the transaction began. 
Private Sub Form_Unload(Cancel As Integer)
'Clean up!
Set moMetaField = Nothing
set moDataObject = Nothing
moAction.CloseDown
Set moAction = Nothing
End Sub
C
HAPTER
1
84
When using collections, you can use the InTransaction property to check to see if the collection is in the middle of 
a transaction. This is important because if you call CommitCollectionTransaction or 
RollbackCollectionTransaction when there is no active transaction, an error is raised. The following code sample is 
an example of how these can be used.
Custom View: Creating Custom Parts
With Custom View for TheRaiser’s Edge, you can create a customized view of individual and organization 
constituent records. This makes it possible to view records showing only the information you want to see. By 
creating these customized screens, you can select and view only what is important and functional for your 
organization. Every field available on a constituent record may not be useful to you. Using Custom View, you can 
easily select and organize only the fields and items you want to appear for a constituent record. 
Saving custom view parts is a key element in using Custom View. When you create custom views, you can 
incorporate saved parts from existing custom views. Using this “building block” method helps you make your 
custom views more consistent and eliminates duplication of effort from creating the same part over and over again 
on different views. 
Custom Parts
VBA enables you to go a step further. In addition to creating saved parts, you can use VBA to create custom parts 
for your custom views. Custom parts are similar to saved parts, yet give you unlimited flexibility to create and 
customize parts of custom screens to fit the particular needs of your organization. While saved parts can 
incorporate any of the functionality included in Custom View, your custom parts can include any feature you wish 
to create. Once you create a custom part, you can make it available for all your users to include in custom views 
they create. 
Dim oRecord As CRecord
Set oRecord = New CRecord
oRecord.Init REApplication.SessionContext
oRecord.LoadByField uf_Record_CONSTITUENT_ID, 3
Dim oIndividuals As CIndividuals
Set oIndividuals = oRecord.Relations.Individuals
oIndividuals.BeginCollectionTransaction
oIndividuals.Remove oIndividuals.Item(1), False
'If we just removed the last Individual relation then Rollback.
If oIndividuals.Count = 0 Then
oIndividuals.RollbackCollectionTransaction
Else
oIndividuals.CommitCollectionTransaction
End If
'Any changes to the collection are not saved to the database until now.
oRecord.Save
Set oIndividuals = Nothing
oRecord.CloseDown
Set oRecord = Nothing
Documents you may be interested
Documents you may be interested