NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosProgweb : Sistemaloginasp010
Quer receber novidades e e-books gratuitos?

Sistema de Login em ASP – Parte 10 - Utilizando três camadas

 

Olá pessoal, meu nome é Mauricio Junior. Com esse artigo gostaria de mostrar como é fácil depois da criação do componente, registrar no COM PLUS; utilizando três camadas; chamar uma função do Visual Basic 6.0 usando o ASP 3.0.

 

Nos passos anteriores mostrei como criar STORED PROCEDURE, banco de dados, Global.asa dentro do Visual Basic 6.0, classes com “functions” e muito mais. Todos os passos anteriores podem ser encontrados no site www.aspneti.com ou www.juliobattisti.com.br/tutoriais/mauricioborges. Espero que possa estar ajudando.

 

Desenvolvi três páginas básicas para logar no sistema utilizando segurança com os componentes construídos anteriormente. (Referência 10.1).

 

- frmLogin.asp

- frmLoginPersistir.asp

- frmPaginaPrincipal.asp

 

Referência: 10.1

 

Explicação do funcionamento de cada página.

 

frmLogin.asp

 

Essa página é responsável por mostrar os campos obrigatórios de preenchimento usuário e senha. Possui os botões de “Entrar”, “Alterar” e “Sair” dentro da tela. Digitando os valores, são enviados dados via “POST” para a página “frmLoginPersistir.asp”.

 

frmLoginPersistir.asp

 

Depois de enviado os dados da página “frmLogin.asp” para “frmLoginPersistir.asp”, a mesma é responsável em criar o objeto da classe “clsSegurança” do Visual Basic 6.0 criado anteriormente, passando os dados necessários para autenticação junto ao banco de dados, cujo o campo senha está criptografado.

 

frmPaginaPrincipal.asp

 

A página principal é apenas para mostrar todos os menus montados de acordo com as permissões do usuário. É a página principal do sistema para o acesso às funcionalidades essenciais.

 

Codificando páginas ASP

 

* frmLogin.asp (Referência 10.2)

 

<html>

         <head><title>..:: SISCPE ::..</title></head>

 

<script language="javascript">

                   function sFoco(){

                            if (document.frmLogin.txtUsuario){

                                      document.frmLogin.txtUsuario.focus();

                            }

                   }

 

                   function sValidarLogin(){

                            if (f_eVazio(document.frmLogin.txtUsuario.value)){

                                      alert(f_Mensagem(1));

                                      document.frmLogin.txtUsuario.focus();

                                      return;

                            }

 

                            if (f_eVazio(document.frmLogin.txtSenha.value)){

                                      alert(f_Mensagem(1));

                                      document.frmLogin.txtSenha.focus();

                                      return;

                            }

                            document.frmLogin.method = 'post';

                            document.frmLogin.action = 'frmLoginPersistir.asp';

                            document.frmLogin.submit();

                   }

 

                   function sSair(){

                            window.close();

                   }

 

                   function s_AlterarSenha(){

                            document.frmLogin.method = 'post';

                            document.frmLogin.action = 'frmAlterarSenha.asp';

                            document.frmLogin.submit();

                   }

 

                   function enter(codigo){

                            if (codigo == 13){

                                      sValidarLogin();

                            }

                  }

         </script>

 

         <body topmargin="0" leftmargin="0" onload="sFoco();">

                   <form name="frmLogin">

                   <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">

                            <!--#include file="../includes/barra_titulo.asp"-->

                            <tr align="left">

                                     <td align="center"><!-- Inicio da Página -->

                                               <table CELLSPACING="1" cellpadding="0" class="formulario" width="230px">

                                                        <tr>

                                                                  <th colspan="4">Login</th>

                                                        </tr>

                                                        <tr>

                                                                  <th width="18">01</th>

                                                                  <td>

                                                                           <b>  Usuário:</b> <br>

                                                                           <input name="txtUsuario" onkeypress="enter(event.keyCode);" value="<%=Request("txtUsuario")%>" size="25" style="HEIGHT: 17px">

                                                                  </td>

                                                                  <td rowspan="2" width="40px" valign="middle">

                                                                          <br>&nbsp;<img style="background:none" SRC="../images/login.gif" WIDTH="35" HEIGHT="33">

                                                                  </td>

                                                        </tr>

                                                        <tr>

                                                                  <th width="18">02</th>

                                                                  <td>

                                                                           <b>Senha:</b> <br>

                                                                           <input type="password" onkeypress="enter(event.keyCode);" name="txtSenha" value="<%=Request("txtSenha")%>" size="25" style="HEIGHT: 17px">

                                                                  </td>

                                                        </tr>

                                               </table>

                                               <table class="formulario" cellSpacing="1" cellPadding="0" width="230px">

                                                        <tr>

                                                                  <th align="middle">

                                                                           <input type="button" value="Entrar" name="btnEntrar" onclick="sValidarLogin();"> &nbsp;

                                                                           <input type="button" value="Alterar" name="btnAlterar" onclick="s_AlterarSenha();"> &nbsp;

                                                                           <input type="button" value="Sair" name="btnSair" onclick="sSair()">

                                                                  </th>

                                                        </tr>

                                               </table>

                                      </td>

                            </tr>

                   </table>

                   </form>

         </body>

</html>

 

Referência: 10.2

 

Explicação: (Referência 10.2)

 

Essa página mostra apenas a tela de login onde o usuário entra com usuário e senha para logar no sistema. Como toda página ASP, possue código javascript para tornar as funcionalidades mais dinâmicas e especiais ao usuário que está utilizando o sistema.

 

A parte em javascript está dividida em “functions”. (Referência 10.3).

 

<script language="javascript">

                   function sFoco(){

                            if (document.frmLogin.txtUsuario){

                                      document.frmLogin.txtUsuario.focus();

                            }

                   }

 

                   function sValidarLogin(){

                            if (f_eVazio(document.frmLogin.txtUsuario.value)){

                                      alert(“Digite o usuário”);

                                      document.frmLogin.txtUsuario.focus();

                                     return;

                            }

 

                            if (f_eVazio(document.frmLogin.txtSenha.value)){

                                      alert(“Digite a senha”);

                                      document.frmLogin.txtSenha.focus();

                                      return;

                            }

                            document.frmLogin.method = 'post';

                            document.frmLogin.action = 'frmLoginPersistir.asp';

                            document.frmLogin.submit();

                   }

 

                   function sSair(){

                            window.close();

                   }

 

                   function s_AlterarSenha(){

                            document.frmLogin.method = 'post';

                            document.frmLogin.action = 'frmAlterarSenha.asp';

                            document.frmLogin.submit();

                   }

 

                   function enter(codigo){

                            if (codigo == 13){

                                     sValidarLogin();

                            }

                   }

</script>

 

Referência: 10.3

 

Explicação Javascript.

 

Esses códigos javascript, são apenas detalhes da página, serve para validação de campo e tudo mais. Procuro explicar tudo dentro da página que não haja dúvidas.

 

A primeira function, “sFoco” colocar o foto no campo “txtUsuario” do form. A segunda function “sValidarLogin” valida os campos da tela, como usuário e senha e no final mandar os dados via POST para a página “frmLoginPersistir.asp”. A terceira function “sSair”, tem a funcionalidade de fechar a tela do brownser. A quarta function “s_AlterarSenha” submete para a página “frmAlterarSenha.asp”. A quinta e última function da página chama-se “enter”, verifica se o evento do código é igual a 13, se for, chama a function “sValidarLogin”, ou seja, se o usuário clicar ENTER, automaticamente é chamada a function para validar o form.

 

O restante de código dessa página é HTML com inputs e buttons. Todos os dados digitados serão enviados para a próxima página.

 

* frmLoginPersistir.asp (Referência 10.4)

 

<%

 

Dim oSeguranca

Dim vRetUsuarioPerfil

Dim vRetUsuario

Dim vRetPerfil

Dim iLogin

 

Dim sCoUsuario

Dim sCoSenha

 

Const USU_NO_USUARIO_LOGIN      = 0

Const USU_NO_FUNCAO_LOGIN       = 1

Const PRF_CO_PERFIL_LOGIN           = 0

Const PRF_NO_PERFIL_LOGIN           = 1

 

sCoUsuario = Request("txtUsuario")

sCoSenha = Request("txtSenha")

 

set oSeguranca = Sever.CreateObject("CPESeguranca.clsSeguranca")

vRetUsuarioPerfil = oSeguranca.ValidarUsuario(sCoUsuario, sCoSenha)

 

if IsArray(vRetUsuarioPerfil) then

         vRetUsuario = vRetUsuarioPerfil(0)

         vRetPerfil = vRetUsuarioPerfil(1)

end if

 

Session("sPerfilUsuario") = ""

 

if IsArray(vRetUsuario) then

         if IsArray(vRetPerfil) then

                   session("sCodigoUsuario") = sCoUsuario

                   Session("sNomeUsuario") = vRetUsuario(USU_NO_USUARIO_LOGIN,0)

                   Session("sNomeFuncao") = vRetUsuario(USU_NO_FUNCAO_LOGIN,0)

                   Session("vRetPerfilGeral") = vRetPerfil

                   for iLogin = 0 to UBound(vRetPerfil,2)

                            Session("sPerfilUsuario") = Session("sPerfilUsuario") & vRetPerfil(PRF_CO_PERFIL_LOGIN,iLogin) & "§" & vRetPerfil(PRF_NO_PERFIL_LOGIN,iLogin) & "§§"

                   next

                   Response.Redirect("frmPaginaPrincipal.asp")

         else

                   %>

 

                   <script>

                            alert(f_Mensagem(13));

                            location.href = 'frmLogin.asp';

                   </script>

                   <%

         end if

end if

%>

 

Referência: 10.4

 

Explicação:

 

Dentro da página responsável pelo negócio de login, declaro algumas variáveis no início da página ASP. (Referência 10.5).

 

Dim oSeguranca

Dim vRetUsuarioPerfil

Dim vRetUsuario

Dim vRetPerfil

Dim iLogin

 

Dim sCoUsuario

Dim sCoSenha

 

Referência: 10.6

 

Elas serão usadas no decorrer do código.

 

Começam com uma letra pequena e em seguida maiúsculo, isso porque fiz um padrão para melhor entendimento. Segue os detalhes. (Referência 10.7)

 

o = é um objeto criado, ou seja, do tipo object.

 

v = é um array ou do tipo variant usado no VB 6.0

 

i = é do tipo inteiro

 

s = é do tipo string.

 

Referência: 10.7

 

O próximo passo foi declarar algumas constantes usadas especialmente para esta página, ou seja, é melhor usar constante do que números no decorrer da página e código. Lembre-se que as constantes declaradas são referentes ao select no banco de dados, ou seja, a posição dos campos no select criado. Por exemplo: Select campo1, campo2 from tabela. O campo1 será a constante com o valor 0, o campo2 com o valor 1 e assim por diante. (Referência 10.8)

 

Const USU_NO_USUARIO_LOGIN      = 0

Const USU_NO_FUNCAO_LOGIN       = 1

Const PRF_CO_PERFIL_LOGIN           = 0

Const PRF_NO_PERFIL_LOGIN           = 1

 

Referência: 10.8

 

Procuro sempre colocar as constantes com letras maiúsculas.

 

A linha seguinte atribui os valores enviados para as variáveis. (Referência 10.9)

 

sCoUsuario = Request("txtUsuario")

sCoSenha = Request("txtSenha")

 

Referência: 10.9

 

Explicação:

 

Atribui a variável sCoUsuario o valor enviado do request, o campo da página anterior chama “txtUsuario”. Fiz da mesma forma para a variável sCoSenha, o request, o campo da página chama “txtSenha”.

 

Acessando e chamando functions diretamente do VB. (Referência 10.10)

 

set oSeguranca = Server.CreateObject("CPESeguranca.clsSeguranca")

vRetUsuarioPerfil = oSeguranca.ValidarUsuario(sCoUsuario, sCoSenha)

 

Referência: 10.10

 

Explicação:

 

Antes que pense “que” código é esse. Lembre-se que em passos anteriores criei uma dll utilizando o VB 6.0 chamado “CPESeguranca” com a classe chamada “clsSeguranca”. A classe possui alguns métodos para logar no sistema utilizando stored procedure no banco de dados. Agora no ASP 3.0, irei chamá-la passando os parâmetros esperados.

 

A variável “oSeguranca” é setada com o comando “set”, atribuo o valor “Server.CreateObject(“CPESeguranca.clsSeguranca")” que serve para instanciar a dll registrada junto ao COM PLUS. Instanciando dessa forma, os métodos dessa classe estarão disponíveis a serem chamados.

 

A segunda linha, o retorno do método atribui para a variável “vRetUsuarioPerfil”. Chamo da seguinte maneira, “oSeguranca.ValidarUsuario(sCoUsuario, sCoSenha)”, ou seja, o nome da variável anterior, ponto o nome do método passando as variáveis atribuídas anteriormente com o valor do request enviado pela página anterior. Espero ter entendido essa parte, caso contrário acompanhe os passos com paciência e dedicação. A regra de negócio para validação do usuário está todo dentro do VB, com esse método é verificado se o usuário está habilitado para entrar no sistema ou não. Caso seja habilitado, voltará um array com as informações necessárias de perfil e usuário, caso contrário não voltará nada.

 

Verificando dados para atribuir session junto ao sistema. (Referência 10.11)

 

if IsArray(vRetUsuarioPerfil) then

         vRetUsuario = vRetUsuarioPerfil(0)

         vRetPerfil = vRetUsuarioPerfil(1)

end if

 

Session("sPerfilUsuario") = ""

 

if IsArray(vRetUsuario) then

         if IsArray(vRetPerfil) then

                   session("sCodigoUsuario") = sCoUsuario

                   Session("sNomeUsuario") = vRetUsuario(USU_NO_USUARIO_LOGIN,0)

                   Session("sNomeFuncao") = vRetUsuario(USU_NO_FUNCAO_LOGIN,0)

                   Session("vRetPerfilGeral") = vRetPerfil

                   for iLogin = 0 to UBound(vRetPerfil,2)

                            Session("sPerfilUsuario") = Session("sPerfilUsuario") & vRetPerfil(PRF_CO_PERFIL_LOGIN,iLogin) & "§" & vRetPerfil(PRF_NO_PERFIL_LOGIN,iLogin) & "§§"

                   next

                   Response.Redirect("frmPaginaPrincipal.asp")

         else

                   %>

                   <script>

                            alert(f_Mensagem(13));

                            location.href = 'frmLogin.asp';

                   </script>

                   <%

         end if

end if

%>

 

Referência: 10.11

 

Bom antes de qualquer coisa, o comando que verifica se possui algum array no ASP é IsArray. As primeiras 4 linhas de código verifico se o retorno é array para atribuir os valores a outras variáveis declaradas acima. (Referência 10.12)

 

if IsArray(vRetUsuarioPerfil) then

         vRetUsuario = vRetUsuarioPerfil(0)

         vRetPerfil = vRetUsuarioPerfil(1)

end if

 

Referência: 10.12

 

Em seguida zero a session usada em todo sistema, isto é, atribuo o valor igual a nada (“”). Referência 10.13

 

Session("sPerfilUsuario") = ""

 

Referência: 10.13

 

Todo esse código de verificação de usuário junto ao sistema dll registrado com COM PLUS serve para segurança de código. Até o momento, validamos o usuário que está tentando logar, porém ainda não foram atribuídas as sessões que serão usadas. Todo o controle será em cima de sessões atribuídas automaticamente com dados vindos do componente VB.

 

if IsArray(vRetUsuario) then

         if IsArray(vRetPerfil) then

                   session("sCodigoUsuario") = sCoUsuario

                   Session("sNomeUsuario") = vRetUsuario(USU_NO_USUARIO_LOGIN,0)

                   Session("sNomeFuncao") = vRetUsuario(USU_NO_FUNCAO_LOGIN,0)

                   Session("vRetPerfilGeral") = vRetPerfil

                   for iLogin = 0 to UBound(vRetPerfil,2)

                            Session("sPerfilUsuario") = Session("sPerfilUsuario") & vRetPerfil(PRF_CO_PERFIL_LOGIN,iLogin) & "§" & vRetPerfil(PRF_NO_PERFIL_LOGIN,iLogin) & "§§"

                   next

                   Response.Redirect("frmPaginaPrincipal.asp")

         else

                   %>

                   <script>

                            alert(“Usuário sem perfil cadastrado.”);

                            location.href = 'frmLogin.asp';

                   </script>

                   <%

         end if

else

         %>

                   <script>

                            alert(“Usuário ou senha inválido.”);

                            location.href = 'frmLogin.asp';

                   </script>

         <%

end if

 

Referência: 10.14

 

Explicação (Referência 10.14)

 

A primeira condição que faço é se a variável “vRetUsuario” é um array, ou seja, se os dados que estão atribuídos a ele, é do tipo array. Se não for do tipo array, cai na condição “else” do código. Com isso é mostrado um alerta com a mensagem: “usuário ou senha inválido” e retorna para a tela “frmLogin.asp”.

 

Se for do tipo array, faço uma outra condição que verifica se a variável “vRetPerfil”, isso porque o sistema também possui no banco de dados o perfil do usuário que está sendo logado. Caso usuário que estiver logando não tiver perfil cadastro no banco de dados, será enviada a mensagem: “Usuário sem perfil cadastrado.” e redirecionará para a página de login (“frmLogin.asp”). Sendo um array, atribuo todas as sessões usadas no sistema aos valores retornados do componente da seguinte forma. (Referência 10.15).

 

session("sCodigoUsuario") = sCoUsuario

Session("sNomeUsuario") = vRetUsuario(USU_NO_USUARIO_LOGIN,0)

Session("sNomeFuncao") = vRetUsuario(USU_NO_FUNCAO_LOGIN,0)

Session("vRetPerfilGeral") = vRetPerfil

 

Referência: 10.15

 

Note que alguns valores que atribuo para a session, é uma constante declarada no início do código da página. Depois de atribuir as sessions necessárias, redireciono para a página principal com o comando “response.redirect”. (Referência 10.16)

 

Response.Redirect("frmPaginaPrincipal.asp")

 

Referência: 10.16

 

Ilustração de todo código mostrado anteriormente.

 

Tela de login do sistema. (Referência 10.17)

 

Referência: 10.17

 

Digito usuário e senha. (Referência 10.18)

 

Referência: 10.18

 

Cliquei no botão logar e entrei no sistema. (Referência 10.19)

 

Referência: 10.19

 

Caso digite usuário ou senha inválida, é mostrada uma mensagem no brownser. (Referência 10.20)

 

Referência: 10.20

 

Bom, fico por aqui com mais um artigo. Espero ter ajudado a todos os leitores. Qualquer dúvida, favor entrar em contato pelo e-mail: mauricio@aspneti.com

 

Livros publicados:

 

 

Mauricio Junior

 

www.aspneti.com

 

www.ascompras.com

 

Untitled Document
ASP BÁSICO
1 Cálculo de Frete Internacional com ASP e Access
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 1
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 2
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 3
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 4
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 5
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 6
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 7
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 8
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 9
1 Sistema de Login com ASP 3.0 usando três camadas – Parte 10
1 ASP 3.0 utilizando 3 camadas - Parte 1
1 ASP 3.0 utilizando 3 camadas - Parte 2
1 ASP 3.0 utilizando 3 camadas - Parte 3
COLDFUSION
1 Criando um formulário em Flash usando o ColdFusion MX 7
FLASH - ACTIONSCRIPT
1 Movimentar objeto – Parte 01
1 Movimentar objeto – Parte 02
1 Jogo – Acerte o Alvo
1 Como Movimentar um Objeto utilizando Botões
1 Exibir frases Aleatórias
1 Ações Básicas do ActionScript
1 Criando Botões com MovieClip no Flash
1 Criando Links em Botões Flash
1 Integrando Flash com Fireworks na Criação de Botões
1 Interpolação Motion (Movimento)
1 Interpolação Shape (Forma)
1 Principais Eventos do Mouse (Flash/ActionScript)
1 Criando Máscaras no Flash (Mask) Parte 1
1 Criando Máscaras no Flash (Mask) Parte 2
1 Galeria de Fotos Carregando Arquivos Externos (Flash e ActionScript)
PHP BÁSICO
1 Introdução ao PHP
1 Lógica em PHP
1 Trabalhando com Formulários HTML
1 Utilizando Arquivos – Criando um Scrap Book
1 Banco de Dados em Arquivos Texto
1 PHP - Sistema de busca de preços - Parte 1
1 PHP - Sistema de busca de preços - Parte 2
1 PHP - Sistema de busca de preços - Parte 3
1 PHP - Sistema de busca de preços - Parte 4
1 PHP - Sistema de busca de preços - Parte Final
1 Primeiros Scripts
1 Guardando dados em memória
1 Um pouco mais sobre variáveis
1 Manipulando variáveis
1 Estruturas de controle - Parte 1
1 Estruturas de controle - Parte 2
1 Estruturas de controle - Parte 3
1 Estruturas de controle - Parte 4
1 Estruturas de controle - Parte 5
1 Criação de Funções no PHP
1 Funções – Um pouco mais Sobre Parâmetros - Parte 1
1 Funções – Um pouco mais Sobre Parâmetros - Parte 2
1 Funções – Alguns Truques
1 Funções – Últimos Truques
1 Arrays – Noções Básicas
1 Arrays – Um pouco Mais Sobre Criação de Arrays
PHP COM BANCO DE DADOS
1 Criando um Sistema Ficha Cadastral Clientes - Parte 1
1 Criando um Sistema Ficha Cadastral Clientes - Parte 2
1 Criando um Sistema Ficha Cadastral Clientes - Parte Final
1 Controle Horarios Funcionários - Parte 1
1 Controle Horarios Funcionários - Parte 2
1 Controle Horarios Funcionários - Parte 3
1 Controle Horarios Funcionários - Parte 4
1 Controle Horarios Funcionários - Parte 5
1 Controle Horarios Funcionários - Parte 6
1 Controle Horarios Funcionários - Parte 7
1 Controle Horarios Funcionários - Parte 8
1 Controle Horarios Funcionários - Parte 9
1 Controle Horarios Funcionários - Parte 10
1 Controle Horarios Funcionários - Parte 11
1 Controle Horarios Funcionários - Parte 12
1 Controle Horarios Funcionários - Parte 13 - Conclusão
1 Instalando o PHP no Windows XP
1 Instalando o MySQL no Windows XP
1 Sistema Controle Extintores -Parte 1
1 Sistema Controle Extintores -Parte 2
1 Sistema Controle Extintores -Parte 3
1 Sistema Controle Extintores -Parte 4
1 Sistema Controle Extintores -Parte 5
1 Sistema Controle Extintores -Parte - Conclusão
1 PHP - Controle dos Correios - Parte 1
1 PHP - Controle dos Correios - Parte 2
1 PHP - Controle dos Correios - Parte 3
1 PHP - Controle dos Correios - Parte 4
1 PHP - Controle dos Correios - Parte 5
1 PHP - Controle dos Correios - Parte 6
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 1
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 2
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 3
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 4
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 5
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 6
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 7
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 8
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 9
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 10
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 11
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 12
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 13
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 14
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 15
1 Sistema Para Controle do IMC - Índice de Massa Corporal - Parte 16
JAVASCRIPT BÁSICO
1 JavaScript Básico - Lição 1
1 JavaScript Básico - Lição 2
1 JavaScript Básico - Lição 3
1 JavaScript Básico - Lição 4
1 JavaScript Básico - Lição 5
1 JavaScript Básico - Lição 6
1 JavaScript Básico - Lição 7
1 JavaScript Básico - Lição 8 - Instruções If e Else
1 JavaScript Básico - Lição 9 - Tópicos Diversos
1 JavaScript Básico - Lição 10 - Objetos Math e Date
1 JavaScript Básico - Lição 11 - Trabalhando com o objeto Browser
1 JavaScript - Criando Seus Próprios Objetos
1 JavaScript - Virtual Earth – Primeiro Passo
1 JavaScript - Virtual Earth – Segundo Passo
Quer receber novidades e e-books gratuitos?

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2021 ®

[LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI