JMP - Automatización Excel VBAHola, estoy usando la automatización JMP para obtener un número de fila particular basado en los datos seleccionados usando la función "SelectRowsWhere", pero no pude obtener el valor del número de fila. ¿Hay alguna otra forma de obtener el número de fila? ver debajo de mi código.
Sub getrownum()
Dim MyJMP como JMP.Aplicación
Dim JMPDoc como JMP.Documento
Dim DT como JMP.DataTable
Establecer MyJMP = CreateObject("JMP.Aplicación")
Establezca JMPDoc = MyJMP.OpenDocument("D:\JMP Main Data Table\TestData.jmp")
MiJMP.Visible = Verdadero
Establecer DT = JMPDoc.GetDataTable
Establecer col1 = JMPDoc.GetDataTable.GetColumn("Fecha")
'DT.SelectRows 102056, 102057
'para obtener el número de fila 102065 ??
DT.SelectRowsDónde "Fecha", filaSelectEquals, filaSelectClearPrevious, "3565986300"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1filaseleccionada = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1filaseleccionada
Finalizar sub
-Bala
Re: JMP - Excel VBA AutomatizaciónHola Brian Corcoran,
Gracias por la respuesta, sí, estoy usando la "Tabla de datos .NET" como muestra. Anteriormente, el problema era que no podía obtener el valor del índice de fila (número de fila) usando "SelectRowsWhere", que podría deberse al tipo de valor. Ahora cambié el código a seguir y resuelve el propósito.
' **DT.SelectRowsWhere "Date", rowSelectEquals, rowSelectClearPrevious, "3565986300"**
DT.SelectRowsWhere "Date", rowSelectEquals, rowSelectClearPrevious, "12-31-2016 12:00:00 AM"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1filaseleccionada = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1filaseleccionada
Re: JMP - Excel VBA AutomatizaciónTambién debo mencionar que si desea valores de columna individuales, debe obtener un objeto de columna del objeto de la tabla de datos y luego simplemente llamar a GetCellVal en eso.
Por ejemplo:
Col = DT.GetColumn("edad")
val = Col.GetCellVal(índice)
Re: JMP - Excel VBA AutomatizaciónHola Bala,
Vería el programa de muestra "Tabla de datos .NET" que se envía con JMP. Para JMP 13, esto estaría en C:\program files\sas\jmp\13\Samples\Automation\Visual Basic Samples. Hay un par de maneras de hacer esto. Uno, al que estabas llegando, es el Enum. La muestra contiene un botón llamado Enum Selected que hace lo que quieres. El código relevante es:
NSelected = DT.EnumRowStatesBegin(JMP.rowStateConstants.rowStateSelected)
Para i = 1 Para NSeleccionado
MsgBox(DT.EnumRowStatesGetNextRow, MsgBoxStyle.OkOnly, "La siguiente fila seleccionada es")
Siguiente yo
También puede ver el ejemplo "Obtener vector seleccionado". Esto usa la llamada GetRowStateVector para devolver una matriz de todas las filas seleccionadas por índice.
"Obtener datos seleccionados", otro ejemplo, utiliza GetRowStateVectorData para devolver los valores de datos subyacentes en lugar de los índices.
Espero que eso ayude.
Brian Corcorán
Desarrollo JMP