Olá George,

Aqui utilizamos o Tbl_FillAll. Vamos fazer um teste com o Tbl_FillNormal.
Obrigado pela dica.

 

Abração!

 

 

 

Rodrigo Scarano

Target Sistemas 
*  <mailto:[EMAIL PROTECTED]> [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.:  <http://www.targetsis.com.br%20/> 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 16:28
Para: sqlwin@virtualand.net
Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.

 

Você está usando a constante TBL_FillNormal no populate? ela só popula o que
é visível na tela, deixando o resto da carga para quando a barra de rolagem
for se movendo.

Como o select já está rápido, não sei se isso terá muita utilidade, mas é
como estou usando aqui.

 

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

Olá George,

 

O select está rápido sim. Na verdade chegamos ao “Populate” debbugando o
programa.

Enfim: Estamos pesquisando por aqui.

 

Obrigado pelo apoio.

 

Abração!

 

 

 

Rodrigo Scarano

Target Sistemas 
*  <mailto:[EMAIL PROTECTED]> [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.:  <http://www.targetsis.com.br%20/> 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 13:29
Para: sqlwin@virtualand.net
Assunto: RES: [sqlwin] Child Table TD 5.1 - Urgente.

 

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: sqlwin@virtualand.net
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 
*  <mailto:[EMAIL PROTECTED]> [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.:  <http://www.targetsis.com.br%20/> 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: sqlwin@virtualand.net
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 
*  <mailto:[EMAIL PROTECTED]> [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.:  <http://www.targetsis.com.br%20/> www.targetsis.com.br 

Tecnologia da Informação Aplicada ao Distribuidor 

 

 

Responder a