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 184.108.40.206 (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