PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Um pouco de Nostalgia... Relatorio Excel Tipo Lineprint do Clarion
WX - Um pouco de Nostalgia... Relatorio Excel Tipo Lineprint do Clarion
Iniciado por adrianoboller, abr., 30 2015 3:39 PM - 8 respostas
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 30 2015 - 3:39 PM
//Relatorio Manual Excel
ok is boolean = False
CAB is int = 0
Lineprint is string = ""
sFileName is string = ""
ok = HExecuteQuery(QRY_Select_NG0001_FechamentoVoucher,hQueryDefault+hWithFilter,GloAno,gnConvenioAdministrador)
IF ok = True THEN

FOR EACH QRY_Select_NG0001_FechamentoVoucher
IF QRY_Select_NG0001_FechamentoVoucher.pAno = GloAno AND QRY_Select_NG0001_FechamentoVoucher.pCodClientConvenio = gnConvenioAdministrador
IF CAB = 0 THEN
CAB = 1
Lineprint = "cod_client_conven; dat_corte; dat_hora_fecham; num_ano_fecham; num_fecham; qtd_vouche_fecham; val_total_fecham"+Charact(13)+Charact(10)
END
Lineprint += QRY_Select_NG0001_FechamentoVoucher.cod_client_conven +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.dat_corte +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.dat_hora_fecham +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.num_ano_fecham +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.num_fecham +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.qtd_vouche_fecham +";"
Lineprint += QRY_Select_NG0001_FechamentoVoucher.val_total_fecham + Charact(13)+Charact(10)
END
END
END
IF ok = True
sFileName = WS_ReturnGenerationDir()+"\FechamentoVoucher"+ gnConvenioAdministrador +".csv"
fSaveBuffer(sFileName,Lineprint)
iDestination(iGenericXLS,sFileName)
FileDisplay(sFileName,"application/unknown",sFileName)
fDelete(sFileName)
END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em maio, 13 2015 - 10:34 PM
Outro exemplo WEBDEV com relatorio excel tipo lineprint

//Relatorio Manual Excel
ok is boolean = False

Lineprint is string = ""

Lineprint = "Convenio; CentroCusto; Corrida; Horario; Rt; Funcionario; Embarque; Desembarque; Finalidade; Km; Vouchers; Valor"+Charact(13)+Charact(10)

ok = HExecuteSQLQuery(QyrResult,ConnNativa,hQueryWithoutCorrection,SqlExecute)

IF ok = True THEN

FOR EACH QyrResult

Lineprint += gnConvenioAdministrador +";"
Lineprint += QyrResult.CentroDeCusto +";"
Lineprint += QyrResult.Corrida +";"
Lineprint += QyrResult.Horario +";"
Lineprint += QyrResult.RT +";"
Lineprint += QyrResult.Funcionario +";"
Lineprint += QyrResult.Embarque +";"
Lineprint += QyrResult.Desembarque +";"
Lineprint += QyrResult.Finalidade +";"
Lineprint += QyrResult.Km +";"
Lineprint += QyrResult.Vouchers +";"
Lineprint += QyrResult.Valor +Charact(13)+Charact(10)

END

END

//Centro de Custo
sFileName is string
IF ok = True
sFileName = WS_ReturnGenerationDir()+"\AtendimentosPeriodo"+ gnConvenioAdministrador +".csv"
fSaveBuffer(sFileName,Lineprint)
iDestination(iGenericXLS,sFileName)
FileDisplay(sFileName,"application/unknown", "AtendimentosPeriodo"+ gnConvenioAdministrador +".csv")
fDelete(sFileName)
END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em maio, 13 2015 - 10:35 PM
:merci:
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 08 2015 - 6:51 PM
Para importar XLS

PROGBAR_01..Value = 0

nRegistro, nLinha, nUmaLinha is int

EDT_Arquivo = Upper(EDT_Arquivo)

sFile is string = EDT_Arquivo

nXlsfile is xlsDocument = xlsOpen(sFile)

nUmaLinha = xlsNbRow(nUmaLinha)

IF EDT_Arquivo <> "" AND PositionOccurrence(EDT_Arquivo,"XLS",firstRank,FromBeginning) > 0

FOR nLinha = 2 TO nUmaLinha

nRegistro += 1

PROGBAR_01..Value = nRegistro

//WS_Clip(xlsData(nXlsfile,nLinha,nColuna))

scod_centro_custo is string = WS_Clip(xlsData(nXlsfile,nLinha,1))
sDes_centro_custo is string = WS_Clip(xlsData(nXlsfile,nLinha,2))
sNom_pessoa_contat is string = WS_Clip(xlsData(nXlsfile,nLinha,3))

END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 08 2015 - 6:52 PM
Informações complementares

http://help.windev.com/en-US/…
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 08 2015 - 7:20 PM
Outro exemplo de como ler um arquivo XLS:

gMyXLSDocument is a xlsDocument

/////////// botão pra puxar o arquivo excel //////////////////

CaminhoArquivo is string

CaminhoArquivo = fSelect(fRepExe(), "", "Select an .xlsx file", "XLSX files (.xlsx)"+TAB+"*.XLSX"+CR+"XLS files (.xls)"+TAB+"*.XLS*"+CR+"All files (*.*)"+TAB+"*.*", "XLS", fselOpen+fselExist)
IF CaminhoArquivo <> "" THEN
// Writes the path of the file in the control
LOC_Caminho_do_XLS = CaminhoArquivo
END



///////// abrir o EXCEL //////////////

gMyXLSDocument = xlsOpen(LOC_Caminho_do_XLS, xlsWrite)
IF ErrorOccurred THEN
Error("Erro ao Abrir Arquivo!!!", ErrorInfo())
RETURN
ELSE
Info("Arquivo Aberto com Sucesso!!!")
END



////////// LER O EXCEL, CRIAR EM TEMPO EXECUCAO AS COLUNAS DA TABELA E GRAVAR O CONTEUDO EXCEL NA TABELA

NrColunas is int
NrLinhas is int
NomeColuna is string
cont is int

NrColunas = xlsNbColumn(gMyXLSDocument)
NrLinhas = xlsNbRow(gMyXLSDocument)
Sentenca is string
cont = 0
LOOP
cont += 1
NomeColuna = xlsColumnTitle(gMyXLSDocument, cont)

IF NomeColuna <> "" THEN
Sentenca = Sentenca + CR + "ControlClone(Column1, """ + NomeColuna + """)"
Sentenca = Sentenca + CR + "{""TabelaDados." + NomeColuna + """}..Caption = """ + NomeColuna + """"
END


IF cont = NrColunas THEN BREAK
END
Compile("CriacaoColunas", Sentenca)
ExecuteProcess("CriacaoColunas", trtProcedure)
TabelaDados.Column1..Visible = False
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 08 2015 - 8:25 PM
Exemplo de Angelo Sá de Oliveira dos Reis:

Eu faço da Seguinte forma a leitura DO XLSX e Jogo também para um table e por fim direto em yabela DO banco!

HDeleteAll(let01tb)
TableDisplay(TABLE_PRODUTO,taStart)

nlinha,nUm_linha is int
sFile is string = FilePath
nXlsfile is int = xlsOpen(sFile)
nUm_linha = xlsNbRow(nUm_linha)
blocoTXT is string
xValorITEM is numeric(10,2)
PROGBAR_EXCEL..MinValue = nlinha
PROGBAR_EXCEL..MaxValue = nUm_linha
tHorainicial is Time = TimeSys()
tHoratermina is Time
duRacao is Duration

FOR nlinha = 2 TO nUm_linha

let01tb.refprdlng = xlsData(nXlsfile,nlinha,1)
let01tb.refprdcur = xlsData(nXlsfile,nlinha,2)
let01tb.obs = xlsData(nXlsfile,nlinha,3)
let01tb.descri = xlsData(nXlsfile,nlinha,4)
let01tb.peso_icms = xlsData(nXlsfile,nlinha,5)
let01tb.ncm = xlsData(nXlsfile,nlinha,6)
let01tb.ean13 = xlsData(nXlsfile,nlinha,7)
let01tb.peso = xlsData(nXlsfile,nlinha,8)
let01tb.fornecedor = EDT_Fornecedor
let01tb.gcodigo = xlsData(nXlsfile,nlinha,7)
xValorITEM = Val(xlsData(nXlsfile,nlinha,5))

blocoTXT += xlsData(nXlsfile,nlinha,7)+"|"+Replace(xlsData(nXlsfile,nlinha,4),".","")+"|"+xlsData(nXlsfile,nlinha,2)+"|"+NumToString(xValorITEM,"10.2f")+"|"+xlsData(nXlsfile,nlinha,6)+CR

PROGBAR_EXCEL = nlinha
STC_EXCEL = "Adicionando produto: "+xlsData(nXlsfile,nlinha,2)
//.Exercicio = StringToDate(xlsData(nXlsfile,nlinha,9))
IF HAdd(let01tb) = True THEN
STC_EXCEL = "Adicionado com sucesso"
ELSE
STC_EXCEL = "Erro"
END
END
fSaveText("C:\dbf_fer\fernandes0001.txt",blocoTXT)
tHoratermina = TimeSys()

duRacao = tHoratermina - tHorainicial



Info("Foram adicionados: " + nUm_linha + " produtos a seu cadastro de produtos!", "Duração do procedimento: "+NumToString(duRacao..InSeconds)+" segundos")
xlsClose(nXlsfile)
TableDisplay(TABLE_PRODUTO,taStart)

//E ainda salvo como TXT no final
//para importação via arquivo formatado
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em junho, 08 2015 - 10:21 PM
:merci:
Membro registado
3 mensagems
Popularité : +1 (1 vote)
Publicado em junho, 10 2015 - 8:21 PM
Parabens Adriano, muito bom esse seu exemplo, completo!!!!!