• advertisement_alt
  • advertisement_alt
  • advertisement_alt

Luiz FERNANDO

Members
  • Content count

    105
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Luiz FERNANDO

  1. Pessoal andei fazendo uns treinamento com o TOM e consegui aprender a mexer com WEBSERVICE, trocando ideia com um outro amigo, ele me aconselhou a fazer isso em PHP, pois é bem mais simples dar manutenção, uma vez configurado o ISS ou Apache o servidor já está pronto, agora em windev preparar um servidor para ele parece não ser tão simples assim, eu particularmente não sei fazer, trabalho com banco de dados MariaDB, daí fiquei na dúvida, começar o aprendizado tudo novamente em PHP, ou aprender a configurar um servidor para usar a windev e tudo que eu alterar no projeto fazer um DEPLOY, se algum colega poder dar a sua opinião.
  2. Bom dia Amarildo estou fechando um servidor dedicado hoje com alphaservers, sobre dar tratamento em rest (POST GET) usando JSON e tb fazer deploy do projeto eu já tenho o conhecimento basico para isso, minha duvida mesmo é como montar(preparar) um servidor, pois todos meus teste foram feito no servidor do Adriano Booler, e la já está tudo pronto. Obs: caso vc tiver esse conhecimento e poder me dar uma consultoria me chama em off, obg.
  3. Cassiano obg pelo retorno, a forma que vc mencionou acima que configurar um servidor para usar webservice com windev não é tão complicado assim, me animou aqui, vou ver se faço um teste com AlphaServers, estava vendo os pacote deles, vc acha que um Semi-Dedicado para começar resolve, ou é melhor um Dedicado.
  4. Pessoal queria fazer unsteste com função em java em windev, vi que o comando é esse JSCode is string = [ var now = new Date(); alert( 'Today is: ' + now); ] ExecuteJS(HTM_MyHTMLControl, JSCode) Minha duvida é como criar um HTML CONTROL, que no caso é o primeiro parametro para executar o ExecuteJS
  5. Nossa que falta de atenção de minha parte, vlw Cassiano, agora não da mais erro ao executar ExecuteJS
  6. Colega eu queria usar uma função em java dentro da windev até achei esse video do Amarildo, porém ele não explica como criar o controle HTML CONTROL, se eu ignorar esse parametro e tentar usar da erro, dizendo que não existe um controle HTM CONTROL mais não explicar sobre esse parametro,
  7. Aqui uso a versão 24, pior que uma outra vez tive o mesmo problema, naquela ocasião eu acabei usando o controle supercontrol deixando o mesmo fora da janela, e qdo ativado mudava a posição dele para dentro da janela, consigo usar window internal aqui apenas como menu lateral ou colocando dentro de um dashboard para resolver meu problema aqui, acabei usando o controle layout, e aproveitei a propria window internal do menu para isso, deixando invisível os menu qdo clicado na opção pesquisa, acabou ficando até legal usando dessa forma, uma outra hora com mais calma vou tentar descobrir o pq não consigo chamar uma internal com open IW_menu.MZ_menu_4..Visible = False IW_menu.MZ_menu_5..Visible = False GR_pesquisa..visible = true
  8. Pessoal tenho um aplicativo com uma window de 11 plane, ao chamar uma janela internal ele simplesmente passa para o plane 1, no emulador conforme imagens abaixo da certo, alguém teria alguma dica, tentei chamar com open, openchild, openmobile e nenhuma deu certo.
  9. Cassiano não tem nada no código, pior que a segunda vez que tendo usar janela internal sem sucesso, se eu criar uma simples janela com um botão e chamar a internal ele não abre.
  10. Pessoal alguém poderia me dar alguma dica de como identificar um aparelho. tentei usar o SysIdentifier() mais da erro na hora de gerar o apk IF NOT InAndroidSimulatorMode() THEN sIdentifier is string sIdentifier = SysIdentifier() EDT_chave=sIdentifier END outra opção que achei no help foi SysIMEI("Cellular Line")), mais pelo que entendi preciso colocar o nome do aparelho, queria algo mais pratico, a finalidade seria liberar o acesso a um sistema. Obs: preciso ter algo do aparelho gravado num webservice, quando o usuario for acessar o apk, o sistema verifica essa informação e busca no webservice, se encontrar ele acessa, caso contrario não. Obg
  11. Pessoal não consigo usar o menu lateral do lado direito, só do lado esquerdo que da certo, alguém teria alguma dica, obg https://ibb.co/Mf9yWjC
  12. Colega já imaginava isso, vou pensar em algo aqui, depois retorno ao tópico, obg
  13. Cassiano obg pela sua resposta, com ela parou de dar o erro de sintaxe, porem não entrava na array(só não tinha respondido antes, pois estava tentando aqui) Vilani vlw pela resposta, com sua dica deu certinho o retorno agora. o código ficou assim: teste is httpRequest teste.Method=httpPost S_URL is string="https://apipefin.scnbrasil.com.br/v1/" teste.URL=S_URL resposta is httpResponse= HTTPSend(teste) IF ErrorOccurred THEN Error(ErrorInfo(errFullDetails)) ELSE EDT_RESULTADO=resposta..Content END _erro is Structure mensagem is string logid is string END _cadastro is Structure codigoerro is string erro is _erro END stEstrutura_cadastro is _cadastro Deserialize(stEstrutura_cadastro,resposta..Content,psdJSON) Info(stEstrutura_cadastro.codigoerro) Info(stEstrutura_cadastro.erro.mensagem) Info(stEstrutura_cadastro.erro.logid)
  14. Pessoal veja se alguém pode me ajudar nesse retorno {"codigoErro":99,"erro":{"mensagem":"Erro do servidor - tente novamente e se o erro persistir entre em contato com o suporte","logId":"c7a1beb"}} Tentei usar o exemplo do Amarildo da receita, mais diz que o retorno do JSON não tem elemento array nele, veja meu código. teste is httpRequest teste.Method=httpPost S_URL is string="https://apipefin.scnbrasil.com.br/v1/" teste.URL=S_URL resposta is httpResponse= HTTPSend(teste) IF ErrorOccurred THEN Error(ErrorInfo(errFullDetails)) ELSE EDT_RESULTADO=resposta..Content END _erro is Structure mensagem is string logid is string END _cadastro is Structure codigoerro is string erro is array of _erro END stEstrutura_cadastro is _cadastro Deserialize(stEstrutura_cadastro,resposta..Content,psdJSON) // aqui diz que json não esta retornando nenhuma array Info(stEstrutura_cadastro.codigoerro) // aqui o retorno esta ok FOR EACH _erro OF stEstrutura_cadastro.erro Info(_erro.mensagem) Info(_erro.logid) END o que percebi que no caso da receita quando o retorno vem em array tem um ( [ ) no inicio e outro o final ( ] ) { "atividade_principal":[{"text":"Desenvolvimento de programas de computador sob encomenda","code":"62.01-5-01"}] }
  15. Vlw Cassiano deu certinho, já tinha desmarcado todos checkbox possiveis, mais esse ai estava bem escondido(rsrsrs)
  16. Boa tarde, pessoal quando se usa essa combinação ( ctrl e rolar a bolinha do mouse pra baixo ) a tela aumenta e diminui de tamanho, tem como bloquear isso. Obg
  17. Boa noite, aproveitando o tópico, não consigo usar as tecla F? no code(key pressed) de uma table IF KeyPressed(Asc(CR)) THEN ExecuteProcess(BTN_selecionar,trtClick) // funciona END IF KeyPressed(VK_SPACE) = True THEN Info("SPACE") // funciona END IF KeyPressed(VK_F6) = True THEN Info("F6") // não funciona END IF KeyPressed(VK_F7) = True THEN Info("F7") // não funciona END no inicio do sistema já coloquei essas duas linhas EXTERN "KeyConst.WL" EXTERN "WinConst.WL" Algum colega teria alguma dica, obg
  18. Colega ainda não trabalho com analisys, vou pesquisar sobre o HDescribeConnection Obg
  19. Pessoal alguém sabe me dize qse consigo trabalhar com dois banco de dados ao mesmo tempo hoje para conectar eu uso assim gnConexao = SQLConnect(p_endereco, p_usuario, p_senha, p_Banco, "MySQL") o detalhe se eu fazer uma nova conexão eu perco a de cima Obg
  20. Pessoal sempre acesso o banco de dados usando a porta 3306 gnConexao = SQLConnect(p_endereco, p_usuario, p_senha, p_Banco, "MySQL") porem estou com um caso aqui aonde a porta 10536, pela sintaxe do SQLconnec não consigo descobrir como enviar essa informação Obg
  21. Pessoal queria compra uma impressora Bluetooh para usar na windev mobile, algum amigo poderia indicar alguma, tipo essa de baixa será que da certo. https://www.americanas.com.br/produto/1710024322/mini-impressora-bluetooth-termica-portatil-58mm-android?WT.srch=1&acc=e789ea56094489dffd798f86ff51c7a9&epar=bp_pl_00_go_inf-aces_acessorios_geral_gmv&gclid=CjwKCAjw8df2BRA3EiwAvfZWaFR-z0ozSUgCuyLZGqESo_e41fytNp7wBxJDQhxdP-iQhSgYJujazxoCcpwQAvD_BwE&i=5ed0855249f937f62523f63d&o=5ebe2c36f8e95eac3db673da&opn=YSMESP&sellerId=32142035000151&sellerid=32142035000151&wt.srch=1#info-section Obg.
  22. Colegas preciso fazer uma busca numa array, aonde o resultado pode ser mais de 1 registro, como faço para percorrer dentro dela, depois de localizado o primeiro item. nResultado = ArraySeek(arrParcelas,asLinear,1,arrPedidos[x,17]) IF nResultado <> -1 THEN arrParcelas[nResultado,5]="Teste" END Obg
  23. Jânio como vc veio do xharbour, veja o código abaixo, aqui eu utiliza uma tabela a parte apenas para o controle desses numero, que no meu caso tb não pode ser o campo ID, trabalho com mysql. function fSequencia_generica(cAlias,cCodcli,cCampo,nTamanho,nTabela) local nSqlro1,aCad,aCad1,aca1,cSql1 local aSql:={} default cCampo:='codigo' default nTamanho:=7 aCad:="SELECT "+ccampo aCad+=" FROM "+cAlias aCad+=" WHERE uso1='N'" aCad+=" AND uso2='N'" aCad+=" AND tabela ='"+nTabela+"'" SqlExecute("commit") aSql:=SqlArray(aCad) if len(aSql)=0 aCad:="SELECT "+ccampo aCad+=" FROM "+cAlias aCad+=" WHERE tabela ='"+nTabela+"'" aCad+=" ORDER BY "+cCampo+" DESC LIMIT 1 " SqlExecute("commit") aSql:=SqlArray(aCad) if SQLErrorNO() > 0 MsgStop("Numero do Erro SQL.: " + STR(SQLErrorNO(),10,0)+CHR(13)+CHR(13)+SQLErrorMsg()+" "+'cBanco',"sistema") return(.F.) endif if LEN(aSql)==0 nSqlro1:=STR(1) nSqlrow=str(Val(nSqlro1)) cCodcli=(StrZero(Val(nSqlro1),nTamanho)) else nSqlro1:=aSql[01,01] nSqlrow=str(Val(nSqlro1)+1) cCodcli=Strzero((Val(nSqlro1)+1),nTamanho) endif SQLBeginTrans() cSql1:=" UNLOCK TABLES" sqlexecute(cSql1) SQLEndTrans() SQLBeginTrans() cSql:="INSERT INTO "+cAlias+" ( tabela,codigo,uso1,uso2 )" cSql+="VALUES( "+any2sql(nTabela)+" , "+any2sql(cCodcli)+" , "+any2sql('S')+" , "+any2sql('N')+" )" SqlExecute(cSql) if SQLErrorNO() > 0 fMensagem() return(.f.) endif SqlExecute("commit") SQLRollBack() SQLEndTrans() SQLRefresh() else cCodcli=(strzero(val(aSql[1,1]),nTamanho)) SQLBeginTrans() cSql:="UPDATE "+cAlias+" SET" cSql+=" uso1="+Any2Sql('S')+" " cSql+=" WHERE codigo="+Any2Sql(cCodcli)+" " cSql+=" AND tabela='"+nTabela+"'" sqlexecute(cSql) if SQLErrorNO() > 0 fMensagem() return(.f.) endif SQLExecute("commit") SQLRollBack() SQLEndTrans() SQLRefresh() endif return(NIL) exemplo de uma aplicação que uso isso, cadastro de produto, preciso do código do produto antes de incluir ele, qdo clico em novo ele pega o numero e deixa o campo USO1 com S, caso eles sair sem gravar faço um UPDATE deixando este campo USO1 como N, aonde sera aproveitado para o próximo cadastro.
  24. consegui aqui, dessa forma deu certo PROCEDURE kardex_novo(arrkardex is dynamic array)
  25. Pessoal estou com a seguinte situação aqui aqui chamo uma procedure, enviando como parametro uma array kardex_novo(arrKardex) aqui é a declaração de minha array PROCEDURE kardex_novo(arrKardex is array of 1 by 9 ANSI string) ele da erro em tempo de execução, tipo se tiver 7 registros(linhas) na arrKardex, ele espera essa sintaxe PROCEDURE kardex_novo(arrKardex is array of 7 by 9 ANSI string) em tempo de execução nunca irie saber o numero de linhas, como seria a forma correta de fazer essa declaração Obg