quinta-feira, 10 de março de 2016

QRY do WebDev - Como Liberar





Olá pessoal. Estou fazendo meu primeiro projeto e estou abusando no uso de QRY do WebDev. Estou percebendo que essas querys se mantêm de uma página pra outra. Por exemplo, se em uma página eu aplico um filtro em uma query, quando uso essa mesm qry em outra página ela está com filtro aplicado. Ou seja, isso deve ficar na memoria do servidor. Minha dúvida é se um projeto com muitas QRY não sobrecarrega o servidor.


[15:26:01] Julio Cesar Pedroso:.: dá uma olhada nesse link
[15:26:03] Julio Cesar Pedroso:.: http://doc.windev.com/en-US/?1000019374&name=HFreeQuery
[15:26:07] Julio Cesar Pedroso:.: as explicações estão la




[15:26:59] [ Fabrício Almeida ]: Gilberto.. o uso de query no WebDev é ótima
[15:27:25] [ Fabrício Almeida ]: no seu caso.. creio q vc não esteja finalizando a query ao fechar a página
[15:27:49] [ Fabrício Almeida ]: a função pra fechar a query é:   HFreeQuery(SuaQuery)




[15:27:25] [ Fabrício Almeida ]: no seu caso.. creio q vc não esteja finalizando a query ao fechar a página
[15:27:49] [ Fabrício Almeida ]: a função pra fechar a query é:   HFreeQuery(SuaQuery)
[15:28:10] [ Fabrício Almeida ]: Ok, coloque no evento Closing da sua página







impressora Zebra com Windev





[13:20:18] Julio Cesar Pedroso:.: compartilhando uma experiência.
[13:20:53] Julio Cesar Pedroso:.: Esta semana fizemos uma consultoria para um cliente para uso da impressora Zebra com Windev.
[13:21:47] Julio Cesar Pedroso:.: Embora voce possa usar a programação ZPL, o relatório de etiquetas gerado nativamente pelo windev, funciona perfeitamente com a zebra, inclusive os códigos de barras, impressão multidirecionada e strings invertidas.
[13:21:52] Julio Cesar Pedroso:.: Fantástico este windev






Wx - Busca incremental autocomplete, busca filtrada, busca ao digitar exibe os dados do retorno de cada tecla digitada, busca com like



Link forum.pcsoft.fr/fr-FR/pcsoft.br.windev/1031-busca-incremental-autocomplete-busca-filtrada-busca-digitar-exibe-1035/read.awp



Prezados,

Segue aqui a técnica para a Busca filtrada incremental.

A cada tecla digitada faz isso no embed evento modifiy do campo faz a consulta no banco de dados

TableDeleteAll(nome da tabela)
consulta com parâmetro
HExecuteQuery(com a consulta usando conteins = like)
For each qyery
TableAdd(.......
END
TableDisplay(nome da tabela,taReExecuteQuery)
TableDisplay(nome da tabela,taInit)


A lógica é básica:
1 - limpar controle Table, looper, combo.... ou outro controle similar.
2 - buscar registros do que tem no campo de edição
3 - preencher controle com o retorno da busca no banco a cada tecla editada, como faz muito rápido da o efeito esperado.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/




0
0




Membre enregistré
1 525 messages
Popularité : +89 (91 votes)
Posté le 10 mars 2016 - 17:11
Passo a passo:




-- Script generated by WinDev on 10/03/2016 11:22:04
-- Tables of Help.wda analysis
-- for Generic SQL (ANSI 92)

-- Creating the T000_Enderecos table
CREATE TABLE "T000_Enderecos" (
"T000_ID" NUMERIC(19,0) PRIMARY KEY ,
"T000_Endereco" VARCHAR(50) ,
"T000_Numero" INTEGER ,
"T000_Bairro" VARCHAR(50) ,
"T000_Cidade" VARCHAR(50) ,
"T000_UF" VARCHAR(2) ,
"T000_CEP" VARCHAR(8) );


Query




SELECT 
T000_Enderecos.T000_ID AS T000_ID, 
T000_Enderecos.T000_Endereco AS T000_Endereco, 
T000_Enderecos.T000_Numero AS T000_Numero, 
T000_Enderecos.T000_Bairro AS T000_Bairro, 
T000_Enderecos.T000_Cidade AS T000_Cidade, 
T000_Enderecos.T000_UF AS T000_UF, 
T000_Enderecos.T000_CEP AS T000_CEP
FROM 
T000_Enderecos
WHERE 
T000_Enderecos.T000_Endereco LIKE %{pEndereco}%


Tela




O Browserlist deve ser do tipo programado




Código no campo de busca:




//Busca incremental

bTemRegistros is boolean

TableDeleteAll(TABLE_QRY_Select_Endereco_Filtrado)

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Filtrado, hQueryDefault, EDT_Busca_incremental)

IF ok = True THEN

FOR EACH QRY_Select_Endereco_Filtrado 

bTemRegistros = HFound(QRY_Select_Endereco_Filtrado)

IF bTemRegistros = True THEN

TableAdd(TABLE_QRY_Select_Endereco_Filtrado, QRY_Select_Endereco_Filtrado.T000_ID + TAB+...
QRY_Select_Endereco_Filtrado.T000_Endereco + TAB +...
QRY_Select_Endereco_Filtrado.T000_Numero + TAB +...
QRY_Select_Endereco_Filtrado.T000_Bairro + TAB +...
QRY_Select_Endereco_Filtrado.T000_Cidade + TAB +...
QRY_Select_Endereco_Filtrado.T000_UF + TAB +...
QRY_Select_Endereco_Filtrado.T000_CEP) 
END

END 

END

TableDisplay(TABLE_QRY_Select_Endereco_Filtrado,taReExecuteQuery)

TableDisplay(TABLE_QRY_Select_Endereco_Filtrado,taInit)


Resultado




:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/




0
0




Membre enregistré
1 525 messages
Popularité : +89 (91 votes)
Posté le 10 mars 2016 - 17:17
Ao abrir a janela

Query sem filtro: QRY_Select_Endereco

SELECT
T000_Enderecos.T000_ID AS T000_ID,
T000_Enderecos.T000_Endereco AS T000_Endereco,
T000_Enderecos.T000_Numero AS T000_Numero,
T000_Enderecos.T000_Bairro AS T000_Bairro,
T000_Enderecos.T000_Cidade AS T000_Cidade,
T000_Enderecos.T000_UF AS T000_UF,
T000_Enderecos.T000_CEP AS T000_CEP
FROM
T000_Enderecos


Código no open da janela:

//Busca incremental

bTemRegistros is boolean

TableDeleteAll(TABLE_QRY_Select_Endereco_Filtrado)

ok is boolean = HExecuteQuery(QRY_Select_Endereco, hQueryDefault)

IF ok = True THEN

FOR EACH QRY_Select_Endereco_Filtrado

bTemRegistros = HFound(QRY_Select_Endereco_Filtrado)

IF bTemRegistros = True THEN

TableAdd(TABLE_QRY_Select_Endereco_Filtrado, QRY_Select_Endereco_Filtrado.T000_ID + TAB +...
QRY_Select_Endereco_Filtrado.T000_Endereco + TAB +...
QRY_Select_Endereco_Filtrado.T000_Numero + TAB +...
QRY_Select_Endereco_Filtrado.T000_Bairro + TAB +...
QRY_Select_Endereco_Filtrado.T000_Cidade + TAB +...
QRY_Select_Endereco_Filtrado.T000_UF + TAB +...
QRY_Select_Endereco_Filtrado.T000_CEP)
END

END

END

TableDisplay(TABLE_QRY_Select_Endereco_Filtrado,taReExecuteQuery)

TableDisplay(TABLE_QRY_Select_Endereco_Filtrado,taInit)


Resultado:




Pronto

Simples Assim... agora é só juntar o quebra cabeças do que ja postei e ter os recursos que precisa.

Forte abraço e bons estudos.

Ahhh... não esqueça de dar o joinha se gostou do post!

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/










Teste

Teste
teste