All Activity

This stream auto-updates   

  1. Last week
  2. Olá, DEV! Tudo bem? Vou dar mais uma dica interessante pra você.. Caso queira por algum motivo concatenar e aplicar uma repetição de uma string, existe uma função que faz isso, estou falando da função RepeatString! Veja como é simples aplicar. https://fabriciodicaswx.blogspot.com/2020/04/repeatstring.html
  3. Olá, DEV! Tudo bem? Vou dar mais uma dica interessante pra você.. Caso queira forçar a gravação de um registro em disco no sistema operacional em determinadas situações, por exemplo uma queda de energia.. existe uma função que pode te auxiliar, veja! https://fabriciodicaswx.blogspot.com/2020/04/hflush.html
  4. Valeu @Estelio Gomes Mataragia vulgo Italiano mestre do Corona. Muito obrigado ajustei aki e funcionou, valeu
  5. SELECT v.datmov, COALESCE(SUM((CASE WHEN v.Cancelado = 'S' THEN tot_ven ELSE 0 END)),0) AS CANCELADO, COALESCE(SUM((CASE WHEN v.Cancelado= 'N' THEN tot_ven ELSE 0 END)),0) AS NORMAL FROM VENDAS v WHERE v.datmov between '01/01/2020' and '01/31/2020' GROUP BY v. datmov
  6. Pessoal do SQL ai pode ajudar com uma query? Tenho uma tabela Chamada Vendas q tem um campo chamado TOT_VEN e outro campo chamado CANCELADO. Como ficaria uma query filtrando determinado período (campo DtMovim) o total q teve de vendas (TOT_VEN porém CANCELADO <> "S" ) e o total q teve de vendas canceladas (TOT_VEN porém Cancelado = "S") Como fazer isso?
  7. Ola ba tarde iPreview(iGenericHTML, "danfe.html") iPrintReport(RPT_KuDE,nomedoxml) ShellExecute(fDir("danfe.html")) Fiz um teste usando html, não tive mais problemas. Mas preciso do preview. Vou ver todas as dicas passadas, depois retorno. Obrigado por enquanto. []s
  8. Verifique o parâmetro de orientação. q é o parametro vipRotationAuto, por padrão é True, troque para False e teste.
  9. Atualmente o controle de mapas no Windev tem 2 tipos de visualização Satélite e Normal, não possuindo o modo STREETVIEW. Para tanto se faz necessário executar um código HTML, até aki tudo bem pq o Windev Mobile possui o controle HTML q pode ser inserido no aplicativo, porém se este controle possui JAVASCRIPT precisa q marque um checkbox no description do controle para permitir seu funcionamento. Compartilhando solução do amigo @tsilva q gentilmente cedeu aki pra comunidade. Segue comentários e código do @tsilva // Nesse caso que eu estou usando, estou consumindo um webservice a cada 10 segundos com uma procedure e atualizando o resultado na tela Esse código aki q precisou habilitar o Checkbox do print acima no controle HTML // Procedure que consome o webservice PROCEDURE GetPositions() //criando variaveis necesarias para o controle mapa //-----------------------//---------------------- MyMarker is Marker MyPosition is geoPosition oRequest is httpRequest oResponse is httpResponse vVariantjson is Variant // comeca o consumo do webservice //------------------//------------------------------------ oRequest..URL = gsSlink+"/api/positions" oRequest..User = sEmail oRequest..Password = sPass oRequest..Method = httpGet oRequest..ContentType = "application/json" oResponse = RESTSend(oRequest) // Declarando uma variavel string para receber o valor da string inicial e as posicoes Lat+Long sGsmaphtml is string // verifico o recebimento do webservice si esta ok IF oResponse.StatusCode = "200" THEN // transformo o json recebido em uma variant para trabalhar com o resultado vVariantjson = JSONToVariant(oResponse.Content) //apago todos os markers do mapa MapDeleteAll(MAP_SinNombre1) // aqui vou fazer um for na variante para tratar o resultado FOR ALL srVarVariante OF vVariantjson // como e um for para atualizar em tempo real,o street view limpo as variaveis strings gsStreetlat = "" gsStreetLon = "" sGsmaphtml = "" //verifico se valores e de um carro que quero bloquear IF srVarVariante.deviceId = gnCarroBloqueo THEN // comeco a pegar os valores do webservice e guardar en variaveis locais MyPosition..Latitude = srVarVariante.latitude MyPosition..Longitude = srVarVariante.longitude //essas dias variavels sao que vou usar no street view gsStreetlat = srVarVariante.latitude gsStreetLon = srVarVariante.longitude // monto a string para o controle html sGsmaphtml = StringBuild(gsStreetView,gsStreetlat,gsStreetLon) // daqui para baixo sao coisas simples e comuns para trabalhar com mapas markerimg is Image = "marker_bus_online.png" markerimg..Height = 16 markerimg..Width = 16 Velocidade is real = srVarVariante.speed * 1.852 ProgBarLCD = Velocidade ProgBarLCD..Caption = "Velocidad2" ProgBarLCD..Visible = True MyMarker..Image = "carro2.png" MyMarker..Position = MyPosition MyMarker..Name = WIN_Devices..Title // MyMarker..Description = sNamedevice WIN_Devices..Title = Velocidade+" Km/h "+gsNombreVeiculo MapAddMarker(MAP_SinNombre1, MyMarker) MAP_SinNombre1.DisplayPosition(MyPosition) MAP_SinNombre1..Zoom = gnMapZoom //aqui passo a string para o controle mapa HTM_StreetView = sGsmaphtml END END END Veja o resultado, atualizando de 10 em 10s em tempo real https://www.dropbox.com/s/xq4h5z0iq3zo4yo/IMG_8681.MOV?dl=0 Abaixo novamente o Checkbox q precisa marcar para funcionar o JAVASCRIPT.
  10. Utilizando o comando exeInfo com o argumento exeversion. QUando em modo teste irá trazer a versão do WD que estiver rodando mas rodando no dispositivo trará a informação adequada.
  11. Eu faria algo bem mais simples, quando o EDT ganhar o Foco, você colaca no Caption do botão de consulta "CONS PRODUTOS" e quando o EDT do Cliente ganhar o foco você colocar no Caption "Cons Clientes". Então no botão de consulta você verifica se estiver escrito Clientes ou Produtos. A vantagem dessa técnica é que no caption você prepara o seu usuário para ir exatamente ao que estiver indicado no botão. []´s
  12. Olá, Desde ontem estou brigando com meu celular que insiste em "virar" a foto vinda da câmera. O que pode ser feito para que sai em "portrait"? Muito Obrigado
  13. Olá, Para as compilações do DESKTOP pegamos a versão diretamente escrita no executável e para o mobile, como e onde pegar a versão que escrevemos quando geramos o APK? Muito obrigado
  14. Boa tarde, Para bobinas usar apenas os blocos: - Start Of Document - Body - End Of Document Em "description" do report, na guia "Blocks", em "End of Document" marcar "BEFORE THE PAGE FOOTER BLOCK"
  15. Boa tarde caros ! Já há algum tempo venho apanhando aqui para fazer os relatórios baseados em bobinas PDV 80mm. Preciso imprimir um cupom com o consumo, contendo os itens. Segue a imagem onde consta as configurações de formato, e outra contendo o resultado das impressões. Notem que imprimi com um, dois e sete itens para ver se mudava algo, mas o comprimento continua o mesmo. Já alterei o comprimento da página para valores como 150, 200, 250, 300 Se eu tento imprimir com um comprimento como 150 por exemplo e um item apenas, imprime da maneira esperada, sem espaços enormes. Porém se imprimir com o comprimento 150 e vários itens, ele imprime todos os itens e deixa um longo espaço entre o 'page footer' e o 'end of document', e ocorre que às vezes nem imprime nada. Esse relatório está ligado a uma query com os itens. Confesso que estou perdidinho com esse negócio de RPT rsrsrsrs, sem entender o que cada coisa faz e como faz. Ontem fiquei até altas horas debugando e tentando entender o que cada bloco faz, mas mesmo assim continua um mistério. Se alguém puder me ajudar (mesmo que remuneradamente, podemos fazer isso pois preciso ter um mínimo de domínio) nessa questão, fico agradecido. @Janio Aguiartem me ajudado bastante, mas já estou até envergonhado de ficar incomodando ele de tempos em tempos rsrsrssr Abraço !
  16. Boa tarde, Obrigado pelo retorno, pessoal! Na verdade a solução é mais simples que eu podia imaginar: - Eh so colocar no evento "KEY DOWN" do EDT o teste da tecla pressionada, e se for F2 desviar para o botao correspondente No evento KEY DOWN do Edt_CodigoCliente IF KeyPressed(VK_F2) THEN ExecuteProcess(BTN_ProcuraCliente,trtClick) END No evento KEY DOWN do Edt_CodigoVendedor IF KeyPressed(VK_F2) THEN ExecuteProcess(BTN_ProcuraVendedor,trtClick) END
  17. Top @Rinaldo Xavier O tópico não fui eu q criei, mas aprendo muito, testei aki e funciona sControleqDisparouEvento is string = _EVE.name
  18. Faz o seguinte, nos lugares q chamam as outras janelas captura o retorno delas, tipo assim: (EDT_Retorno_1, EDT_Retorno_2, EDT_Retorno_3, EDT_Retorno_4) = Open(WIN_TesteWindowRetornaVariosRetornos) E na janela q devolve vc passa os valores a serem retornados, tipo assim: Close(MyWindow,EDT_1,EDT_2,EDT_3,EDT_4)
  19. Opa, claro Cassiano. Eu queria, se possível, definir em uma variável, um determinada campo edt, assim quando eu movesse o valor para a variável, o campo edt fosse preenchido. Por exemplo, eu tenho na tela1 o campo edt_nome, e na tela2 se eu colocar assim, tela1.edt_nome = "jose", isso funciona, se eu voltar na tela 1, esse campo estará preenchido com jose. O que eu quero é que o seguinte: Varx = tela1.edt_nome e na tela2 poder fazer assim Varx = "jose" e na tela edt_nome ser preenchido. Não sei se é possível, hoje estou controlando com ifs, mas vai ficar muito grande. Obrigado pela atenção.
  20. Acho que dá para saber o foco assim: IF {_EVE.name, indControl}..Name = "EDT_xxx" THEN
  21. Exato @Cassiano, era o que eu ia sugerir. Mas acredito que tenha uma forma de saber qual controle está com o foco.
  22. Como vc faria pra saber qual controle estava focado? Como não sei isso, uma alternativa (mais escreve mais) seria a seguinte: 1. Cria uma variável global na Window, por exemplo, gw_sControleAtivo, e ai no Code do controle vc coloca no Entry pra preencher esta variável tipo: gw_sControleAtivo = "EDT_Cliente" e no Exit do Controle vc limpa a variável gw_sControleAtivo = "" ai no código q o @Rinaldo Xavier passou vc verifica a variável IF KeyPressed(VK_F2) _AND_ (WinStatus(WIN_menu) = Active) THEN SWITCH gw_sControleAtivo CASE "EDT_Produto": Info("Seek Produto") CASE "EDT_Cliente": Info("Seek Cliente") OTHER CASE Info("Outros") END END Agora se tiver uma função pra saber qual controle estava focado, fica bem mais pratico.
  23. Boa tarde, Rinaldo! Entendi, mas no meu caso os controles estarão na mesma janela, entendeu? Na mesma janela haverá 2 botoes. Um busca cliente, o outro busca vendedores. Mas os 2 botões com a mesma tecla de atalho (F2) Eu acho que preciso saber qual controle o foco está. Quando foco estiver no edt de cliente, f2 direciona pro botao de procura cliente. Quando o foco estiver no edt do vendedor, f2 direciona pro botao de procura vendedor.
  24. Janio Você pode capturar a tecla pressionada e na janela verificar qual o objeto que está com o foco. Neste caso no INITIALIZING do projeto você coloca: // Carrega os arquivos das constantes do WinDev EXTERN "KeyConst.WL" EXTERN "WinConst.WL" // Verifica o pressionamento de uma tecla Event("TeclaPressionada", "*.*", WM_KEYDOWN) E depois cria uma procedure mais ou menos assim: PROCEDURE TeclaPressionada() // Verifica se a tecla F2 foi pressionada e se a janela está ativa IF KeyPressed(VK_F2) AND WinStatus(WIN_xxxx) = Active THEN // Verifica qual objeto está com o foco ... Seu código ... END
  25. Bom dia, Em um formulário preciso atribuir o mesmo atalho (F2) como atalho para diferentes botões. Exemplo: - Estando no EDT do codigo do cliente, F2 servir como atalho para o botão PROCURA CLIENTE - Estando no EDT do codigo do vendedor, F2 servir como atalho para o botão PROCURA VENDEDOR Tem como?
  26. sim, a VINDI é uma empresa nacional, é um gateway de pagamento digamo assim https://vindi.com.br/
  1. Load more activity