Ir para conteúdo
  • Cadastre-se

datilas

Membros
  • Total de ítens

    521
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por datilas

  1. 49 minutos atrás, johnbh3 disse:

    Bom dia

     

    {"nomeBeneficiario":"PERFILSIS DESENVOLVIMENTO DE SOFTWA","cnpjCpfBeneficiario":"08030107000194","tipoPessoaBeneficiario":"JURIDICA","dataHoraSituacao":"15\/07\/2021 00:00","codigoBarras":"07796869600000010000001112050675100701552434","linhaDigitavel":"07790001161205067510207015524346686960000001000","dataVencimento":"29\/07\/2021","dataEmissao":"14\/07\/2021","seuNumero":"6","valorNominal":10.00,"nomePagador":"BIO MOVEIS E DECORACOES LTDA","emailPagador":"[email protected]","dddPagador":"11","telefonePagador":"44363936","tipoPessoaPagador":"JURIDICA","cnpjCpfPagador":"01281218000124","codigoEspecie":"OUTROS","dataLimitePagamento":"27\/09\/2021","valorAbatimento":0.00,"situacaoPagamento":"BAIXADO","situacao":"PAGO","mensagem":{"linha1":"MULTA DE 3,50 E JUROS DE 0,25 AO DIA APÓS O VENCIMENTO","linha2":"Nosso whatsapp (31) 98856-1070 - nosso site www.perfilsistemas.com.br","linha3":"Boleto emitido através do software GestãoClick - www.gestaoclick.com.br","linha4":"","linha5":""},"desconto1":{"codigo":"NAOTEMDESCONTO","taxa":0.00,"valor":0.00},"desconto2":{"codigo":"NAOTEMDESCONTO","taxa":0.00,"valor":0.00},"desconto3":{"codigo":"NAOTEMDESCONTO","taxa":0.00,"valor":0.00},"multa":{"codigo":"VALORFIXO","data":"2021-07-30","taxa":0.00,"valor":3.50},"mora":{"codigo":"VALORDIA","data":"2021-07-30","taxa":0.00,"valor":0.25},"valorTotalRecebimento":10.00}

     

    Estou tentando ler este JSON. Quando eu tenho mais de um NO eu consigo ler os dados do JSON.

     

    Eu agora estou precisando pegar a situação do boleto que neste JSON esta como pago.
    Tudo tento fazer como se fosse um JSON simples sem no da acess violation 

     

    Alguém pode me ajudar com pego a situação do boleto? 

    Pessoal,

    Deu certo aqui
    fiz isto

     

    var
      js:TJSONObject;

    begin
      js:=TJSONObject(TJSONObject.ParseJSONValue(Memo1.Text));
      if js<>nil then
      begin
          ShowMessage(TJSONArray(js.Values['situacao']).ToString);

    não entendi seu problema, mas vc poderia pegar o status assim:

    ShowMessage(js.Values['situacao'].ToString);

    pois nesse json não tem nenhum array,

    mas seu codigo esta funcionando pra mim perfeitamente,

    tente explicar melhor seu problema.

  2. 1 hora atrás, Dfox disse:
    select RC.CODIGO
                        from C000049 RC
                        where substring(RC.CODIGO from 1 for 10) = QRC.CODCONTA and
                              char_length(QRC.CODCONTA) = 10

    nesse select esta retornando mais de um resultado, vc deve filtrar melhor para que esse select retorne apenas um resultado.

    eu usaria:

    update C000050 QRC
    set QRC.CODCONTA = (select first 1 RC.CODIGO
                        from C000049 RC
                        where substring(RC.CODIGO from 1 for 10) = QRC.CODCONTA and
                              char_length(QRC.CODCONTA) = 10)
    where char_length(QRC.CODCONTA) = 10

    ai ele traria apenas um resultado, mas cuidado com isso, nada garante que será o registro que vc precisa, então de uma olhada melhor nos filtros

  3. tentando ativar o tef paygo com ACBrTEFDTipo := gpPayGo;

    esta gerando o erro: Nome do executável do Gerenciador Padrão não definido

    na unit ACBrTEFDPayGo.pas

    alterar a linha 301

    de: GPExeName := '';

    para: GPExeName := CACBrTEFDDial_GPExeName;

    Errado:

    constructor TACBrTEFDPayGo.Create(AOwner : TComponent);
    begin
      inherited Create(AOwner);
    
      ArqReq    := CACBrTEFDPayGo_ArqReq;
      ArqResp   := CACBrTEFDPayGo_ArqResp;
      ArqSTS    := CACBrTEFDPayGo_ArqSTS;
      ArqTemp   := CACBrTEFDPayGo_ArqTemp;
      GPExeName := '';
      fpTipo    := gpPayGo;
      Name      := 'PagGo' ;
    
      fSuportaNSUEstendido := True;
      fSuportaReajusteValor := False;
      fSuportaViasDiferenciadas := True;
    
      if Assigned(fpResp) then
        fpResp.Free ;
    
      fpResp := TACBrTEFDRespPayGo.Create;
      fpResp.TipoGP := fpTipo;
    end;

    Certo:

    constructor TACBrTEFDPayGo.Create(AOwner : TComponent);
    begin
      inherited Create(AOwner);
    
      ArqReq    := CACBrTEFDPayGo_ArqReq;
      ArqResp   := CACBrTEFDPayGo_ArqResp;
      ArqSTS    := CACBrTEFDPayGo_ArqSTS;
      ArqTemp   := CACBrTEFDPayGo_ArqTemp;
      GPExeName := CACBrTEFDDial_GPExeName;
      fpTipo    := gpPayGo;
      Name      := 'PagGo' ;
    
      fSuportaNSUEstendido := True;
      fSuportaReajusteValor := False;
      fSuportaViasDiferenciadas := True;
    
      if Assigned(fpResp) then
        fpResp.Free ;
    
      fpResp := TACBrTEFDRespPayGo.Create;
      fpResp.TipoGP := fpTipo;
    end;

    Segue unit alterada:

    ACBrTEFDPayGo.pas

  4. 1 hora atrás, Rodrigo Cunha disse:

    Execute Block (dtvencto timestamp = ?data)

    dbexpress não sei mas com firedac usa assim:

    Execute Block (dtvencto timestamp = :data)
    update tabela set campo=:dtvencto
    ...


    fdquery.ParamByName('data').AsDateTime := Now;
    fdquery.ExecSQL;

    no zeosdbo usa assim:
    Execute Block (dtvencto timestamp = &data)
    update tabela set campo=:dtvencto
    ...

    ZQuery1.ParamChar:='&';
    ZQuery1.ParamCheck:=False;
    ZQuery1.ParamByName('data').AsDateTime := Now;
    ZQuery1.ExecSQL;

    • Curtir 2
    • Obrigado 1
  5. 21 minutos atrás, Rodrigo Cardilo disse:

    Bom dia Amigos,

    Estou com um problema na emissão NFC-e em MG que já procurei no fórum e não achei nada semelhante.

    Quanto emito uma nfc-e e em algum produto da venda tem algum NCM incorreto ou inexistente é retornado o seguinte erro:

    778 - Rejeição: Informado NCM inexistente

    O motivo eu sei o problema é descobrir qual item está com esse NCM incorreto. Na NF-e a mensagem retorna o número do item porém não achei nada no retorno da NFC-e.

    Segue anexo o xml do retorno.310003554380957-pro-rec.xml

    Alguém tem alguma rotina para verificar se o NCM é válido ou existe?

    Grato desde já.d

    eu uso o ACBrIBPTax e mantenho as tabelas ibpt sempre atualizada e antes de enviar a nfe/nfce eu verifico se o ncm existe nas tabelas ibpt "TabelaIBPTaxMT21.1.G.csv" por exemplo

     

    2 minutos atrás, Rodrigo Cardilo disse:

    Oi @Cristofer Rodrigues, Eu inclusive tenho uma lista atualizada que pode ser baixada no próprio portal. Meu problema é saber qual item da venda está errado.

    Grato mesmo assim

    se a menssagem de erro for padrão alterando só o item vc pode capturar o nr do item na mensagem de erro

  6. 6 minutos atrás, Rodrigo Cunha disse:

    Não sei a a dúvida seria aqui, mas...


    É que pesquisei e o parâmetro do execute block é ? e no delphi é :

    Quando coloco da forma acima no delphi dá um erro na hora da execução.

    Queria saber qual a forma pra eu colocar execute block pra funcionar numa query do delphi passando parâmetro de entrada.

    tenta assim é um exemplo de como eu uso e funciona:

    EXECUTE BLOCK(
    PARAM1 TIMESTAMP=?,PARAM2 VARCHAR(50)=?,PARAM3 INTEGER=?,
    PARAM4 TIMESTAMP=?,PARAM5 VARCHAR(50)=?,PARAM6 INTEGER=?
    )
    AS
    BEGIN
    INSERT INTO SUATABELA
    (CAMPODATA,CAMPOVARCHAR,CAMPOINTEGER)
    VALUES
    (:PARAM1,:PARAM2,:PARAM3)
    ;
    INSERT INTO SUATABELA
    (CAMPODATA,CAMPOVARCHAR,CAMPOINTEGER)
    VALUES
    (:PARAM4,:PARAM5,:PARAM6)
    ;
    END

     

  7. 24 minutos atrás, tatinaraujo disse:

    Sim, consegui entender por onde iniciar, o vídeo é bem bacana, já pesquisei várias coisas no google, mas infelizmente não sei se as perguntas que estou fazendo não estão muito claras ou se realmente não há conteúdo a respeito do que procuro. como já disse sou iniciante, já criei softwares basicos para banco de dados funcionando em rede local e ok, é bem tranquilo de trabalhar assim.

    Agora preciso de solução para esse banco funcionar via internet e não possuo nenhum servidor físico na empresa, precisaria desse bando ou em núvem ou hostpost ou alguma outra solução.

    com a mesma regra dos videos acima, vc pode alugar uma vps (amazon,azure,etc) e subir seu db e seu app servidor(micro serviços assim como o juliomar citou acima),

    mas lembre-se toda segurança é pouca na web, então configure firewall , senha no appserver, token ou jwt (tudo que vc possa colocar para não expor seu db nem sua vps)

  8. 49 minutos atrás, tatinaraujo disse:

    Então, até cheguei pensar nisso, porém cada usuário estará em um local diferente, serão vendedores em home office e o banco de dados sendo usado remotamente pela internet, chegamos pensar em hostpost para servidor. Sou iniciante, não tenho muita experiencia em programação, é um software que quero desenvolver para maior aprendizado. E para uso pessoal ou seja empresa da família. Precisava de soluções mais explicadas, como estou começando existem muitas coisas das quais ainda não sei como funciona e não entendo.

    Como por exemplo essa questão de criar o servidor funcionando remotamente e sendo acessado via internet pelos usuários, não faço nem idéia de por onde começar e como fazer essa ligação com o EXE do delphi. Ou exatamente qual tipo de banco de dados usar, consigo fazer por exemplo no IB o banco ou no Firebird? Dei uma olhada no REDIS e no RabbitMQ e não consegui entender bem como funcionam.

    talvez isso possa te ajudar:

    da uma olhada nos videos desse canal:

    https://www.youtube.com/channel/UCExEoXjNTmKLFLK2qpBSI5g

    considere que a parte do cliente não precisa necessariamente ser mobile, vc pode usar VCL desktop como cliente

    isso é só para te dar uma base de como iniciar, mas lembre-se o Google é seu amigo, desde que vc saiba o que procurar

     

  9. 4 horas atrás, DanrleiNascimento disse:

    o comando "Alt Gr + seta" esta fazendo com que a tela vire de posição. Tem como desabilitar esta função, para a tela não virar?

    isso é do driver da placa de video, vc pode desabititar isso no app que fica no tray, provavelmente é driver da intel.

    ja passei por isso, e resolvi desabilitando a inicialização do app do driver

    • Curtir 1
  10. 20 minutos atrás, DanrleiNascimento disse:

    Agúem sabe o comando para simular um clique na tecla "Alt Gr"? 

    Por exempo: 

    A tecla 'Enter' é VK_RETURN

    A tecla 'Esc' é VK_ESCAPE

     

    tenta:

    (Shift = [ssCtrl]) and (Key = VK_MENU)

    Alt Gr

    gera o click

    de char(17) e Char(18)

    Char(17) é VK_CONTROL (tecla Ctrl)

    Char(18) é VK_MENU (tecla Alt)

    • Curtir 1
  11. 1 hora atrás, doidopb disse:

    Então meu amigo, tá um mistério isso... Pelo navegador usando HTTP eu baixo normal, mesmo assim conferir a permissão e tá ok (775).

    Não sei que mistério é esse nesse servidor do UOL Host que só pelo Delphi dá isso.

    tente assim:

    // para emular o navegador opera (alguns servidores bloqueiam acesso de navegador desconhecido)
    IdHTTP.Request.UserAgent :='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 OPR/73.0.3856.344';
    S := UTF8ToString(IdHTTP.Get('http://www.meusite.com.br/arquivos/arquivo.sql'));

     

    • Curtir 2
    • Obrigado 1
  12. 48 minutos atrás, Juliomar Marchetti disse:

    acho que é bem isso mesmo.

    concatenar será via programaçaõ.

    mas dá uma olhada nos fontes o mesmo possui e tu já vai entender como funciona

    tem isso nos fontes

        {@prop DataFormula - Expressão matemática envolvendo campos, valores e literais. :/}
        property DataFormula: string read FDataFormula write SetDataFormula;

    mas não entendi como funciona

    e no: TRLCustomSystemInfo tem isso

    // a propriedade TEXT pode vir na seguinte forma: "Esta página # o relatório\|continua;encerra";

    mas não funciona com a DataFormula

  13. 19 minutos atrás, Daniel Simoes disse:

    O resultado do JSON, não é lido pelo outro lado ?

    pra falar e verdade eu não sei pois ele não vai ser lido por mim,

    mas eu resolvi usando json4delphi (que esta na pasta "Fontes\Terceiros" do acbr)e nele funciona certinho,

    é algum problema no fpjson que eu não consegui resolver.

    eu só não queria depender de nenhum componente externo pois é um projeto simples e eu vou ter que entregar os fontes para o cliente

    e ele não quer dependência externa para não gerar quebra quando houver uma possível migração ou atualização

    • Curtir 1
  14. Com esse teste:

    var
      jsObjValues: TJSONObject;
      rValor: real;
      cValor: currency;
      sValor: single;
      dValor: double;
    begin
      rValor := 1.23456;
      cValor := 1.23456;
      sValor := 1.23456;
      dValor := 1.23456;
    
      jsObjValues := TJSONObject.Create;
      jsObjValues.Add('REAL', rValor);
      jsObjValues.Add('CURRENCY', cValor);
      jsObjValues.Add('SINGLE', sValor);
      jsObjValues.Add('DOUBLE', dValor);
    
      Memo1.Text := jsObjValues.AsJSON;

    olha o resultado:

    {
    "REAL":1.2345600000000001E+000,
    "CURRENCY":1.2345999999999999E+000,
    "SINGLE":1.2345600128173828E+000,
    "DOUBLE":1.2345600000000001E+000
    }

    nada funciona, não sei o que fazer

  15. 6 minutos atrás, Daniel Simoes disse:

    Use "AsCurrency", que sempre será delimitado em 4 casas decimais

    ja tentei tambem, eu vi isso em outro post aqui mas não resolveu.

    segue um exemplo:

    o codigo é esse:
    uses
    fpjson
    
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      jsObjValues: TJSONObject;
    begin
      jsObjValues := TJSONObject.Create;
      jsObjValues.Add('VALOR',1.23456 );
      ShowMessage(jsObjValues.AsJSON);
    end;

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...