Grid control con dati filtrati
Inviato: sabato 23 aprile 2022, 10:30
Buongiorno
avrei necessità tramite la formula che vi allego, la possibilità di inserire all'interno del grid control i dati filtrati presenti in un foglio. Il problema che mi appare nella grid control solamente i dati filtrati presenti nella colonna "A" e non i dati presenti nelle colonne successive. Mi potete Aiutare? Grazie mille.
avrei necessità tramite la formula che vi allego, la possibilità di inserire all'interno del grid control i dati filtrati presenti in un foglio. Il problema che mi appare nella grid control solamente i dati filtrati presenti nella colonna "A" e non i dati presenti nelle colonne successive. Mi potete Aiutare? Grazie mille.
Codice: Seleziona tutto
Sub Grid_stand
Dim oCell
Dim oFilterDesc
Dim oTextBox
Dim Arr
dlgmodel = oDialogo11.getModel()
gridmodel = dlgmodel.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
with gridmodel
.PositionX = 352
.PositionY = 35
.Width = 178
.Height = 172
end with
' add columns
columnmodel = gridmodel.ColumnModel
col = columnmodel.createColumn()
col.Title = "STAND"
columnmodel.addColumn(col)
col = columnmodel.createColumn()
col.Title = "ID. COD."
columnmodel.addColumn(col)
col = columnmodel.createColumn()
col.Title = "DESCRIZIONE"
columnmodel.addColumn(col)
col = columnmodel.createColumn()
col.Title = "Q.TA'"
columnmodel.addColumn(col)
If oDialogo11.getControl("TextField1").text <>"" Then
dlgmodel.insertByName("grid", gridmodel)
grid = oDialogo11.getControl("grid")
oListener = (CreateUnoListener("grid_", "com.sun.star.awt.grid.XGridSelectionListener"))
grid.addSelectionListener(oListener)
datamodel = gridmodel.GridDataModel
Dim oFields(0) As New com.sun.star.sheet.TableFilterField2
Sheet = ThisComponent.Sheets(1)
oTextBox = oDialogo11.getControl("TextField1")
Daric = UCase(oTextBox.Text)
c = Sheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow + 1
CellRange = Sheet.getCellRangeByName("A2:A" & LastRow)
oFilterDesc = CellRange.createFilterDescriptor(True)
With oFields(0)
.Field = 0
.Operator = com.sun.star.sheet.FilterOperator2.BEGINS_WITH
.StringValue = Daric
End With
oFilterDesc = CellRange.createFilterDescriptor(True)
With oFilterDesc
.ContainsHeader = False
.CopyOutputData = False
.FilterFields2 = oFields()
End With
CellRange.filter(oFilterDesc)
ranges = CellRange.queryVisibleCells()
If Ubound(ranges.RowDescriptions) > -1 Then
ReDim Arr(0 To Ubound(ranges.RowDescriptions))
Dim a(0 To Ubound(ranges.RowDescriptions))
For Each oCell in ranges.Cells
Arr(x) = oCell.CellAddress.Row
a(x) = oCell.DataArray(0)
x = x +1
Next
datamodel.addRows(a, a)
End if
End if
End Sub