Translate

quarta-feira, 28 de maio de 2014

HTML - Desabilitar um Botão

<html>
  <form id="frm_teste" name="frm_teste" method="post" action="">
<head>
<title></title>
</head>
<body>
<p>
        <input type="button" Class="buttonnew" style="width:110;height:22" id="botao-consultar" name="botao-consultar" value="Consultar" >
        <input name="p_check_desabilitar" type="checkbox" onchange="desabilitar()" /> </span>&nbsp;Desabilitar Botão</p>
    </body>
  </form>

  <script type="text/javascript" src="/jscripts/jquery/jquery-1.6.3.min.js"></script>
  <script type="text/javascript">

  function desabilitar()
         {
            if (document.frm_teste.p_check_desabilitar.checked == true)
             {
               document.getElementById("botao-consultar").disabled = "disabled";
             }
           else
             {
               document.getElementById("botao-consultar").disabled = false;
             }
         }

  </script>

</html>

quarta-feira, 14 de maio de 2014

Check Constraint

Quando é necessário garantir que uma coluna tenha somente valores pré determinados, podemos utilizar a restrição CHECK.

Por exemplo, podemos determinar que a coluna Sexo, somente terá os valores "M" ou "F"
alter table clientes
add constraint ck01_clientes check (sexo in ('M', 'F'));

Garantindo que todo código de cliente seja maior que 1000
alter table clientes
add constraint ck02_clientes check (codigo > 1000);

Duas condições em um Check Constraint
alter table clientes
add constraint ck03_clientes check (renda > 0 and status in ('A','I'));

Excluindo uma Check Constraint
alter table clientes
DROP CONSTRAINT ck01_clientes; 

sexta-feira, 9 de maio de 2014

Gerar Arquivo CSV

Rotina para gerar arquivo CSV (Excel), permite abrir diretamente ou salvar na máquina.

  procedure prc_gera_csv ( p_parametro1    in varchar2
                         ,p_parametro2    in varchar2 ) is           

    rawBUFFER           RAW(32767);
    iTAMANHO            BINARY_INTEGER;
    v_blob              BLOB;  
    vSTRING             VARCHAR2(32767);
    v_nome_arq          VARCHAR2(1000);
    v_sql               VARCHAR2(2000);    
    v_campo_1           teste.v_campo_1%type;
    v_campo_2           teste.v_campo_2%type; 
    v_campo_3           teste.v_campo_3%type;
    v_cursor            SYS_REFCURSOR;
   
    
  begin  
     
    DBMS_LOB.createtemporary(v_blob,FALSE);  
        
    -- Cabecalho da planilha    
    rawBUFFER := UTL_RAW.cast_to_raw('CAMPO 1;' ||
                                     'CAMPO 2;' ||
                                     'CAMPO 3;' ||                                                                        
                                     CHR(13) || CHR(10));    
                                     
    iTAMANHO := UTL_RAW.length(rawBUFFER);
    DBMS_LOB.writeappend(v_blob, iTAMANHO, rawBUFFER);
    
    v_sql:= 'select campo_1                     
                   ,campo_2                     
                   ,campo_3       
             from   teste                  
             where  ...';  
    
    if p_parametro1 <> 'X' then
      v_sql := v_sql || ' and..... = ''' || p_parametro1 ||'''';
    end if;                 

    if p_parametro2 <> 'X' then
      v_sql := v_sql || ' and..... = ''' || p_parametro2 ||'''';
    end if;      
    
    v_sql:=  v_sql||' order by ...... ';   

    open v_cursor for v_sql;    
    loop     
      
      fetch v_cursor into  v_campo_1
                          ,v_campo_2
                          ,v_campo_3;
                         
                           
      exit when v_cursor%notfound;   
        
      vSTRING :=  v_campo_1  ||';' ||
                  v_campo_2  ||';' ||
                  v_campo_3  ||';' ||                                     
                  chr(13)||chr(10);

      rawBUFFER := UTL_RAW.cast_to_raw(vSTRING);
      iTAMANHO  := UTL_RAW.length(rawBUFFER);
      DBMS_LOB.writeappend(v_blob, iTAMANHO, rawBUFFER);
        
    end loop;    
    
    v_nome_arq := 'ARQUIVO_XXX';

    OWA_UTIL.mime_header('text/*',FALSE);
    htp.p('Content-Disposition: attachment; filename="'||v_nome_arq||'.csv"');

    htp.p('Content-length: ' || dbms_lob.getlength(v_blob));
    OWA_UTIL.http_header_close;

    WPG_DOCLOAD.download_file(v_blob);
    DBMS_LOB.freetemporary(v_blob);  
    RETURN;            

  end prc_gera_csv;  

quarta-feira, 7 de maio de 2014

Javascript - Função para somar valores decimais

Tive um problema com uma soma em javascript onde quando o resultado era entre 1,01 e 1,99 ele entendia que não era maior que 1, sendo necessário então tratar valores decimais com a função abaixo.

  function valida_campos(p_obj)
             
             { 
              //Se os campos estiverem vazios preencho com zero            
              if (document.frm_filtro.campo1.value == "")
                  {
                    document.frm_filtro.campo1.value="0,00";
                  }
                
              if (document.frm_filtro.campo2.value == "")
                  {
                    document.frm_filtro.campo2.value="0,00";
                  }                  
              
              var v_campo1 = document.frm_filtro.campo1.value;
              var v_campo2 = document.frm_filtro.campo2.value;
                
              v_campo1 = v_campo1.replace(",",".");
              v_campo2 = v_campo2.replace(",",".");

              var v_soma = (parseFloat(v_campo1) + parseFloat(v_campo2)).toFixed(2);                
              
              // A soma dos campos campo1 e campo2 não podem ser maiores que 1                  
              if ((v_soma) > 1 ) 
                 {
                   alert("Soma dos valores não podem ser maior que 1");
                   document.frm_filtro.campo1.value="0,00"; 
                   document.frm_filtro.campo2.value="0,00"; 
                   p_obj.focus();
                   return false;
                 }  

terça-feira, 6 de maio de 2014

SQL - Sequence

Comando para criar uma sequence:


create sequence seq_codigo
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
nocache;


Retornando os valores
select seq_codigo.nextval from dual;
select seq_codigo.nextval into v_codigo from dual;

Função para retornar um número formatado

Retorna um varchar do número para o formato monetário

function fun_formata_numero(p_numero in number) return varchar2 is

begin

  return trim(to_char(p_numero,'999G999G999G990D00','NLS_NUMERIC_CHARACTERS=,.'));

end;


-----
select fun_formata_numero(265253.98) from dual;
265.253,98

Javascript - Validar um campo numérico


Código para verificar se o usuário digitou apenas números em um campo numérico.

if  (! isnumber1 (document.frm_filtro.campo.value))
      {
         alert("Campo Numérico.");                   
         document.frm_filtro.campo.value="0";
         p_obj.focus();
         return false;
      }      

Criar a função abaixo:

function isnumber1(n)
  {
    for(var i=0; i < n.length; i++)
      {
        var c = n.charAt(i);
        if (( c < "0") || (c > "9"))
          {
            if ((c!=",")||(c!="."))
              {
                return (false);
              }
          }
      }
      return true;

  }