sábado, 19 de setembro de 2015

Windev - Curso - 70/... - Mapa Itinerario



Video - Windev - Curso - 70/... - Mapa Itinerario
https://youtu.be/ZNE1CB5kY2A


Nessa aula vou mostrar como se faz o itinerario de Mapa


MapDeleteAll(MAP_Mapa) // Elimina dados mapa
  // CarteSupprimeTout(MAP_Mapa) // Em Frances
MapAddItinerary(MAP_Mapa,[EDT_endereco_origem,EDT_endereco_destino],itineraryCar)
  //CarteAjouteItinéraire(MAP_Mapa,[EDT_endereco_origem,EDT_endereco_destino],itineraryCar)// em frances
  










Blog - Curso Iniciante /1/... - Inicio
Blog - Curso Iniciante /2/... - Menu
Blog - Curso Iniciante /3/... Campos  
Blog - Curso Iniciante /4/... - Duvida/Style
Blog - Curso Iniciante /5/... - Menu
Blog - Curso Iniciante /6/... - Menu 2
Blog - Curso Iniciante /7/... - If / ShellExecute  
Blog - Curso Iniciante /8/... - ReturntoCapture 
Blog - Curso Iniciante /9/... - Info
Blog - Curso Iniciante /10/.. - DateSys - Now
Blog - Curso Iniciante /11/... - Criando Analise Agenda 
Blog - Curso Iniciante /12/... - Menu , Agenda
Blog - curso Iniciante /13/... - HreadSeek  
Blog - curso Iniciante /14/... - For Each - Percorrer Tabela 
Blog - Curso Iniciante /15/... - Query Consultas
Blog - Curso Iniciante /16/... - Tabela Relatorio
Blog - Curso Iniciante /17/... - Relatorio Criando 
Blog - Curso Iniciante /18/... - Relatorio Manual 
Blog - Curso Iniciante /19/.. - Menu Popup
Blog - Curso Iniciante /20/... - Data - Separar dia mes e ano
Blog - Curso Iniciante /21/... - Time - Separar hora/min/seg 
Blog - Curso Iniciante /22/... - Operadores
Blog - Curso Iniciante /23/... - String Igualdade 
Blog - Curso Iniciante /24/... - Switch / Case
Blog - Curso Iniciante /25/... - LOOP 
Blog - Curso Iniciante /26/... - FOR
Blog - Curso /27/... - Extern 
Blog - Curso /28/... - My 
Blog - Curso /29/... Procedures
Blog - Curso /30/... HSave  .. - Inclui Um Registro
Blog - Curso /31/... - Hsave - Altera um Registro
Blog - Curso /32/... - HDelete - Exclui Registro(s)
Blog - Curso /33/... - Relatorio
Blog - Curso /34/... - Dialog 
Blog - Curso /35/... - Input
blog - Curso /36/... - Combox 
Blog - Curso /37/... Combox Tabela 
Blog - Curso /38/... List Box
Blog - Curso /39/... - Analise Agenda/Ligacoes
Blog - Curso /40/... - Rad - Tabela Relacionada Agenda/Ligações
Blog - Curso /41/... - Tabela Relacionada Manual
Blog - Curso /42/... - Dica Tela/Code Separado
Blog - Curso /43/... - Mapa /1..
Blog - Curso /44/... - Mapa /2.. Imprime
Blog - Curso /45/... - Fechar Programa - EndPrograma()
Blog - Curso /46/... - Camera Habilita/Desabilita 
Blog - Curso /47/... - Tabela e Formulario - Configurar Cnpj
Blog - Curso /48/... - Camera - Tirar Uma Foto e Gravar Imagem
Blog - Curso /49/... - Reports e Queies - Instalacao
Blog - Curso /50/... Reports e Queies - Relatorio - Como Gerar 
Blog - Curso /51/... Pedidos/Orcamento 1/... Analise
Blog - Curso /52/... Pedidos/Orcamento 2/.. Analise Windev
Blog - Curso /53/... Pedidos/Orcamento 3/... Relacionamento
Blog - Curso /54/... Pedidos Orcamento 4/... Rad
Blog - Curso /55/... Pegar Quantidade e Codigo - Separador * 
Blog - Curso /56/... Pegar Retorno de Uma Tabela e colocar Campo 
Blog - Curso /57/... Xml - Ler Conteudo Tags e Importar Pedido
Blog - Curso /58/... Ini - Ler e Gravar 
Blog - Curso /59/... Pedidos Orcamento 5/... Inicio Digitacao Pedido
Blog - Curso /60/... Pedidos Orcamento 6/... Digitando Iten Pedido
Blog - Curso /61/... Pedidos orcamento 7/... Gravando Pedido e Itens   
Blog - Curso /62/... Pedido Orcamento 8/... Consulta cliente   
Blog - Curso /63/... Tabela - Ancorar Coluna
Blog - Curso /64/... Tabela - Esconder ou Mostrar Coluna 
Blog - Curso /65/... RSS 
Blog - Curso /66/... Pedido Orcamento 9/... Consulta Material
Blog - Curso /67/... Tabelas, Control F Pesquisa Toda Tabela /Contenha/Cor Fundo
Blog - Curso /68/... Pedidos Orcamento 10/... Planos - Condições Pagamento 
Blog - Curso /69/... - Calculadora dentro do Campo Valor 
Blog - Curso /70/... Mapa - Itinerario
Blog - Curso /71/... Tabela - Alterar Nome Coluna
Blog - Curso /72/... Botal Fazer Menu popup
Blog - Curso /73/... Debug - Como Usar 
Blog - Curso /74/... Tabela Alinhar Coluna Lado Esquerdo 
Blog - Curso /75/... Pedidos Orcamento 11/... Quantidade /Mascara/Mudar 
Blog - Curso /76/... YesNo - Pergunta Se Deseja Eliminar 
Blog - Curso /77/... Select - Case - Query 
Blog - Curso /78/... Pedido/Orcamento 12/... - Analise Cond.Pagto 
Blog - Curso /79/... Campos - Como Alterar configuracao via Codigo 
Blog - Curso /80/... Pedido/Orcamento 13/... - Tabela,Gerar Condicoes/Parcelas
Blog - Curso /81/... Configuracao Trocar Exe para Wdl ou outro 
Blog - Curso /82/... Utilitarios - PopUp - Aumento Precos Materiais 
Blog - Curso /82/... TableEnableFilter - Digita Nome e Filtra 
Blog - Curso /83/... TableEnableFilter - Digita Nome e Filtra 
Blog - Curso /84/... Dica Copiar Colar Texto Ou Imagen Pdf
Blog - Curso /85/... SElect Como Usar Wizard 
Blog - Curso /86/... Radio - Colocar tudo Mesma Linha
Blog - Curso /87/... Procedure - Melhoria Versao20 - Parametros
Blog - Curso /88/... Style - Tabela Como Alterar
Blog - Curso /89/... Style - Tab Como Alterar
Blog - Curso /90/... Pedido/Orcamento 14/... - Style - Mudando Botao Procura
Blog - Curso /91/... - Pedido/Orcamento 15/... - Pedido - Totalizar Colunas Tabela
Blog - Curso /92/... Backup - Hyperfile 
Blog - Curso /93/... Debug - STOP 
Blog - Curso /94/... Tabela - Alterar Cor da Coluna - Texto
Blog - Curso /95/... Select Max - Pegar o Numero Proxima Nota 
Blog - Curso /96/... Tabela Divisao de Muitas Colunas 
Blog - Curso /97/... Analise - Configurar Campo para Vir Automatico Combox 
Blog - Curso /98/... Tabela - Double click - Entrar direto Alteração do Cliente 
Blog - Curso /99/... Tabela MultiSeleção
Blog - Curso/100/... Tabela - TableMoveLine - Move Linha Baixou ou Cima
Blog - Curso/101/... TableAjust - Ajustar Tabela com Colunas
Blog - Curso/102/... TableSort - Ordem nas Colunas

 

WM20 - Procedure JAVA Android não atualiza Codigo



Willian Fernando - WM20 - Procedure JAVA Android não atualiza Codigo - Forum Windev








Wx - Busca Endereço Rota e Endereço das coordendas



Adriano - Wx - Busca Endereço Rota e Endereço das coordendas - Forum Windev

Adriano - WX - Busca CEP - Republica Virtual CEP - Exemplos









Wx - Funcionamento do Groupware com o driver nativo do Ms SQL Server





Adriano - Wx - Funcionamento do Groupware com o driver nativo do Ms SQL Server - Forum Windev





ConexaoGpw is Connection

IF NOT gpwOpenConnection(conexaoGpw,ConfiguracoesBancoDados.NomeUsuarioBD,

 ConfiguracoesBancoDados.SenhaBanco,ConfiguracoesBancoDados.NomeServidor, 
ConfiguracoesBancoDados.NomeBancoDados,hAccessHFClientServer,hOReadWrite)

THEN

Info("Falha na Conexão com o Grupo de Usuários"+CR+HErrorInfo())

EndProgram()

END


ConexaoGpw is Connection

IF NOT gpwOpenConnection(conexaoGpw, ConfiguracoesBancoDados.NomeUsuarioBD, ConfiguracoesBancoDados.SenhaBanco, ConfiguracoesBancoDados.NomeServidor, ConfiguracoesBancoDados.NomeBancoDados, hAccessHFClientServer, hOReadWrite) THEN

Info("Falha na Conexão com o Grupo de Usuários"+CR+HErrorInfo())

EndProgram()

END







Wx - Trabalhando com DLL de Terceiros





Adriano - Wx - Trabalhando com DLL de Terceiros - Forum Windev










//OBS.:

//Inicialmente registre por dos comando: regsvr32.exe
//Nao sei se alguem precisa mais ai vai a solução:

//StringRetrieve(retornomemoria , srUNICODEAddress )

//alterei de

//srASCIIZAddress para srUNICODEAddress

//ficou assim:

retornomemoria is int = CallDLL32("spdNfeLib.dll","StatusDoServico",Caminhoini,1)

xmlretorno is string = StringRetrieve ( retornomemoria , srUNICODEAddress )

Info (xmlretorno)





//Sobre o calldll32 retorna somente inteiro ai para ler o retorno string precisei fazer dessa forma:

hInst is int = LoadDLL("nfe.dll")

//hInst = LoadDLL("spdNfeLib.dll")

IF hInst = 0 THEN

Error(ErrorInfo())

ELSE

nAddrASCIIZString is int = CallDLL32("nfe.dll", "VLK_ConsultaStatusWS", Caminhoini,1)
sStringContent is string = StringRetrieve ( nAddrASCIIZString , srASCIIZAddress )

Info(sStringContent)

//sRetorno is string = sString is string CallDLL32("nfe.dll","VLK_ConsultaStatusWS",caminhoini,1)
//CallDLL32("spdNfeLib.dll","StatusDoServico",caminhoini,1)

FreeDLL(hInst)

END

//O stringretrieve que converte de int para string



//Vejamos o seguinte exemplo:

//EM CLARION:

PUBLIC *CLASTRING FastQRCode(*CLASTRING,*CLASTRING)

//Obs.: é com ponteiro

//Não é uma simples string
//é um ponteiro de string
//com endereçamento de memoria

//Voce em que tomar cuidado para não mandar um caminhao entrar numa garagem de um fusca
//ai não da certo, a tipagem de campos algo bem sério para a questão da prototipação de Dlls de terceiros.
//em seu sistema, pois uma vez mal feito vai gerar excessoes, exceptions GPFs em seu sistema.
//A Dll deve ser encaixada corretamente em seu sistema
//A variavel do tipo VARIANT aceita qualquer coisa bem como a BUFFER na maioria dos casos



Publicado em setembro, 17 2015 - 5:16 PM
Principal noção:

A) Carrega uma Dll na memória com LoadDLL (Function)
http://help.windev.com/en-US/…
<Result> = LoadDLL(<DLL Name>)
Ex.:
hInst is int
hInst = LoadDLL("MyDLL.DLL")
IF hInst = 0 THEN
Error(ErrorInfo())
ELSE
Info("DLL loaded")
FreeDLL(hInst)
END



B) Executa um metodo interno de uma DLL com CallDLL32 (Function)
http://help.windev.com/en-US/…
<Result> = CallDLL32(<DLL Name>, <Function Number> [, <Parameter 1> [, <Parameter 2> [, ... ]]])
Ex.;
CallDLL32("USER32", "SendMessageA", hWnd, wMsg, lParam1, lParam2)



C) Libera uma DLL com FreeDLL (Function)
http://help.windev.com/en-US/…
Ex.:
hInst = LoadDLL("MyDLL.DLL")
IF hInst = 0 THEN
Error("Error during the unload operation")
ELSE
CallDLL32("MyDLL", "FunctionA", par1, par2)
CallDLL32("MyDLL", "FunctionB", par1)
FreeDLL(hInst)
END


Outros links:

Selecting_the_libraries
http://help.windev.com/en-US/…
http://help.windev.com/en-US/…
http://help.windev.com/en-US/…


Returns the list of libraries (".DLL" files) used by one of the applications currently run. This application can correspond to a WinDev application, a WinDev Mobile application or another application.
http://help.windev.com/en-US/…


The list of libraries (".DLL" files) used by the current WinDev or WinDev Mobile application or by the current WebDev site. Only the libraries loaded in memory are listed.
http://help.windev.com/en-US/…


API do Windows
http://help.windev.com/en-US/…
e
http://help.windev.com/en-US/…
Ex.:
API("USER32", "SendMessageA", hWnd, wMsg, lParam1, lParam2)
<Result> = API(<DLL Name> , <Function Name> [, <Parameter 1> [, <Parameter 2> [, ...]]])


Código 34 é um erro de DLL
http://help.windev.com/en-US/…
Unable to load the <DLL_NAME> DLL. ERR_NO_DLLEXE (34)
http://help.windev.com/en-US/…
The <DLL_NAME> DLL is not compatible with this version of WEBDEV. ERR_BAD_DLLEXE


Eu Tinha problema na linguagem(Clarion) em pegar o retorno de uma DLL desenvolvida em Delphi, que retornava o tipo de Variavél "PwideChar()"... Não conseguia pegar de jeito nenhum...

Já com a ferramenta Windev, utilizando os procedimentos acima meus problemas acabaram.. :) consegui pegar o retorno sem problemas.... Isso irá me ajudar muito no desenvolvimento ...

Para os que tiverem o mesmo problema que tive... vai uma dica ao tentar pegar o Retorno de uma DLL desenvolvida em Delphi cuja varaiável é do tipo PWideChar():

Utilizando a opção "srASCIIZAddress" não funcionou:

xmlretorno is string = StringRetrieve ( retornomemoria , srASCIIZAddress)


AI para funcionar precisei utilizar a opção: "srUNICODEAddress "
xmlretorno is string = StringRetrieve ( retornomemoria , srUNICODEAddress )


Teste

Teste
teste