sábado, 14 de fevereiro de 2015

Windev Passando datas para uma Procedure

Passando datas para uma Procedure

Se você tiver um controle em uma janela que seja originado por um campo de data de um arquivo, este será apresentado como
uma string ANSI. Desta forma se você tentar passasr este controle para um procedimento que espere uma data, o que
ocasionará um erro.
Uma solução é usar o seguinte código:
Minhadata is Date = DocumentDate
INHEAD.PeriodCode = GetPeriodFromDate(Minhadata)
Isto faz com que o procedimento chamado use a data passada diretamente.
PROCEDURE GetPeriodFromDate(lcDate is Date)
MyReturnVal is int = -1
HReadFirst(Finperiods,FinperiodsID)
WHILE NOT HOut(Finperiods)
IF Finperiods.PeriodStart <= lcDate AND Finperiods.PeriodEnd >= lcDate THEN
MyReturnVal = Finperiods.PeriodCode
BREAK
END
HReadNext(Finperiods, FinperiodsID)
END
RESULT MyReturnVal
Gestão do Conhecimento http://pedroso.mysuite.com.br/services/gcHtml.php
1

Diretorio -

Diretorio -

Data - Duração

Data - Duração


Duration - http://doc.windev.com
















Move Diretorio

Move Diretorio

FMoveDir - http://doc.windev.com


fMoveDir (Function)
In French: fRepDéplace

Moves the content of a directory into another directory.

// Moving the content of a directory 
// The content of the "C:\Directories\MyFiles" directory is moved 
// into the "D:\Documents\FileCopy" directory
Res is boolean
Res = fMoveDir("C:\Directories\MyFiles", "D:\Documents\FileCopy", frRecursive)
IF Res = False THEN
Error(ErrorInfo(errMessage))
END

Windev Data Texto Para Postgres

Windev Data Texto Para Postgres

Para converter um campo texto para campo data, usar a funcao

StringToDate

nota_fiscal.data_emissao = StringToDate("16/09/2014","DD-MM-YYYY")


Data - Passando Data Para Procedure

Data - Passando Data Para Procedure



quinta-feira, 29 de janeiro de 2015

Solução para XML reurn Chines em HttpRequest e HttpGetResult - Adriano Boller

Solução para XML reurn Chines em HttpRequest e HttpGetResult - Adriano Boller

-------------------------------------------------------------------------------------------------------------------
Blog Relacionado com Assunto - http://windevdesenvolvimento.blogspot.com.br/2015/01/utf8toansi-funcao-converte-utf8-em-ansi.html
-------------------------------------------------------------------------------------------------------------------
http://forum.pcsoft.fr/fr-FR/pcsoft.us.windevmobile/630-solution-xml-reurn-chines-httprequest-httpgetresult-635/read.awp?hl=Chines
-------------------------------------------------------------------------------------------------------------------
 http://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/18410-qui-maitrise-utf8-ansi-unicode/read.awp
-------------------------------------------------------------------------------------------------------------------
Remove Acento - http://forum.pcsoft.fr/fr-FR/pcsoft.us.windevmobile/959-remove-acento-961/read.awp
-------------------------------------------------------------------------------------------------------------------
http://www.geonames.org/
-------------------------------------------------------------------------------------------------------------------

















quarta-feira, 28 de janeiro de 2015

Windev 137 - Implementando Groupware em um Banco PostgreSql - Pedrosão

Windev 137 - Implementando Groupware em um Banco PostgreSql - Pedrosão




Utf8ToAnsi - Funcao - Converte Utf8 em Ansi

Utf8ToAnsi - Funcao - Converte Utf8 em Ansi
-----------------------------------------------------------------------------------------------------------------------
Blog Relacionado com Assunto - http://windevdesenvolvimento.blogspot.com.br/2015/01/solucao-para-xml-reurn-chines-em.html
-----------------------------------------------------------------------------------------------------------------------

http://doc.windev.com/en-US/?1000020525&product=WM
----------------------------------------------------------------------------------------------------------
http://forum.pcsoft.fr/fr-FR/pcsoft.us.windevmobile/630-solution-xml-reurn-chines-httprequest-httpgetresult-635/read.awp?hl=Chines
 -------------------------------------------------------------------------------------------------------------------
 http://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/18410-qui-maitrise-utf8-ansi-unicode/read.awp
-------------------------------------------------------------------------------------------------------------------
Remove Acento - http://forum.pcsoft.fr/fr-FR/pcsoft.us.windevmobile/959-remove-acento-961/read.awp
-------------------------------------------------------------------------------------------------------------------
http://www.geonames.org/
-------------------------------------------------------------------------------------------------------------------

bufResHttp is Buffer
shttpResult is string
HTTPRequest("http://fipeapi.appspot.com/api/1/carros/marcas.json")
bufResHttp = HTTPGetResult()
IF StringCount(bufResHttp,"ISO-8859-1",IgnoreCase) = 0 THEN
     shttpResult = UTF8ToString(bufResHttp)
ELSE
    shttpResult = AnsiToUnicode(bufResHttp)
END
----------------------------------------------------------------------------------------------------------




 ----------------------------------------------------------------------------------------------------------------








Mssql Dica - Adriano Boller

Mssql Dica - Adriano Boller






Webservice - Parana - Listagem Verbas e Obras - Adriano Boller -

Example Webservice with Image serializade

Webservice - Parana - Listagem Verbas e Obras - Adriano Boller -  


http://forum.pcsoft.fr/fr-FR/pcsoft.us.webdev/1622-example-webservice-with-image-serializade-1623/read.awp



















-------------------------------------------------------------------------------------------------------------------

Procedure ConsultaPrefeitura(LOCAL ID, LOCAL UltimaData)

X, TamanhoArrayImagem is int = 0
Resultado is string = ""

ImagemPrefeito is string

IF ID = "" THEN

Resultado += "<Xml><Retorno>" 
FOR EACH t001prefeitura 

IF t001prefeitura.t001ultimadata > UltimaData
X += 1 // Sem filtro

 //Converte campo blob imagem em um array de string para mandar a imagem pelo webservice
ImagemPrefeito =Crypt(t001prefeitura.t001fotoprefeito,"ParanaCidade",cryptAnsi,encodeBASE64)

Resultado += "<Prefeitura id="+Charact(34)+X+Charact(34)+">"
Resultado += "<t001apelidoprefeito>" + NoSpace(t001prefeitura.t001apelidoprefeito) + "</t001apelidoprefeito>" 
Resultado += "<t001associacao>" + NoSpace(t001prefeitura.t001associacao) + "</t001associacao>" 
Resultado += "<t001bairro>" + NoSpace(t001prefeitura.t001bairro) + "</t001bairro>" 
Resultado += "<t001cep>" + NoSpace(t001prefeitura.t001cep) + "</t001cep>" 
Resultado += "<t001cidade>" + NoSpace(t001prefeitura.t001cidade) + "</t001cidade>"
Resultado += "<t001codIbge>" + NoSpace(t001prefeitura.t001codIbge) + "</t001codIbge>" 
Resultado += "<t001codigo>" + NoSpace(t001prefeitura.t001codigo) + "</t001codigo>" 
Resultado += "<t001complemento>" + NoSpace(t001prefeitura.t001complemento) + "</t001complemento>" 
Resultado += "<t001emailprefeito>" + NoSpace(t001prefeitura.t001emailprefeito) + "</t001emailprefeito>" 
Resultado += "<t001emailprefeitura>" + NoSpace(t001prefeitura.t001emailprefeitura) + "</t001emailprefeitura>" 
Resultado += "<t001endereco>" + NoSpace(t001prefeitura.t001endereco) + "</t001endereco>" 
Resultado += "<t001escritorioregional>" + NoSpace(t001prefeitura.t001escritorioregional) + "</t001escritorioregional>"
Resultado += "<t001gentilico>" + NoSpace(t001prefeitura.t001gentilico) + "</t001gentilico>"
Resultado += "<t001idprefeitura>" + NoSpace(t001prefeitura.t001idprefeitura) + "</t001idprefeitura>" 
Resultado += "<t001nomemunicipio>" + NoSpace(t001prefeitura.t001nomemunicipio) + "</t001nomemunicipio>" 
Resultado += "<t001nomeprefeito>" + NoSpace(t001prefeitura.t001nomeprefeito) + "</t001nomeprefeito>" 
Resultado += "<t001partidoprefeito>" + NoSpace(t001prefeitura.t001partidoprefeito) + "</t001partidoprefeito>" 
Resultado += "<t001populacao>" + NoSpace(t001prefeitura.t001populacao) + "</t001populacao>" 
Resultado += "<t001telefoneprefeito>" + NoSpace(t001prefeitura.t001telefoneprefeito) + "</t001telefoneprefeito>" 
Resultado += "<t001telfoneprefeitura>" + NoSpace(t001prefeitura.t001telfoneprefeitura) + "</t001telfoneprefeitura>"
Resultado += "<t001uf>" + NoSpace(t001prefeitura.t001uf) + "</t001uf>" 
Resultado += "<t001ultimadata>" + NoSpace(t001prefeitura.t001ultimadata) + "</t001ultimadata>"
Resultado += "<t001fotoprefeito>" + NoSpace(ImagemPrefeito) + "</t001fotoprefeito>" 
Resultado += "</Prefeitura>"
END
END
IF X = 0 THEN
Resultado += "<Prefeitura id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>Registro não encontrado</Erro>"
Resultado += "</Prefeitura>"
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>" 

ELSE

Resultado += "<Xml><Retorno>" 
FOR EACH t001prefeitura 
IF t001prefeitura.t001idprefeitura=ID AND t001prefeitura.t001ultimadata > UltimaData //Com filtro
X += 1

ImagemPrefeito = Crypt(t001prefeitura.t001fotoprefeito,"ParanaCidade",cryptAnsi,encodeBASE64)

Resultado += "<Prefeitura id="+Charact(34)+X+Charact(34)+">"
Resultado += "<t001apelidoprefeito>" + NoSpace(t001prefeitura.t001apelidoprefeito) + "</t001apelidoprefeito>" 
Resultado += "<t001associacao>" + NoSpace(t001prefeitura.t001associacao) + "</t001associacao>" 
Resultado += "<t001bairro>" + NoSpace(t001prefeitura.t001bairro) + "</t001bairro>" 
Resultado += "<t001cep>" + NoSpace(t001prefeitura.t001cep) + "</t001cep>" 
Resultado += "<t001cidade>" + NoSpace(t001prefeitura.t001cidade) + "</t001cidade>"
Resultado += "<t001codIbge>" + NoSpace(t001prefeitura.t001codIbge) + "</t001codIbge>" 
Resultado += "<t001codigo>" + NoSpace(t001prefeitura.t001codigo) + "</t001codigo>" 
Resultado += "<t001complemento>" + NoSpace(t001prefeitura.t001complemento) + "</t001complemento>" 
Resultado += "<t001emailprefeito>" + NoSpace(t001prefeitura.t001emailprefeito) + "</t001emailprefeito>" 
Resultado += "<t001emailprefeitura>" + NoSpace(t001prefeitura.t001emailprefeitura) + "</t001emailprefeitura>" 
Resultado += "<t001endereco>" + NoSpace(t001prefeitura.t001endereco) + "</t001endereco>" 
Resultado += "<t001escritorioregional>" + NoSpace(t001prefeitura.t001escritorioregional) + "</t001escritorioregional>"
Resultado += "<t001gentilico>" + NoSpace(t001prefeitura.t001gentilico) + "</t001gentilico>"
Resultado += "<t001idprefeitura>" + NoSpace(t001prefeitura.t001idprefeitura) + "</t001idprefeitura>" 
Resultado += "<t001nomemunicipio>" + NoSpace(t001prefeitura.t001nomemunicipio) + "</t001nomemunicipio>" 
Resultado += "<t001nomeprefeito>" + NoSpace(t001prefeitura.t001nomeprefeito) + "</t001nomeprefeito>" 
Resultado += "<t001partidoprefeito>" + NoSpace(t001prefeitura.t001partidoprefeito) + "</t001partidoprefeito>" 
Resultado += "<t001populacao>" + NoSpace(t001prefeitura.t001populacao) + "</t001populacao>" 
Resultado += "<t001telefoneprefeito>" + NoSpace(t001prefeitura.t001telefoneprefeito) + "</t001telefoneprefeito>" 
Resultado += "<t001telfoneprefeitura>" + NoSpace(t001prefeitura.t001telfoneprefeitura) + "</t001telfoneprefeitura>"
Resultado += "<t001uf>" + NoSpace(t001prefeitura.t001uf) + "</t001uf>" 
Resultado += "<t001ultimadata>" + NoSpace(t001prefeitura.t001ultimadata) + "</t001ultimadata>"
Resultado += "<t001fotoprefeito>" + NoSpace(ImagemPrefeito) + "</t001fotoprefeito>" 
Resultado += "</Prefeitura>" 
END
END
IF X = 0 THEN
Resultado += "<Prefeitura id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>Registro não encontrado</Erro>"
Resultado += "</Prefeitura>"
END
Resultado += "<TOTAL>"+X+"</TOTAL>"
Resultado += "</Retorno></Xml>" 

END

RESULT (Resultado)

-------------------------------------------------------------------------------------------------------------------

Obs.:

//Converte campo blob imagem em um array de string para mandar a imagem pelo webservice
ImagemPrefeito = Crypt(t001prefeitura.t001fotoprefeito,"ParanaCidade",cryptAnsi,encodeBASE64)


-------------------------------------------------------------------------------------------------------------------

/IMAGEM Carregar
IMG_FotoPrefeito = QRY_T001prefeitura.t001fotoprefeito


-------------------------------------------------------------------------------------------------------------------

Procedure RefreshFiltro(LOCAL CodIdPref)

IF CodIdPref > 0 THEN

NextTitle("Atualizando Dados...")
HourGlass(True)

ok is boolean = HExecuteQuery(QRY_T001prefeitura_SelectX,hQueryDefault,CodIdPref)

IF ok = True THEN
//info("OK")
FOR EACH QRY_T001prefeitura_SelectX
STC_MunicipioA = QRY_T001prefeitura_SelectX.t001nomemunicipio
STC_MunicipioB = QRY_T001prefeitura_SelectX.t001nomemunicipio
STC_PopulacaoA = QRY_T001prefeitura_SelectX.t001populacao
STC_PopulacaoB = QRY_T001prefeitura_SelectX.t001populacao
STC_RegionalA = QRY_T001prefeitura_SelectX.t001escritorioregional
STC_RegionalB = QRY_T001prefeitura_SelectX.t001escritorioregional
STC_AssociacaoA = QRY_T001prefeitura_SelectX.t001associacao
STC_AssociacaoB = QRY_T001prefeitura_SelectX.t001associacao
STC_GentilicoA = QRY_T001prefeitura_SelectX.t001gentilico
STC_GentilicoB = QRY_T001prefeitura_SelectX.t001gentilico
STC_EnderecoA = Clip(QRY_T001prefeitura_SelectX.t001endereco) +" "+Clip(QRY_T001prefeitura_SelectX.t001complemento) +" Bairro: "+ QRY_T001prefeitura_SelectX.t001bairro+"Cep: "+QRY_T001prefeitura_SelectX.t001cep
 STC_EnderecoB = Clip(QRY_T001prefeitura_SelectX.t001endereco) +" "+Clip(QRY_T001prefeitura_SelectX.t001complemento) +" Bairro: "+ QRY_T001prefeitura_SelectX.t001bairro+"Cep: "+QRY_T001prefeitura_SelectX.t001cep
STC_TelPrefeituraA = QRY_T001prefeitura_SelectX.t001telfoneprefeitura
STC_TelPrefeituraB = QRY_T001prefeitura_SelectX.t001telfoneprefeitura
STC_NomePrefA = QRY_T001prefeitura_SelectX.t001nomeprefeito
STC_NomePrefB = QRY_T001prefeitura_SelectX.t001nomeprefeito
STC_ApelidoA = QRY_T001prefeitura_SelectX.t001apelidoprefeito
STC_ApelidoB = QRY_T001prefeitura_SelectX.t001apelidoprefeito
STC_PartidoA = QRY_T001prefeitura_SelectX.t001partidoprefeito
STC_PartidoB = QRY_T001prefeitura_SelectX.t001partidoprefeito
STC_TelPrefeitoA = QRY_T001prefeitura_SelectX.t001telefoneprefeito
STC_TelPrefeitoB = QRY_T001prefeitura_SelectX.t001telefoneprefeito
STC_EmailMunA = QRY_T001prefeitura_SelectX.t001emailprefeitura
STC_EmailMunB = QRY_T001prefeitura_SelectX.t001emailprefeitura
STC_EmailPrefeitoA = QRY_T001prefeitura_SelectX.t001emailprefeito
STC_EmailPrefeitoB = QRY_T001prefeitura_SelectX.t001emailprefeito
IMG_FotoPrefeito1 = QRY_T001prefeitura_SelectX.t001fotoprefeito
IMG_FotoPrefeito2 = QRY_T001prefeitura_SelectX.t001fotoprefeito
END

RefreshMensagens()

RefreshOperacoes()

RefreshProjetos()

RefreshSituacao()

RefreshLotes()

ELSE
Info("Erro") 
END

HourGlass(False) 

END


-------------------------------------------------------------------------------------------------------------------

//Lê Webservice importa a foto para a tabela descriptografando

Procedure WS_IncluiAltera_T001prefeitura(ParIdPrefeitura,ParNomeMunicipio,ParPopulacao,ParGentilico,ParEndereco,ParComplemento,ParBairro,ParCidade,ParIbge,ParUf,ParCep,ParEmailPrefeitura,ParEmailPrefeito,ParTelPrefeitura,ParTelPrefeito,ParRegional,ParAssociacao,ParNomePrefeito,ParApelido,ParPartido,ParUltimaData,ParFoto)

//variaveis
ok is boolean = False

ChangeCharset(charsetOccidental) // SEM ACENTO

//Xml
IF ParUltimaData = ""
ParUltimaData = Hoje("")
END

GloTotalImport += 1
IF gbTabletiPad = True
WIN_06Sincronizar_iPad.PROGBAR_Total..Value = GloTotalImport
END
IF GloTotalImport >= 100 THEN
GloTotalImport = 0
END

IF gsUltimaData <> ""
//loop de leitura do xml - filtro unico cidade
HReadSeekFirst(t001prefeitura,t001prefeitura.t001nomemunicipio,ParNomeMunicipio)
IF HFound(t001prefeitura) = False
 // se nao tem insert
 t001prefeitura.t001idprefeitura = ParIdPrefeitura
 t001prefeitura.t001nomemunicipio = ParNomeMunicipio
 t001prefeitura.t001populacao = ParPopulacao
 t001prefeitura.t001gentilico = ParGentilico
 t001prefeitura.t001endereco = ParEndereco
 t001prefeitura.t001complemento = ParComplemento
 t001prefeitura.t001bairro = ParBairro
 t001prefeitura.t001cidade = ParCidade
 t001prefeitura.t001codIbge = ParIbge
 t001prefeitura.t001uf = ParUf
 t001prefeitura.t001cep = ParCep
 t001prefeitura.t001emailprefeitura = ParEmailPrefeitura
 t001prefeitura.t001emailprefeito = ParEmailPrefeito
 t001prefeitura.t001telfoneprefeitura = ParTelPrefeitura
 t001prefeitura.t001telefoneprefeito = ParTelPrefeito
 t001prefeitura.t001escritorioregional = ParRegional
 t001prefeitura.t001associacao = ParAssociacao
 t001prefeitura.t001nomeprefeito = ParNomePrefeito
 t001prefeitura.t001apelidoprefeito = ParApelido
 t001prefeitura.t001fotoprefeito = Uncrypt(ParFoto,"ParanaCidade",cryptAnsi, encodeBASE64)
 t001prefeitura.t001partidoprefeito = ParPartido
 t001prefeitura.t001ultimadata = ParUltimaData
 IF ParIdPrefeitura <> ""
 ok = HAdd(t001prefeitura)
IF ok = False THEN
NextTitle("Carga QRY_T001prefeitura_Insert")
Info("Registro: "+ParNomeMunicipio,"Ocorreu um erro inesperado.",ErrorInfo())
END
END
ELSE IF HFound(t001prefeitura) = True AND t001prefeitura.t001ultimadata <> ParUltimaData
//ou Update
t001prefeitura.t001idprefeitura = ParIdPrefeitura
t001prefeitura.t001nomemunicipio = ParNomeMunicipio
t001prefeitura.t001populacao = ParPopulacao
t001prefeitura.t001gentilico = ParGentilico
t001prefeitura.t001endereco = ParEndereco
t001prefeitura.t001complemento = ParComplemento
t001prefeitura.t001bairro = ParBairro
t001prefeitura.t001cidade = ParCidade
t001prefeitura.t001codIbge = ParIbge
t001prefeitura.t001uf = ParUf
t001prefeitura.t001cep = ParCep
t001prefeitura.t001emailprefeitura = ParEmailPrefeitura
t001prefeitura.t001emailprefeito = ParEmailPrefeito
t001prefeitura.t001telfoneprefeitura = ParTelPrefeitura
t001prefeitura.t001telefoneprefeito = ParTelPrefeito
t001prefeitura.t001escritorioregional = ParRegional
t001prefeitura.t001associacao = ParAssociacao
t001prefeitura.t001nomeprefeito = ParNomePrefeito
t001prefeitura.t001apelidoprefeito = ParApelido
t001prefeitura.t001fotoprefeito = Uncrypt(ParFoto,"ParanaCidade",cryptAnsi, encodeBASE64)
t001prefeitura.t001partidoprefeito = ParPartido
t001prefeitura.t001ultimadata = ParUltimaData
IF ParIdPrefeitura <> ""
ok = HModify(t001prefeitura)
IF ok = False THEN
NextTitle("Carga QRY_T001prefeitura_Update")
Info("Registro: "+ParNomeMunicipio,"Ocorreu um erro inesperado.",ErrorInfo())
END
END
END
//fim do loop de leitura do xml
ELSE
// se nao tem insert
t001prefeitura.t001idprefeitura = ParIdPrefeitura
t001prefeitura.t001nomemunicipio = ParNomeMunicipio
t001prefeitura.t001populacao = ParPopulacao
t001prefeitura.t001gentilico = ParGentilico
t001prefeitura.t001endereco = ParEndereco
t001prefeitura.t001complemento = ParComplemento
t001prefeitura.t001bairro = ParBairro
t001prefeitura.t001cidade = ParCidade
t001prefeitura.t001codIbge = ParIbge
t001prefeitura.t001uf = ParUf
t001prefeitura.t001cep = ParCep
t001prefeitura.t001emailprefeitura = ParEmailPrefeitura
t001prefeitura.t001emailprefeito = ParEmailPrefeito
t001prefeitura.t001telfoneprefeitura = ParTelPrefeitura
t001prefeitura.t001telefoneprefeito = ParTelPrefeito
t001prefeitura.t001escritorioregional = ParRegional
t001prefeitura.t001associacao = ParAssociacao
t001prefeitura.t001nomeprefeito = ParNomePrefeito
t001prefeitura.t001apelidoprefeito = ParApelido
t001prefeitura.t001fotoprefeito = Uncrypt(ParFoto,"ParanaCidade",cryptAnsi, encodeBASE64)
t001prefeitura.t001partidoprefeito = ParPartido
t001prefeitura.t001ultimadata = ParUltimaData
IF ParIdPrefeitura <> ""
ok = HModify(t001prefeitura)
IF ok = False THEN
NextTitle("Carga QRY_T001prefeitura_Update")
Info("Registro: "+ParNomeMunicipio,"Ocorreu um erro inesperado.",ErrorInfo())
END
END
END


RESULT(ok)

-------------------------------------------------------------------------------------------------------------------
//Detalhe importante do codigo acima
t001prefeitura.t001fotoprefeito = Uncrypt(ParFoto,"ParanaCidade",cryptAnsi, encodeBASE64)

 
-------------------------------------------------------------------------------------------------------------------



   

Teste

Teste
teste