• advertisement_alt
  • advertisement_alt
  • advertisement_alt

Leaderboard


Popular Content

Showing most liked content since 01/19/20 in all areas

  1. 8 likes
    Curso de Webdev com mais ou menos 30 aulas, 100% free, espero que ajude. http://leonardo-vilani.blogspot.com/2016/03/curso-webdev-20-aula-01.html?m=1
  2. 5 likes
    Obrigado Cassiano... Infelizmente usando o PDFExtractPage não consegui o que eu queria. Parti para outra alternativa, usando o C# dentro do Windev. O que deve ser feito: - No windev, deve-se importar no .Net Assemblies as DLL PdfSharp e PdfSharp.Charting (essas dll podem ser baixadas pelo visual studio, via nuget - Ainda no windev na seção "Procedures", criar uma procedure, no meu caso chamei de CSharp() - Clicar no "WL" para mudar de "WL" para "C#" Código do C# using System.Windows.Forms; using PdfSharp.Pdf; using PdfSharp.Pdf.IO; public static void CSharp() { //MessageBox.Show("teste"); PdfDocument document = PdfReader.Open(@"C:\Temp\Old.pdf"); document.Info.Author = "Jose Carlos"; document.Info.Keywords = "teste de keywords"; document.Save(@"C:\Temp\New.pdf"); } Foi Criado um botao e nesse botao chama a procedure em C# Click BTN_Teste CSharp() Acho que foi isso... Obrigado a todos que responderam.. Saul Gabeloni Londrina - PR
  3. 4 likes
    Veja se seria isso q precisa: arrVendedores is array of 4 by 3 strings arrVendedores[1,1] = "Marcos" arrVendedores[1,2] = "17/02/2020" arrVendedores[1,3] = "MOCOCA" arrVendedores[2,1] = "Carlos" arrVendedores[2,2] = "10/02/2020" arrVendedores[2,3] = "TESTE1" arrVendedores[3,1] = "Paulo" arrVendedores[3,2] = "15/02/2020" arrVendedores[3,3] = "TESTE2" arrVendedores[4,1] = "Pedro" arrVendedores[4,2] = "20/02/2020" arrVendedores[4,3] = "TESTE3" nPos is int = ArraySeek(arrVendedores,asLinearFirst,"1;3","Paulo","TESTE2") Info("Atenção!!!", "O item pesquisado esta na posição:" + NumToString(nPos)) No ArraySeek vc separa cada coluna q quer pesquisar com Ponto e Vírgula e depois os parametros são separados por vírgula, no caso acima estou pesquisando na coluna 1 e 3 com os parametros "Paulo" e "TESTE2"
  4. 4 likes
    Mostra sim, o que acontece é que quando gera um looper a partir de uma query por exemplo, ele usa links e não cria atributos, ai sem atributos não funciona a sugestão
  5. 4 likes
    Almir.. basta usar a função Middle para extrair qualquer conteúdo de um valor desejado.. Pra capturar o mês, dia e ano.. referente a data sempre crie uma variável do tipo Date, pois terá disponível pra você as propriedades ..Day,Month e Year. Em resumo a função Middle irá extrair baseado primeiro da posição inicial e o tamanho do valor que deseja extrair.. Veja o meu exemplo baseado na sua questão:
  6. 4 likes
    Luiz.. veja se a função TraceStart ajuda.. em resumo você pode armazenar em um txt por exemplo o conteúdo gerado no trace. Exemplo: TraceStart(trFile, "C:\Trace\Log.txt") Trace("RESULTADO: " + xVALOR) TraceEnd() Help: https://doc.windev.com/en-US/?3013052&name=tracestart_function Existe também o recurso de debug, o "Trace of debugger" Para ativar basta ir no menu Home > Panes > Trace of debugger, Ok
  7. 3 likes
    Cassiano exatamente isto, vlw pela ajuda, essa sintaxe sera muito útil aqui.
  8. 3 likes
    Para colocar [RESOLVIDO] vc clica no título do topico e segura. Daí ele abre pra edição
  9. 3 likes
    Bom dia ! Caro @Cassiano, não é alimentado por uma query. Até poderia mesmo, mas preferi fazer o simples, jogando na memória. Não sei dizer se é a melhor opção em termos de desempenho e velocidade, mas como serão sempre poucos itens neste looper, decidi por este caminho. A dica do @Vilanideu o efeito esperado. Obrigado aos dois pela contribuição
  10. 3 likes
    Pessoal tentei apagar o tópico e não consegui, o detalhe não estava na macro e sim aqui. ResChamp = "WIN_pedidos.TABLE_carga0_"+NumToString(i)+"_6" o correto seria ResChamp = "WIN_pedidos.TABLE_carga0"+NumToString(i)+"_6"
  11. 3 likes
    Peguei essas dicas do outro fórum: - Uma idéia seria você criar um 'launcher' para abrir o aplicativo e tratar esse problema por este launcher. - A outra poderia ser permitir a execução de 'várias instâncias' e verificar no evento de abertura do projeto para controlar o número de instâncias permitidas e a mensagem que é dada ao usuário. IF ExeRunning() > 1 THEN Info("Somente uma instância por vez é permitida para esta aplicação.") EndProgram(True) END Mas o melhor mesmo seria encontrar um meio para evitar que isso ocorra...
  12. 3 likes
    Boa tarde.. fiz uma aula sobre esse assunto.. Primeiro Mostrei como eu fiz um danf, e depois mostrei como se faz como se fosse pedido com itens.. Doaçao Amarildo Matos - Link da doação: https://streamelements.com/amarildo_matos/tip Boa Tarde Compartilhe Canal Youtube Amarildo Matos Amarildo, desde 1990 ensinando Desenvolvimento de Sistemas, tornando sonhos em realidades. DICAS 2597 - WINDEV WEBDEV MOBILE - Relatorio 62 - Como eu Fiz Danf no Windev. https://windevdesenvolvimento.blogspot.com/2019/12/dicas-2597-windev-webdev-mobile.html
  13. 3 likes
    Jonilton no Windev voce pode trabalhar com várias conexões simultâneas, nesse caso voce pode ter diferentes arquivos utilizando diferentes conexões, pode ter 2 ou mais conexões ativas ao mesmo tempo, porém não para o mesmo arquivo, mas pode pegar a conexão atual de um determinado arquivo assim: SuaTabelaDoBanco..Connection
  14. 3 likes
    Pra baixar vc tem que usar um ftp ou algo similar. Não acredito que haja uma "função ou comando" que faça isso rsrs Pra executar um apk... eu andei vendo a função ShellExecute() que parece fazer isso. Porém, ha uma observação na documentação em relação à versao 24. Não se isso so se tornou possível a partir da versão 24 do windev mobile Da uma olhada la https://doc.windev.com/en-US/?3035007
  15. 2 likes
    Perdão, agora inclui novamente o atributo e funcionou tanto no Android 7 como no 9 !
  16. 2 likes
    Aqui um exemplo de rest metodo GET para mandar push. oRequest is httpRequest oResponse is httpResponse oRequest..URL = "https://fcm.googleapis.com/fcm/send" oRequest..Method = httpPost oRequest..Header["Authorization"] = "key=AAAACvU7oQQ:chave firebase" oRequest..Header["Content-Type"] = "application/json" oRequest..ContentType = "application/json" // Request content oRequest..Content = [ { "to" : "token cell 1", "to": "token cell 1", "collapse_key" : "type_a", "notification" : { "body" : "New announcement assigned", "OrganizationId":"2", "content_available" : true, "priority" : "high", "subtitle":"Elementary School", "Title":"hello" }, "data" : { "priority" : "high", "sound":"app_sound.wav", "content_available" : true, "bodyText" : "New Announcement assigned", "organization" :"Elementary school" } } ] // Runs the request and retrieves the response oResponse = HTTPSend(oRequest)
  17. 2 likes
    por isso tambem tinha perguntado.. tambem achei que era cr
  18. 2 likes
    Luiz, cr seria charact(13) e não (10) por isso não funcionou
  19. 2 likes
    Valeu Evandro e Amarildo pela ajuda, só deu usando apenas o CR Replace(TABLE_vendas.COL_fantasia,CR,"")
  20. 2 likes
    Boa tarde @Luiz FERNANDO, tente assim: Replace(TABLE_vendas.COL_Razao, Charact(10), "") Att, Evandro Andersen HDTec Software
  21. 2 likes
    G Gotcha! kkkk Tinha esquecido que realmente tinha uma thread que executa a mesma query que alimenta a tabela a cada minuto automaticamente. Era isto. Valeu!!!!
  22. 2 likes
    Dependendo da versão do WD, você pode utilizar o controle de planilha direto, onde você pode após tudo montado gravar o arquivo, não precisa nem ter o excel instalado na máquina. Na 23, por exemplo, vá no menu creation, Graphic controls, Office e opte por "spreadsheet" att
  23. 2 likes
    Edson, talvez alguém tenha uma saída melhor, mas aqui eu tive que gerar 2 configurações diferentes, uma para aparelhos com android até a versão 8 e outra para aparelhos com android a partir da versão 9. quando você clicar no botão "generate" para gerar o apk da versão 9, avance até chegar na opção CONFIGURATION, clique no botão ADVANCED (imagem1), depois clique no botão "Edit the Manisfest" no manifesto, inclua as chaves conforme imagem2 isso vai resolver o seu problema. Att, Evandro Andersen HDTec Software
  24. 2 likes
    Tem umas opções que ainda não entendi direito que devem ter relação com isso. Exemplo é aquela opção na aba GUI da janela que diz "Units for sizes and positions (..X, ..FontSize, ...)" que aparentemente pode ser configurada para depender do DPI ou não. Inclusive apanho muito pra isso nos layouts, a DPI (pontos por polegada) é outro fator importante. Quem sabe alguém nos direciona melhor nisso tudo.
  25. 2 likes
    Olá @Fábio Senji verifiquei aki e a plataforma esta adicionada Smartphone e Tablet Tentei mexer nas resoluções e não deu. O q eu fiz pra entregar o projeto é remover o Smartphone e deixar somente plataforma do Tablet e tb somente 1 layout, depois qdo aprender altero.
  26. 2 likes
    basta remover o link, precisa ter um Atributo no looper vinculado a esse STC (mas não linkado a tabela, query...) no evento DisplayedRow() voce seta o valor que quiser nesse atributo
  27. 2 likes
    Meses atrás eu precisei montar uma rotina de impressão para Bematech LB1000. Havia um software meu em xHarbour que enviava a string para esta impressora, baseado nos padrões de comandos da Zebra se não me engano. Depois precisei fazer a mesma impressão, porém em Windev WS, para receber pedidos dos smartphones. Criei exatamente num report (ignorando os comandos Zebra) e saiu belezinha ! Basta configurar certinhas as medidas que dá certo.
  28. 2 likes
    Por uma questão de propriedades, em static voce consegue alterar a cor do background e cor da fonte, mas do controle e não especificamente do texto. Como o Cassiano colocou, se deseja trabalhar com texto enriquecido como negritos, itálicos, fontes diferenciadas em um só controle, deve priorizar em utilizar static_rtf []´s
  29. 2 likes
    As vezes acontece de após uma atualização do windows10, o dongle passe a nao ser mais reconhecido, dando o erro da imagem anexa. Segue link para reinstalação do driver https://safenet.gemalto.com/DownloadNotice.aspx?dID=8589947119 Créditos: Kreutz
  30. 2 likes
    Ve se ajuda... Se vc não quer usar o driver de impressão, vc pode enviar cada Linha diretamente para impressora usando WlanguageIsso inclui Dados e códigos de impressão os chamado ESCAPE Codes...Exemplo de código q tb pode ser feito sem os caracteres (códigos) ESC/POS: ------------------------------------------------------ //EXEMPLO - Imprimindo uma etiqueta de produto (com código de barras) na Zebra LP 2844 //iConfigure("Epson LQ-2170 ESC/P 2") //iConfigure("ZDesigner TLP 2844",true) iDestination(iPrinter) // String a ser enviada para impressora sMyString is string // Enviando comando e limpando buffer sMyString =Charact(10) + "N" + Charact(10) iEscape(sMyString) // Setando caracter sMyString = "I8,D,001" + Charact(10) iEscape(sMyString) // Setando largura etiqueta em dots (pontos por polegada) 609 dots = (3 polegadas x 203 dpi = 609 dots wide). //sMyString = Charact(10) + "q609" + Charact(10) sMyString = "q319" + Charact(10) iEscape(sMyString) // Setando altura sMyString = "Q279" + Charact(10) iEscape(sMyString) // Enviando texto "SKU 6205518 MFG 6354" na posição x = 253 dots (3/4 in), y = 26 dots (1/8 in) fonte "3", normal horizontal e vertical escala // Imprimindo 1 etiqueta sMyString= "A26,10,0,1,1,1,N," + Charact(34) + EDT_Text1 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,30,0,1,1,1,N," + Charact(34) + EDT_Text2 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,50,0,1,1,1,N," + Charact(34) + EDT_Text3 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,70,0,1,1,1,N," + Charact(34) + EDT_Text4 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,90,0,1,1,1,N," + Charact(34) + EDT_Text5 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,110,0,1,1,1,N," + Charact(34) + EDT_Text6 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,130,0,1,1,1,N," + Charact(34) + EDT_Text7 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,150,0,1,1,1,N," + Charact(34) + EDT_Text8 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,170,0,1,1,1,N," + Charact(34) + EDT_Text9 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,190,0,1,1,1,N," + Charact(34) + EDT_Text10 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,210,0,1,1,1,N," + Charact(34) + EDT_Text11 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,230,0,1,1,1,N," + Charact(34) + EDT_Text12 + Charact(34) + Charact(10) iEscape(sMyString) sMyString= "A26,250,0,1,1,1,N," + Charact(34) + EDT_Text13 + Charact(34) + Charact(10) iEscape(sMyString) sMyString="P"+EDT_Many+",1" iEscape(sMyString) // Finalizando iEndPrinting()
  31. 2 likes
    Bom dia.. Novo video em cima do que o fabricio mencionou. EDT_DATA=DateSys() EDT_MES="JANEIRO" EDT_RESULTADO1=Middle(EDT_DATA,1,4) //EDT_RESULTADO1=DateToString(EDT_DATA,"DD/MM/YYYY")[[1 TO 2]] EDT_RESULTADO2=Middle(EDT_MES,3,4) //EDT_RESULTADO2=EDT_MES[[3 TO 5]]
  32. 2 likes
  33. 2 likes
    Assim não dá certo Jonilton? xPRECO is numeric (10,2) Nunca declarei assim.. dê uma olhada no help https://doc.windev.com/en-US/?1514072
  34. 2 likes
    Ou pode usar a proprio função que oferece o WM https://doc.pcsoft.fr/en-US/?1000019235&name=tapidialercall_function
  35. 2 likes
    Pessoal sobre a questão acima, para habilitar o REVERSE AND\OR, é necessário se criar duas condições(new condition) para o mesmo campo, depois disto ele habilita normal para se escolher a opção OR, somente para deixar registrado caso alguém venha a ter a mesma dificuldade que minha. Abs.
  36. 2 likes
    Testa da seguinte forma: ShellExecute("tel:xxxxxxx") // troque o xxxxx pelo telefone
  37. 2 likes
    para fazer o download pode usar o HTTPREQUEST EX: IF HTTPRequest(vrURL_Arq) THEN //PEGAMOS O BUFFER DO ARQUIVO ArqBuffer is Buffer = HTTPGetResult(httpResult) fSaveBuffer("NOME_DO_SEU_ARQUIVO", ArqBuffer) END
  38. 2 likes
    @Cassiano Ao abrir uma janela o codigo não para devido a que são Janelas Asincronicas (padrão no android) a unica forma de fazer o que tu quer é trabalhar com 2 tempos de eventos 1- executar o codigo até solicitar a senha (nesse exato momento acaba essa parte do codigo) 2- trabalhar com o evento de Janela (Closing a Child Window) este evento vai ser executado cada vez que se fechar uma janela (POPUP, por assim dizer, ou até mesmo outra activity invocada dessa janela) dai ele vai lhe retornar alguns valores em memoria, vistos neste link (bem no finalzinho) Value returned when closing a child window Então com os valores recebidos, tu deve fazer outra função que seria a parte 2 do codigo , e resolver o processo https://help.windev.com/?3038018&name=close_function
  39. 1 like
  40. 1 like
    Não entendi muito bem o q vc precisa, mas teorizando temos o seguinte, os códigos de barras podem ter 8, 12, 13 ou 14 dígitos e serem válidos, o ideal seria vc aplicar ao teu código uma função de validação, ou seja, vc aplica o código nesta função e com isso vai saber se o mesmo é válido, se o dígito verificador esta correto, e com esta função poderá desconsiderar o dígito verificador e extrair somente o número se esta for tua intenção. Esta função não tenho em Windev e sim na minha antiga linguagem, não cheguei a migrar ela, talvez algum colega tenha. Caso o q eu respondei não seja o objeto da sua dúvida, favor desconsiderar e fornecer maiores informações do q precisa.
  41. 1 like
    Fiz a alteração @Ananias Guerra Tinha um detalhe na configuração do fórum depois q restaurei q deixei passar. Tb foi bom pq percebi q novos usuários não estavam conseguindo se cadastrar devido uma outra configuração q já ajustei. Teste e me fale, caso ok já limpo essas nossas mensagens aki
  42. 1 like
    Tentou utilizar como se fosse uma imagem? ImageInfoList Exif
  43. 1 like
    Nunca utilizei da forma automática, creio que na manual você será bem mais feliz, tem um procedimento para enquanto estiver arrastando e outro para quando soltar. Meio chato de pegar o jeito, mas fica bem tranquilo depois.
  44. 1 like
    Bom dia, Essa dica vale ouro. Quase toda a galera que usa Postgres ja passou por esse problema Janio
  45. 1 like
    hehehe verdade, acho que eu deixei uma observação, "precisa fechar os arquivos antes com o hclose"
  46. 1 like
    vlw Janio Minha versão(21) do android não aceita esse parametro .Add WIN_sincronizar.garrArquivosFTP.Add ( sFileName ) analisando aqui como substituir essa sintaxe
  47. 1 like
    Você pode pegar a mensagem ou código de erro e tratar. Não lembro como trata o código, mas lembro que é possível. Por seu caso ser de um erro fatal, creio que terá de usar WHEN EXCEPTION IN ... DO ... END. Se não fosse fatal o IF ErrorOccurred resolveria, creio. Experimente usar o código abaixo... WHEN EXCEPTION IN Open(WIN_tela2) DO Info(ExceptionInfo) END Daí copie a string da mensagem de erro do Info, ou de um trace, ou mesmo jogue num Edit Control para testes, para que possa usar CTRL+C. Daí com a string em mãos você pode tratar o erro com o código da imagem a seguir, por exemplo, ou usando IF Contains(ExceptionInfo, sStringParteDaMensagemDeErroQueNaoAparecaEmOutroErro).
  48. 1 like
    Ananias, Não seria algo assim ? https://help.windev.com/en-US/?2016022
  49. 1 like
    Senhores agradeço a ajuda do Cassiano e do Vilani, consegui imprimir meu relatorio com a table memory, um detalhe importante na hora de acessar os dados da coluna da table foi colocar 1-nome da page 2 nome da tabela e 3 nome da coluna no caso precisava concatenar 3 campos - Page_Cliente.Table_Texto.Col_Nome + Page_Cliente.Table_Texto.Col_Sobrenome
  50. 1 like
    Olá, pessoal, Como monto uma Dialog Box personalizada q eu possa capturar o retorno? Tentei fazer da seguinte forma, criei uma Internal Window pra digitar uma senha. A forma q faço pra chamar a Internal Windows é OpenMobileWindow(IW_Senha, sInfo) Ai na Internal Window eu coloco no Close pra vir a informação da seguinte forma: Close(IW_Senha, sInfo) Porém após a chamada do OpenMobileWindow o código seguinte já é executado, ou seja, não aguarda o retorno da Window q foi chamada onde o usuário vai informar a senha. Alguém saberia como resolvo esta situação?