PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Importando Html para Hyperfile
WX - Importando Html para Hyperfile
Iniciado por adrianoboller, jun., 20 2015 7:22 PM - 10 respostas
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:22 PM
Procedure A_Processar()

PROGBAR_01..Value = 0

ok is boolean = False

GloUltimaPosicao = 0
DespesasDedutiveis = 0
DespesasNaoDedutiveis = 0
TotalDespesas = 0
TotalReceita = 0
Resultado = 0
Receita = 0
Despesa = 0
DataLivroDiario = ""
Usuario = ""
Cartorio = ""
Dia = ""
Mes = ""
Ano = ""
Competencia = ""
Qtd = ""
Conta = ""
AtoHistorico = ""

IF gsHtmlAnalisado <> ""

//Usuario: <b>ANA AIRES SANTANA</b>
Usuario = Busca_NomeUsuario(gsHtmlAnalisado)
PROGBAR_01 += 10

//Cartorio: <b>Tabelionato de Protesto de titulos e Registro de Pessoas Juridicas, Titulos e D</b>
Cartorio = Busca_NomeCartorio(gsHtmlAnalisado)
PROGBAR_01 += 10

//20150202
DataLivroDiario = DateSys()
PROGBAR_01 += 10

ok = Busca_RecortaBlocoSaldos(gsHtmlAnalisado)
PROGBAR_01 += 10

ok = Busca_MioloHtml(gsHtmlAnalisado)

PROGBAR_01 += 10

ok = Busca_Registros(gsHtmlAnalisado)

END

PROGBAR_01 = 100

IF HRecNum(Planilha) > 0
Info("Arquivo Html convertido para Excel com sucesso!")

TableDisplay(TABLE_QRY_Select_HtmlToExcel,taReExecuteQuery)

TableDisplay(TABLE_QRY_Select_HtmlToExcel,taInit)
ELSE
Info("Ocorreu um ero ao tentar importar os dados."+ErrorInfo())
END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:23 PM
Procedure Busca_Campos(gRegistro)

gRegistro = NoSpace(gRegistro)
gRegistro = Replace(gRegistro," ","")
gRegistro = Replace(gRegistro,Charact(009),"")

IF CBOX_Debug..Value = True THEN
fSaveText("c:\registro.txt",gRegistro)
END

ok is boolean = False

//O que cada campo deve receber:
//Dia 02
//Mes 02
//Ano 2015
//Competencia 02/2015
//Qtd 17
//Conta Emolumentos
//AtoHistorico Tabela vi 1 - v - protesto completo
//Receita 1008.00
//Despesa 0

// <td class=c>02/2015</td>
// <td class=c>02</td>
// <td class=c>17</td>
// <td> Emolumentos </td>
// <td>Tabela vi 1 - v - protesto completo de titulo de credito. documento de divida. certidao de divida ativa.
// compreendendo apontamento. instrumento e seu registro. sobre o valor do titulo de R$ 500.01 ate R$ 1000.00
// </td>
// <td class=r>1008.00</td>
// <td class=r></td>


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Campo_MesAno is string = ""

nPosicaoInicial is int = PositionOccurrence(gRegistro,"<td class=c>",firstRank,IgnoreCase) + Length("<td class=c>")

nPosicaoFinal is int = Proximo_Caracter(gRegistro, "</td>", nPosicaoInicial)

Campo_MesAno = Middle(gRegistro,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

Mes = Middle(Campo_MesAno,1,2)

Ano = Middle(Campo_MesAno,4,4)

Competencia = Campo_MesAno

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistro,"<td class=c>",nextRank,IgnoreCase) + Length("<td class=c>")

nPosicaoFinal = Proximo_Caracter(gRegistro, "</td>", nPosicaoInicial)

Dia = Middle(gRegistro,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistro,"<td class=c>",nextRank,IgnoreCase) + Length("<td class=c>")

nPosicaoFinal = Proximo_Caracter(gRegistro, "</td>", nPosicaoInicial)

Qtd = Middle(gRegistro,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistro,"<td>",firstRank,IgnoreCase) + Length("<td>")

nPosicaoFinal = Proximo_Caracter(gRegistro, "</td>", nPosicaoInicial)

Conta = Middle(gRegistro,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistro,"<td>",nextRank,IgnoreCase) + Length("<td>")

nPosicaoFinal = Proximo_Caracter(gRegistro, "</td>", nPosicaoInicial)

AtoHistorico = Middle(gRegistro,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Parte Final
gRegistroValores is string = Middle(gRegistro,nPosicaoFinal,Length(gRegistro))
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistroValores,"<td class=r>",firstRank,IgnoreCase) + Length("<td class=r>")

nPosicaoFinal = Proximo_Caracter(gRegistroValores, "</td>", nPosicaoInicial)

sReceitaRetorno is string = NoSpace(Middle(gRegistroValores,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial)))

Receita = Val(sReceitaRetorno)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

nPosicaoInicial = PositionOccurrence(gRegistroValores,"<td class=r>",nextRank,IgnoreCase) + Length("<td class=r>")

nPosicaoFinal = Proximo_Caracter(gRegistroValores, "</td>", nPosicaoInicial)

sDespesaRetorno is string = NoSpace(Middle(gRegistroValores,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial)))

Despesa = Val(sDespesaRetorno)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

IF Dia <> "" AND Mes <> "" AND Ano <> "" AND Competencia <> "" THEN

ok = HExecuteQuery(QRY_Insert_HtmlToExcel,hQueryDefault,DataLivroDiario,Usuario,Cartorio,Mes,Ano,Competencia,Dia,Qtd,Conta,AtoHistorico,Receita,Despesa,DespesasDedutiveis,DespesasNaoDedutiveis,TotalDespesas,TotalReceita,Resultado)

Dia = ""
Mes = ""
Ano = ""
Competencia = ""
Qtd = ""
Conta = ""
AtoHistorico = ""
Receita = ""
Despesa = ""

END

RESULT(ok)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:23 PM
Procedure Busca_MioloHtml(HtmlAnalisado)

ok is boolean = False

sBloco is string = ""

sBloco = Replace(HtmlAnalisado,Charact(34),"")

//Inicio
nPosicaoInicial is int = 0
nPosicaoInicial = PositionOccurrence(sBloco,"<table id=solicitacoes class=livro_protocolo summary=Protocolo>",firstRank,IgnoreCase)

//2x TR
nPosicaoFinal is int = 0
nPosicaoFinal = Proximo_Caracter(sBloco,"</table",nPosicaoInicial) + Length("</table")

//Recorta Bloco
sBloco = Middle(sBloco,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

IF sBloco <> ""
ok = True
gsHtmlAnalisado = sBloco
ELSE
ok = False
gsHtmlAnalisado = ""
END

RESULT(ok)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:23 PM
Procedure Busca_NomeCartorio(HtmlAnalisado)

NomeCartorio is string = ""

nPosicaoInicial is int = PositionOccurrence(HtmlAnalisado,"Cartorio: <b>",firstRank,IgnoreCase) + Length("Cartorio: <b>")

nPosicaoFinal is int = Proximo_Caracter(HtmlAnalisado, "</b>", nPosicaoInicial)

NomeCartorio = Middle(HtmlAnalisado,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

RESULT(NomeCartorio)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:24 PM
Procedure Busca_NomeUsuario(HtmlAnalisado)

NomeUsuario is string = ""

nPosicaoInicial is int = PositionOccurrence(HtmlAnalisado,"Usuario: <b>",firstRank,IgnoreCase) + Length("Usuario: <b>")

nPosicaoFinal is int = Proximo_Caracter(HtmlAnalisado, "</b>", nPosicaoInicial)

NomeUsuario = Middle(HtmlAnalisado,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

RESULT(NomeUsuario)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:24 PM
Procedure Busca_RecortaBlocoSaldos(HtmlAnalisado)

ok is boolean = False

//<tr>
//<th>Despesas Dedutiveis</th>
//<th>Despesas nao Dedutiveis</th>
//<th>Total de Despesas</th>
//<th>Total de Receitas</th>
//<th>Resultado</th>
//</tr>
//</thead>
//<tbody>
//<tr>
//<td class="c">0,00</td>
//<td class="c">0,00</td>
//<td class="c">0,00</td>
//<td class="c">132.681,36</td>
//<td class="c">132.681,36</td>
//</tr>

sBloco is string = ""

//Inicio
nPosicaoInicial is int = 0
nPosicaoInicial = PositionOccurrence(HtmlAnalisado,"<th>Despesas Dedutiveis</th>",firstRank,IgnoreCase)

//2x TR
nPosicaoFinal is int = 0
nPosicaoFinal = Proximo_Caracter(HtmlAnalisado,"</tr>",nPosicaoInicial) + 5
nPosicaoFinal = Proximo_Caracter(HtmlAnalisado,"</tr>",nPosicaoFinal) + 5

//Recorta Bloco
sBloco = Middle(HtmlAnalisado,nPosicaoInicial, (nPosicaoFinal - nPosicaoInicial))

//<td class="c">0,00</td>
//<td class="c">0,00</td>
//<td class="c">0,00</td>
//<td class="c">132.681,36</td>
//<td class="c">132.681,36</td>

Busca_RecortaValorSaldos(sBloco)

IF Resultado > 0 OR TotalReceita > 0
ok = True
ELSE
ok = False
END

RESULT(ok)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:24 PM
Procedure Busca_RecortaValorSaldos(gBloco)

ok is boolean = False

//<th>Despesas Dedutiveis</th>
//<th>Despesas nao Dedutiveis</th>
//<th>Total de Despesas</th>
//<th>Total de Receitas</th>
//<th>Resultado</th>
//</tr>
//</thead>
//<tbody>
//<tr>
//<td class=c>0,00</td>
//<td class=c>0,00</td>
//<td class=c>0,00</td>
//<td class=c>132.681,36</td>
//<td class=c>132.681,36</td>
//</tr>

gBloco = Replace(gBloco,".","")

gBloco = Replace(gBloco,",",".")

nDespesas_Dedutiveis_ini is int = Proximo_Caracter(gBloco,"<td class=c>",1) + Length("<td class=c>")
nDespesas_Dedutiveis_fim is int = Proximo_Caracter(gBloco,"</td>",nDespesas_Dedutiveis_ini)

nDespesas_nao_Dedutiveis_ini is int = Proximo_Caracter(gBloco,"<td class=c>",nDespesas_Dedutiveis_fim) + Length("<td class=c>")
nDespesas_nao_Dedutiveis_fim is int = Proximo_Caracter(gBloco,"</td>",nDespesas_nao_Dedutiveis_ini)

nTotal_de_Despesas_ini is int = Proximo_Caracter(gBloco,"<td class=c>",nDespesas_nao_Dedutiveis_fim) + Length("<td class=c>")
nTotal_de_Despesas_fim is int = Proximo_Caracter(gBloco,"</td>",nTotal_de_Despesas_ini)

nTotal_de_Receitas_ini is int = Proximo_Caracter(gBloco,"<td class=c>",nTotal_de_Despesas_fim) + Length("<td class=c>")
nTotal_de_Receitas_fim is int = Proximo_Caracter(gBloco,"</td>",nTotal_de_Receitas_ini)

nResultado_ini is int = Proximo_Caracter(gBloco,"<td class=c>",nTotal_de_Receitas_fim) + Length("<td class=c>")
nResultado_fim is int = Proximo_Caracter(gBloco,"</td>",nResultado_ini)

DespesasDedutiveis = Middle(gBloco,nDespesas_Dedutiveis_ini,nDespesas_Dedutiveis_fim-nDespesas_Dedutiveis_ini)
DespesasNaoDedutiveis = Middle(gBloco,nDespesas_nao_Dedutiveis_ini,nDespesas_nao_Dedutiveis_fim-nDespesas_nao_Dedutiveis_ini)
TotalDespesas = Middle(gBloco,nTotal_de_Despesas_ini,nTotal_de_Despesas_fim-nTotal_de_Despesas_ini)
TotalReceita = Middle(gBloco,nTotal_de_Receitas_ini,nTotal_de_Receitas_fim-nTotal_de_Receitas_ini)
Resultado = Middle(gBloco,nResultado_ini,nResultado_fim-nResultado_ini)


RESULT(ok)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:25 PM
Procedure Busca_Registros(gBlocoHtml)

ok is boolean = False

Contador, nTotal, nPosicao, nOcorrenciaInicial, nOcorrenciaFinal is int = 0

sRegistro is string = ""

HourGlass(True)

IF gBlocoHtml <> "" THEN

gBlocoHtml = Replace(gBlocoHtml," "," ") //Remove espaços duplos
gBlocoHtml = Replace(gBlocoHtml,Charact(13)+Charact(10),"") //Remove quebra de linha
gBlocoHtml = Replace(gBlocoHtml,Charact(9),"") //Remove quebra de linha
gBlocoHtml = Replace(gBlocoHtml,".","") //Remove pontos finais
gBlocoHtml = Replace(gBlocoHtml,",",".") //Troca virgula por pontos finais

nTotal = Length(gBlocoHtml)

LOOP (nTotal)

PROGBAR_01 += 1

nPosicao += 1

//<tr>
//<td class=c>02/2015</td>
//<td class=c>02</td>
//<td class=c>17</td>
//<td> Emolumentos</td>
//<td> Tabela vi 1 - v - protesto completo de titulo de credito, documento de divida, certidao de divida ativa, compreendendo apontamento, instrumento e seu registro, sobre o valor do titulo de R$ 500,01 ate R$ 1.000,00</td>
//<td class=r>1.008,00</td>
//<td class=r> </td>
//</tr>

nOcorrenciaInicial = Proximo_Caracter(gBlocoHtml,"<tr>",nPosicao) + 4

nOcorrenciaFinal = Proximo_Caracter(gBlocoHtml,"</tr>",nPosicao)

IF nOcorrenciaInicial > 0 AND nOcorrenciaFinal > 0 AND nOcorrenciaFinal > nOcorrenciaInicial THEN

Contador += 1

IF Contador > 2

sRegistro = Middle(gBlocoHtml,nOcorrenciaInicial,nOcorrenciaFinal - nOcorrenciaInicial)

ok = Busca_Campos(sRegistro)

IF CBOX_Debug..Value = True
Info(ok,sRegistro)
END

IF nPosicao > nTotal
BREAK
END

END

//Proximo
nPosicao = nOcorrenciaFinal

IF nPosicao > nTotal
BREAK
END

END

IF nPosicao > nTotal
BREAK
END

END


ELSE
Info("Tabela inexistente!")
END

HourGlass(False)

RESULT(ok)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:25 PM
Procedure PathExcel()

Local_Excel is string = INIRead("Path","Excel","",fExeDir+"\Config.ini")

IF fFileExist(Local_Excel) = True

EDT_Path_Excel = Local_Excel

ELSE

Info("Localize o arquivo EXCEL.EXE em seu computador e informe o caminho ocmpleto no campo: Path do Excel desta tela.")

END

//info(Local_Excel)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:25 PM
Procedure Proximo_Caracter(HtmlAnalisado, Caracter, PosicaoInicial)

Tamanho is int = Length(HtmlAnalisado)
Posicao is int = 0
PosicaoProximoCaracter is int = 0

LOOP (Tamanho)

Posicao += 1

IF PosicaoInicial <= Posicao

IF Caracter = Middle(HtmlAnalisado,Posicao, Length(Caracter)) THEN

PosicaoProximoCaracter = Posicao

BREAK

END

END

END

RESULT(PosicaoProximoCaracter)
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 20 2015 - 7:26 PM
Procedure Remove_Acento( Texto )

Texto = NoAccent(Texto)

Texto = Replace(Texto,"xE1","a")
Texto = Replace(Texto,"xE3","a")
Texto = Replace(Texto,"xEA","e")
Texto = Replace(Texto,"xE9","e")
Texto = Replace(Texto,"xED","i")
Texto = Replace(Texto,"xF3","o")
Texto = Replace(Texto,"xF4","o")
Texto = Replace(Texto,"xFA","u")
Texto = Replace(Texto,"xE7","c")
Texto = Replace(Texto,"xC1","A")
Texto = Replace(Texto,"xCD","I")
Texto = Replace(Texto,"r$"," R$ ")

Texto = Replace(Texto,Charact(34),"")

ChangeCharset(charsetOccidental)// SEM ACENTO

Texto=Replace(Texto,"A£","a")
Texto=Replace(Texto,"ã","a")
Texto=Replace(Texto,"£","")
Texto=Replace(Texto,"á","a")
Texto=Replace(Texto,"é","e")
Texto=Replace(Texto,"í","i")
Texto=Replace(Texto,"ó","o")
Texto=Replace(Texto,"ú","u")// adicionado por celio
Texto=Replace(Texto,"Á","A")//Á
Texto=Replace(Texto,"A","A")//Á
Texto=Replace(Texto,"É","E")//É
Texto=Replace(Texto,"Í","I")//Í
Texto=Replace(Texto,"Ó","O")//Ó
Texto=Replace(Texto,"Ú","U")//Ú

Texto=Replace(Texto,"Â","A")// Â
Texto=Replace(Texto,"Ô","O")// Ô
Texto=Replace(Texto,"A•","O")
Texto=Replace(Texto,"Õ","O")
Texto=Replace(Texto,"¡","")
Texto=Replace(Texto,"â","a")
Texto=Replace(Texto,"¢","")
Texto=Replace(Texto,"õ","o")
Texto=Replace(Texto,"µ","O")
Texto=Replace(Texto,"Áº","u")
Texto=Replace(Texto,"Aº","u")
Texto=Replace(Texto,"º","u")
Texto=Replace(Texto,"Ã","A")
Texto=Replace(Texto,"ƒ","")
Texto=Replace(Texto,"Ê","E")
Texto=Replace(Texto,"©","")
Texto=Replace(Texto,"ê","e")
Texto=Replace(Texto,"ª","")
Texto=Replace(Texto,"ô","o")
Texto=Replace(Texto,"´","")
Texto=Replace(Texto,"Aµ","O")
Texto=Replace(Texto,"µ","")
Texto=Replace(Texto,"ó","O")
Texto=Replace(Texto,"³","")
Texto=Replace(Texto,"A“","O")
Texto=Replace(Texto,"“","")
Texto=Replace(Texto,"Aº","U")
Texto=Replace(Texto,"º","")
Texto=Replace(Texto,"ç","c")
Texto=Replace(Texto,"§","")
Texto=Replace(Texto,"Ç","C")
Texto=Replace(Texto,"‡","")
Texto=Replace(Texto,"ãO","AO")
Texto=Replace(Texto,"£","")
Texto=Replace(Texto,"É","E")
Texto=Replace(Texto,"‰","")
Texto=Replace(Texto,"Ã%","E")
Texto=Replace(Texto,"A£","a")
Texto=Replace(Texto,"£","")
Texto=Replace(Texto,"","")
Texto=Replace(Texto,"¡","")
Texto=Replace(Texto,"¢","")
Texto=Replace(Texto,"~a","a")
Texto=Replace(Texto,"ã","a")
Texto=Replace(Texto,"á","a")
Texto=Replace(Texto,"à","a")
Texto=Replace(Texto,"â","a")
Texto=Replace(Texto,"ä","a")

Texto=Replace(Texto,"~e","e")
Texto=Replace(Texto,"é","e")
Texto=Replace(Texto,"è","e")
Texto=Replace(Texto,"ê","e")
Texto=Replace(Texto,"ë","e")

Texto=Replace(Texto,"~i","i")
Texto=Replace(Texto,"í","i")
Texto=Replace(Texto,"ì","i")
Texto=Replace(Texto,"î","i")
Texto=Replace(Texto,"ï","i")

Texto=Replace(Texto,"~o","o")
Texto=Replace(Texto,"õ","o")
Texto=Replace(Texto,"ó","o")
Texto=Replace(Texto,"ò","o")
Texto=Replace(Texto,"ô","o")
Texto=Replace(Texto,"ö","o")

Texto=Replace(Texto,"~u","u")
Texto=Replace(Texto,"ú","u")
Texto=Replace(Texto,"ù","u")
Texto=Replace(Texto,"û","u")
Texto=Replace(Texto,"ü","u")

Texto=Replace(Texto,"ç","c")
Texto=Replace(Texto,"Ç","C")

Texto=Replace(Texto,"~A","A")
Texto=Replace(Texto,"Ã","A")
Texto=Replace(Texto,"Á","A")
Texto=Replace(Texto,"À","A")
Texto=Replace(Texto,"Â","A")
Texto=Replace(Texto,"Ä","A")

Texto=Replace(Texto,"~E","E")
Texto=Replace(Texto,"É","E")
Texto=Replace(Texto,"È","E")
Texto=Replace(Texto,"Ê","E")
Texto=Replace(Texto,"Ë","E")

Texto=Replace(Texto,"~I","I")
Texto=Replace(Texto,"Í","I")
Texto=Replace(Texto,"Ì","I")
Texto=Replace(Texto,"Î","I")
Texto=Replace(Texto,"Ï","I")

Texto=Replace(Texto,"~O","O")

Texto=Replace(Texto,"Õ","O")
Texto=Replace(Texto,"Ó","O")
Texto=Replace(Texto,"Ò","O")
Texto=Replace(Texto,"Ô","O")
Texto=Replace(Texto,"Ö","O")

Texto=Replace(Texto,"~U","U")
Texto=Replace(Texto,"Ú","U")
Texto=Replace(Texto,"Ù","U")
Texto=Replace(Texto,"Û","U")
Texto=Replace(Texto,"Ü","U")

RESULT(Texto