I have on for that displays a grid control that shows a summary of each row in a database table. I want to open another form that displays that record in detail when a row in the grid is selected. There are other forms in the system that also use a grid control in a similar way. This system worked previously. I don’t know what changed other than updating the version of LibreOffice. I am currently using version 7.0.3.1 (x64). Now, when I set the value of the filter property oTargetForm.Filter = sFilter
I get the error…
BASIC runtime error.
Property or method not found: Filter
Here is the source to the macro
REM The following constants allow parameters to be set based on the name of the
REM form which contains the object that originated the triggering event
CONST Schema = "gems"
CONST MasterFormDoc = "Gems.Catalog"
CONST MasterFormName = "GemCatalogForm"
CONST ApFormName = "ApplicationForm"
REM The DeriveData subroutine sets public variables
sGridControl = "ApplicationFormGrid"
sGridColumn = "numID"
sTargetForm = Schema & ".catalog"
sDrawPage = "GemCatalogForm"
sTargetColumn = "Gem_ID"
sTargetTable = "catalog"
REM Macro to handle an event from the grid control of the application form.
The name of the object which threw the event will be used to identify a set of additional
parameters for this subroutine... see Public variable definitions and DeriveData Subroutine
Sub ApFormGrid( oEv as variant )
DIM oModel as object, oForm as object, oTargetForm as object, oDrawPage as object
DIM sFilter as string, oGrid as object, oColumnList as object
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oModel = oEv.Source.model
oForm = oModel.Parent
DeriveData( oForm.Name )
oGrid = oForm.getByName(sGridControl)
oColumnList = oGrid.getByName(sGridColumn)
sFilter = oColumnList.getCurrentValue()
IF Len( sFilter ) > 0 THEN
oTargetForm = openThisDocumentForm( sTargetForm )
sFilter = "( """ & Schema & """.""" & sTargetTable & """.""" & sTargetColumn & """ = " & sFilter & " )"
MsgBox "Filter ='" & sFilter & "'"
oTargetForm.Filter = sFilter
oTargetForm.ApplyFilter=True
wait 100
oTargetForm.Reload()
ENDIF
END Sub