• advertisement_alt
  • advertisement_alt
  • advertisement_alt

All Activity

This stream auto-updates   

  1. Yesterday
  2. Não sei como poderia ser, mas o q poderia tentar, seria mudar os estilos e comparar o q muda entre 1 e outro, já tentou fazer isso?
  3. Talvez usando javascript Tenho um exemplo q peguei dos exemplos do windev (não lembro qual) onde o mesmo pra imprimir faz o seguinte: ActiveX_Web>>Navigate("javascript:self.print()") Quem sabe seja a mesma lógica, porém sabendo como invocar o método ali via JAVASCRIPT
  4. Ae pessoal, tem como acessar um site dentro de um controle activeX e por informacoes nos campos que nele tem, e confirmar em um botao?Eu dei uma olhada no exemplo "wd controlling IE" deu certinho o preenchimento dos campos soh nao consegui executar um botao... Obrigado a quem ajudar
  5. Ae pessoal, tem como acessar um site dentro de um controle activeX e por informacoes nos campos que nele tem, e confirmar em um botao?Eu dei uma olhada no exemplo "wd controlling IE" deu certinho o preenchimento dos campos soh nao consegui executar um botao... Obrigado a quem ajudar
  6. Last week
  7. Num controle TAB, em Windev Mobile 23, há uma forma de aumentar a altura dos títulos das abas? (altura referida por h na imagem anexa) Até então estou resolvendo isso com botões que mudam as abas com os comandos abaixo (e com swipe, mas swipe parece funcionar só se houver espaço em branco na aba): TAB_NomeTal =1 TAB_NomeTal =2
  8. Perfeito, queria algo mais em modo de teste, em tempo de programação. Obg
  9. Q eu sabia não. Tem o BuildBrowsingTable, mas precisa ter uma table em uma window para ser populada com a função q mencionei. Talvez se usar control create e tal, mas acho q seria muito trabalhoso.
  10. Pessoal em windev tem alguma coisa do tipo xbrowse(minha_array) mostrar todas colunas e linhas de uma array , sem precisar criar um window com table
  11. Obrigado pelas soluções, pessoal
  12. Bom Dia, Temos algumas situações. O mecanismo de relacionamento utilizado nos SGBD normalmente contemplam a obrigatoriedade de que TODOS os filhos tenham pais. Isso para manter a consistência das regras. Em sua grande parte funciona que é uma beleza, mas tem algumas situações em que precisamos utilizar de nossa criatividade. A primeira ideia para manter a consistência temos de definir, em caso de alteração da chave o que o SGBD deve providenciar, regravar em todos ou ainda remover os filhos e finalmente em caso de exclusão do pai o que fazer com os filhos. Essa regra denominamos de "INTEGRIDADE RELACIONAL" e muitos confundem com relacionamento de relatório. Vamos a para alguns casos práticos. Pedido, Itens e parcelas. Identificando o Pai, PEDIDO, tem seus filhos ITENS e PARCELAS. Se eu remover o pedido, espero que não fique qualquer "lixo" ou seja de nada me adianta eu ter itens de pedidos inexistentes e o mesmo procedimento para com as parcelas. Agora o seu caso prático, documentos de clientes para órgãos emissores. Se remover um órgão emissor, claro que não quero que seus filhos sejam excluídos, então com toda a segurança devo informar ao SGBD que é a regra é RESTRITA, ou seja, se tentar remover e o cara tiver um único filho que o utilize, impeça tal exclusão. E como fazer para aqueles documentos que não tem um orgão emissor ou mesmo que não tenha sido informados? Simples, cria-se um registro pai com a denominação "SEM ÓRGÃO INFORMADO" e antes de colocar as regras, deve-se fazer um select para que todos os registros que tenham NULL no relacionamento documento <-> órgão emissor seja colocado tal informação. Na aplicação essa opção também pode aparecer no "DROP DOWN" e assim atende-se a todas as regras. Por fim, um comentário acerca da ANÁLISE. Ela serve como dicionário de dados, mas não serve como garantia de INTEGRIDADE RELACIONAL, mesmo para o HFSQL se você quiser aplicar tal regra tem de executar um comando a parte para depois manipular o registro em si. O que na ANÁLISE eu faço é muitas vezes apontar um relacionamento falso, para que a linguagem me facilite o trabalho de alguns componentes em tempo de projeto (podendo até mesmo permanecer para o tempo de execução) pois como falei, se não for explicitamente chamada a verificação de integridade o WD nada fará com essas regras. Abraços
  13. Earlier
  14. @Rinaldo Xavier vc é bão demais ,menino !
  15. Os registros citados foram criados após definição da chave como "unique"? No seu código de inclusão, está realizando algum tratamento extra como as options do HAdd " hIgnoreDuplicates " ou " hIgnoreIntegrity"?
  16. Estava pensando aqui, a função que usei não resolve quanto aos diferentes dias em cada mês, apenas considera como 30 para qualquer mês, então deve ser bem mais recomendado o uso da função Age mesmo.
  17. Com a dica do Gustavo Nome_da_tab[Número Tab].Visible = False
  18. Caros colegas, alguém poderia me informar como consigo ocultar uma aba num controle Tab? Desde já agradeço a ajuda.
  19. Caros colegas, alguém poderia me informar como consigo ocultar uma aba num controle Tab?
  20. Caros colegas, alguém poderia me informar como consigo ocultar uma aba num controle Tab?
  21. Saudações. Estou procurando resolver esse problema e encontro o post de vocês falando exatamente disso. Estou tentando entender funções como a DateTimeDifference e outras como a DateDifference e Age. PROCEDURE DifMeses(LOCAL dDataIni is Date, LOCAL dDataFim is Date) duDifDias is Date = DateTimeDifference(dDataIni,dDataFim) Trace(duDifDias) //rDifDias is real = val(middle(sDifMeses,2,7)) //rDifMeses is int = rDifDias/(30)// + 1 //result NumToString(rDifMeses) //FUNCIONOU //Outro modo é somente as linhas abaixo: nDifMeses is int = Val(duDifDias)/30 RESULT nDifMeses Passei os parâmetros à função diretamente de EDTs com datas estilo date roll e mask YYYYMMDD. P.S.: Por que toda vez que edito o post meu código ganha um pulo de linha a mais entre cada linha? Resposta Admin: Editamos aki pra testar e não ocorreu, não sei se poderia ser talvez o navegador ou o tipo de código da inserção.
  22. Top era tipo isso q tava querendo... Vlw @Rinaldo Xavier
  23. CntxBase is Connection HDescribeConnection(CntxBase,"","",EDT_CAMIMPORTA,"",hNativeAccessXBase,hOReadWrite,"OEMTOANSE=WINDOWS") HChangeConnection("*",CntxBase) // Renomenado arquivos para operar importação sem problemas com outro sistema em uso IF fFileExist(EDT_CAMIMPORTA+"\CLIENTES.DBF") THEN fRename(EDT_CAMIMPORTA+"\CLIENTES.DBF", EDT_CAMIMPORTA+"\CLIENTES2.DBF") END // Preparando um Select para uso com o DBF dsDDbfReq is Data Source sMyQryCli is string = [ Select CLICONTR, CLINOME, CLIAPEL, CLICAD, CLINASC, CLIEND, CLINUM, CLIBAI, CLICID, CLIUF, CLICEP, CLITEL1, CLITEL2, CLICEL, CLIPAI, CLIMAE, CLICIVIL, CLIRESID, CLIPROFI, CLIPESCA, CLICPF, CLIRG, CLICTRAB, CLISERIE, CLIPIS, CLIRESER, CLITITUL, CLIZONA, CLISECAO, CLINIT, CLIRGPSE, CLIDTRSE, CLIINSC, CLITEST1, CLITEST2, CLITEST3, CLISITU, CLIFOTO, CLIEMAIL, CLIOBS, CLIQTDPA, CLIDIABA, CLIDTBOL, CLIFIXAR, CLIREGI, CLINTDEP, CLIQTEMI FROM CLIENTES2 ] sMyQryCli = StringBuild(sMyQryCli) HDBOpen("CLIENTES2","",EDT_CAMIMPORTA+"\CLIENTES2.DBF") //OpenSister(IW_Aguarde) IF HExecuteSQLQuery(dsDDbfReq,CntxBase, sMyQryCli) THEN FOR EACH dsDDbfReq // Aqui você trata e salva os dados no seu banco HFSQL Next END // Fechando conexão DBF HCloseConnection(CntxBase)
  24. Jânio Faço assim também, mas sem criar nenhuma variável e nenhum objeto. Coloco este código no Before Printing BODY do report: IF modulo(MyReport..NbRecRead, 2) = 0 THEN MySelf..BrushColor = RGB(230, 230, 230) ELSE MySelf..BrushColor = Transparent END
  25. Essa técnica do @Cleiton Fidelis uso tb no Fastreport, agora será q não teria alguma outra forma?
  26. VAL() = Mesmo em Windev Ex: Val("143") // Returns 143 Val("1.67") // Returns 1.67 Site: https://help.windev.com/?3024037&lang=en-US&productversion=xxA250083n STR() e STRZERO() use NumToString Ex: NumToString(123) // Returns "123" NumToString(1.23) // Returns "1.23" NumToString(1,"03,0f") // Return 001 Site: https://help.windev.com/?3024024&lang=en-US&productversion=xxA250083n SUBSTR() use Middle // Extract characters Middle("Eponine", 2, 3) // Returns "pon" Middle("Eponine", 2) // Returns "ponine" Site: https://help.windev.com/en-US/?3024023&name=Middle CTOD() e DTOC() use StringToDate StringToDate("01-02-2020", "DD/MM/YYYY") // Returns na tela = "01/02/2020" no padrão no banco de dados fica 20200201 StringToDate("25/12/2001") // Returns = "20011225" Site: https://help.windev.com/?3027013&lang=en-US&productversion=xxA250083n ALLTRIM(), LTRIM (), RTRIM (), TRIM () use NoCharacter sTexto is string = " estou mostrando como ficaria " NoCharacter(sTexto," ", sscAll) = "estoumostrandocomoficaria" NoCharacter(sTexto," ", sscRight) = " estou mostrando como ficaria" NoCharacter(sTexto," ", sscLeft) = "estou mostrando como ficaria " NoCharacter(sTexto," ", sscInside) = " estoumostrandocomoficaria " NoCharacter(sTexto," ", sscOutside) = "estou mostrando como ficaria" Site: https://help.windev.com/?1000019391&lang=en-US&productversion=xxA250083n Caso os colegas precisem de mais só ir me passando que vou tentando ajudar.
  27. @Janio Aguiar Aproveitei sua pergunta para estudar e tentar aprender.. Fiz assim. No report, criei uma vari[avel para ser um contador de registro. em Reading the data of SEUREPORT gnLinha = gnLinha + 1 Coloquei um Shape sem borda e com cor de fundo , posicionado atras dos controles do relatório; e no codigo desse shape fiz assim. IF modulo(gnLinha,2)=1 THEN SHP_SHAPE6..Visible = True ELSE SHP_SHAPE6..Visible=False END Funcionou...
  28. Boa tarde, Como fazer um relatório (ligado a uma query) zebrado? Janio
  1. Load more activity