Domino Code Fragment

Code Name*
Performing a Search
Date*
04/28/2024
Source (or email address if you prefer)*
Rlatulippe@romac.com
IP address:.18.222.148.124
Description*
Performing a Search
Type*
LotusScript
Categories*
(Misc)
Implementation:
Required Client:
Server:
Limitations:
Comments:
Files/Graphics attachments (if applicable): Code:
Where : Vendor Parts Form

Solution :


(Globals) Declarations

Dim uidoc As NotesUiDocument
Dim doc As NotesDocument
Dim collection As NotesDocumentCollection


PostOpen Event

Sub Postopen(Source As Notesuidocument)
Set uidoc= source
Set doc = source.document
End Sub


Click Event

Sub Click(Source As Button)
Dim RetCode As Integer

'-- A vendor must be entered
If doc.Vendor(0) = "" Then
RetCode% = Messagebox("Please Select a Vendor", MB_OK + MB_ICONSTOP, "Invalid Vendor")
uidoc.gotofield("Vendor")
Exit Sub
End If

'-- Instantiate a BIKEPARTS.NSF NotesDatabase object
Dim db As New Notesdatabase( "", "PGN2\BIKEPART.NSF")

'-- Instantiate a NotesDatetime object
Dim datetime As New NotesDateTime( "1/1/90")

'-- Create search string for database search
searchformula$ = "Vendor = " & """" + doc.Vendor(0) + """"

'-- Perform Search
Set collection = db.search( searchformula$, datetime, 0 )

'-- Dont automatically reload front end fields
uidoc.AutoReload = False

'-- Populate the table via the backend
Call PopulateTable

'-- Reload the backend values to the front end
Call uidoc.reload

End Sub


(Globals) PopulateTable

Sub populateTable

'-- Declare NotesItem Reference Variables for strings
Dim p As NotesItem
Dim t As NotesItem
Dim d As NotesItem

'-- Initialise String Fields
doc.PartNo = ""
doc.Type = ""
doc.Dimension = ""

'-- Set NotesItem Reference Variables for Strings
Set p = doc.getfirstitem("PartNo")
Set t = doc.getfirstitem("Type")
Set d = doc.getfirstitem("Dimension")

'-- Declare Dynamic array for Cost
Dim costArray() As Single

'-- Get First Document in Collection
Dim qdoc As NotesDocument
Set qdoc = collection.getfirstdocument

'-- Initialise Dynamic Array Index
index = 0

'-- Populate table with Collection
Do While Not ( qdoc Is Nothing )

'-- Append Strings via NotesItem method
p.appendtotextlist( qdoc.partno(0) )
t.appendtotextlist( qdoc.type(0) )
d.appendtotextlist( qdoc.dimension(0) )

'-- Build Single array

Redim Preserve costArray(index )
costArray(index) = qdoc.cost(0)
index = index + 1

'-- Get Next Document in Collection
Set qdoc = collection.getnextdocument( qdoc)
Loop

'-- Assign cost array to backned document item
doc.cost = costArray

End Sub