Ir para conteúdo
  • Cadastre-se

datilas

Membros
  • Total de ítens

    521
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por datilas

  1. uso lazarus 32 bits 2.0.10 windows 10

    eu tenho um campo VALOR no banco firebird do tipo DOUBLE PRECISION
    com o valor: 1,23456

    quando eu vou gerar um json com fpjon assim:
    jsObjValues.Add('VALOR', aDataSet.FieldByName('VALOR').AsFloat)
    o resultado é esse:
    "VALOR": 1.2345600000000000E+002

    se eu fizer assim:
    jsObjValues.Add('VALOR', 1.23456)
    o resultado é esse:
    "VALOR": 1.2345600000000000E+001

    no delphi funciona certinho
    "VALOR": 1.23456

    só para comparação:
    o campo ID é do tipo integer

    assim funciona:
    FieldByName('ID').AsInteger
    "ID": 1,

    assim não funciona:
    FieldByName('ID').AsFloat
    "ID": 1.0000000000000000E+000,

    alguem sabe como resolver no lazarus?

  2. Em 04/10/2020 at 17:31, felipeiw disse:

    To precisando montar um sql que traga o codigo, nome do cliente, total em vendas e total em trocas dos pedidos com data FATURA is null

    tabela PEDIDOS tem o codigo, tabela PEDIDOSITENS sao os itens vendidos e CLIENTES tabela de clientes

    dessa maneira da erro Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

    uso FB 2.0

    
    
    SELECT A.CODIGO, C.NOME
    (SELECT SUM(E.QNT * E.PRECO) FROM PEDIDOSITENS E WHERE A.NUMERO = E.NUMERO AND E.TIPO = 'VENDA') AS VENDAS,
    (SELECT SUM(F.QNT * F.PRECO) FROM PEDIDOSITENS F WHERE A.NUMERO = F.NUMERO AND F.TIPO = 'TROCA') AS TROCAS
    FROM PEDIDOS A, CLIENTES C
    WHERE A.FATURA IS NULL
    GROUP BY A.CODIGO, C.NOME

    Alguma sujestão por favor, travei nesse sql 

    Obrigado

    tenta assim:

    SELECT CODIGO,NOME,SUM(VENDAS) AS VENDAS,SUM(TROCAS) AS TROCAS FROM (
    SELECT A.CODIGO, C.NOME
    (SELECT SUM(E.QNT * E.PRECO) FROM PEDIDOSITENS E WHERE A.NUMERO = E.NUMERO AND E.TIPO = 'VENDA') AS VENDAS,
    (SELECT SUM(F.QNT * F.PRECO) FROM PEDIDOSITENS F WHERE A.NUMERO = F.NUMERO AND F.TIPO = 'TROCA') AS TROCAS
    FROM PEDIDOS A, CLIENTES C
    WHERE A.FATURA IS NULL
    )
    GROUP BY CODIGO,NOME

    precisaria de uma base para testar

  3. 3 horas atrás, freitagnx disse:

    Prezados!

    O que fazer quando temos um código de barras como este: '7988926061097'.

    Passou pela validação, porém o retorno na validação da NFC-e é de prefixo inválido?

    Qual a estratégia que vcs têm usado, ou recomendam?

    Você pode validar antes de enviar: (só pra constar acho que erraram ao digitar "789" para "798")

     sErro := ACBrValidador.ValidarPrefixoGTIN('7988926061097');
     If sErro <> '' Then
      ShowMessage(sErro);

     

    915545992_Semttulo.png.629cda903b0ef7f655399491008c3ae2.png

  4. 5 horas atrás, Ederson disse:

    Ainda estou vendo aqui como posso fazer, pois como está o sistema somente gera novo código do produto apos clicar no botão gravar !

    se você estiver usando GENERATOR ou SEQUENCE

    poderia retornar o codigo assim:

    suaquery.Close;
    suaquery.SQL.Clear;
    suaquery.SQL.Add('INSERT INTO SUATABELA (SEUSCAMPOS...) VALUES (:SEUSPARAMS...) RETURNING SEUCAMPOCODIGO');
    ...
    suaquery.Open;
    iCodigoProduto := suaquery.Fields[0].AsInteger;

     

  5. 7 minutos atrás, Ederson disse:

    Olá datilas, sua idéia me ajuda muito porque como você disse pode ter outras formas, mas com a sua pode abrir o caminho por mais simples que possa parecer  estava nebuloso aqui.

     

    Obrigado !

    você pode preencher o form de cadastro assim:

    seuform := Tseufrom.Create(Self);
    Try
     seufrom.iCodigoProduto := 0;
     seufrom.editNomeProduto.Text := seuXML.NomeProduto;
     seufrom.editNCM.Text := seuXML.NCM;
     seufrom.editCEST.Text := seuXML.CEST;
     ...
     seufrom.ShowModal;
    
     If seufrom.iCodigoProduto > 0 Then
      Begin
       FDMemTable1.Edit;
       FDMemTable1.FieldByName('seucampo').AsInteger := seufrom.iCodigoProduto;
       FDMemTable1.Post;
      End;
    Finally
     FreeAndNil(seufrom);
    End;

     

  6. 2 horas atrás, Ederson disse:

    Bom dia !

    Preciso de ajuda de como resolver uma implementação que gostaria de fazer no sistema, seria o seguinte:

    Eu importo os itens do xml de uma nota fiscal, para poder fazer vinculo com o cadastro, neste caso importo numa Memtable que ligo numa DBGrid, nessa grid tem uma coluna codigo cadastro (Produto) que é mostrada quando faço o vinculo e

    a partir da linha do produto importado chamo o form em tempo de execução do cadastro de produtos também, a minha dúvida como posso fazer para quando eu gravar o cadastro desse novo produto o seu código seja recuperado na Memtable (tabela temporária) que vincula o produto,

    gostaria de sugestões de como posso fazer isso. o banco é firebird e componentes firedac.

    Obrigado !

    você poderia criar uma variável (iCodigoProduto) no public do form de cadastro de produto e então:

    No botão salvar do seu cadastro popular a variável iCodigoProduto com o código do produto cadastrado

    seuform := Tseufrom.Create(Self);
    Try
     seufrom.iCodigoProduto := 0;
     seufrom.ShowModal;
    
     If seufrom.iCodigoProduto > 0 Then
      Begin
       FDMemTable1.Edit;
       FDMemTable1.FieldByName('seucampo').AsInteger := seufrom.iCodigoProduto;
       FDMemTable1.Post;
      End;
    Finally
     FreeAndNil(seufrom);
    End;

    lembrando que existe varias formas de se fazer isso, essa é apenas uma ideia

    • Curtir 1
  7. 39 minutos atrás, paaraujo disse:

    Prezados.

    Estou aqui compartilhando as alterações realizadas pelo Ednilson Dudar, as quais foram disponibilizadas em um grupo do Telegram e a pedido do mesmo, que fosse compartilhado aqui também.
     

     

    FortesRep-ce4-Preview.zip 43 kB · 1 download

    ja tentou postar no git do fortes?

    https://github.com/fortesinformatica/fortesreport-ce/pulls

    • Curtir 2
  8. 9 minutos atrás, Juliomar Marchetti disse:

    Tem coloca dentro de uma masterdata e coloca 2 registros

    como eu faria isso? 

    pois eu tenho:

    01 query para os dados do emitente (apenas um registro) header

    01 query para os dados do destinatário e Vendedor (apenas um registro) header

    01 query para os itens da venda (varios registros) subdetail

    01 query para os dados de pagamento (varios registros) subdetail

    sumary com os totais.

    tem algum demo para eu tentar entender?

    masterdata é um componente?

  9. 19 minutos atrás, Sérgio De Oliveira Santos disse:

    Olá, eu resolvi de outra forma. Usei o ghostscript para "empacotar" o PDF gerado pelo Fortes. Se quiser, eu mando a forma que fiz. 

    seria muito bom se você puder compartilhar com a comunidade.

  10. 22 minutos atrás, Milton Lima disse:

    Amigo, obrigada pela resposta. eu estava dando uma olhada no horse umas videos aulas da embarcadero e vi q da p fazer um servidor console com ele, mas gostaria de saber se da para consumir os dados com o horse também, sabe me dizer?

    https://www.restdw.com.br/

    tem componentes que se comportam como query 

    fica muito facil migrar ou começar do zero, basicamente vc faz select no cliente que faz todo trabalho com json

     

    • Curtir 1
  11. 9 horas atrás, Darlan Souza disse:

    Obrigado pela ajuda Juliomar.

    No KeyDown ele passa, porém infelizmente o efeito não mudou nada. Continuo tendo que teclar enter duas vezes para passar para a próxima coluna.

    Será a versão do lazarus? Estou usando a 2.0.8

    Qual versão vc usa ?

    tenta no onkeypress do dbgrid

    If Key = #13 Then
    
    Begin
    
    if dbgrid.SelectedIndex = 10 Then // ou dbgrid.SelectedIndex = dbgrid.Columns.Count
    
    dbgrid.SelectedIndex := 1
    
    Else
    
    dbgrid.SelectedIndex := dbgrid.SelectedIndex  + 1;
    
    End;

    é só adaptar  a sua necessidade.

    • Curtir 1
×
×
  • 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...