on 03-26-2009 1:15 AM
Hola a todos los miembros del foro espero me puedan apoyar lo que pasa es que estoy realizando un addon de creacion de facturas, el problema que tengo ahora es la optimizacion del addon debido a que ya genera las facturas; el problema es que yo hago una consulta basandome en los socios de negocio y la cantidad de articulos que tiene pendiente por entregar cada socio de negocio, esta consulta que realizo en ocasiones es demasiado grande (en ocasiones me regresa 2000 o 3000 registros), y cuando quiero mostrar esta informacion en un matrix el proseso es demasido lento, alguien de ustedes sabe como podria acelarar la velocidad de este proceso???
Existe algunan forma de paginar el matrix??
Aqui les muestro la forma en como estoy leyendo mi recorset y despues asignandole los valeres al matrix.....
While Lrs_RecordSet.EoF = False
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item("M0C00")
Lo_UserDataSource.Value = Lrs_RecordSet.Fields.Item("ItemCode").Value
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(colNumEntrega)
Lo_UserDataSource.Value = Lrs_RecordSet.Fields.Item("DocNum").Value
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(colEntrega)
Lo_UserDataSource.Value = Lrs_RecordSet.Fields.Item("NumAtCard").Value
Lo_UserDataSource = Mo_Forma.DataSources.UserDataSources.Item(colPrice)
Lo_UserDataSource.Value = Lrs_RecordSet.Fields.Item("Price").Value
Mo_MatrixArt.AddRow()
If Ls_Campo <> "" Then
Mas_Busqueda.Add(Lrs_RecordSet.Fields.Item(Ls_Campo).Value)
End If
Lrs_RecordSet.MoveNext()
End While
Este proceso lo tiene qu erelizar por cada uno de lo sregistros que arroje mi consulta...espero que alguno de los miembros del foro tenga algun metodo para poder aceerar este proceso
De antemano les agradesco....
1) No se si ya lo has echo pero como primera cosas habria que hacer un freeze del form.
Mo_Forma.Freeze(true)
tu codigo
Mo_Forma.Freeze(false)
2) Utilizar diferentes variables para utilizar los UDS:
Lo_UserDataSource1 = Mo_Forma.DataSources.UserDataSources.Item("M0C00")
Lo_UserDataSource2 = Mo_Forma.DataSources.UserDataSources.Item(colNumEntrega)
Lo_UserDataSource3 = Mo_Forma.DataSources.UserDataSources.Item(colEntrega)
Lo_UserDataSource4 = Mo_Forma.DataSources.UserDataSources.Item(colPrice)
Mo_Forma.Freeze(true)
While Lrs_RecordSet.EoF = False
Lo_UserDataSource1.Value = Lrs_RecordSet.Fields.Item("ItemCode").Value
Lo_UserDataSource2.Value = Lrs_RecordSet.Fields.Item("DocNum").Value
Lo_UserDataSource3.Value = Lrs_RecordSet.Fields.Item("NumAtCard").Value
Lo_UserDataSource4.Value = Lrs_RecordSet.Fields.Item("Price").Value
Mo_MatrixArt.AddRow()
If Ls_Campo "" Then
Mas_Busqueda.Add(Lrs_RecordSet.Fields.Item(Ls_Campo).Value)
End If
Lrs_RecordSet.MoveNext()
End While
Mo_Forma.Freeze(false)
De esta forma ahorras tiempo porque no pides al form la referencia a lso diferentes UDS (4 veces x 3000 row)
Espero te sea de ayuda.
Ciao
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.