Ir para conteúdo
Fórum Script Brasil
  • 0

Repercussão Por Datas... (só Falta Isso!)


Notax

Pergunta

Bom dia amigos, desculpem incomodar mais esta vez, prometo que é a última, já que só falta isto pra concluir meu sistema...

Como todos sabem sou leigo no assunto e resolvi aprender e estudar banco de dados e forma de administrá-lo pela Net... Graças ao apoio de alguns amigos deste forum meu banco de dados access juntamente com seus forms em vb estão funcionando muito bem... mas o que acontece é que preciso administrar este bd também pela internet...

Portanto comecei a desenvolver formularios em Asp que incluem, visualizam ou excluem registros no meu BD e já está tudo funcionando muito bem... com exceção desta última tarefa que passo a expor, contando com a atenção de todos e pedindo mais esta gentileza em me ajudar... não querendo abusar, mas já abusando... peço desculpas antecipadas por qualquer. inconveniente...

primeiro: preciso criar uma chechbox que habilite as funções a seguir;

segundo: preciso que um textfield que será preenchido com o numero de pareclas represente o grau multiplicador dos lançamentos dos registros.

terceiro: escolher a forma de inclusão destes registros atraves de radio buttons, podendo ser semanais, mensais, semestrais ou anuais...

na pratica significa o seguinte: tenho um carnê de pagtos com 12 parcelas mensais, semanais ou anuais... pra isso preencheria o meu form que já conta com campos de data inicial, tipo, historico e valor, depois selecionaria a checkbox que habilitaria o textfield de parcelas e os radio buttons, colocaria 12 no textfield de parecelas e selecionaria a opçao que atende a condição do carne, ou seja, repetir mensalmente, semanalmente e etc.... daí ao clicar em submit todos os lançamentos já estaria lançados nas respectivas datas!

se adiantar alguma coisa, posso postar o códico em VBS onde já tenho este sistema de repercussão de datas funcionando...

Alguém pode me dar uma ajuda... qualquer que seja! já nem sei mais por onde ir... e falta apenas isso pra terminar meu projeto!

Agradeço novamente a atenção de todos...

Forte abraço.

Notax.

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

oi Andreia, muito obrigado pelo retorno, viu! isso o checkbox queria que servisse para habilitar a função "lançamento por boleto" ou "repercurssão de datas" como preferir... porque? porque daí, se esse checkbox não tiver marcado, o formulário fará um lançamento único, levando em consideração apenas a data inicial... enfim... segue o form abaixo, e mais uma vez agradeço toda atenção!

<html>

<head>
<title></title>
&lt;script language="javascript">
function valida_campo()
{
<!--
var data = document.form.data.value
if (data==""){
    alert("Digite a data dd/mm/yyyy!");
    document.form.data.focus()
    return false
    }
var historico=document.form.historico.value;
if (historico==""){
    alert("Digite o histórico de sua conta!")
    document.form.historico.focus()
return false
    }
    var valor=document.form.valor.value;
if (valor==""){
    alert("Digite o valor de sua conta!")
    document.form.valor.focus()
return false
    }
    var chcBoleto=document.form.chcBoleto.value;
if (chcBoleto=="on") and is null (txtQuantidade) then {
    alert("Digite a quantidade de parcelas a serem incluidas!")
    document.form.chcBoleto.focus()
return false
    }
}
//-->
</script>
</head>
<body>
<p align="center"><img border="0" src="http://www.revistaria.com/rafa/logoaccess.jpg" align="left"></p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<form method="post" action="insert_into.asp" name="form" onsubmit="return valida_campo()">
  <p align="left"><font face="Abadi muito Condensed Light"><b><i><u>Lançamento de
  Contas à <font color="#FF0000">Pagar</font></u></i></b></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Data</i><input type="text" name="data" size="16">
  <i>Tipo</i> <select size="1" name="tipo">
    <option>HONORÁRIOS</option>
    <option>ALUGUEL</option>
    <option>CLIENTES</option>
    <option>FORNECEDORES</option>
    <option>CONDOMINIO</option>
    <option>LUZ</option>
    <option>AGUA</option>
    <option>TELEFONE</option>
    <option>GAS</option>
    <option>ESCOLAS</option>
    <option>CHEQUES</option>
    <option>SEGURO</option>
    <option>SAUDE</option>
    <option>OUTROS</option>
    <option>PRÓ-LABORE</option>
  </select></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Histórico</i> <input type="text" name="historico" size="38"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Valor </i><input type="text" name="valor" size="20" style="color: #FF0000"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><input name="chcboleto" type="checkbox" id="chcboleto" value="ON"><i>Clique
  para ativar repetições</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Nº de Parcelas</i> <input name="TxtQuantidade" type="text" id="TxtQuantidade" size="5"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Repercussão:</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i><input type="radio" value="semanal" checked name="Opcao31">semanal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="radio" name="Opcao33" value="mensal">mensal</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i><input type="radio" name="Opcao38" value="semestral">semestral&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="radio" name="Opcao36" value="anual">anual</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><input type="submit" value="Submeter" name="B1"><input type="reset" value="Redefinir" name="B2"></font></p>
</form>
</body>
</html>

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

um exemplo:

<html>

<head>
<title>SJ FINANCE</title>
<script language="javascript">
function ExibeCampo(status)
{
if (status)
    document.getElementById("div").style.display = 'block';
else
    document.getElementById("div").style.display = 'none';
}

</script>
</head>
<body>
<p align="center"><img border="0" src="http://www.revistaria.com/rafa/logoaccess.jpg" align="left"></p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<form method="post" action="insert_into.asp" name="form" onsubmit="return valida_campo()">
  <p align="left"><font face="Abadi muito Condensed Light"><b><i><u>Lançamento de
  Contas à <font color="#FF0000">Pagar</font></u></i></b></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Data</i><input type="text" name="data" size="16">
  <i>Tipo</i> <select size="1" name="tipo">
    <option>HONORÁRIOS</option>
    <option>ALUGUEL</option>
    <option>CLIENTES</option>
    <option>FORNECEDORES</option>
    <option>CONDOMINIO</option>
    <option>LUZ</option>
    <option>AGUA</option>
    <option>TELEFONE</option>
    <option>GAS</option>
    <option>ESCOLAS</option>
    <option>CHEQUES</option>
    <option>SEGURO</option>
    <option>SAUDE</option>
    <option>OUTROS</option>
    <option>PRÓ-LABORE</option>
  </select></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Histórico</i> <input type="text" name="historico" size="38"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Valor </i><input type="text" name="valor" size="20" style="color: #FF0000"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><input name="chcboleto" type="checkbox" id="chcboleto" value="ON" onclick="ExibeCampo(this.checked)"><i>Clique
  para ativar repetições</i></font>
  <div id="div" style="display:'none'";>Data: <input type="text" name="data"></div></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Nº de Parcelas</i> <input name="TxtQuantidade" type="text" id="TxtQuantidade" size="5"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Repercussão:</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i><input type="radio" value="semanal" checked name="Opcao31">semanal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="radio" name="Opcao33" value="mensal">mensal</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i><input type="radio" name="Opcao38" value="semestral">semestral&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="radio" name="Opcao36" value="anual">anual</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><input type="submit" value="Submeter" name="B1"><input type="reset" value="Redefinir" name="B2"></font></p>
</form>
</body>
</html>

ps.: movendo pra javascript...

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia, bom dia e mais uma vez obrigado pelo retorno, mas deixa eu ver se entendi... pra aprender e não ter que encomodar denovo! :)

o que tu fizeste foi incluir:

{
if (status)
    document.getElementById("div").style.display = 'block';
else
    document.getElementById("div").style.display = 'none';
}
e depois nas opçoes a desativar enquanto não estiver marcado:
<p align="left"><font face="Abadi muito Condensed Light"><input name="chcboleto" type="checkbox" id="chcboleto" value="ON" onclick="ExibeCampo(this.checked)"><i>Clique
  para ativar repetições</i></font>

é isso?

aproveitando... pelo que eu já pude testar (lógicamente funcionou), mas não fica claro pro usuário ainda que as opções semanal, mensal, semestral ou anual só liberam mediante o clique daquele cheqkbox... teria ainda como eu fazer estas opções mudarem de cor enquanto esse checkbox não ficar marcado... tipo aquele "cinza" de opções desablitadas. poderias me ensinar isso tb?

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos la

O que eu fiz foi criar uma DIV que inicialmente ela é invisivel. No checkbox há a função ExibeCampo que já passa por parametro o status dele se está checado ou não. A função exibirá a DIV caso o checkbox esteja ticado, se não, oculta novamente.

aproveitando... pelo que eu já pude testar (lógicamente funcionou), mas não fica claro pro usuário ainda que as opções semanal, mensal, semestral ou anual só liberam mediante o clique daquele cheqkbox... teria ainda como eu fazer estas opções mudarem de cor enquanto esse checkbox não ficar marcado... tipo aquele "cinza" de opções desablitadas. poderias me ensinar isso tb?

O que você tem que fazer é inicialmente setar esses radiobuttons para disabled e só serão habilitados quando você marcar o checkbox. Na pratica voce só irá setar pra enabled dentro da função ExibeCampo.

Qualquer duvida é só postar

Link para o comentário
Compartilhar em outros sites

  • 0

Outra ideia quando voce tem mtos campos para habilitar é fazer o seguinte:

criar uma div invisivel, colocar dentro dela todos os objetos que você quer exibir quando um outro objeto(checkbox/radiobutton) for ticado. Quando isso acontecer, voce habilita somente a DIV porque tudo que tiver dentro dela será exibida tambem.

Dai voce não precisa ficar habilitando/desabilitando cada objeto, o porém é que na DIV invisivel, os objetos tambem não serão vistos no primeiro momento

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi, se fossem muitos itens poderia ser um facilitador de programação! muito bacana!

mas a pergunta que não quer calar agora é como transformar o código abaixo que está em VBScript em javascript?

os comandos abaixo tem relação direta com a primeira parte deste post... o que eu quero é criar uma forma de lançar por ex: parcelas mensais, tipo um carnê que a primeira parcela vence no dia 10/01/08 e que possui 36 parcelas... então se escolheria a repercussão mensal, e se preencheria o número 36 no campo de parcelas... pronto! tudo lançado direitinho com as respectivas datas... só que eu teno isso funcionando em vba...

Private Sub IncrementaData()<br>
    Dim vData As Date<br>
    Dim vLimite As Integer<br>
<br>
    'REPERCUSSÃO MENSAL<br>
    If Me.qdrRepercussao = 2 Then<br>
        'verificar se o dia digitado para a data é maior do que 30...<br>
        'se é maior do que trinta, verificar o mês para saber se o mês da próxima parcela pode apresentar dia 31<br>
        'verificar se o dia digitado para a data é maior que 28 e o mês é maior que janeiro<br>
<br>
        If Day(Me.txtData) > 28 And Month(Me.txtData) = 1 Then<br>
            Me.txtData = 28 &amp; "/" &amp; 2 &amp; "/" &amp; Year(Me.txtData)<br>
<br>
        ElseIf Day(Me.txtData) > 30 Then<br>
<br>
            Select Case Month(Me.txtData)<br>
                Case 3, 5, 8, 10<br>
                Me.txtData = 30 &amp; "/" &amp; Month(Me.txtData) + 1 &amp; "/" &amp; Year(Me.txtData)<br>
                Exit Sub<br>
            End Select<br>
<br>
            GoTo Vai_Normal_Mes<br>
<br>
        Else<br>
Vai_Normal_Mes:<br>
        Me.txtData = DateAdd("m", 1, Me.txtData)<br>
        Me.txtData = vNormal &amp; "/" &amp; Month(Me.txtData) &amp; "/" &amp; Year(Me.txtData)<br>
        End If<br>
<br>
tentei esboçar alguma coisa da seguinte forma:
function IncrementaData(qdrrepercussao)
{
if (qdrrepercussão=2) then 
elseif day (txtData) > 28and month (txtData) = 1 Then
txtData = 28 & "/" & 2 "/" & Year (txtData)
ElseIf Day (txtData) > 30 Then
Select Case Month (txtData)
Case 2, 4, 7, 9
txtData = 30 & "/" & Month (txtData) + 1 & "/" & Year (txtData)
EndIf
}

mas o que acontece é que quando coloco estes comandos a primeira coisa que para de funcionar é a DIV...

eu ainda não consegui testar se esse comando funcionará tb. da mesma forma que funciona em vb...

Será que é por aí o caminho, ou ainda to muito longe? por que a DIV para de funcionar, não posso ter mais de uma função?

muito obrigado desde já!

abraçao

Notax.

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

grato pelo retorno...

bom, o link onde estou fazendo testes deste formulário é:

http://www.revistaria.com/rafa/teste/a_pagar_inclui.asp

o que acontece é que agora estou tentando criar formas de repercurtir datas para facilitar lançamentos... entenderás quando acessar o link e clicar naquela opção que me ajudaste a desenvolver (clique para atvar repetições)...

Eu tenho essa programação para repercurtir as datas já funcionando em formulário do access e agora queria passar para form asp, para poder administrar o bd remotamente... por isso coloquei os códigos acima... um em vb que está funcionando ok, e o outro em javascript que estou tentando fazer funcionar!

muito obrigado pela sua atenção...

Link para o comentário
Compartilhar em outros sites

  • 0

Estranho tipo o que?

olha ainda não entendi o seu "repercurtir datas", o que consegui entender e fazer da tua função em ASP seria isso:

<script>
function IncrementaData(txtData)
{
var dia = parseInt(txtData.split("/")[0].toString());
var mes = parseInt(txtData.split("/")[1].toString());
var ano = parseInt(txtData.split("/")[2].toString());
var data="";

var qdrrepercussão = 2;

    if (qdrrepercussão == 2)
    {
        if (dia > 28 && mes == 1)
            data = "28/2/" + ano;

        if (dia > 30)
        {
            switch (mes)
            {
                case 2: data = "30 /" + mes + "1/" + ano; break;
            }
        }
    }
    alert(data);
}
</script>

<input type="text" name="data" onblur="IncrementaData(this.value)">

Link para o comentário
Compartilhar em outros sites

  • 0

hmnn... não entendi o você quer com a data...

Não seria melhor você criar um campo tipo date not null e valor default: current_date no banco q já pegue a data atual?

E se forára pgesquisar pela data só fazer um consulta sql para pega-la.

Espero ter ajudado apesar de n ter entendi muito bem :ph34r:

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --notax --

Muito obrigado pelo retorno... respondendo para andréia: o estranho que eu comentei acima, é que hoje fui receber meus e-mails e tinha umas 10 notificações deste tópico, mas ao entrar... mesmo após atualizar e etc não tinha nada novo... mas enfim...

o que acontece é que meu banco de dados é para controle de contas à pagar... então eu quero criar uma forma de lançar um carne de pagtos... por ex. a pessoa compra um carro em 48X, ficaria muito chato lançar 48 pagamentos, praticamente iguais que só mudam as datas... o que eu queria é criar uma forma de automatizar esses lançamentos... desta forma a pessoa digitaria a data inicial, o número de parcelas e forma em que é pra lançar (semanal, mensal etc.) além é claro do valor... exemplificando:

meu form seria assim:

campo data 01/01/2007 campo tipo: honorarios

campo historico: honorarios do advogado

campo valor: R$ 500,00

'se clicasse em submit agora lança só este, mas pra isso criei (com a grande ajuda da andréia) uma check box que habilita outras funções... então se for o caso se habilitaria a checbox e continuaria... conforme segue:

(X) clique aqui para repetir 'nesta hora mostra as funçoes ocultas

|12| campo: numero de parcelas

forma de repetição:

()semanal (x)mensal ()semestral ()anual radio buttons

submit

estando tudo preenchido automaticamente teria os lançamentos das 12 parcelas acima respectivamente nas datas certas... ou seja: 01/01/07 500,00 | 01/02/07 500,00 e assim por diante... até 01/12/07

Testei a alteração da andreia mas seguiu não funcionando... devo estar fazendo algo errado ainda...

De qualquer. forma obrigado pela paciencia até o momento... e agradeceria novas sugestões!

Notax

Link para o comentário
Compartilhar em outros sites

  • 0

esaqueci de colocar no post acima o código completo em vb que tenho funcionando nos formularios do access...

o código abaixo refere-se apenas a repercussão mensal... mas das outras eu tb já tenho pronto... só não sei passar pra javascript :(

Private Sub IncrementaData()
    Dim vData As Date
    Dim vLimite As Integer
  
    'REPERCUSSÃO MENSAL
    If Me.qdrRepercussao = 2 Then
        'verificar se o dia digitado para a data é maior do que 30...
        'se é maior do que trinta, verificar o mês para saber se o mês da próxima parcela pode apresentar dia 31
        'verificar se o dia digitado para a data é maior que 28 e o mês é maior que janeiro
        
        If Day(Me.txtData) > 28 And Month(Me.txtData) = 1 Then
            Me.txtData = 28 & "/" & 2 & "/" & Year(Me.txtData)
        
        ElseIf Day(Me.txtData) > 30 Then
            
            Select Case Month(Me.txtData)
                Case 3, 5, 8, 10
                Me.txtData = 30 & "/" & Month(Me.txtData) + 1 & "/" & Year(Me.txtData)
                Exit Sub
            End Select
            
            GoTo Vai_Normal_Mes
            
        Else
Vai_Normal_Mes:
        Me.txtData = DateAdd("m", 1, Me.txtData)
        Me.txtData = vNormal & "/" & Month(Me.txtData) & "/" & Year(Me.txtData)
        End If

Link para o comentário
Compartilhar em outros sites

  • 0

Amigos boa tarde... e me desculpem pelo incomodo...

a duras penas estou aprendendo... mas confesso que ta bem dificil... pensei bastante e me dei conta que a questão da repercussão de datas não precisa ser aborada em javascript, já que já tenho boa parte do código pronto em vbscript e este é o responsavel por fazer propriamente a inserção no banco...

o form, continuará em java, visto que ficou maravilhosamente ótimo com a ajuda da andréia!

então, por isso criei um novo post:

http://scriptbrasil.com.br/forum/index.php?showtopic=106825

que está tratando do mesmo assunto, só que em vbscript e lá no fórum de asp!

Apreciaria muito se pudessem continuar me ajudando... visto que entendo que neste novo post as coisas estão mais claras, até por que já havia aprendido muito com todos vocês que me ajudaram por aqui!

um forte abraço a todos e muito obrigado pela enorme paciencia e pela imensa quantidade de colaborações, em especial a Andréia, que vem tendo uma paciencia enorme comigo e me dando a moior força!

Notax

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...