• advertisement_alt
  • advertisement_alt
  • advertisement_alt

Fábio Senji

Members
  • Content count

    66
  • Joined

  • Last visited

  • Days Won

    1

Fábio Senji last won the day on February 15

Fábio Senji had the most liked content!

Community Reputation

11 Good

About Fábio Senji

  • Rank
    Segundo Sargento
  1. 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
  2. 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.
  3. 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.
  4. Notei outros bugs em looper, mas foi no mobile, em diferentes displays (diferentes resoluções de tela) ao girar a tela. Não sei se tem algo a ver não, mas pode ser que haja bug sim.
  5. Olá, Ananias. Checou se há alguma parte de código com a linha ExecuteProcess(BACK ou NEXT, trtClick) ou algo assim, referenciando tais botões? Por exemplo, na abertura da janela que causa o erro ao abrir.
  6. Esqueci de dizer que, quando receber uma imagem, quero jogar num controle IMG na tela. Com a ajuda de vcs, tenho feito assim e tem funcionado quase 100%. Contudo se o arquivo não for JPG, BMP, PNG ou PDF, pode haver problemas: bufMidia = Uncrypt(campo[i].Arquivo,"",cryptNone,encodeBASE64) //aqui pego o arquivo de uma outra variável e salvo em bufMidia IF Contains(UTF8ToString(bufMidia),"PNG") OR Contains(UTF8ToString(bufMidia),"BMP") OR Contains(UTF8ToString(bufMidia),"JPG") THEN //aqui sei que é uma imagem IMG_VerImgMaior = bufMidia nStatusMidia = COM_MIDIA_IMAGEM ELSE //aqui funciona se for PDF ou não houver mídia, segundo testes: fSaveBuffer(CompleteDir(fCurrentDir()) + "PDF.pdf",bufMidia) //salva o arquivo como se fosse PDF, seja o que for IF fSize(CompleteDir(fCurrentDir()) + "PDF.pdf") > 0 THEN ShellExecute(CompleteDir(fCurrentDir()) + "PDF.pdf") //abre PDF. Se for PDF, ok. Caso contrário o PDF reader acusa erro no arquivo nStatusMidia = COM_MIDIA_DIFERENTE ELSE nStatusMidia = SEM_MIDIA //uso esse flag posteriormente para exibir um STC escrito "Sem mídia" END END Por fim decidimos usar um campo na tabela mesmo para passar o nome do arquivo com o formato, que ajuda o ShellExecute a saber o formato correto para abrir, chamando o app padrão correto ou a escolha do usuário sobre como abrir. Obrigado pelas dicas! [Resolvido]
  7. Se a dica do Cassiano não funcionar, me pergunto se funcionaria forçar a orientação da janela em seu menu de description, ou seja, se a foto seguiria essa limitação. Obs: Isso pode bugar loucamente os testes no simulador nativo, quase impossibilitando.
  8. Vc também pode fazer a estratégia de alguns tutoriais do mobile juntamente com a thread. Ao que entendi os tutoriais sugerem que vc habilite, no looper, a opção "pull to refresh", que permite ao usuário do app puxar o looper para baixo após atingir o topo, que é entendido como um F5 (atualização) no looper. Minha sugestão na verdade pode ser mais simples mas pior. Não me recordo se isso depende de alguns tipos de config. de memória do looper quanto àquelas opções "direct link" e "loaded in memory". Fora que, se sua thread apenas atualizar as tabelas, vc ainda terá um atraso maior que o da thread para atualizar o looper se depender do comando manual do usuário (pull to refresh). Então as opções postadas acima podem ser melhores, já atualizando o looper assim que possível, mas fica anotada a opção.
  9. Olá. Gostaria de saber se vocês sabem de alguma forma de exibir um arquivo salvo em binário mas de formato variável em Android. Se não houver tal recurso, posso forçar o arquivo a ser sempre formato PDF. Faz sentido isso, né? Salvo em binário na análise do meu banco porém de um formato X, variável, ou estou mal informado? Aceito sugestões. Eis minha situação: Tenho um webservice que retorna dados no formato tabela (de análise, tabela de banco HFSQL normal), a qual chamei de Mídia, com os campos x, y, z e Arquivo. Mídia.Arquivo é um campo que o webservice me devolve encriptado com Crypt(Mídia.Arquivo, "", cryptNone, encodeBASE64). Problema é que ele pode ser qualquer coisa que sonhar ser na vida: PDF, imagem, .docx, txt, planilha de Excel... Ou ao menos eu gostaria que pudesse ser. Obrigado novamente
  10. Hernandes, ainda não entendi mas é quase certeza que a resposta está aqui: https://doc.windev.com/?1514040&name=operations_available_for_the_dates_times_and_durations
  11. Muito interessante, obrigado por compartilhar!!
  12. Eu não tinha respondido antes porque ainda não entendi perfeitamente, mas já que você fez exatamente o mesmo que eu... fica aí o que entendi. Veja o que o Janio passou e doe um carinho++ à sua busca, veja sobre variáveis tipo time, duration e datetime. Parece que se somar alguns desses tipos, terá esse problema, enquanto a subtração do exemplo do link mencionado pelo @Janio Aguiar parece funcionar. Observe que a variável Time é um pedaço da variável tipo Datetime, ambas são algo como strings, mas a Datetime inclui a data, que se inclui sozinha com valores atuais de data em certo caso (aparentemente quando vc soma datetime com time). Bom, foi o que entendi na brincadeira que fiz e deixo em anexo. Você verá coisas parecidas nos helps desses tipos de dado. Outras funções que deverão ser úteis são a Left, Right e Middle, mas creio que aí a gente já está saindo da utilidade das time e duration.
  13. Entendi. Eu só sei fazer por headers. A maneira que vc está tentando deve ser mais indicada. Mas caso queira saber como faço, aí vai: 1-Na passagem de uma solicitação hReq is rest Request, passo os headers assim, por ex.: hReq..Header["NomeDoHeader"] = "ValorDoHeader" //exemplo string 2-Na recepção do lado webservice eu leio os headers assim, por ex.: sNome is string = WebserviceReadHTTPHeader("NomeDoHeader") //exemplo string
  14. Você quer dizer fazer o retorno de login e senha? Não entendi, pode explicar melhor? Por que iria querer retornar login e senha inseridos, ou mesmo os outros pares login/senha registrados? Se for isso, você não poderia programar uma função no webservice para procurar um usuário e retornar seus dados? Me parece perigoso quanto à segurança do serviço. Talvez uma dica de senha fosse melhor (?)
  15. Não sou experiente com report, mas haveria algum outro código setando o valor errado no STC? Algum outro campo com código afetando? Algum tipo de vínculo com o campo errado, na descrição de algum objeto envolvido?