PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 24 → Exemplo de como importar uma planilha do Excell usando a plataforma Windev, Webdev e Windev Mobile
Exemplo de como importar uma planilha do Excell usando a plataforma Windev, Webdev e Windev Mobile
Iniciado por BOLLER, jan., 08 2020 11:42 PM - 2 respostas
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 08 2020 - 11:42 PM
// Summary:
// Syntax:
// BuscarXls ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE BuscarXls()

EDT_MES_ANO = ""

TableImport.DeleteAll()

sFileName is string

sFileName = fSelect("", "", "Selecione a planilha do Excel Padrão...", "Excel Xls" + TAB + "*.xls" + CR + "Excel Xlsx" + TAB + "*.xlsx", "*.xls", fselOpen)

IF sFileName <> "" THEN
EDT_FILE = sFileName
END


// Summary:
// Syntax:
// Procedimento_01 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_01()

IF EDT_FILE = "" THEN
Info("Informe caminho e o nome do arquivo a ser importado do Excel.")
RETURN
END

IF EDT_RESPONAVEL = "" THEN
Info("Informe o seu nome como responsavel pela importação.")
RETURN
END

IF EDT_MES_ANO = "" THEN
Info("Informe o mês e o ano referente a esse processamento.","Exemplo:","01/2019")
RETURN
END

nFileID is int // identifier of the Excel file
nColumn is int // current column
nRow is int // current line
nFirstLine is int // first row to read
sLine is string // content of current line
nNbLines is int // number of rows in the Excel table
nNbColumns is int // number of columns in the Excel table
sFileName is string // name of XLS file
sData is string

IF EDT_FILE~="" THEN
Error("Select an Excel file!")
RETURN
END

// name of XLS file
sFileName = EDT_FILE

HourGlass(True)

// check the existence of the file
IF fSize(sFileName)<=0 THEN
Error("Unable to find the specified file")
RETURN
END

// try to open the file
nFileID = xlsOpen(sFileName)
IF nFileID=-1 THEN
Error("Unable to open the file.",...
"Check whether it is not already opened on another application.",xlsMsgError(nFileID))
RETURN
END

// clear the table
TableDeleteAll(TableImport)

// initialize the name of the columns
FOR nColumn=1 TO COLNB
TableImport[1][nColumn]..Caption = ""
{"Column"+nColumn,indControl}..Visible=True
END

// number of rows and columns in the Excel table
nNbLines = xlsNbRow(nFileID)
nNbColumns = xlsNbColumn(nFileID)

// if the first row contains the column titles
IF CBox_Title[1] = True THEN
// modify the column titles
FOR nColumn=1 TO nNbColumns
TableImport[1][nColumn]..Caption = xlsData(nFileID, 1, nColumn)
END

// first row containing the data
nFirstLine = 2

ELSE
// first row containing the data
nFirstLine = 1
END

// fill the memory table
FOR nRow = nFirstLine TO nNbLines

sLine = ""
TableAddLine(TableImport)

// build the line read
FOR nColumn = 1 TO nNbColumns
sData = xlsData(nFileID, nRow, nColumn, False)
{"Column"+nColumn,indControl}[TableCount(TableImport)]= sData

// if it is a numeric
IF NumToString(Val(sData))=sData THEN
{"Column"+nColumn,indControl}..HorizontalAlignment=iRight
ELSE
{"Column"+nColumn,indControl}..HorizontalAlignment=iLeft
END
END
END

// the other columns are invisible
FOR nColumn = nNbColumns+1 TO COLNB
{"Column"+nColumn,indControl}..Visible=False
END
WinRedraw()

// close the file
xlsClose(nFileID)

HourGlass(False)


// Summary:
// Syntax:
// Procedimento_02 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_02()

HDeleteAll(Planilha_Destino)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

TableDisplay(TABLE_Planilha_Destino,taInit)


// Summary:
// Syntax:
// Procedimento_03 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_03()

//TABELA DESTINO

EDT_DATA_HORA = DateSys() + TimeSys()

TableDisplay(TABLE_Planilha_Destino,taInit)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

HourGlass(True)

X is int = 0

OBRIGATORIO is boolean = False

COD, UF, CONSELHO is string

CUSTO_SERVICO, FILME, HONORARIO is real

//LER PLANILHA CONVERTER PARA HFSQL
LOOP(TableImport.Count(toTotal))

X++

//DADOS PRINCIPAIS
IF TableImport[X].Column1..Caption = "SEQUENCIAL"
Planilha_Destino.SEQUENCIAL = TableImport[X].Column1
END

IF TableImport[X].Column2..Caption = "CONTRATO"
Planilha_Destino.CONTRATO = TableImport[X].Column2
END

IF TableImport[X].Column3..Caption = "CONTRATANTE"
Planilha_Destino.EMPRESA = TableImport[X].Column3
END

IF TableImport[X].Column5..Caption = "LOTACAO"
Planilha_Destino.SEDE_ALOCADO = TableImport[X].Column5
END

IF TableImport[X].Column6..Caption = "FAMILIA_RESPONSAVEL"
Planilha_Destino.TITULAR = TableImport[X].Column6
END

IF TableImport[X].Column43..Caption = "BENEFICIARIO_CPF" THEN

TableImport[X].Column43 = Replace(TableImport[X].Column43,".","")
TableImport[X].Column43 = Replace(TableImport[X].Column43,"-","")

NPOS is int = Length(TableImport[X].Column43)

IF NPOS < 11 THEN
IF NPOS = 10 THEN
Planilha_Destino.CPF_UTILIZADOR = "0"+TableImport[X].Column43
ELSE IF NPOS = 9 THEN
Planilha_Destino.CPF_UTILIZADOR = "00"+TableImport[X].Column43
END
ELSE
Planilha_Destino.CPF_UTILIZADOR = TableImport[X].Column43
END

END

IF TableImport[X].Column9..Caption = "BENEFICIARIO" THEN
OBRIGATORIO = True
Planilha_Destino.NOME_UTILIZADOR = TableImport[X].Column9
END

//CRM
IF TableImport[X].Column25..Caption = "RECEBEDOR_INSCRICAO" THEN
COD = TableImport[X].Column25
END

IF TableImport[X].Column26..Caption = "RECEBEDOR_INSCRICAO_UF" THEN
UF = TableImport[X].Column26
END

IF TableImport[X].Column24..Caption = "RECEBEDOR_CONSELHO" THEN
CONSELHO = TableImport[X].Column24
END

IF COD <> "" AND COD <> "0" AND COD <> 0
Planilha_Destino.CRM_INSCRICAO = COD +"-"+ UF +"-"+ CONSELHO
COD = ""
UF = ""
CONSELHO = ""
END

IF TableImport[X].Column34..Caption = "RECEBEDOR_CODIGO" THEN
Planilha_Destino.COD_MEDICO_CLINICA = TableImport[X].Column34
END

IF TableImport[X].Column35..Caption = "RECEBEDOR_NOME" THEN
Planilha_Destino.NOME_MEDICO_CLINICA = TableImport[X].Column35
END

IF TableImport[X].Column13..Caption = "GUIA_DT_ATENDIMENTO" THEN
Planilha_Destino.DATA = Middle(TableImport[X].Column13,1,10) // FORMATAR
END

IF TableImport[X].Column19..Caption = "GUIA_HR_ATEND" THEN
Planilha_Destino.HORA = Middle(TableImport[X].Column19,1,5) // FORMATAR
END

IF TableImport[X].Column17..Caption = "GUIA_TIPO_EXEC" THEN
Planilha_Destino.TIPO = TableImport[X].Column17
END

IF TableImport[X].Column42..Caption = "GUIA_REGIME_ATEND" THEN
Planilha_Destino.SUBTIPO = TableImport[X].Column42
END

IF TableImport[X].Column36..Caption = "ESPECIALIDADE" THEN
Planilha_Destino.ESPECIALIDADE_MEDICA = TableImport[X].Column36
END

IF TableImport[X].Column41..Caption = "PROCED_DESCRICAO" THEN
Planilha_Destino.PROCEDIMENTO = TableImport[X].Column41
END

IF TableImport[X].Column27..Caption = "CUSTO_SERVICO" THEN
CUSTO_SERVICO = TableImport[X].Column27
Planilha_Destino.CUSTO_SERVICO = TableImport[X].Column27
END

IF TableImport[X].Column28..Caption = "FILME" THEN
FILME = TableImport[X].Column28
Planilha_Destino.CUSTO_FILME = TableImport[X].Column28
END

IF TableImport[X].Column29..Caption = "HONORARIO" THEN
HONORARIO = TableImport[X].Column29
Planilha_Destino.CUSTO_HONORARIO = TableImport[X].Column29
END

Planilha_Destino.VALOR_TOTAL_REFERENCIA = CUSTO_SERVICO + FILME + HONORARIO

IF TableImport[X].Column31..Caption = "VALOR_PAGO_SERVICO" THEN
Planilha_Destino.VALOR_COPARTICIPACAO = TableImport[X].Column31
END

//A CALCULAR
Planilha_Destino.VALOR_TOTAL_COPAR_REF = 0
Planilha_Destino.VALOR_A_SER_PAGO_EMPRESA = 0
Planilha_Destino.VALOR_A_SER_PAGO_FUNCIONARIO = 0
Planilha_Destino.SALDO_DEVEDOR_MES_ANTERIOR = 0
Planilha_Destino.DESCONTO_EM_FOLHA = 0
Planilha_Destino.SALDO_DEVEDOR_FINAL = 0

//OUTROS CAMPOS
IF TableImport[X].Column4..Caption = "LOTACAO_CODIGO" THEN
Planilha_Destino.LOTACAO_CODIGO = TableImport[X].Column4
END

IF TableImport[X].Column7..Caption = "FAMILIA" THEN
Planilha_Destino.FAMILIA = TableImport[X].Column7
END

IF TableImport[X].Column8..Caption = "CODIGO_AFINIDADE" THEN
Planilha_Destino.CODIGO_AFINIDADE = TableImport[X].Column8
END

IF TableImport[X].Column10..Caption = "DT_NASCIMENTO" THEN
Planilha_Destino.DT_NASCIMENTO = StringToDate(TableImport[X].Column10)
END

IF TableImport[X].Column11..Caption = "SEXO" THEN
Planilha_Destino.SEXO = TableImport[X].Column11
END

IF TableImport[X].Column12..Caption = "GUIA_NUMERO" THEN
Planilha_Destino.GUIA_NUMERO = TableImport[X].Column12
END

IF TableImport[X].Column14..Caption = "GUIA_DT_INTERNACAO" THEN
Planilha_Destino.GUIA_DT_INTERNACAO = Middle(TableImport[X].Column14,1,10)
END

IF TableImport[X].Column15..Caption = "GUIA_DT_ALTA" THEN
Planilha_Destino.GUIA_DT_ALTA = Middle(TableImport[X].Column15,1,10)
END

IF TableImport[X].Column16..Caption = "RECEBEDOR" THEN
Planilha_Destino.RECEBEDOR = TableImport[X].Column16
END

IF TableImport[X].Column18..Caption = "GUIA_EMERGENCIA" THEN
Planilha_Destino.GUIA_EMERGENCIA = TableImport[X].Column18
END

IF TableImport[X].Column20..Caption = "REGIME_ATENDIMENTO" THEN
Planilha_Destino.REGIME_ATENDIMENTO = TableImport[X].Column20
END

IF TableImport[X].Column21..Caption = "PROCED_TIPO" THEN
Planilha_Destino.PROCED_TIPO = TableImport[X].Column21
END

IF TableImport[X].Column22..Caption = "PROCED_CODIGO" THEN
Planilha_Destino.PROCED_CODIGO = TableImport[X].Column22
END

IF TableImport[X].Column23..Caption = "GUIA_QTDE_PAGTO" THEN
Planilha_Destino.GUIA_QTDE_PAGTO = TableImport[X].Column23
END

IF TableImport[X].Column30..Caption = "TAXA" THEN
Planilha_Destino.TAXA = TableImport[X].Column30
END

IF TableImport[X].Column32..Caption = "BASE_INSS" THEN
Planilha_Destino.BASE_INSS = TableImport[X].Column32
END

IF TableImport[X].Column33..Caption = "MATRICULA_FUNCIONAL" THEN
Planilha_Destino.MATRICULA_FUNCIONAL = TableImport[X].Column33
END

IF TableImport[X].Column37..Caption = "CID_PRINCIPAL" THEN
Planilha_Destino.CID_PRINCIPAL = TableImport[X].Column37
END

IF TableImport[X].Column38..Caption = "DEPENDENTE_CODIGO" THEN
Planilha_Destino.DEPENDENTE_CODIGO = TableImport[X].Column38
END

IF TableImport[X].Column39..Caption = "PROCED_CODIGO1" THEN
Planilha_Destino.PROCED_CODIGO1 = TableImport[X].Column39
END

IF TableImport[X].Column40..Caption = "PROCED_ATEND" THEN
Planilha_Destino.PROCED_ATEND = TableImport[X].Column40
END

IF TableImport[X].Column44..Caption = "FATURA_NATUREZA" THEN
Planilha_Destino.FATURA_NATUREZA = TableImport[X].Column44
END

IF TableImport[X].Column45..Caption = "RECGLOSA_QTDERECONS" THEN
Planilha_Destino.RECGLOSA_QTDERECONS = TableImport[X].Column45
END

IF OBRIGATORIO = True
HAdd(Planilha_Destino)
END

END

TableDisplay(TABLE_Planilha_Destino,taInit)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

HourGlass(False)

ToastDisplay("IMPORTADO!",toastLong,vaMiddle,haCenter,RGB(0,0,255))


// Summary:
// Syntax:
// Procedimento_03 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_03()

//TABELA DESTINO

EDT_DATA_HORA = DateSys() + TimeSys()

TableDisplay(TABLE_Planilha_Destino,taInit)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

HourGlass(True)

X is int = 0

OBRIGATORIO is boolean = False

COD, UF, CONSELHO is string

CUSTO_SERVICO, FILME, HONORARIO is real

//LER PLANILHA CONVERTER PARA HFSQL
LOOP(TableImport.Count(toTotal))

X++

//DADOS PRINCIPAIS
IF TableImport[X].Column1..Caption = "SEQUENCIAL"
Planilha_Destino.SEQUENCIAL = TableImport[X].Column1
END

IF TableImport[X].Column2..Caption = "CONTRATO"
Planilha_Destino.CONTRATO = TableImport[X].Column2
END

IF TableImport[X].Column3..Caption = "CONTRATANTE"
Planilha_Destino.EMPRESA = TableImport[X].Column3
END

IF TableImport[X].Column5..Caption = "LOTACAO"
Planilha_Destino.SEDE_ALOCADO = TableImport[X].Column5
END

IF TableImport[X].Column6..Caption = "FAMILIA_RESPONSAVEL"
Planilha_Destino.TITULAR = TableImport[X].Column6
END

IF TableImport[X].Column43..Caption = "BENEFICIARIO_CPF" THEN

TableImport[X].Column43 = Replace(TableImport[X].Column43,".","")
TableImport[X].Column43 = Replace(TableImport[X].Column43,"-","")

NPOS is int = Length(TableImport[X].Column43)

IF NPOS < 11 THEN
IF NPOS = 10 THEN
Planilha_Destino.CPF_UTILIZADOR = "0"+TableImport[X].Column43
ELSE IF NPOS = 9 THEN
Planilha_Destino.CPF_UTILIZADOR = "00"+TableImport[X].Column43
END
ELSE
Planilha_Destino.CPF_UTILIZADOR = TableImport[X].Column43
END

END

IF TableImport[X].Column9..Caption = "BENEFICIARIO" THEN
OBRIGATORIO = True
Planilha_Destino.NOME_UTILIZADOR = TableImport[X].Column9
END

//CRM
IF TableImport[X].Column25..Caption = "RECEBEDOR_INSCRICAO" THEN
COD = TableImport[X].Column25
END

IF TableImport[X].Column26..Caption = "RECEBEDOR_INSCRICAO_UF" THEN
UF = TableImport[X].Column26
END

IF TableImport[X].Column24..Caption = "RECEBEDOR_CONSELHO" THEN
CONSELHO = TableImport[X].Column24
END

IF COD <> "" AND COD <> "0" AND COD <> 0
Planilha_Destino.CRM_INSCRICAO = COD +"-"+ UF +"-"+ CONSELHO
COD = ""
UF = ""
CONSELHO = ""
END

IF TableImport[X].Column34..Caption = "RECEBEDOR_CODIGO" THEN
Planilha_Destino.COD_MEDICO_CLINICA = TableImport[X].Column34
END

IF TableImport[X].Column35..Caption = "RECEBEDOR_NOME" THEN
Planilha_Destino.NOME_MEDICO_CLINICA = TableImport[X].Column35
END

IF TableImport[X].Column13..Caption = "GUIA_DT_ATENDIMENTO" THEN
Planilha_Destino.DATA = Middle(TableImport[X].Column13,1,10) // FORMATAR
END

IF TableImport[X].Column19..Caption = "GUIA_HR_ATEND" THEN
Planilha_Destino.HORA = Middle(TableImport[X].Column19,1,5) // FORMATAR
END

IF TableImport[X].Column17..Caption = "GUIA_TIPO_EXEC" THEN
Planilha_Destino.TIPO = TableImport[X].Column17
END

IF TableImport[X].Column42..Caption = "GUIA_REGIME_ATEND" THEN
Planilha_Destino.SUBTIPO = TableImport[X].Column42
END

IF TableImport[X].Column36..Caption = "ESPECIALIDADE" THEN
Planilha_Destino.ESPECIALIDADE_MEDICA = TableImport[X].Column36
END

IF TableImport[X].Column41..Caption = "PROCED_DESCRICAO" THEN
Planilha_Destino.PROCEDIMENTO = TableImport[X].Column41
END

IF TableImport[X].Column27..Caption = "CUSTO_SERVICO" THEN
CUSTO_SERVICO = TableImport[X].Column27
Planilha_Destino.CUSTO_SERVICO = TableImport[X].Column27
END

IF TableImport[X].Column28..Caption = "FILME" THEN
FILME = TableImport[X].Column28
Planilha_Destino.CUSTO_FILME = TableImport[X].Column28
END

IF TableImport[X].Column29..Caption = "HONORARIO" THEN
HONORARIO = TableImport[X].Column29
Planilha_Destino.CUSTO_HONORARIO = TableImport[X].Column29
END

Planilha_Destino.VALOR_TOTAL_REFERENCIA = CUSTO_SERVICO + FILME + HONORARIO

IF TableImport[X].Column31..Caption = "VALOR_PAGO_SERVICO" THEN
Planilha_Destino.VALOR_COPARTICIPACAO = TableImport[X].Column31
END

//A CALCULAR
Planilha_Destino.VALOR_TOTAL_COPAR_REF = 0
Planilha_Destino.VALOR_A_SER_PAGO_EMPRESA = 0
Planilha_Destino.VALOR_A_SER_PAGO_FUNCIONARIO = 0
Planilha_Destino.SALDO_DEVEDOR_MES_ANTERIOR = 0
Planilha_Destino.DESCONTO_EM_FOLHA = 0
Planilha_Destino.SALDO_DEVEDOR_FINAL = 0

//OUTROS CAMPOS
IF TableImport[X].Column4..Caption = "LOTACAO_CODIGO" THEN
Planilha_Destino.LOTACAO_CODIGO = TableImport[X].Column4
END

IF TableImport[X].Column7..Caption = "FAMILIA" THEN
Planilha_Destino.FAMILIA = TableImport[X].Column7
END

IF TableImport[X].Column8..Caption = "CODIGO_AFINIDADE" THEN
Planilha_Destino.CODIGO_AFINIDADE = TableImport[X].Column8
END

IF TableImport[X].Column10..Caption = "DT_NASCIMENTO" THEN
Planilha_Destino.DT_NASCIMENTO = StringToDate(TableImport[X].Column10)
END

IF TableImport[X].Column11..Caption = "SEXO" THEN
Planilha_Destino.SEXO = TableImport[X].Column11
END

IF TableImport[X].Column12..Caption = "GUIA_NUMERO" THEN
Planilha_Destino.GUIA_NUMERO = TableImport[X].Column12
END

IF TableImport[X].Column14..Caption = "GUIA_DT_INTERNACAO" THEN
Planilha_Destino.GUIA_DT_INTERNACAO = Middle(TableImport[X].Column14,1,10)
END

IF TableImport[X].Column15..Caption = "GUIA_DT_ALTA" THEN
Planilha_Destino.GUIA_DT_ALTA = Middle(TableImport[X].Column15,1,10)
END

IF TableImport[X].Column16..Caption = "RECEBEDOR" THEN
Planilha_Destino.RECEBEDOR = TableImport[X].Column16
END

IF TableImport[X].Column18..Caption = "GUIA_EMERGENCIA" THEN
Planilha_Destino.GUIA_EMERGENCIA = TableImport[X].Column18
END

IF TableImport[X].Column20..Caption = "REGIME_ATENDIMENTO" THEN
Planilha_Destino.REGIME_ATENDIMENTO = TableImport[X].Column20
END

IF TableImport[X].Column21..Caption = "PROCED_TIPO" THEN
Planilha_Destino.PROCED_TIPO = TableImport[X].Column21
END

IF TableImport[X].Column22..Caption = "PROCED_CODIGO" THEN
Planilha_Destino.PROCED_CODIGO = TableImport[X].Column22
END

IF TableImport[X].Column23..Caption = "GUIA_QTDE_PAGTO" THEN
Planilha_Destino.GUIA_QTDE_PAGTO = TableImport[X].Column23
END

IF TableImport[X].Column30..Caption = "TAXA" THEN
Planilha_Destino.TAXA = TableImport[X].Column30
END

IF TableImport[X].Column32..Caption = "BASE_INSS" THEN
Planilha_Destino.BASE_INSS = TableImport[X].Column32
END

IF TableImport[X].Column33..Caption = "MATRICULA_FUNCIONAL" THEN
Planilha_Destino.MATRICULA_FUNCIONAL = TableImport[X].Column33
END

IF TableImport[X].Column37..Caption = "CID_PRINCIPAL" THEN
Planilha_Destino.CID_PRINCIPAL = TableImport[X].Column37
END

IF TableImport[X].Column38..Caption = "DEPENDENTE_CODIGO" THEN
Planilha_Destino.DEPENDENTE_CODIGO = TableImport[X].Column38
END

IF TableImport[X].Column39..Caption = "PROCED_CODIGO1" THEN
Planilha_Destino.PROCED_CODIGO1 = TableImport[X].Column39
END

IF TableImport[X].Column40..Caption = "PROCED_ATEND" THEN
Planilha_Destino.PROCED_ATEND = TableImport[X].Column40
END

IF TableImport[X].Column44..Caption = "FATURA_NATUREZA" THEN
Planilha_Destino.FATURA_NATUREZA = TableImport[X].Column44
END

IF TableImport[X].Column45..Caption = "RECGLOSA_QTDERECONS" THEN
Planilha_Destino.RECGLOSA_QTDERECONS = TableImport[X].Column45
END

IF OBRIGATORIO = True
HAdd(Planilha_Destino)
END

END

TableDisplay(TABLE_Planilha_Destino,taInit)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

HourGlass(False)

ToastDisplay("IMPORTADO!",toastLong,vaMiddle,haCenter,RGB(0,0,255))



// Summary:
// Syntax:
// Procedimento_04 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_04()

HourGlass(True)

nErros is 8-bytes int

ok, achou is boolean = False

FOR EACH Planilha_Destino

IF HFound(Planilha_Destino) = True THEN

//KUNICA
// Planilha_Destino.CONTRATO
// Planilha_Destino.EMPRESA
// Planilha_Destino.SEDE_ALOCADO
// Planilha_Destino.CPF_UTILIZADOR
// Planilha_Destino.NOME_UTILIZADOR
// Planilha_Destino.DATA
// Planilha_Destino.HORA
// Planilha_Destino.PROCEDIMENTO

HReset(TMOV_COPAY)
BufChaveComposta is Buffer = HBuildKeyValue(TMOV_COPAY,KUNICA,Planilha_Destino.CONTRATO,Planilha_Destino.EMPRESA,Planilha_Destino.SEDE_ALOCADO,Planilha_Destino.CPF_UTILIZADOR,Planilha_Destino.NOME_UTILIZADOR,Planilha_Destino.DATA,Planilha_Destino.HORA,Planilha_Destino.PROCEDIMENTO)
IF HReadSeek(TMOV_COPAY,KUNICA,BufChaveComposta,hIdentical+hKeepFilter) = True THEN
IF HFound(t002_clientes) = True
achou = True
END
ELSE
achou = False
END

TMOV_COPAY.SEQUENCIAL = Planilha_Destino.SEQUENCIAL
TMOV_COPAY.CONTRATO = Planilha_Destino.CONTRATO
TMOV_COPAY.EMPRESA = Planilha_Destino.EMPRESA
TMOV_COPAY.SEDE_ALOCADO = Planilha_Destino.SEDE_ALOCADO
TMOV_COPAY.TITULAR = Planilha_Destino.TITULAR
TMOV_COPAY.CPF_UTILIZADOR = Planilha_Destino.CPF_UTILIZADOR
TMOV_COPAY.NOME_UTILIZADOR = Planilha_Destino.NOME_UTILIZADOR
TMOV_COPAY.CRM_INSCRICAO = Planilha_Destino.CRM_INSCRICAO
TMOV_COPAY.COD_MEDICO_CLINICA = Planilha_Destino.COD_MEDICO_CLINICA
TMOV_COPAY.NOME_MEDICO_CLINICA = Planilha_Destino.NOME_MEDICO_CLINICA
TMOV_COPAY.DATA = StringToDate(Planilha_Destino.DATA)
TMOV_COPAY.HORA = StringToTime(Planilha_Destino.HORA)
TMOV_COPAY.TIPO = Planilha_Destino.TIPO
TMOV_COPAY.SUBTIPO = Planilha_Destino.SUBTIPO
TMOV_COPAY.ESPECIALIDADE_MEDICA = Planilha_Destino.ESPECIALIDADE_MEDICA
TMOV_COPAY.PROCEDIMENTO = Planilha_Destino.PROCEDIMENTO
TMOV_COPAY.VALOR_TOTAL_REFERENCIA = Planilha_Destino.VALOR_TOTAL_REFERENCIA
TMOV_COPAY.VALOR_COPARTICIPACAO = Planilha_Destino.VALOR_COPARTICIPACAO
TMOV_COPAY.VALOR_TOTAL_COPAR_REF = Planilha_Destino.VALOR_TOTAL_COPAR_REF
TMOV_COPAY.VALOR_A_SER_PAGO_EMPRESA = Planilha_Destino.VALOR_A_SER_PAGO_EMPRESA
TMOV_COPAY.VALOR_A_SER_PAGO_FUNCIONARIO = Planilha_Destino.VALOR_A_SER_PAGO_FUNCIONARIO
TMOV_COPAY.SALDO_DEVEDOR_MES_ANTERIOR = Planilha_Destino.SALDO_DEVEDOR_MES_ANTERIOR
TMOV_COPAY.DESCONTO_EM_FOLHA = Planilha_Destino.DESCONTO_EM_FOLHA
TMOV_COPAY.SALDO_DEVEDOR_FINAL = Planilha_Destino.SALDO_DEVEDOR_FINAL
TMOV_COPAY.LOTACAO_CODIGO = Planilha_Destino.LOTACAO_CODIGO
TMOV_COPAY.FAMILIA = Planilha_Destino.FAMILIA
TMOV_COPAY.CODIGO_AFINIDADE = Planilha_Destino.CODIGO_AFINIDADE
TMOV_COPAY.DT_NASCIMENTO = Planilha_Destino.DT_NASCIMENTO
TMOV_COPAY.SEXO = Planilha_Destino.SEXO
TMOV_COPAY.GUIA_NUMERO = Planilha_Destino.GUIA_NUMERO
TMOV_COPAY.GUIA_DT_INTERNACAO = StringToDate(Planilha_Destino.GUIA_DT_INTERNACAO)
TMOV_COPAY.GUIA_DT_ALTA = StringToDate(Planilha_Destino.GUIA_DT_ALTA)
TMOV_COPAY.RECEBEDOR = Planilha_Destino.RECEBEDOR
TMOV_COPAY.GUIA_EMERGENCIA = Planilha_Destino.GUIA_EMERGENCIA
TMOV_COPAY.REGIME_ATENDIMENTO = Planilha_Destino.REGIME_ATENDIMENTO
TMOV_COPAY.PROCED_TIPO = Planilha_Destino.PROCED_TIPO
TMOV_COPAY.PROCED_CODIGO = Planilha_Destino.PROCED_CODIGO
TMOV_COPAY.GUIA_QTDE_PAGTO = Planilha_Destino.GUIA_QTDE_PAGTO
TMOV_COPAY.TAXA = Planilha_Destino.TAXA
TMOV_COPAY.BASE_INSS = Planilha_Destino.BASE_INSS
TMOV_COPAY.MATRICULA_FUNCIONAL = Planilha_Destino.MATRICULA_FUNCIONAL
TMOV_COPAY.CID_PRINCIPAL = Planilha_Destino.CID_PRINCIPAL
TMOV_COPAY.DEPENDENTE_CODIGO = Planilha_Destino.DEPENDENTE_CODIGO
TMOV_COPAY.PROCED_CODIGO1 = Planilha_Destino.PROCED_CODIGO1
TMOV_COPAY.PROCED_ATEND = Planilha_Destino.PROCED_ATEND
TMOV_COPAY.FATURA_NATUREZA = Planilha_Destino.FATURA_NATUREZA
TMOV_COPAY.RECGLOSA_QTDERECONS = Planilha_Destino.RECGLOSA_QTDERECONS
TMOV_COPAY.MES_ANO = EDT_MES_ANO
TMOV_COPAY.RESPONSAVEL = EDT_RESPONAVEL
TMOV_COPAY.DATAHORACAD = EDT_DATA_HORA
TMOV_COPAY.ARQUIVO = EDT_FILE
TMOV_COPAY.DATAHORAMOV = StringToDate(Planilha_Destino.DATA) + StringToTime(Planilha_Destino.HORA)

IF achou = False THEN
ok = HAdd(TMOV_COPAY,hIgnoreDuplicates)
IF ok = False THEN
nErros += 1
END
ELSE
ok = HModify(TMOV_COPAY)
IF ok = False THEN
nErros += 1
END
END

END

END

TableDisplay(TABLE_Planilha_Destino,taInit)

TableDisplay(TABLE_Planilha_Destino,taReExecuteQuery)

TableDisplay(TABLE_T001_MOVIMENTO,taInit)

TableDisplay(TABLE_T001_MOVIMENTO,taReExecuteQuery)

HourGlass(False)

IF nErros = 0
ToastDisplay("IMPORTADO!",toastLong,vaMiddle,haCenter,RGB(0,0,255))
ELSE
Info("Total de Erros: "+nErros)
END



// Summary:
// Syntax:
// Procedimento_05 ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
PROCEDURE Procedimento_05()

HourGlass(True)

nErros is 8-bytes int

ok, achou is boolean = False

FOR EACH TMOV_COPAY

HReset(t002_clientes)
IF HReadSeek(t002_clientes,t002_nome_titular,TMOV_COPAY.TITULAR,hIdentical) = True THEN
IF HFound(t002_clientes) = True
achou = True
END
ELSE
achou = False
END

t002_clientes.t002_nome_titular = TMOV_COPAY.TITULAR
t002_clientes.t002_company = TMOV_COPAY.EMPRESA
t002_clientes.t002_matricula = TMOV_COPAY.MATRICULA_FUNCIONAL
t002_clientes.t002_contrato = TMOV_COPAY.CONTRATO
t002_clientes.t002_cod_familia = TMOV_COPAY.FAMILIA
t002_clientes.t002_cod_afinidade = TMOV_COPAY.CODIGO_AFINIDADE
t002_clientes.t002_nascimento = Middle(TMOV_COPAY.DT_NASCIMENTO,1,8)
t002_clientes.t002_idade = CurrentYear() - Val(Middle(t002_clientes.t002_nascimento,1,4))
t002_clientes.t002_sexo = TMOV_COPAY.SEXO
t002_clientes.t002_cpf = TMOV_COPAY.CPF_UTILIZADOR
t002_clientes.t002_importado = "S"
t002_clientes.t002_data_importado = DateSys()
t002_clientes.t002_status_ativo = "A"

IF TMOV_COPAY.TITULAR <> "" AND TMOV_COPAY.CPF_UTILIZADOR <> ""
IF achou = False THEN
ok = HAdd(t002_clientes,hIgnoreDuplicates)
IF ok = False THEN
nErros += 1
END
ELSE
ok = HModify(t002_clientes)
IF ok = False THEN
nErros += 1
END
END
END

END

HourGlass(False)

IF nErros = 0
ToastDisplay("IMPORTADO CLIENTES!",toastLong,vaMiddle,haCenter,RGB(0,0,255))
ELSE
Info("Total de Erros: "+nErros)
END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 10 2020 - 12:52 PM
sFile is string = fSelect("", "", "Selecione o arquivo TNUMM...", "All the files (*.*)" + TAB + "*.*" + CR + "*.xlsx" + TAB + "*.xlsx" + CR + "*.xls" + TAB + "*.xls", "*.*")

IF fFileExist(sFile) = True THEN

//HDeleteAll(F002_APS_TNUMM)

xlsarquivo is xlsDocument

HourGlass(True)
toast("Aguarde! Carregando dados do arquivo TNUMM!")
xlsarquivo = xlsOpen(sFile,xlsCompatible)

IF ErrorOccurred() THEN
Error(ErrorInfo())
HourGlass(False)
RETURN

ELSE
//info(xlsarquivo[2,1])
HourGlass(False)
ToastDeleteAll()

IF validaTNUMM_MED_XLS(xlsarquivo) = True THEN

l is int = 3
//toast("Validado com sucesso!")
nTotalRegistros is int = xlsarquivo..NumberRow

HourGlass(True)
ToastDisplay("Aguarde! Realizando importação dos registros! Este processo pode levar alguns minutos...!",toastShort,vaMiddle,haCenter,RGB(255,153,0))
LOOP (nTotalRegistros)



//inicio processo de vericação dos dados anteriores
//....
//....
//fim processo de vericação dos dados anteriores



F002_APS_TNUMM.F002_TNUMM_ID = GET_SEQ(F002_APS_TNUMM)
F002_APS_TNUMM.F002_TNUMM_COD_TISS = xlsarquivo[l,1]
F002_APS_TNUMM.F002_CODIGOANTERIOR = xlsarquivo[l,24]
F002_APS_TNUMM.F002_NOMECOMERCIAL = xlsarquivo[l,2]
F002_APS_TNUMM.F002_PRINCIPIOATIVO_DESCRICAO = xlsarquivo[l,3]
F002_APS_TNUMM.F002_GRUPO_FARMACOLOGICA = xlsarquivo[l,5]
F002_APS_TNUMM.F002_CLASSE_FARMACOLOGICA = xlsarquivo[l,7]
F002_APS_TNUMM.F002_UNID_MIM_FRA = xlsarquivo[l,8]
F002_APS_TNUMM.F002_CNPJFABRICANTE = xlsarquivo[l,9]
F002_APS_TNUMM.F002_DETENTORREGISTRO = xlsarquivo[l,10]
F002_APS_TNUMM.F002_REGISTROANVISA = xlsarquivo[l,11]
F002_APS_TNUMM.F002_OBSERVACAO = xlsarquivo[l,23]
F002_APS_TNUMM.F002_TIPOPRODUTO = xlsarquivo[l,25]
F002_APS_TNUMM.F002_TIPOCODIFICACAO = xlsarquivo[l,26]
F002_APS_TNUMM.F002_DTINICIO_VIGENCIA = xlsarquivo[l,27]
F002_APS_TNUMM.F002_DTFIM_VIGENCIA = xlsarquivo[l,28]
F002_APS_TNUMM.F002_DTFIM_IMPLANTACAO = xlsarquivo[l,30]
F002_APS_TNUMM.F002_DATAIMPORT = DateSys()
F002_APS_TNUMM.F002_MOTIVOINSERCAO = xlsarquivo[l,29]
F002_APS_TNUMM.F002_MATMED = "MED"


IF F002_APS_TNUMM.F002_TNUMM_COD_TISS <> "" THEN
IF HAdd(F002_APS_TNUMM,hForceIdAuto) THEN
//ToastDisplay("TNUMM Inserida com Sucesso!",toastShort,vaMiddle,haCenter,RGB(1,106,0))
ELSE
ToastDisplay("Problemas ao Inserir tabela TNUMM!",toastShort,vaMiddle,haCenter,RGB(255,0,0))
END
END

l++

END

HourGlass(False)
ToastDeleteAll()

TableDisplay(TABLEGRID_F002_APS_TNUMM,taInit)
ToastDisplay("Arquivo TNUMM importado com Sucesso!",toastShort,vaMiddle,haCenter,RGB(0,102,0))

ELSE
ToastDisplay("Arquivo com alguma inconsistência, favor contatar o administrador do sistema!",toastShort,vaMiddle,haCenter,RGB(255,0,0))
END

xlsClose(xlsarquivo)

END

HourGlass(False)


END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.160 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 10 2020 - 12:53 PM
//validar colunas
// Summary:
// Syntax:
//[ = ] validaTNUMM_MAT_XLS ( is xlsDocument)
//
// Parameters:
// xls (xlsDocument):

PROCEDURE validaTNUMM_MAT_XLS(xls is xlsDocument)

ok is boolean
erro is int

col_01, col_02, Col_03, Col_04, Col_05, Col_06, Col_07, Col_08, Col_09, Col_10, Col_11, Col_12 is string
Col_13, Col_14, Col_15, Col_16, Col_17, Col_18, Col_19, Col_20, Col_21, Col_22, Col_23, Col_24 is string


col_01 = "Código - versão TISS 3.04.00"
IF xls[2,1] <> col_01 THEN
erro++
END

col_02 = "Nome Comercial"
IF xls[2,2] <> col_02 THEN
erro++
END

Col_03 = "Descrição do Produto"
IF xls[2,3] <> Col_03 THEN
erro++
END

Col_04 = "Especialidade do Produto"
IF xls[2,4] <> Col_04 THEN
erro++
END

Col_05 = "Classificação do Produto"
IF xls[2,5] <> Col_05 THEN
erro++
END

Col_06 = "Nome Técnico"
IF xls[2,6] <> Col_06 THEN
erro++
END

Col_07 = "Unid Mín Fração"
IF xls[2,7] <> Col_07 THEN
erro++
END

Col_08 = "CNPJ Fabricante/Importador"
IF xls[2,8] <> Col_08 THEN
erro++
END

Col_09 = "Detentor do Registro na Anvisa"
IF xls[2,9] <> Col_09 THEN
erro++
END

Col_10 = "Registro ANVISA"
IF xls[2,10] <> Col_10 THEN
erro++
END

Col_11 = "Taxa de Custos"
IF xls[2,11] <> Col_11 THEN
erro++
END

Col_12 = "Valor Máximo Intercâmbio Nacional"
IF xls[2,12] <> Col_12 THEN
erro++
END

Col_13 = "Observações"
IF xls[2,13] <> Col_13 THEN
erro++
END

Col_14 = "Cód. Anterior"
IF xls[2,14] <> Col_14 THEN
erro++
END

Col_15 = "Ref/Tamanho/Modelo"
IF xls[2,15] <> Col_15 THEN
erro++
END

Col_16 = "Tipo de Produto"
IF xls[2,16] <> Col_16 THEN
erro++
END

Col_17 = "Tipo de Codificacao"
IF xls[2,17] <> Col_17 THEN
erro++
END

Col_18 = "Data Inicio Vigencia"
IF xls[2,18] <> Col_18 THEN
erro++
END

Col_19 = "Data Fim Vigencia"
IF xls[2,19] <> Col_19 THEN
erro++
END

Col_20 = "Motivo de insercao (Data fim de vigencia)"
IF xls[2,20] <> Col_20 THEN
erro++
END

Col_21 = "Data Fim de Implantacao"
IF xls[2,21] <> Col_21 THEN
erro++
END

Col_22 = "Cod Simpro"
IF xls[2,22] <> Col_22 THEN
erro++
END

Col_23 = "Descrição Produto Simpro"
IF xls[2,23] <> Col_23 THEN
erro++
END

Col_24 = "Equivalência Técnica"
IF xls[2,24] <> Col_24 THEN
erro++
END


IF erro > 0 THEN
ok = False
ELSE
ok = True
END

RESULT ok


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