Ir para conteúdo
Fórum Script Brasil

[ GuTo ]

Membros
  • Total de itens

    955
  • Registro em

  • Última visita

Tudo que [ GuTo ] postou

  1. fala galera, beleza? eu sou desenvolvedor asp 3.0 ainda quero apenas uma oportunidade pra começar com c# sei muito bem OOP e só preciso começar a mecher, fico fera rápido, tenho certeza. meu problema é q tenho receio de quererem me por como programador júnior, coisa assim.. daí talvez quererem pagar menos, sei lá pretendo conversar sobre isso. só sei q asp não dá mais vocês tem algum conselho bom para dar? preciso começar a aprender isso sozinho pelo jeito e sair a procura de uma vaga em c# e atirar q sou pleno, hehe. []'s
  2. _________________ OOOOOUTRA COISA... _________________ Gostaria de adicionar um evento onClick em todos os controles do tipo CheckBox, para qualquer formulário, para que executem uma ação. Tenho mania de criar coisas genéricas e neste caso é muito bem-vindo isto, pois será feito exatamente o mesmo procedimento em todos os formulários desta "pasta de trabalho" (meuTeste.xls). Seria um tanto quanto contra-produtivo criar a mesma função para cada formulário/CheckBox, sendo que em cada uma apenas iria mudar um parametro somente. Minha idéia é: Criar uma função onde passo o formulário por parametro. Dentro desta, ela varre todo o userForm a procura de controles CheckBoxes e em cada um deles ela adiciona um evento "click" (onClick) no mesmo. Logo, crio uma função CheckBoxClicado(oCheckBox) que recebe como parametro o objeto checkbox que foi clicado e executa a ação que deve ser feita e consegue identificar o form a qual ele pertence e seta um valor no primeiro campo texto do form. Com JAVASCRIPT saberia fazer isso mole mole. Agora com VBA, parece não ter como. Se alguém tiver uma idéia, agradeço. Valeu. Mais ou menos assim queria fazer: Public Sub CheckBoxClicou(oCB As CheckBox) 'Identificar propriedades do checkbox 'Identificar o objeto userForm pai do checkbox End Sub Public Sub habilitaContagem(oFrm As UserForm) Dim x As Control For Each x In oFrm.Controls If TypeName(x) = "CheckBox" Then '################# 'Aqui adicionar o evento _Click ao objeto checkBox que está sendo lido (vamos ler todos do form) '################# End If Next End Sub Private Sub UserForm_Initialize() Call habilitaContagem(Me) End Sub
  3. Thanks Sir. ;) E não tem como passar um argumento/parâmetro para um form? tipow... frmCadastro.show(argumento1,argumento2) tipo isso. :P
  4. Graymalkin, Fiz o seguinte: Quando abro o form, guardo o número da linha, até aí beleza. Eu só não tava sabendo como retornar algum valor que estava sendo gerado dentro do form. O que fiz? O que calculei no form guardei em uma célula o resultado; Com isso, posso fechar o form e em seguida na função que chama o form chamo um código que pega o valor da tal célula, insere ali na coluna complexidade dessa planilha e, já apaga o valor da tal célula, foi o jeito que arranjei. Essa célula tá funcionando com uma session pra mim, ueueheuhe. Foi o jeito. Nela eu guardo se a coluna é a: D, E, F, G ou H. A linha, como falei, já guardo antes de abrir um form... Vou exemplificar com código pra ficar mais claro... Private Sub Worksheet_Change(ByVal Target As Range) Dim nLinha, nColuna, sValor nLinha = Target.Row nColuna = Target.Column '------------------------- If nColuna = 3 Then '----- USANDO UM FORM PARA CADA FUNCIONALIDADE/TIPO Select Case sValor Case "Cadastro" frmCadastro.show Case "Controle de Acesso" frmControleDeAcesso.show Case "Relatório" frmRelatorio.show Case "Página Dinâmica" frmPaginaDinamica.show Case "Interação de Sistemas" frmInteracaoDeSistemas.show Case "Página HTML" frmPaginaHTML.show Case "Animação Flash" frmAnimacaoFlash.show Case Else MsgBox "Selecione um tipo" End Select Dim sValorColunaComplexidade sValorColunaComplexidade = Range("valorColunaComplexidadeAtual").Value If sValorColunaComplexidade <> "" Then Range("D" & nLinha, "H" & nLinha).Value = "" Range(sValorColunaComplexidade & nLinha) = 1 Range("valorColunaComplexidadeAtual").Clear End If End If end function Acho que tu sacou. hehe Se souberes como poderia otimizar isso, hehe, agradeço. Ou se souberes algo parecido com o: Server.MapPath(".") do ASP que retorna o diretório atual da página que está sendo lida. :) valeu mesmo assim brow abraços
  5. Tenho uma coluna com validação de dados, onde é exibido uma lista dos itens que podem ser escolhidos. Quando algo é selecionado, abro um userForm de acordo com a opção escolhida. Neste userForm, deverão ser respondidas algumas perguntas simples, como sim ou não e etc, cada resposta terá um número de pontos e no final fazendo o somatório e vendo a faixa do total de pontos saberei (em termos) um dado importante (que no caso é a complexidade, mas isso não nos importa para a resolução, hehe) Logo, o que preciso: depois da pessoa "sair" do userForm, saber informar a linha correta em que foi "chamado" o form e atribuir um valor a coluna de complexidade, mas não sei como capturar o valor da linha quando a pessoa fechar o form. Sei só quando ela abre. Preciso fazer algo que funcione e não dê margens para erros. Nos exemplos a seguir, nas imagens, usei a LINHA 7, COLUNA C ($C$7). Imagem 01: Imagem 02: Imagem 03:
  6. Fala pessoal, beleza? Estava fazendo para cada combobox uma função que não deixava ele escrever nada, somente selecionar uma das opções. Private Sun cbEstados_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) KeyAscii = 0 End Sub Pensei: porque sempre fazer para cada combobox isso? Deve haver uma maneira de fazer isso para todos de uma vez. Tentei fazendo "ComboBox_KeyPres(" para ser genérico, mas não rolou (Me baseando naquela UserForm_Activatem, pensei nisso). Desde já agradeço a ajuda. Usando VBA no Excel 2007
  7. [ GuTo ]

    Asp, Qual é A Versão?

    é... isso aqui diz a versão, mas não é do asp, é do vb... testa aí: <% Response.Write "You are using " Response.Write ScriptEngine Response.Write " version " & ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion %>
  8. Procurem sobre (afim de conhecimento): - data juliana Google: Resultado da pesquisa... - ano bissexto Google: Resultado da pesquisa... Funções em ASP que irão ajudar: - datediff - dateadd no primeiro argumento, usar o "y" pode ser interessante para você (retorno o dia do ano). é só usar a criatividade agora. ;)
  9. [ GuTo ]

    Optionbutton

    Isso mesmo! Fiz este teste pouco depois e o textBox não passou na validação, embora os outros passaram :) Então, tá certo. Valeu! ___________________________________________ EDITADO! ------------------------------------------------------------ Brow, sabendo que muitos podem ter dúvidas parecidas, venho aqui deixar mais uma boa ajuda. Tava bisoiando o fórum, e vi isso, que me é útil também. Usando o TypeName() consigo saber a mesma coisa que o o suposto TypeOf() no VBA era para funcionar (e ainda já criei uma funçãozinha para facilitar e quem quiser pode sair debugando já ;)) 'Radios é por causa do <input type="radio"> do HTML, que visualmente e funcionalmente, é a mesma coisa Public Sub limpaRadios(oFrame) 'Funciona no Excel 2007 'Não é usado typeof x is OptionButton porque não funciona Dim X As Control For Each X In oFrame.Controls If TypeName(X) = "OptionButton" Then X.Value = False 'MsgBox TypeName(x) & " :: " & (TypeName(x) = "OptionButton") 'Esta condição não funciona quando o x.Value for igual a TRUE, por isso, use TypeName(), como acima 'If x = OptionButton Then x.Value = False Next End Sub A mesma coisa vale para o controle: "CheckBox"
  10. [ GuTo ]

    Optionbutton

    Olha este print-screen que tirei Realmente, é VBA no Excel. Não sei porque não funciona. Vi se tinha algo parecido, mas não. E na caixa de ferramentas no userForm informa como um "OptionButton". Estranho! Talvez se comporte de maneira diferente. Uso o Excel 2007 (Office 2007). Talvez seja isso Não sei se em outras versões, mais recentes, vai na boa.
  11. [ GuTo ]

    Optionbutton

    Não funfou. A idéia era pegar o todos os controles referentes ao pai do primeiro option (no caso, o frame) né? O seu IF saquei, verificar se era um option e aí setá-lo. Segundo meus testes com seu exemplo, percebi: - Posso fazer diretamente: For each x in frameNome.Controls - O seu IF aqui não rolou. Esse typeof x is OptionButton não retorna true. E eu fiz como você fez. Coloquei ainda um:MsgBox x.Name Que me retornou direitinho o nome dos 3 objetos optionbuttons (radios) do frame. (opcao1, opcao2 e opcao3) - Tentei apenas isto:If x = OptionButton Then x.Value = False E deu certo! Porém, isto não me parece confiável... porque a variável x é do tipo Booleana (vartype) e o objeto x é um OBJETO, hehehe. Tentei também isto (que vi por aí):For i = 0 To fmRadios.Controls.Count - 1 If TypeOf fmRadios.Controls(i) Is OptionButton Then fmRadios.Controls(i).Text = "" End If Next Talvez funcionasse, embora faça a mesma coisa, mas deu na mesma. Queria poder testar/debugar/saber qual é o typeof que está sendo atribuído à aquele suposto optionButton, hehe, mas não rolou um msgbox typeof x, pois dá erro, dizendo que o IS era esperado em seguida x( Se tiver alguma sugestão, agradeço. Valeu pela ajuda kuroi
  12. [ GuTo ]

    Optionbutton

    Fala galera, firme? Para não abrir um novo, vou aproveitar esse tópico... Tenho um frame, coloquei 3 optionButton's dentro dele e preciso fazer o seguinte: Limpar todos eles. Tem como fazer de limpar todos ao mesmo tempo, sem ir "limpando" um a um? Tipo: objOption1.Value = False objOption2.Value = False objOption3.Value = False Existe uma outra forma mais prática? Não sei se no VB existe algo como o eval do JavaScript, onde eu poderia fazer ALGO assim (como poderia ser em VBA :P):for i = 1 to 3 eval("objOption"& i).Value = False next '_____________________ '__ ou ________________ for each Opcaozinha in FrameOndeEstaoOsOptions Opcaozinha.value = False next Algo assim, hehehe, alguém sabe? Valeu!
  13. Desculpe, acho que não fui muito claro. Quero criar tipo um select em uma planilha (sheet), sendo que nesta coluna da planilha haverão em todas um select igual. Quando o usuário selecionar algo, devo saber via evento change saber qual opção ele selecionou E fazer algo referente ao valor selecionado. Como poderia fazer isso? Em XHTML + JS seria assim: <script type="text/javascript"> //<![CDATA[ function change(objSelect) { var valor = objSelect.options[objSelect.options.selectedIndex].value alert(valor); if (valor == 1) //faz isso else if (valor == 2) //faz outra coisa else alert('nenhum valor selecionado') } //]]> </script> <select onchange="change(this)"> <option value="1">opcao 1</option> <option value="2">opcao 2</option> </select> <hr /> <select onchange="change(this)"> <option value="1">opcao 1</option> <option value="2">opcao 2</option> </select> Seria mais ou menos isso. Agradeço a ajuda desde já. Valeu galera, _________________________________________________________________ EDITADO! EDITADO! (Gostei da implementação de atualizar o útlimo post já que o ultimo post foi do mesmo autor) _________________________________________________________________ mas de tanto futricar, entendi como funciona esse VB maluco. Eu estou acostumado a desenvolver tudo na unha que agora vejo algo que tem tudo de mão beijada e fico perdido. hehehe De qualquer forma, valeu. Solução? Private Sub Worksheet_Change(ByVal Target As Range) E para criar o "Select" usei a Vallidação de dados que lista os dados de uma "tabela" (range). Thks 4 all
  14. Fala pessoal, beleza? Eu manjo ASP, mas nunca mechi com VB quase. O seguinte, tenho uma planilha excel. Em uma coluna, preciso criar um "select" que liste os dados de um "range" de outra planilha (sheet). Até aí, beleza. O problema: quando eu alterar um valor em um select (existirao vários IGUAIS a este na mesma coluna), devo verificar qual valor foi selecionado na hora (deve ser usando o evento "change", como no javasript). Aí pego esse valor e devo abrir um form relacionado a este valor. Sabem como posso fazer isso? Eu não sei como pegar o valor que o cara selecionou. Eu atribui uma macro ao "select" e quando muda o valor ela chama a macro e exibe o msgBox (alert) "eeee" que eu fiz, hehe. Mas não sei como saber o valor que o cara selecionou. :S Se alguém tiver uma luz, agradeço. Procurei muito pela internet e tá difícil.
  15. O caso é que queria usar aquela forma, porque facilita e muito algumas coisas. Por ex.: CABECALHO ESQUERDA - CENTRO - DIREITA RODAPE A página index.php tem o cabecalho, o menu da esquerda, espaco para publicidade na direita, o conteudo no centro e o rodapé embaixo. Aonde é que o conteúdo sempre irá ser fixo? Todos, menos o conteudo do centro. Isto é, no cabecalho, esquerda, direita e rodape sempre terão os mesmos conteudos. Apenas no meio que irá mudar o conteudo principal, por exemplo, mostrar a página de cadastro, de contato e etc. Ficaria fácil pra atualizar o site. Iria criar uma página contato.php apenas com o conteudo dela, não precisando colocar nela também include's de estrutura da página e mais o cabecalho/esquerda/direita/rodapé. Tendeu? :)
  16. Salve galera! Vi esta explicação do amigo Red Neck no tópico de scripts. Segue o código do amigo: <? $link = $_SERVER['QUERY_STRING']; $file = "$link.php"; if(file_exists($file)) { include "$link.php"; } else{ include "pagina_principal.php"; } ?> Gostaria de saber quais são os possíveis erros e problemas que poderia sofrer se usasse isto. Pois, por exemplo, estou acostumado a usar uma página estas maneiras: - categoria.php?categoria=3&subcategoria=8 - categoria.php?id=50 Daí como vou resgatar examente isto sem problemas? porque ficaria assim respectivamente: - index.php?categoria.php?categoria=3&subcategoria=8 - index.php?categoria.php?id=50 Onde no caso, esta parte em verde nem deveria aparecer na querystring... Bem, não sei se fui claro... acho que talvez alguém tenha entendido. Valeu, Até mais. []'s Tentarei ser ativo neste fórum de PHP daqui pra frente...rs
  17. Obrigado Jony! Espero que mais pessoas gostem. Vamos para a segunda função? Função antiga: http://forum.wmonline.com.br/index.php?showtopic=120936# Tamanho antigo: 541bytes em 19 linhas como apresentado Tamanho novo: 278bytes em 7 linhas Redução de tamanho: 263bytes (48,61%) <% 'autor: antonio augusto andré silveira 'email: gutoasp[at]gmail[dot]com 'data: 20 de março de 2006 'todos os direitos reservados ao autor sob lincença creative commons 'http://creativecommons.org/licenses/by-nc-sa/2.5/ function idade(dB) if NOT isDate(dB) then idade="NaN": exit function dim dA, yA, yN: dA=date: yA=year(dA): yB=year(dB): idade=yA-yB if (month(dA)>month(dB)-1 AND day(dA)<day(dB)) OR month(dA)<month(dB) then idade=idade-1 end function %> Comentários: Nesta função, fiz um tratamento só para verificar se a data de aniversário, argumento passado para a função (dateBirthday), é realmente um dado do subtipo Date. Dependendo de sua aplicação, nem é necessário e você pode até apagar esta linha do código. Foi aplicado apenas uma boa lógica de matemática nesta questão e o bom uso da linguagem. Nós devemos saber usar a ferramenta que temos em mãos. Já vi muitas funções para calcular idade, mas todas enormes. Reparem na mudança daquela para esta. Muito mais simples. Percebam que na função antiga, os dados estavam sendo tratados como string, aí por isso foi usado o recurso da função íntrinseca Mid(). Já na minha, tratamos o argumento como uma data mesmo, assim então, otimizando código. Até mais
  18. Faça isso e veja: dim var1 var1 = Request.Form("checkbox") se o valor de var1 for numérico não tem problema. se o valor de var1 for igual a ZERO, será falso, ou seja, qualquer valor diferente de zero é true então complementamos: if NOT isnumeric(var1) then var1 = false var1 = Cbool(var1) response.write var1 Para conferir, dê valor numéricos e valores de string para var1 e teste. Dê o valor "0" (Zero) como string, que será retornado false. Bem simples! Então, nos seus checkboxes, coloque value="1"... se for preenchido, este valor será "preenchido/checkado". Caso contrário, o valor padrão é 0/false. até!
  19. Função antiga: http://scriptbrasil.com.br/forum/index.php...c=17305&st=105# Tamanho antigo: 1500bytes (1,46kb) em 62 linhas como apresentado Tamanho novo: 857bytes em 31 linhas Redução de tamanho: 643bytes (42,86%) <% 'autor: antonio augusto andré silveira 'email: gutoasp[at]gmail[dot]com 'data: 7 de março de 2006 'todos os direitos reservados ao autor sob lincença creative commons 'http://creativecommons.org/licenses/by-nc-sa/2.5/ function signo(data) dim d,m: d=day(data): m=month(data) if m=1 AND d>20 OR m=2 AND d<19 then signo="Aquário" elseif m=2 and d>18 OR m=3 and d<20 then signo="Peixes" elseif m=3 and d>19 OR m=4 and d<21 then signo="Áries" elseif m=4 and d>20 OR m=5 and d<21 then signo="Touro" elseif m=5 and d>20 OR m=6 and d<21 then signo="Gêmeos" elseif m=6 and d>20 OR m=7 and d<22 then signo="Câncer" elseif m=7 and d>21 OR m=8 and d<23 then signo="Leão" elseif m=8 and d>22 OR m=9 and d<23 then signo="Virgem" elseif m=9 and d>22 OR m=10 and d<23 then signo="Libra" elseif m=10 and d>22 OR m=11 and d<22 then signo="Escorpião" elseif m=11 and d>21 OR m=12 and d<22 then signo="Sagitário" elseif m=12 and d>21 OR m=1 and d<22 then signo="Capricórnio" else signo="Não existe" end if end function %> Comentários: 1 - Declarei as variáveis usadas dentro da função. Isto é importante para não termos conflitos com variáveis globais 2 - Na comparação com os dias, era usado o operador >= (maior OU igual) e também usado o operador <= (menos ou igual). O que isso gera? Duas comparações, o que leva mais tempo. Ex.: se uma pessoa é menor de 18 anos de idade, não pode dirigir. (pc processa assim: idade<18 ) porque eu diria assim: "se uma pessoa é menor OU igual a 17 anos de idade, não pode dirigir."? (no código vai assim: pessoa<=17 ... mas é processado assim: idade<17 OR idade=17) Percebem? Imagina isso num loop de 1bilhão de registros Suponhamos que cada comparação demore 1 segundo para ser processada. Você demoraria 2x mais. Ao invés de 1bilhão de segundos, demoraria 2bilhões de segundos para processar tudo. É muito tempo perdido. Então facilitei tudo na função nesta questão. 3 - estavam sendo feitos duas condições (2 "if's") para identificar que signo era, através do dia e mês. Coloquei isso tudo de maneira simples dentro de uma condição ("if") apenas. (reparem no código antigo) Espero que tenham gostado da primeira apresentação e se impresionado com a mudança. Muitos poderam dizer que para uma função pequena, nem precisava essa "função" toda... mas imagina todos estes pequenos detalhes não sendo cuidados em sites gigantes? O orkut deve ter uns bons códigos de asp.net por trás. O que ele deixa a desejar é no código html e css. Daria pra ser bem menor o tempo de processamento das páginas. A largura de banda (bandiwidth) poderia ser muito menor. Eles poderiam poupar gigas ou até terrabytes de transferência de dados por mês. Imagina, aquele site tem milhões de uusários. Imagina todos ou metade deles acessando o orkut ao mesmo tempo? Bem, não vou me extender aqui... Mas que fique claro que estes detalhes fazem muita diferença. Até mais.
  20. Olá pessoal, Talvez alguns não gostem desta minha iniciativa, porém, como o intuito do fórum é ajudar o pessoal, e o meu desejo por programar e ajudar de uma forma diferente do comum voltaram, resolvi criar este tópico. Aqui vou pegar funções encontradas aqui no fórum ou de outros (se for de outro, vou copia-la para o post juntamente), onde vou citar onde elas estão com um link, mostrar a minha versão delas, a diferença do tamanho em bytes/kbytes e mais algum comentário se necessário. Terão características tais: - códigos preferencialmente em letras minúsculas (lowercase semantic web ) - organização de código - declaração das variáveis a serem usadas - redução do tamanho do código - deixar o código semântico, ou seja, que tudo condiga com o que vai armazenar e processar - fazer com que o script ganhe perfomance, ou seja, seja processado de maneira mais rápida - em alguns códigos posso juntar trechos pequenos usando o ":" (dois pontos), como no php e js é usado o ";" (ponto-e-vírgula) - não será feita nenhuma validação para conferir se foi passado algum parâmetro/argumento para funções. isto fica à parte da aplicação ou posso comentar logo depois, mas não será incluído na avaliação - não está sendo contado as linhas de comentário no início dos códigos e funções. peço também que sejam deixados os créditos ao autor. O intuito é mostrar o poder de saber-se usar o que se tem em mãos, dominar a linguagem, mostrar como vocês podem melhorar os códigos de vocês. É um tópico onde pretendo ajudar iniciantes, intermediários e até avançados em programação geral. Não tenho interesse em "aparecer" aqui ou menosprezar códigos de outros colegas desenvolvedores, apenas ajudar e mostrar uma alternativa para solução. Lembrando que para se chegar a algum lugar, podemos usar caminhos diferentes. Comentários são bem vindos, porém, alguma dúvida ou discussão, peço encarecidamente que fosse aberto um novo tópico, ok? Só para podermos neste tópico termos um foco único. Desde já agradeço a atenção e compreensão de todos. Abraços! Obs: caso tenha algum erro em alguma função, por favor avise-nos. Não queremos dar informações/soluções incorretas aqui.
  21. [ GuTo ]

    Select Randomico Em Access

    ID seria o campo da tabela?
  22. Para complementar o tópico: 1º argumento para substr e substring: posicao. como considera um array de chars, começa do zero(0). 2º argumento para substr e substring, caso omitido, pega os chars restantes. 2º argumento para substr: quantidade de caracteres 2º argumento para substring: posicao do caracter <script language="javascript" type="text/javascript"> //<![CDATA[ var d=document, b='<br />', a='1234567890'; d.write(b+ 'a '+ a) d.write(b+ 'a.substr(2) '+ a.substr(2)) d.write(b+ 'a.substr(2,3) '+ a.substr(2,3)) d.write(b+ 'a.substring(4) '+ a.substring(4)) d.write(b+ 'a.substring(4,5) '+ a.substring(4,5)) d.write(b) d.write(b+ 'a.substr(0,1) '+ a.substr(0,1)) d.write(b+ 'a.substr(1) '+ a.substr(1)) var w='antonio augusto andre silveira', r=w.split(' '); for(var i=0,n=r.length; i<n; i++) r[i]=r[i].substr(0,1).toUpperCase()+r[i].substr(1).toLowerCase(); d.write(b+r.join(' ')) //]]> </script>
  23. [ GuTo ]

    Você Usa Script Prontos

    "Enquanto os outros pescarem por você, e o dia da morte deles chegar, você morrerá de fome"
  24. Desculpe, mas quanto função inútil. Depois posto alguma que preste por aqui. Se bem que tenho uma, muito simples, mas usável em quase 90% de ums ite. É usável em páginas que trabalham com dados numéricos inteiros passados via métodos get ou post.
  25. Olha, Já desenvolvi essa porqueira braba pro site do Grêmio, porém, requer permissões no servidor, registro de DLL's ou componentes.. esse .EXE aí é um.. enfim, muito complicado! Aliás, tu já leu o manual do desenvolvedor? Qualquer coisa, www.visanet.com.br Entra em contato, mas já aviso: SUPORTE FDP, atendem mal pra cacete. Parece que querem te tirar pra retardado, moral é q nem vale a pena ligar, pois o pessoal do SUPORTE não é o mesmo que desenvolveu, eles nem sabem como funciona nada. Eles só iram te CITAR trechos do manual do desenvolvedor, então nem perde dinheiro ligando pra lá.. esquece o q o falei. Aki vai o trecho q tenho desta página aí:
×
×
  • Criar Novo...