Skip to Content
author's profile photo Former Member
Former Member

Aumentar velocidad uso de matrix

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....

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Mar 30, 2009 at 01:08 PM

    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

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.