Rodrigo,

seus exemplos são semelhantes ao código que tenho no meu sistema.
Infelizmente não sei o motivo dessa demora.
Talvez a lentidão não seja por causa da classe que está utilizando e sim a
consulta que está trazendo.
O select que popula a tabela executa rápido no banco de dados?

  -----Mensagem original-----
  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nome de Rodrigo Scarano - Target Sistemas
  Enviada em: terça-feira, 18 de novembro de 2008 13:42
  Para: [email protected]
  Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.


  Olá George,



  Obrigado pelo retorno.

  Na verdade nosso problema está na lentidão da população de uma tabela
MTable (com a função SalTblPopulate) e não na ordenação da mesma.





  Seguem os exemplos:



  Função para ordenação da coluna

  Function: FunColOrdenaColuna

              Description:

              Returns

              Parameters

              Static Variables

              Local variables

                          Window Handle: hWnd_col_ordena[*]

                          Number: nu_vet_sort_flags[*]

              Actions

                          Call SalWaitCursor( TRUE )

                          Set hWnd_col_ordena[0] = hWndItem

                          If boo_cres

                                     Set nu_vet_sort_flags[0] = MTS_DESC |
MTS_DT_DEFAULT

                                     Set boo_cres = FALSE

                          Else

                                     Set nu_vet_sort_flags[0] = MTS_ASC |
MTS_DT_DEFAULT

                                     Set boo_cres = TRUE

                          If NOT MTblSort( hWndForm, hWnd_col_ordena,
nu_vet_sort_flags )

                                     Set boo_cres = NOT boo_cres

                          Call SalTblClearSelection( hWndForm )

                          Call SalWaitCursor( FALSE )





  Código que utilizamos do MTable no SAM_Create da classe Tbl_Child

  ! Subclass - MTbl

  Call MTblSubClass( hWndItem )

  ! Cores alternadas de fundo nas linhas

  Call MTblSetAltRowBackColors( hWndItem, FALSE, CTE_Cor_01_Alt,
CTE_Cor_02_Alt )

  ! Ajusta cor da moldura da tabela ( cabeçalhos )

  Call MTblSetHeadersBackColor( hWndItem, CTE_Cor_Tela, MTSC_REDRAW )

  ! Habilita e define Tool Tip

  Call MTblEnableTipType( hWndItem, MTBL_TIP_CELL, TRUE )



  Obrigado e um abraço!





  Rodrigo Scarano

  Target Sistemas
  * [EMAIL PROTECTED]

  Rua Turiassu, 390 - 2º Andar - Perdizes - SP
  CEP 05005-000 São Paulo Brasil

  Tel. SUPORTE: 55 11 3866 3466
  Tel.: 55 11 3801 4015

  site.: www.targetsis.com.br

  Tecnologia da Informação Aplicada ao Distribuidor



  -----Mensagem original-----
  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em
nome de George Hilton
  Enviada em: terça-feira, 18 de novembro de 2008 10:40
  Para: [email protected]
  Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.



  Rodrigo,



  Verifiquei os fontes e além da SalTblSortRows  utilizamos também a função
MTblSort contida na dll mtbl.dll.

  Eu populo a tabela com um SalTblPopulate normal e depois uso a MTblSort.
Qual função você está utilizando para popular a tabela?

  Nâo percebi diferença no tempo de resposta das duas formas de ordenações.

    -----Mensagem original-----
    De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nome de Rodrigo Scarano - Target Sistemas
    Enviada em: terça-feira, 18 de novembro de 2008 11:01
    Para: Centura List
    Assunto: [sqlwin] Child Table TD 5.1 - Urgente.
    Prioridade: Alta

    Olá pessoal. Tudo certo?



    Estou com um problema urgente e gostaria de saber se alguém pode me
ajudar:



    Quando migramos nosso aplicativo do TD 4.2 para o TD 5.1, o comando
SalTblSortRows da Child Table começou a apresentar problemas de GPF. Após
várias reclamações o caso foi registrado como um BUG pela Ana Paula (Unify),
porém até o momento não foi resolvido. Cansamos de esperar por uma resposta
da Unify (até porque acho que eles não estão muito preocupados conosco) e
para contornar a situação, passamos a utilizar a classe “MTable” que não
apresenta o problema na ordenação. A questão é q o comando de Populate da
“MTable” é MUITO MAIS LENTO que o mesmo comando na Child Table e isso está
inviabilizando a utilização em nossos clientes. Gostaria de saber se alguém
do fórum utiliza a classe “MTable” e já enfrentou este tipo de situação de
lentidão.



    Qquer ajuda é bem vinda.



    Forte abraço!





    Rodrigo Scarano

    Target Sistemas
    * [EMAIL PROTECTED]

    Rua Turiassu, 390 - 2º Andar - Perdizes - SP
    CEP 05005-000 São Paulo Brasil

    Tel. SUPORTE: 55 11 3866 3466
    Tel.: 55 11 3801 4015

    site.: www.targetsis.com.br

    Tecnologia da Informação Aplicada ao Distribuidor




Responder a