Ir para conteúdo
Fórum Script Brasil

kuroi

Membros
  • Total de itens

    7.184
  • Registro em

  • Última visita

Tudo que kuroi postou

  1. se for somente 4 zeros pros q tem 6 digitos (e pra ignorar os q tiverem otros tamanhos), faca assim (levando em conta q o campo seja varchar): Update Tabela Set Campo = '0000' + Campo Where Len(Campo) = 6
  2. opa, então acho q não entendi direito o que você quer. o q eu entendi é q, você exibe o relatorio no CRViewer e, quando você incluir um registro, você queria q o relatorio atualizasse. bom, o proprio CRViewer tem o botao de atualizar, mas eu entendi q você queria q ele atualizasse automaticamente caso ele inserisse o registro, tipo no otro formulario enquanto o CRViewer tivesse aberto. não é isso?? não entendi tb essa parte: "Quando incluo um registro, ele não ta saindo no relatório.". o q você exatamente quer dizer. quando você inclui, ele não aparece nunca?? o Selection Formula ta preenchido com alguma coisa??
  3. kuroi

    Ordenação De Valores

    sim, faca um if (mas facil com iif) naquela minha funcao, se a variavel Hor foi maior q 0 você mostra, senao não.
  4. kuroi

    Fórmulas No Crystal

    o q é o contador?? um campo formula, ou um Running Total Field?? e como você sabe qual a data da promocao??
  5. kuroi

    Ordenação De Valores

    é foda, as vezes aparece um negocio besta e a gente se mata pra descobrir. isso era obvio, era so pensar direito na logica, mas a gente num percebe. isso deve ser em algum momento algum valor errado q você ta passando pro tempovolta, tipo o q eu disse nesse post: tenta assim: [code]IIf(Len(CStr(Int(Seg))) = 1, "0", "") & Format(Round(Seg, 3), "#,##0.000")
  6. usando o Crystal Reports Control, você tem a propriedade ParameterFields. ela é um array q você pode adicionar qtos valores quiser (um pra cada indice), passando o nome do parametro e o valor, tipo assim: CrystalReport1.ParameterFields(0) = "campo;valor;True" onde campo é o nome do campo, valor é o valor q você quer q ele tenha, e True eu não tenho certeza de pra q serve, acredito q seja pra esse ser o valor selecionado. por exemplo, se você quiser passar varios valores pro campo parametro para, na hora de mostrar, o usuario selecione um deles, o valor True é o que vai estar selecionado. mas no caso de você não exibir a janelinha, o valor q estiver com o True já vai automaticamente. so q você quer passar duas datas, não?? bom, se você declarar o parameter field como string, não tem segredo, agora se for declarado como Date, é mó frescura desse Crystal, levei mó tempo pra descobrir como fazia. é tipo assim: CrystalReport1.ParameterFields(0) = "Data1;date(" & Format(CDate(MaskedBox1.Text), "YYYY,MM,DD") & ");True" CrystalReport1.ParameterFields(1) = "Data2;date(" & Format(CDate(MaskedBox2.Text), "YYYY,MM,DD") & ");True"[/code] isso tudo levando em conta q você saiba criar campos parametros no Crystal. se não sober, da um toque ae
  7. kuroi

    Ordenação De Valores

    estranho esse primero problema. tenta por um breakpoint (F9) nessa linha dentro do For e quando chegar la da uma estudada nos valores do tempovolta tanto do primeiro como do i, pode ate usar o MontaHoraS no Immediate Window (Ctrl + G). ai você observa o valor da diferenca e veja porque o valor fica estranho. quanto ao outro problema, arredonde os segundos pra duas casas (e se são duas casas, são os centesimos e não milesimos), tipo assim, no MontaHoraS, substitura a linha IIf(Len(CStr(Seg)) = 1, "0", "") & Seg por IIf(Len(CStr(Int(Seg))) = 1, "0", "") & Round(Seg, 2)
  8. você pode criar dois campos parametros no Crystal e passar os valores das Masked Box pra eles via codigo. qual componente você ta usando no Visual Basic (Crystal Report Control, Design Run Time Library, etc)??
  9. a ta, mas a variavel Nome (na verdade não uma variavel e sim um objeto (declare do mesmo jeito)) tem q ser do tipo ComboBox e não String. mas eu não entendi, onde ta a declaracao da sua funcao?? todo esse codigo q você passou esta dentro dela??
  10. o select teria q ser tipo assim: sql = "Select * From Tabela Where CDate(Data) Between #" & Format(data1.Text, "YYYY-MM-DD") & "# And #" & Format(data2.Text, "YYYY-MM-DD") & "#" se não funcionar, posta ae o codigo q você usou e mensagem do erro.
  11. isso nunca tentei fazer, mas vi q tem um metodo Refresh no Crystal Reports Viewer, tenta utiliza-lo e veja se funciona. se não funcionar, veja tb o metodo RefreshEx. tenta passando o parametro True e veja se da certo. se não funcionar posta ae
  12. acho q tem q ser assim: Nome.Add rs.Fields("nome").Value
  13. kuroi

    Minimizar

    poe a propriedade ShowInTaskBar do Form = True
  14. kuroi

    Ordenação De Valores

    a primeira coisa q eu vi é q ele ta ordenando por tempo errado. tipo, aqui no click do OK no form Corrida, você faz: For i = 0 To 21 xPiloto(i).ai = Int(xPiloto(i).chance * Rnd) + 1 Next For i = 0 To 21 xPiloto(i).ai2 = Int((xPiloto(i).chance) * Rnd) + 1 xPiloto(i).ai = xPiloto(i).ai + xPiloto(i).ai2 + xPiloto(i).poslargada xPiloto(i).tempovolta = xPiloto(i).tempovolta + ((10000 - xPiloto(i).ai2) / 100) Next[/code] pra q serve o primero For?? porque você calcula o ai nele e depois calcula outro ai e soma no mesmo?? nota q o primeiro ai não é somado no tempo, mas é somado no ai. ai ele ordena pelo ai, mas o tempo não bate com o ai, e parece q ta tudo fora de ordem. outra coisa, tanto o ai como o tempovolta tão vindo com valores do form de Qualificacao, o q vai dexar a ordenacao mais errada ainda. você devia zerar todos antes de fazer qualquer coisa. e uma dica, porque você calcula o ia e ordena uma vez no clique do botao e depois ordena de novo no timer (dessa vez, as outras 69 vezes)?? não seria mais facil deixar tudo no timer?? assim fica menos codigo, e, quando você precisar altera, altera uma vez só. quanto aos problemas, tanto o da qualificacao quanto o da corrida, faz uma alteracao na funcao q eu passei, declare ela assim: [code]Public Function MontaHoraS(ByVal Seg As Double) As String e veja se resolve.
  15. kuroi

    Ordenação De Valores

    não consegui identifica nenhum problema não. manda de novo pra mim la q eu vejo
  16. kuroi

    Ordenação De Valores

    não entendi. era pra ele aparecer o tempo total da corrida e não da volta, seria isso?? se for posta o codigo todo, desda hora q ele calcula o ia ate a hora q ele mostra no label
  17. kuroi

    Ordenação De Valores

    Não, por que olha só. O xPiloto(i).ai, é a soma do número aleatório que é gerado cada volta. O tempo deveria ser apenas da última volta. então crie uma variavel temporaria pra guardar o ultimo. em vez de já somar direto o numero random no ultimo ia, atribua o valor dele a essa variavel e passe ela pra formula do tempo. só depois, some ao ia. você pode calcular o ia e o tempo no mesmo For, tipo uma linha embaxo da otra, então pode ser uma unica variavel pra todos os pilotos, não precisa ser uma nova propriedade nem um array. como eu disse antes, o tipo da variavel (xPiloto(i).tempovolta) e do parametro Seg tem q bater. ou os dois Integer, ou os dois Double.
  18. você fala q o erro é nessa linha?? RptProjetos.Show não costumo usar DataReport, então não sei direito, mas deve ter algum metodo Close(), ou alguma coisa do tipo pra fechar o relatorio não??
  19. kuroi

    Ordenação De Valores

    ele vai fazer um numero aleatorio cada vez q passar ai sim. mas você não gravava o numero aleatorio no ia?? porque você ta calculando de novo, não seria so pegar do proprio ia?? tipo assim: xPiloto(i).tempovolta = (10000 - xPiloto(i).ia) / 100 nem perde tempo dividindo por 60, porque a funcao q eu passei monta a string baseada em segundos. tipo, se você declarar o tempovolta como Integer (e alterou o Seg pra Integer tb, como falei), é so fazer assim: xPiloto(i).tempovolta = (10000 - xPiloto(i).ia) / 100 label1.Caption = MontaHoraS(xPiloto(i).tempovolta)[/code]
  20. kuroi

    Ordenação De Valores

    cria a variavel tempo com integer e armazene nela o tempo em segundos. ai pra converter tem q ser na mao. eu costumo usar aqui uma funcao q eu fiz: Public Function MontaHoraS(Seg As Double) As String Dim Hor As Double, Min As Double Hor = Int(Seg / 3600) Seg = Seg - (Hor * 3600) Min = Int(Seg / 60) Seg = Seg - (Min * 60) MontaHoraS = MontaHoraS & Hor & ":" & _ IIf(Len(CStr(Min)) = 1, "0", "") & Min & ":" & _ IIf(Len(CStr(Seg)) = 1, "0", "") & Seg End Function[/code] se você não precisa mostrar a hora junto, é so tirar da funcao (se você declarar tempo como Integer, muda tb o parametro Seg. o numero maximo q eu falei não precisa ser necessariamente maximo, mas é so uma referencia pra você ter, pra você poder comparar o ai com o tempo, mas mesmo q o ai ficar maior do q esse maximo, vai continuar funcionando certinho.
  21. posso ta errado, mas acho q o youtube tem algum programa no proprio servidor deles q, assim q o upload do video é feito, ele converte o formato e captura as imagens e já salva como jpg.
  22. não sei se é so comigo, mas se tenho <a href="java script:"> no meu firefox, ele me abre o console do firebug quando clico, acho melhor fazer assim <a href="java script: void(0);">
  23. na verdade o certo é App.Path. mas pra mudar a localizacao do banco, tem q ser tabela por tabela das q estao adicionadas ao rpt, tipo assim, se você tem tresa tabelas no rpt: crRep.Database.Tables(1).Location = "C:\Caminho\Banco.mdb" crRep.Database.Tables(2).Location = "C:\Caminho\Banco.mdb" crRep.Database.Tables(3).Location = "C:\Caminho\Banco.mdb"[/code] lembrando q, no caso aqui, o indice comeca no 1 e não no 0.
  24. kuroi

    Ordenação De Valores

    veja de quanto a quanto varia o ia e de estipula qual seria um tempo maximo e um tempo minimo pro cara acabar a volta. tipo se o ai estiver no maximo qual seria o mais rapido q o piloto poderia fazer?? e se estiver no minimo qual o mais lento?? sabendo disso você faz uma regra de tres com proporcao inversa, é ate simples. tipo, faz de conta q o ai varia de 0 a 100 e q o mais rapido q o cara acabaria seria 40 segundos e o mais lento 120 segundos. ai você tem o quadro de correspondencia: ai o q você faz, você inverte o ia (maximo menos o calculado). exemplo, se o ia der 80, você transforma em 20, já q você vai transformar em tempo. e quanto maior o ia, menor o tempo.invertendo o ia, a tabela vai ficar assim: tendo o 20, você arranja uma formula pra multiplicar e chegar no tempo, é como calcular mudanca de celsius pra kelvin em fisica, você tem a escala do ia (invertida) e a do tempo. se o cara ta com um ia invertido x e você quer calcular o tempo y, você sabe q ((100 - x) / 100 - 0) = ((120 - y) / 120 - 40) calculando: (100 - x) / 100)) = (120 - y) / 80)) 8000 - 80x = 12000 - 100y ' tirando MMC 100y = 80x + 4000 5y = 4x + 200 y = 4x + 200 / 5[/code] ta ai, você encontrou sua formula y = 4x + 200 / 5. viu como é simples?? hahhaha deu pra entender?? bom, resumindo, tdo o q você precisa é de uma formula q transforme o ia em tempo, e é seguindo a logica q eu passei q você resolve. tdo o q você precsia é definir o ia minimo e maximo e o tempo minimo e maximo e subsituir os valores nas contas q eu passei. usando esses valores q eu defini, o codigo ficaria tipo assim: [code]tempo = (4 * piloto(x).ia + 200) / 5 agora você pode se diverti ai criando sua propria formula. beleza?? EDITADO: opa opa opa, esqueci de inverter o ia no codigo, o certo seria tipo assim: tempo = (4 * (100 - piloto(x).ia) + 200) / 5
  25. toda view, sem excecao nd mais é do q um select. se você for ver por tras daquelas janelinhas q você seleciona tabelas e campos e etc tem uma query sql. não sei q versao do sql você usa, mas no 2005 por exemplo, no Management Express ele já abre pra você os paineis com as tabelas, com os campos e o principal de tudo, o select. não lembro como era nas versoes 2000 e nas anteriores mas acredito q não muito diferente, abra la uma nova view q você vai ver, deve ter um modo de ver o formato sql. enqto você vai la e adiciona tabelas, campos e etc, o manager vai montando a query pra você. resumindo, quando, no seu programa, você vai la e faz um select pela view, você não esta fazendo nd mais do q um select de um select. exemplo, eu tenho uma view assim: Select Campo1, Campo2 From Tabela e gravo ela com o nome de Visao se eu fizer: Select * From Visao é o mesmo q eu fazer: Select * From (Select Campo1, Campo2 From Tabela) entendeu?? agora imagina q você tenha no seu programa q fazer sempre varios selects com campos calculados na(s) mesma(s) tabela(s). tipo sempre o mesmo select pra usar em varias partes do programa, em varios inner joins, como se fosse uma "tabela virtual" q você tivesse q acessar direto. bom, como você disse, "Visão não é uma forma de disponibilizar p/ um determinado usuário, porções do banco de dados,", uma view seria como uma tabela virtual, certo?? agora imagina q você tenha q alterar qualquer coisa nesse select (tabela virtual). como por exemplo, adicionar, tirar campos, ou mudar algum calculo q exista la. ai você vai ter o mesmo select em varios joins e etc. imagina o trampo q ia dar pra alterar um por um. agora se você usasse uma view, você so precisaria alterar nela e pronto. não sei se fico bem claro, qualquer coisa posta ae
×
×
  • Criar Novo...