Buenos días, apreciados colegas, ya he podido recuperar mi cuenta y quisiera aprovechar para consultarles esto que me ha estado atascando desde hace varias semanas.
Como bien lo indico en el título, estoy incursionando en el mundo del desarrollo a través de DI API en .NET y la verdad soy nuevo en este tema del desarrollo y hasta tal vez les cause gracia mi pregunta, pero en fin, la cuestión es que necesito mostrar dentro de un datagridview todos los registros de la tabla OITM (o todos los productos cargados en el maestro de artículos). La verdad he buscado mucho y aparentemente la forma más ideal, según las documentaciones del SDK de SAP, sería utilizar un Recordset, pero no estoy tan familiarizado con este método. A continuación les comparto un código, que dicho sea de paso, se encuentra en la documentación. He intentado adaptar a mis necesidades, pero no conseguí mucho.
Sub llenarGrillaPrueba()
Dim Count As Long
Dim i As Long
Dim RecSet As SAPbobsCOM.Recordset
RecSet = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
RecSet.DoQuery("select ""ItemCode"" from OITM where ""ItemCode"" IN ('429','1009')")
'RecSet.DoQuery("select * from OITM where ""InvntItem"" = 'Y' ORDER BY ""ItemCode"" ASC")
Count = RecSet.RecordCount
While RecSet.EoF = False
For i = 0 To Count - 1
DataGridView1.Rows(i).Cells("codigo").Value = RecSet.Fields.Item("ItemCode").Value
RecSet.MoveNext()
Next i
End While
End Sub
Ese es el código que en teoría debería llenarle la grilla, pero me sale una excepción diciendo que está fuera del rango del índice.
La verdad hice muchas pruebas, un registro puedo cargar sin problemas, pero si intento cargar más de un registro, me sale el error del rango.
Alguien que conozca bien el funcionamiento del Recordset que pueda ayudarme? O alguien que me indique alguna forma de hacer esto?
Observación rápida: Hay otra forma de cargar la grilla (que me funcionó), que es mediante un método llamado “GetItemList”, pero no conseguí filtrar desde allí. Igual si saben alguna forma para filtrar los datos desde aquí, también me serviría.
La idea principal es crear un campo de texto donde pueda implementar un evento que por cada letra escrita por el usuario, vaya filtrando la información en la grilla.
También encontré esto en este foro, pero no sé muy bien cómo funciona: Llenar una grilla con las formas de pago con diapi - nº 3 por Esteban_P
Desde ya, muchas gracias por su atención. Espero puedan ayudarme con esto. Saludos.