PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Import e export do Excel para o HFSQL ou MsSQL Server
WX - Import e export do Excel para o HFSQL ou MsSQL Server
Débuté par adrianoboller, 03 mai 2016 02:49 - 2 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 03 mai 2016 - 02:49
Prezados,

Exemplo de Import e Export do Excel para o HFSQL ou MsSQL Server

Tela:





Insira o botão: UPLOAD CONTROL





CODIGO UPLOAD





//Upload

IF MySelf..Occurrence > 0

Arquivo is string = MySelf..Value

IF Arquivo <> "" AND PositionOccurrence(Arquivo,".xls",firstRank,FromBeginning + IgnoreCase) > 0

PROGBAR_01..Value = 0

UploadStart(MySelf) // And starts the upload

ELSE IF Arquivo <> ""

Info("O formato do arquivo não é um XLS, por favor corrija.","Confira o nome do arquivo deve conter a palavra usuario e ter a extensão xls.")

PROGBAR_01..Value = 0

ELSE

Info("Ocorreu um erro inesperado")

PROGBAR_01..Value = 0

END


END


Insira uma barra de progresso e um campo EDIT para LOG

BOTAO UPLOAD





//Progress
rGlobalAdvancing is real = UploadSizeSent(MySelf) / UploadSize(MySelf)

PROGBAR_01 = Round(rGlobalAdvancing * 1000, 0)



BOTAO UPLOAD





//Upload
ArquivoUploadUsuario = UploadCopyFile(MySelf,WS_ReturnGenerationDir, "") //nome do arquivo

IF ArquivoUploadUsuario <> "" THEN

PROGBAR_01..Value = 100

EDT_LOG = "Upload do arquivo de "+ ArquivoUploadUsuario +" com sucesso" + CRLF

EDT_Arquivo = ArquivoUploadUsuario

ImportarUsuario(ArquivoUploadUsuario) /// importante aqui importa pro banco pela sub rotina

PROGBAR_01..Visible = False

ELSE

EDT_LOG = CRLF+"Erro ao importar o arquivo"+CRLF

END



SUB PROCEDURE: IMPORTARUSUARIO( )

Procedure ImportarUsuario(gArquivoUploadUsuario)

InitRandom()

bLinhaOk is boolean = False

ncampos is int

vVariavelNula is Variant = Null

ErroGrave is string

ok, existeCC, existeUser, existeDir, Planilha is boolean = False

Incluidos, Alterados, TotalErros, nColunasInvalidas, nRegistros, nCodigoDiretoria is int = 0

PROGBAR_01..Visible = True

PROGBAR_01..Value = 0

Cabecalho is string = [
<h3><b>
Associação Radiotaxi Faixa Vermelha<br>
===================================<br>
</h3></b>
]

Mensagem is string = [
<h3>
[Dados de Acesso ao Voucher Eletronico]:<br>
<br>
Prezado(a): @Nome@ <br>
<br>
Acesse o Link: http://www.taxifaixavermelha.com.br
<br>
Escolha No Menu superior a opção: Voucher Eletronico
<br><br>
[Informe os dados abaixo para o Acesso] <br><br>
<br>
Convenio = @Convenio@ <br>
Email = @Email@ <br>
OU <br>
Matricula = @Matricula@ <br>
Senha de Acesso Web = @SenhaAcesso@ <br>
Senha de Pagamento = @SenhaVoucher@ <br>
</h3>
]

MensagemEnvio is string = ""

nRegistro, nLinha, nUmaLinha is int

sCod_matric_autorz, sDes_email_usuari_web, sNom_autorz, sDes_nome_empres_usuari_web, sIde_nivel_acesso_usuari_web, sDes_cargo_autorz, sNum_rg_autorz, sNum_cpf_autorz, sCod_centro_custo, sIde_Tercerizada, sIde_SolicitarOutrosCentrosCusto, sIde_PermitirCorridasParaOutros, sTelefone, sIde_permit_corrid_outros, sDesc_diretoria, sInativar_Data, sInativar_Motivo, sObservacao, Diretoria is string = ""

//Ler arquivo Xls
nUmaLinha = 0
nXlsfile is xlsDocument
IF gArquivoUploadUsuario <> ""
nXlsfile = xlsOpen(WS_ReturnGenerationDir() + gArquivoUploadUsuario)
IF ErrorOccurred() THEN
EDT_LOG = ErrorInfo() + CRLF
RETURN
ELSE
nUmaLinha = xlsNbRow(nUmaLinha)
END
ELSE
EDT_LOG += "Ocorreu um erro no upload do arquivo..."+CRLF
RETURN
END

EDT_LOG += "Analisando colunas com o exemplo de importação..."+CRLF

IF gArquivoUploadUsuario <> "" AND nUmaLinha > 0

//validar cabeçalho-- assuma tava dando debug
nColunasInvalidas = 0
IF (xlsData(nXlsfile,1,1)) <> "Matricula (*)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Matricula diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,2)) <> "Email (*)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Email diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,3)) <> "Nome Usuario (*)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Nome Usuario diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,4)) <> "RG" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna RG diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,5)) <> "CPF" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna CPF diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,6)) <> "Cargo" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Cargo diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,7)) <> "Telefone" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Telefone diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,8)) <> "Nome Empresa" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Nome Empresa diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,9)) <> "Nome Diretoria" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Nome Diretoria diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,10)) <> "Codigo Centro Custo (*)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Codigo Centro Custo diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,11)) <> "Solicitar Corridas em Outros CC (S/N)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Solicitar Corridas em Outros CC diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,12)) <> "Tercerizada (S/N)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Tercerizada diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,13)) <> "Permitir Corridas para Outros (S/N)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Permitir Corridas para Outros diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,14)) <> "Nivel Acesso do Usuario (M/A/N)" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Nivel Acessodo Usuario diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,15)) <> "Data Inativacao" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Data Inativacao diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,16)) <> "Motivo Inativacao" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Motivo Inativacao diferente do padrão..."+CRLF
END
IF (xlsData(nXlsfile,1,17)) <> "Observacao" THEN
nColunasInvalidas += 1
EDT_LOG += "Erro: Coluna Observacao diferente do padrão..."+CRLF
END


//Colunas validas
IF nColunasInvalidas = 0 THEN

EDT_LOG += "OK - Colunas estao no padrão..."+CRLF

//Valida dados da planilha campos obrigatorios

Planilha = True


// inicio
FOR nLinha = 2 TO nUmaLinha

// total maximo de campos
bLinhaOk = False
ncampos = 0
FOR ncampos = 1 TO 17
IF Length(NoSpace(xlsData(nXlsfile,nLinha,ncampos))) > 0 // pelo menos um campo tem dados
bLinhaOk = True
END
END

IF bLinhaOk THEN

nRegistros += 1

sREGISTRO_OK is string = (xlsData(nXlsfile,nLinha,1))

IF sREGISTRO_OK <> "Matricula (*)" AND sREGISTRO_OK <> "" AND sREGISTRO_OK <> " "// AND Length(sREGISTRO_OK) > 0

//Valida
IF (xlsData(nXlsfile,nLinha,1)) = "" AND nUmaLinha > 1

EDT_LOG += "Existe um dos cadastros sem matricula ajuste a planilha pois esta inconsistente - Registro da linha: "+ (nRegistros) + CRLF

Planilha = False

ELSE IF (xlsData(nXlsfile,nLinha,2)) = "" AND nUmaLinha > 1

EDT_LOG += "Existe um dos cadastros sem email ajuste a planilha pois esta inconsistente mas FACULTATIVO - Registro da linha: "+ (nRegistros) + CRLF

ELSE IF (xlsData(nXlsfile,nLinha,3)) = "" AND nUmaLinha > 1

EDT_LOG += "Existe um dos cadastros sem nome ajuste a planilha pois esta inconsistente - Registro da linha: "+ nRegistros + CRLF

Planilha = False

ELSE IF (xlsData(nXlsfile,nLinha,10)) = "" AND nUmaLinha > 1

EDT_LOG += "Existe um dos cadastros sem Centro de Custo ajuste a planilha pois esta inconsistente - Registro da linha: "+ nRegistros + CRLF

Planilha = False

END

//verifica se tem o Centro de Custo
sCod_centro_custo = xlsData(nXlsfile,nLinha,10)

IF sCod_centro_custo <> "" AND sCod_centro_custo <> 0 AND sCod_centro_custo <> "Codigo Centro Custo (*)" AND sREGISTRO_OK <> ""

ok = HExecuteQuery(QRY_Select_VerificaCentroCusto,hQueryDefault,gnConvenioAdministrador,sCod_centro_custo)

existeCC = False

IF ok = True THEN

FOR EACH QRY_Select_VerificaCentroCusto
IF QRY_Select_VerificaCentroCusto.cod_centro_custo = sCod_centro_custo
existeCC = True
EDT_LOG += "CENTRO DE CUSTO EXISTENTE --> MATRICULA: " + sCod_matric_autorz +" - CC: "+ sCod_centro_custo + " - Registro da linha: "+ nRegistros + CRLF
END
END

ELSE
existeCC = False
Planilha = False

ok = HExecuteQuery(QRY_Insert_CentroCusto,hQueryDefault,gnConvenioAdministrador,sCod_centro_custo,sCod_centro_custo,"","","","","","","","","","","","","","","","","","","","","","")

EDT_LOG += "Erro ao analisar: CENTRO DE CUSTO NAO EXISTE --> MATRICULA: " + sCod_matric_autorz +" - CC: "+ sCod_centro_custo + " - Registro da linha: "+ nRegistros + CRLF
ErroGrave += "Erro ao analisar: CENTRO DE CUSTO NAO EXISTE --> MATRICULA: " + sCod_matric_autorz +" - CC: "+ sCod_centro_custo + " - Registro da linha: "+ nRegistros + CRLF
END

ELSE IF sCod_centro_custo = 0 AND sCod_centro_custo <> "Codigo Centro Custo (*)" AND sCod_centro_custo <> "" AND sREGISTRO_OK <> ""
EDT_LOG += "O centro de custo não pode ser zero. Registro da linha: "+nRegistro+CRLF
Planilha = False
END
//fim...verifica se tem o Centro de Custo


//verifica se tem a Diretoria
Diretoria = xlsData(nXlsfile,nLinha,9)

IF Diretoria <> "" AND Diretoria <> 0 AND Diretoria <> "Nome Diretoria" AND sREGISTRO_OK <> "" // é nome da diretoria e nao codigo que vem da planilha

ok = HExecuteQuery(QRY_Select_VerificaDiretoriaVoucher,hQueryDefault,gnConvenioAdministrador,Diretoria)

existeDir = False

IF ok = True AND Diretoria <> ""

FOR EACH QRY_Select_VerificaDiretoriaVoucher
IF QRY_Select_VerificaDiretoriaVoucher.Diretoria = Diretoria AND QRY_Select_VerificaDiretoriaVoucher.SEQ_Diretoria > 0
nCodigoDiretoria = QRY_Select_VerificaDiretoriaVoucher.SEQ_Diretoria
EDT_LOG += "EXISTENTE DIRETORIA "+ QRY_Select_VerificaDiretoriaVoucher.SEQ_Diretoria +"-"+ Diretoria +" DA MATRICULA: "+ sCod_matric_autorz + " Diretoria: " + Diretoria + " - Registro da linha: "+ nRegistros + CRLF
END
END
IF nCodigoDiretoria > 0
existeDir = True
END

ELSE IF ok = False AND Diretoria <> "" AND Diretoria <> "Nome Diretoria" AND sREGISTRO_OK <> ""
//existeDir = False

ok = HExecuteQuery(QRY_Insert_NG0014_VoucherDiretoria,hQueryDefault,Diretoria,gnConvenioAdministrador,"S")

EDT_LOG += "Erro ao analisar: NAO EXISTE A DIRETORIA DA MATRICULA: " + sCod_matric_autorz + " Diretoria: " + Diretoria + " - Registro da linha: "+ nRegistros + CRLF
ErroGrave += "Erro ao analisar: NAO EXISTE A DIRETORIA DA MATRICULA: " + sCod_matric_autorz + " Diretoria: " + Diretoria + " - Registro da linha: "+ nRegistros + CRLF
END

ELSE IF Diretoria = 0 AND Diretoria <> "Nome Diretoria" AND sREGISTRO_OK <> ""
//existeDir = False
ErroGrave += "A diretoria não pode ser zero. Registro da linha: "+nRegistro+CRLF
END
//fim...verifica se tem Diretoria

END
END
END
// fim
IF Planilha = False THEN

EDT_LOG += "Planilha com erros..." +CRLF
Planilha = False

ELSE

EDT_LOG += "Qtde de registros a serem lidos: " + (nRegistros) + CRLF

END
///-------------------------------------------Fim das validacoes



//SE TUDO OK---------------------------------------------------------Importa dados
IF Planilha = True THEN

EDT_LOG += CRLF +"Planilha OK, iniciada a importação e gerando log..."+CRLF

nRegistro = 0

FOR nLinha = 2 TO nUmaLinha


// total maximo de campos

FOR ncampos = 1 TO 17
IF Length(NoSpace(xlsData(nXlsfile,nLinha,ncampos))) > 0 // pelo menos um campo tem dados
bLinhaOk = True
END
END
IF bLinhaOk THEN


IF (xlsData(nXlsfile,nLinha,1)) <> "Matricula (*)"

nRegistro += 1

PROGBAR_01..Value = nRegistro * 10

sCod_matric_autorz = Upper(WS_Clip(xlsData(nXlsfile,nLinha,1))) //Matricula (*)
sDes_email_usuari_web = WS_Clip(xlsData(nXlsfile,nLinha,2)) //Email (*)
sNom_autorz = WS_Clip(xlsData(nXlsfile,nLinha,3)) //Nome Usuario (*)
sNum_rg_autorz = NoPicture(WS_Clip(xlsData(nXlsfile,nLinha,4))) //RG
sNum_cpf_autorz = NoPicture(WS_Clip(xlsData(nXlsfile,nLinha,5))) //CPF
sDes_cargo_autorz = WS_Clip(xlsData(nXlsfile,nLinha,6)) //Cargo
sTelefone = NoPicture(WS_Clip(xlsData(nXlsfile,nLinha,7))) //Telefone
sDes_nome_empres_usuari_web = WS_Clip(xlsData(nXlsfile,nLinha,8)) //Nome Empresa
sDesc_diretoria = WS_Clip(xlsData(nXlsfile,nLinha,9)) //Nome Diretoria
sCod_centro_custo = WS_Clip(xlsData(nXlsfile,nLinha,10)) //Codigo Centro Custo (*)
sIde_SolicitarOutrosCentrosCusto = WS_Clip(xlsData(nXlsfile,nLinha,11)) //Solicitar Corridas em Outros CC (S/N)
sIde_Tercerizada = WS_Clip(xlsData(nXlsfile,nLinha,12)) //Tercerizada (S/N)
sIde_PermitirCorridasParaOutros = WS_Clip(xlsData(nXlsfile,nLinha,13)) //Permitir Corridas para Outros (S/N)
sIde_nivel_acesso_usuari_web = WS_Clip(xlsData(nXlsfile,nLinha,14)) //Nivel (M/A/N)
sInativar_Data = WS_Clip(xlsData(nXlsfile,nLinha,15)) //sInativar_Data
sInativar_Motivo = WS_Clip(xlsData(nXlsfile,nLinha,16)) //sInativar_Motivo
sObservacao = WS_Clip(xlsData(nXlsfile,nLinha,17)) //Observacao


//TAMANHO
sCod_matric_autorz = Middle(sCod_matric_autorz,1,10)
sDes_email_usuari_web = Middle(sDes_email_usuari_web,1,50)
sNom_autorz = Middle(sNom_autorz,1,40)
sNum_rg_autorz = Middle(sNum_rg_autorz,1,12)
sNum_cpf_autorz = Middle(sNum_cpf_autorz,1,11)
sDes_cargo_autorz = Middle(sDes_cargo_autorz,1,20)
sTelefone = Middle(sTelefone,1,30)
sDes_nome_empres_usuari_web = Middle(sDes_nome_empres_usuari_web,1,50)
sDesc_diretoria = Middle(sDesc_diretoria,1,19)
sCod_centro_custo = Middle(sCod_centro_custo,1,20)
sIde_SolicitarOutrosCentrosCusto = Middle(sIde_SolicitarOutrosCentrosCusto,1,1)
sIde_Tercerizada = Middle(sIde_Tercerizada,1,1)
sIde_PermitirCorridasParaOutros = Middle(sIde_PermitirCorridasParaOutros,1,1)
sIde_nivel_acesso_usuari_web = Middle(sIde_nivel_acesso_usuari_web,1,1)
sInativar_Data = Middle(sInativar_Data,1,12)
sInativar_Motivo = Middle(sInativar_Motivo,1,60)
sObservacao = Middle(sObservacao,1,40)

//Deve ser Upper o centro de Custo
sCod_centro_custo = Upper(sCod_centro_custo)

sNum_rg_autorz = Replace( Replace( Replace(sNum_rg_autorz,"\",""),"-",""),".","")

sNum_cpf_autorz = Replace( Replace( Replace(sNum_cpf_autorz,"\",""),"-",""),".","")

EDT_LOG += sCod_matric_autorz +";"+ sDes_email_usuari_web +";"+ sNom_autorz +";"+ sNum_rg_autorz +";"+ sNum_cpf_autorz +";"+ sDes_cargo_autorz +";"+ sTelefone +";"+ sDes_nome_empres_usuari_web +";"+ sDesc_diretoria +";"+ sCod_centro_custo +";"+ sIde_SolicitarOutrosCentrosCusto +";"+ sIde_Tercerizada +";"+ sIde_PermitirCorridasParaOutros +";"+ sIde_nivel_acesso_usuari_web +";"+ sInativar_Data +";"+ sInativar_Motivo +";"+ sObservacao +CRLF

//s/n
sIde_SolicitarOutrosCentrosCusto = WS_Clip(xlsData(nXlsfile,nLinha,11)) //Solicitar Corridas em Outros CC
IF PositionOccurrence("SN",sIde_SolicitarOutrosCentrosCusto,firstRank,FromBeginning) = 0 THEN
sIde_SolicitarOutrosCentrosCusto = "N"
END

sIde_Tercerizada = WS_Clip(xlsData(nXlsfile,nLinha,12)) //Tercerizada
IF PositionOccurrence("SN",sIde_Tercerizada,firstRank,FromBeginning) = 0 THEN
sIde_Tercerizada = "N"
END


sIde_permit_corrid_outros = WS_Clip(xlsData(nXlsfile,nLinha,13)) //Permitir Corridas para Outros

IF PositionOccurrence("SN",sIde_permit_corrid_outros,firstRank,FromBeginning) = 0 THEN
sIde_permit_corrid_outros = "N"
END


sIde_nivel_acesso_usuari_web = WS_Clip(xlsData(nXlsfile,nLinha,14)) //Nivel Acesso do Usuario
IF PositionOccurrence("MAN",sIde_nivel_acesso_usuari_web,firstRank,FromBeginning) = 0 THEN
sIde_nivel_acesso_usuari_web = "N"
END

sInativar_Data = WS_Clip(xlsData(nXlsfile,nLinha,15))

sInativar_Motivo = WS_Clip(xlsData(nXlsfile,nLinha,16))

IF sTelefone ="" THEN
sTelefone ="0"
END
sObservacao = WS_Clip(xlsData(nXlsfile,nLinha,17)) //Observação

IF sCod_centro_custo <> "" THEN

ok = HExecuteQuery(QRY_Select_VerificaCentroCusto,hQueryDefault,gnConvenioAdministrador,sCod_centro_custo)

existeCC = False

IF ok = True THEN

FOR EACH QRY_Select_VerificaCentroCusto
IF Upper(QRY_Select_VerificaCentroCusto.cod_centro_custo) = sCod_centro_custo
existeCC = True
EDT_LOG += "CENTRO DE CUSTO EXISTENTE --> MATRICULA: " + sCod_matric_autorz +" - CC: "+ sCod_centro_custo +CRLF
END
END

ELSE
existeCC = False
EDT_LOG += "Erro ao incluir/atualizar: CENTRO DE CUSTO NAO EXISTE --> MATRICULA: " + sCod_matric_autorz +" - CC: "+ sCod_centro_custo +CRLF
END


ELSE

existeCC = False
EDT_LOG += "Erro ao incluir/atualizar: CENTRO DE CUSTO NAO FOI PREENCHIDO NA PLANILHA DO USUARIO. MATRICULA: " + sCod_matric_autorz + CRLF

END
sDesc_diretoria = Upper(sDesc_diretoria)
//verifica se tem a Diretoria é pelo nome a busca
IF sDesc_diretoria <> "" AND sDesc_diretoria <> 0 // é nome da diretoria e nao codigo que vem da planilha

ok = HExecuteQuery(QRY_Select_VerificaDiretoriaVoucher,hQueryDefault,gnConvenioAdministrador,sDesc_diretoria)

existeDir = False

IF ok = True AND Diretoria <> "" // este campo não pode ser obrigatorio

FOR EACH QRY_Select_VerificaDiretoriaVoucher
IF Upper(QRY_Select_VerificaDiretoriaVoucher.Diretoria) = sDesc_diretoria
existeDir = True
nCodigoDiretoria = QRY_Select_VerificaDiretoriaVoucher.SEQ_Diretoria
END
END

END
IF existeDir = False
//inclui diretoria
ok = HExecuteQuery(QRY_Insert_NG0014_VoucherDiretoria,hQueryDefault,sDesc_diretoria,gnConvenioAdministrador,"S")
IF ok = True THEN

ok = HExecuteQuery(QRY_Select_VerificaDiretoriaVoucher,hQueryDefault,gnConvenioAdministrador,sDesc_diretoria)

existeDir = False

IF ok = True AND Diretoria <> "" // este campo não pode ser obrigatorio

FOR EACH QRY_Select_VerificaDiretoriaVoucher
IF Upper(QRY_Select_VerificaDiretoriaVoucher.Diretoria) =sDesc_diretoria
existeDir = True
nCodigoDiretoria = QRY_Select_VerificaDiretoriaVoucher.SEQ_Diretoria
END
END
END
END
END
END




IF existeDir = False
nCodigoDiretoria = 0
// ErroGrave += "A diretoria não pode ser zero. Registro da linha: "+nRegistro+CRLF
END
//Planilha = False
//fim...verifica se tem Diretoria


//Verifica a existencia

IF sCod_matric_autorz <> "" AND sCod_centro_custo <> "" THEN

// Initializes the generator of random numbers

sRandomString is string

// Generates the random string
LOOP (6)

// Generates a number at random in the 65-122 (A-z) interval
nCharacter is int = Random(65,122)
// Don't take the characters included between 91 and 96
WHILE (91 <= nCharacter <= 96)
nCharacter = Random(65,122)
END

// Fills the string
sRandomString += Charact(nCharacter)
END

existeUser = False

IF sNom_autorz <> "" THEN
NomeUsuario = sNom_autorz
existeUser = BuscaUsuario(gnConvenioAdministrador, sDes_email_usuari_web, sCod_matric_autorz)
END
GRAVOU is boolean = False
IF existeUser = False

//info(sNom_autorz,SenhaWeb,SenhaTaxi)
// senha is string = Upper(sRandomString)

//Senha Web
SenhaWeb = Charact(Random(97,122)) + Charact(Random(97,122)) + Charact(Random(97,122)) + Middle(Random(100,999),1,3)
SenhaWeb = Upper(SenhaWeb)

//Senha Taxi
SenhaTaxi = Middle(Random(1000,9999),1,4)

IF SenhaWeb = "" OR sDes_email_usuari_web = ""
SenhaWeb = 123456
END
IF SenhaTaxi = "" OR sDes_email_usuari_web = ""
SenhaTaxi = 1234
END
////--------------------------------------------


Seq_autorz = IncluirUsuario(gnConvenioAdministrador, sCod_matric_autorz, sDes_email_usuari_web, SenhaWeb, sNom_autorz, sDes_nome_empres_usuari_web, sIde_nivel_acesso_usuari_web, sDes_cargo_autorz, sNum_rg_autorz, sNum_cpf_autorz, sObservacao, sCod_centro_custo, SenhaTaxi, sIde_SolicitarOutrosCentrosCusto, nCodigoDiretoria, sIde_Tercerizada, sTelefone, sIde_permit_corrid_outros,"",0,"")

IF Seq_autorz >0 THEN
GRAVOU = True
Incluidos += 1
PROGBAR_01..Value += 1
EDT_LOG += "Inclusão OK --> MATRICULA: " + xlsData(nXlsfile,nLinha,1) +";"+ xlsData(nXlsfile,nLinha,2) +";"+ xlsData(nXlsfile,nLinha,3) +";"+ xlsData(nXlsfile,nLinha,4) +";"+ xlsData(nXlsfile,nLinha,5) +";"+ xlsData(nXlsfile,nLinha,6) +";"+ xlsData(nXlsfile,nLinha,7) +";"+ xlsData(nXlsfile,nLinha,8) +";"+ xlsData(nXlsfile,nLinha,9) +";"+ xlsData(nXlsfile,nLinha,10) +";"+ xlsData(nXlsfile,nLinha,11) +";"+ xlsData(nXlsfile,nLinha,12) +";"+ xlsData(nXlsfile,nLinha,13) +";"+ xlsData(nXlsfile,nLinha,14) +";"+ xlsData(nXlsfile,nLinha,15) +";"+ xlsData(nXlsfile,nLinha,16) +";"+ xlsData(nXlsfile,nLinha,17) +";"+ xlsData(nXlsfile,nLinha,18) + CRLF + CRLF
ELSE
EDT_LOG += "Erro ao Incluir --> MATRICULA: " + xlsData(nXlsfile,nLinha,1) +";"+ xlsData(nXlsfile,nLinha,2) +";"+ xlsData(nXlsfile,nLinha,3) +";"+ xlsData(nXlsfile,nLinha,4) +";"+ xlsData(nXlsfile,nLinha,5) +";"+ xlsData(nXlsfile,nLinha,6) +";"+ xlsData(nXlsfile,nLinha,7) +";"+ xlsData(nXlsfile,nLinha,8) +";"+ xlsData(nXlsfile,nLinha,9) +";"+ xlsData(nXlsfile,nLinha,10) +";"+ xlsData(nXlsfile,nLinha,11) +";"+ xlsData(nXlsfile,nLinha,12) +";"+ xlsData(nXlsfile,nLinha,13) +";"+ xlsData(nXlsfile,nLinha,14) +";"+ xlsData(nXlsfile,nLinha,15) +";"+ xlsData(nXlsfile,nLinha,16) +";"+ xlsData(nXlsfile,nLinha,17) +";"+ xlsData(nXlsfile,nLinha,18) + CRLF + CRLF
END

MensagemEnvio = Mensagem

MensagemEnvio = Replace(MensagemEnvio,"@Nome@",NomeUsuario)
MensagemEnvio = Replace(MensagemEnvio,"@Convenio@",gnConvenioAdministrador)
MensagemEnvio = Replace(MensagemEnvio,"@Email@",sDes_email_usuari_web)
MensagemEnvio = Replace(MensagemEnvio,"@Matricula@",sCod_matric_autorz)
MensagemEnvio = Replace(MensagemEnvio,"@SenhaAcesso@",SenhaWeb)
MensagemEnvio = Replace(MensagemEnvio,"@SenhaVoucher@", NumToString(SenhaTaxi,"04"))

//verificar nao enviar email se for inativar
IF ok = True AND sDes_email_usuari_web <> ""
EnviarEmail(sDes_email_usuari_web,"Radiotaxi Faixa Vermelha - Acesso ao Voucher Eletrônico",Cabecalho,MensagemEnvio)
END

ELSE IF existeUser = True THEN


ok = AlterarUsuario(gnConvenioAdministrador,...
sCod_matric_autorz,...
Seq_autorz,...
sDes_email_usuari_web,...
SenhaWeb,...
sNom_autorz,...
sDes_nome_empres_usuari_web,...
sIde_nivel_acesso_usuari_web,...
sDes_cargo_autorz,...
sNum_rg_autorz,...
sNum_cpf_autorz,...
sObservacao,...
sCod_centro_custo,...
SenhaTaxi,...
sIde_SolicitarOutrosCentrosCusto,...
nCodigoDiretoria,...
sIde_Tercerizada,...
sTelefone,...
sIde_permit_corrid_outros,...
"",...
0,...
"",...
sInativar_Data,...
sInativar_Data,...
sInativar_Motivo)


IF ok = True THEN
GRAVOU = True
Alterados += 1
PROGBAR_01..Value += 1
EDT_LOG += "Alteração OK --> MATRICULA: " + existeUser +" //- "+ xlsData(nXlsfile,nLinha,1) +";"+ xlsData(nXlsfile,nLinha,2) +";"+ xlsData(nXlsfile,nLinha,3) +";"+ xlsData(nXlsfile,nLinha,4) +";"+ xlsData(nXlsfile,nLinha,5) +";"+ xlsData(nXlsfile,nLinha,6) +";"+ xlsData(nXlsfile,nLinha,7) +";"+ xlsData(nXlsfile,nLinha,8) +";"+ xlsData(nXlsfile,nLinha,9) +";"+ xlsData(nXlsfile,nLinha,10) +";"+ xlsData(nXlsfile,nLinha,11) +";"+ xlsData(nXlsfile,nLinha,12) +";"+ xlsData(nXlsfile,nLinha,13) +";"+ xlsData(nXlsfile,nLinha,14) +";"+ xlsData(nXlsfile,nLinha,15) +";"+ xlsData(nXlsfile,nLinha,16) +";"+ xlsData(nXlsfile,nLinha,17) +";"+ xlsData(nXlsfile,nLinha,18) + CRLF + CRLF
ELSE
EDT_LOG += "Erro ao Alterar --> MATRICULA: " + existeUser +" //- "+ xlsData(nXlsfile,nLinha,1) +";"+ xlsData(nXlsfile,nLinha,2) +";"+ xlsData(nXlsfile,nLinha,3) +";"+ xlsData(nXlsfile,nLinha,4) +";"+ xlsData(nXlsfile,nLinha,5) +";"+ xlsData(nXlsfile,nLinha,6) +";"+ xlsData(nXlsfile,nLinha,7) +";"+ xlsData(nXlsfile,nLinha,8) +";"+ xlsData(nXlsfile,nLinha,9) +";"+ xlsData(nXlsfile,nLinha,10) +";"+ xlsData(nXlsfile,nLinha,11) +";"+ xlsData(nXlsfile,nLinha,12) +";"+ xlsData(nXlsfile,nLinha,13) +";"+ xlsData(nXlsfile,nLinha,14) +";"+ xlsData(nXlsfile,nLinha,15) +";"+ xlsData(nXlsfile,nLinha,16) +";"+ xlsData(nXlsfile,nLinha,17) +";"+ xlsData(nXlsfile,nLinha,18) + CRLF + CRLF
END
END
// menus
IF GRAVOU = True THEN

//Info("Select_NG0007_UsuarioMenuWeb")

ok = HExecuteQuery(QRY_Select_NG0007_UsuarioMenuWeb,hQueryDefault,gnConvenioAdministrador,Seq_autorz)

Existe is boolean = HReadSeekFirst(QRY_Select_NG0007_UsuarioMenuWeb,QRY_Select_NG0007_UsuarioMenuWeb.seq_autorz,seq_autorz,hKeepFilter)

IF ok = True AND Existe = True THEN

//Info("Update_NG0007_UsuarioMenuWeb")
IF sIde_nivel_acesso_usuari_web = "M"
ok = HExecuteQuery(QRY_Update_NG0007_UsuarioMenuWeb, hQueryDefault,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,DateSys()+TimeSys(),gnConvenioAdministrador,Seq_autorz,1,0,1,1,1,0,0,0)
ELSE
IF sIde_nivel_acesso_usuari_web = "A" THEN

ok = HExecuteQuery(QRY_Update_NG0007_UsuarioMenuWeb, hQueryDefault,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,DateSys()+TimeSys(),gnConvenioAdministrador,Seq_autorz,0,0,0,1,0,0,0,0)

ELSE
ok = HExecuteQuery(QRY_Update_NG0007_UsuarioMenuWeb, hQueryDefault,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,DateSys()+TimeSys(),gnConvenioAdministrador,Seq_autorz,0,0,0,0,0,0,0,0)

END
END

ELSE

//Info("QRY_Insert_NG0007_UsuarioMenuWeb")
IF sIde_nivel_acesso_usuari_web = "M" THEN

ok = HExecuteQuery(QRY_Insert_NG0007_UsuarioMenuWeb,hQueryDefault,gnConvenioAdministrador,Seq_autorz,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)


ELSE IF sIde_nivel_acesso_usuari_web = "A"

ok = HExecuteQuery(QRY_Insert_NG0007_UsuarioMenuWeb,hQueryDefault,gnConvenioAdministrador,Seq_autorz,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0)

ELSE

ok = HExecuteQuery(QRY_Insert_NG0007_UsuarioMenuWeb,hQueryDefault,gnConvenioAdministrador,Seq_autorz,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0)
END


END

END
///// end menus


existeUser = False

ELSE

IF sCod_matric_autorz = ""
EDT_LOG += "Erro ao incluir/atualizar: sem matricula: "+ sNom_autorz +CRLF
TotalErros += 1
ELSE IF sCod_centro_custo = "" OR existeCC = False
EDT_LOG += "Erro ao incluir/atualizar: sem centro de custo ou inválido: "+ sNom_autorz +CRLF
TotalErros += 1
ELSE IF sDes_email_usuari_web = ""
EDT_LOG += "Erro ao incluir/atualizar: sem e-mail ou inválido: "+ sNom_autorz +CRLF
TotalErros += 1
ELSE
EDT_LOG += "Erro ao incluir/atualizar: nao identificado: "+ sNom_autorz +CRLF
TotalErros += 1
END


END

SenhaWeb = ""
SenhaTaxi = ""

END
END//FOR
END
EDT_LOG += CRLF+ "Final da importação dos dados..."+CRLF
ELSE
Info("Planilha possui inconsistencias, analise o log acerte os dados e tente novamente.")
EDT_LOG +="Planilha possui inconsistencias, analise o log acerte os dados e tente novamente."+CRLF
TotalErros +=1
END//Planilha oK

ELSE

Info("Xls fora do padrão, favor verifique e baixe do manual online o modelo ou use o export para gerar os cabeçalhos, não remova, altere ou exclua os nomes das colunas.")
EDT_LOG += "Xls fora do padrão, favor verifique e baixe do manual online o modelo ou use o export para gerar os cabeçalhos, não remova, altere ou exclua os nomes das colunas."+CRLF
TotalErros += 1

END



ELSE

EDT_LOG += "O arquivo Usuario a ser importado deve ser XLS e o Excel deve estar fechado."+CRLF

END


IF ErroGrave <> "" THEN

EDT_LOG += CRLF
EDT_LOG += CRLF + "-------------------------------------------------------"+ CRLF
EDT_LOG += CRLF + "ATENCAO"
EDT_LOG += CRLF + "-------------------------------------------------------"+ CRLF
EDT_LOG += CRLF + ErroGrave + CRLF
EDT_LOG += CRLF + "-------------------------------------------------------"+ CRLF + CRLF

END

PROGBAR_01..Value = 100

Info("Total de Registros: " + (nRegistro) ,"Total Incluidos: "+ (Incluidos),"Total Alterados: "+ Alterados," Erros: "+ (nRegistro - Incluidos - Alterados))

EDT_LOG += CRLF + "Total de Registros Processados: " + (nRegistro) +" Total Incluidos: "+ Incluidos +" Total Alterados: "+ Alterados + " Erros: "+ (nRegistro - Incluidos - Alterados) +CRLF

xlsClose(nXlsfile)




OPÇÃO EXPORTAR





BOTAO:

//Exportar

//validar cabeçalho
//nValido = 0
//IF (xlsData(nXlsfile,1,1)) <> "Matricula (*)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,2)) <> "Email (*)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,3)) <> "Nome Usuario (*)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,4)) <> "RG" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,5)) <> "CPF" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,6)) <> "Cargo" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,7)) <> "Telefone" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,8)) <> "Nome Empresa" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,9)) <> "Nome Diretoria" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,10)) <> "Codigo Centro Custo (*)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,11)) <> "Solicitar Corridas em Outros CC (S/N)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,12)) <> "Tercerizada (S/N)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,13)) <> "Permitir Corridas para Outros (S/N)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,14)) <> "Nivel (M/A/N)" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,15)) <> "Data Inativacao" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,16)) <> "Motivo Inativacao" THEN
// nValido += 1
//END
//IF (xlsData(nXlsfile,1,17)) <> "Observacao" THEN
// nValido += 1
//END

sFileName is string
sFileName = WS_ReturnGenerationDir() + "Usuario"+ gnConvenioAdministrador +".xls"
LooperToExcel(TABLE_QRY_Select_Usuarios,sFileName)
iDestination(iGenericXLS,sFileName)
FileDisplay(sFileName,"application/unknown","Usuario"+ gnConvenioAdministrador +".xls")
fDelete(sFileName)

Info("Usuarios exportados com sucesso!")


Bons estudos!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 03 mai 2016 - 03:07
PREZADOS,

COMANDO DO DIRETORIO COMPARTILHADO DE UPLOAD E DOWN

Procedure WS_ReturnGenerationDir()

// Local variables
sGenDir is string

//Servidor
sGenDir = fDataDir()+ "\gen\"
IF fDirectoryExist(sGenDir) = False THEN
fMakeDir(sGenDir)
END
sGenDir = sGenDir + gnConvenioAdministrador +"_"+ gnSeqAutorzAdministrador +"\"
IF fDirectoryExist(sGenDir) = False THEN
fMakeDir(sGenDir)
END

RESULT sGenDir


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 03 mai 2016 - 03:11
PREZADOS

EXEMPLO QUE ACOMPANHA O WEBDEV

PHOTO_GALLERY





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