
teocomp
Membros-
Total de ítens
23 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que teocomp postou
-
Boa tarde! Como proceder para que aparece corretamente o valor das retenções federais para NFSe? Estamos preenchendo valor de IR e Valor de CSLL e esses valores serão retidos e tem que constar em Retenções Federais no DANFSe, como proceder neste caso? Desde já agredeço
-
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Bom dia Elton! Nós usamos o Mormot Framework, Na verdade, estamos trabalhando em transformar o sistema legado em um cliente, de um servidor Mormot, que roda MicroServiços SOA, (usando REST e JSON). A conexão é feita pelo Mormot, que busca os dados no banco de dados e devolve em JSON puro. O Mormot possui um método que converte o JSON puro em formato DataSet (Método JSONtoDataset) e o resultado desse processamento colocamos em componentes IBXQuery e UniQuery. Acho que ai que esta o grande problema, como vc disse, objetos e referencia! Na Query em si, não existe "conexão", deixamos elas inclusive Active := False e com a propriedade DataBase := nil, Mas os dados são populados corretamente nelas, porém com essa questão da referencia, não conseguimos acessar as propriedades pelos nomes dos campos (TFields) e isso é usado no programa todo milhares de vezes. Na verdade estamos tentando achar uma forma de não passar milhares de vezes no código do programa legado pra tornar viável essa transformação da aplicação. Será que se a gente processar os dados resultado do Mormot e preencher os datasets manualmente, (Query), sem usar a função JSOntoDataSet do Mormot mas fazendo manualmente mesmo, por laços e preenchando campo a campo.. os DataSets (Query) precisam estar ativos (vai exigir conexão?) Seria esse o caminho? Abraço e obrigado pela ajuda Rodrigo -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Ok, Realmente nesse caso a conexão não foi feita, e nem será feita... Nós usaremos o DataSet apenas como um "containner", ele não está diretamente conectado ao banco nesse caso... Ainda não conseguimos sucesso, porém acredito que a grande questão está onde vc nos explicou Elton, que a atribuição a Query inicia uma nova instancia... Aqui UniQuery1 := TransformeemDataset('select id_empresa, nome_empresa from empresas'); Nesse caso, nossa Uniquery1 não funciona da forma que desejamos , pois o sistema passa ela por referencia em diversos métodos, o sistema usa herança tbm, enfim, o fato de criar essa nova instancia da Query tem sido o grande problema .. Vc tem algum material avançado de Datasets, ou mesmo de IBXQuery ou UniQuery para entendermos melhor essa questão da nova instancia, se existe alguma forma de usar o mesmo "objeto" sem criar essa nova referencia? A função pra automatizar a atribuição dos campos ali, tbm não deu certo ainda, mas acreditamos que se o resultado de TransformeEmDataset() ficasse na Uniquery1 que esta em tempo de design (arrastada) no form, ou no datamodule, nossos problemas seriam sanados Onde consigo mais informações sobre isso? Att Rodrigo -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Ao alterar pra TField(FindComponent(Nome_Field) não compila, ele diz : Left side cannot be assigned to O problema esta no lado direito da atribuição? Isso aqui então: TUniQuery(FindComponent(Nome_Query)).FieldByName(Aux_Nome[i]) Porque, debugando, essa parte acima vem sempre vazio, retorna um TField vazio... -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Ola pessoal, Criamos o seguinte: procedure Data.Mapear_Fields(Nome_Query: String; Tipo_Query: Integer); //Tipo_Query 1 = IBX 2 = Unidac var Aux_Nome: TStrings; i: Integer; Nome_Field: String; begin Aux_Nome := TStringList.Create; if Tipo_Query = 2 then TUniQuery(FindComponent(Nome_Query)).GetFieldNames(Aux_Nome) else TIBQuery(FindComponent(Nome_Query)).GetFieldNames(Aux_Nome); for i := 0 to Aux_Nome.Count-1 do begin Nome_Field := Nome_Query + Trim(Aux_Nome[i]); showmessage(TUniQuery(FindComponent(Nome_Query)).FieldByName(Aux_Nome[i]).AsString); if Tipo_Query = 2 then TField(Nome_Field) := TUniQuery(FindComponent(Nome_Query)).FieldByName(Aux_Nome[i]) else TField(Nome_Field) := TIBQuery(FindComponent(Nome_Query)).FieldByName(Aux_Nome[i]); end; Aux_Nome.Free; end; Compila sem problemas, porém, o resultado nos fields vem vazio.. debugando.. a atribuição a TField(Nome_Field) funciona ok, GetFieldNames tbm funciona ok, a TString é preenchida com a lista de campos corretamente O problema está na atribuição onde tem o FieldByName (Ou Fields[x], tbm testamos e dá o mesmo problema) Ao Chamar a Query direto sem o findcomponent ali dá certo, mas sem o findcomponent ( somente com o nome da variavel ) não dá, e recebemos um AV Resumindo, o problema está em TUniQuery(Findcomponent(Nome_Query)) TUniQuery(Nome_Query) não funciona e o código acima compila mas os campos vem vazios.. Em aux_nome esta tudo correto, e se eu trocar por MinhaQuery.FieldByName(Aux_Nome) tudo ok tbm... Porém, como queremos uma função genérica, isso não é possível... (Desconsiderem o showmessage do código !!! ) Acho que estamos indo pro caminho errado talvez.. talvez uma nova referencia ao DataSet esta sendo alimentada em branco, etc... Qual seria o caminho correto? Como proceder? Desde já agradecemos Rodrigo -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Boa tarde pessoal, Alguém pode ajudar? Isso aqui não está compilando, diz que o lado esquerdo não pode ser atribuido: procedure TData.Mapear_Fields(Nome_Query: String; Tipo_Query: Integer); var Aux_Nome: TStrings; i: Integer; begin Aux_Nome := TstringList.Create; TDataSet(Nome_Query).GetFieldNames(Aux_Nome); for i := 0 to Aux_Nome.Count-1 do begin TField((Nome_Query + Trim(Aux_Nome[i]))) := TDataSet(Nome_Query).FieldByName(Aux_Nome[i]); // <<-- Essa linha não compila end; Aux_Nome.Free; end; Alguma luz? -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Perfeito eu estava estudando alguma forma Descobri o método GetFieldNames dos TDataSets que retorna uma StringList com o nome dos campos Mas to travado até ai.. Vou continuar os estudos pra tentar elaborar um método que automatize o UniQuery1ID_EMPRESA := UniQuery1.Fields[0]; com um laço For por exemplo, algo do tipo.. recebendo o nome da Query , pegando os campos e tentando fazer essa atribuição.. só não sei como ainda, mas vou estudar Abraço Elton e obrigado pela grande ajuda! Boa viagem! Rodrigo -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
teocomp replied to teocomp's tópico in Object Pascal - Delphi & Lazarus
Obrigado Elton, realmente funciona dessa forma! Porém, uma instrução dessa para cada campo adicionado seria um trabalho enorme... Você disse que existem outras formas... Quais? Existe alguma forma de eu criar um método/função para automatizar esse processo? Como seria? Usando RTTi? Desde já agradeço! Rodrigo -
Dúvida avançada IBX (TIBQuery) e Unidac (TUniQuery)
um tópico no fórum postou teocomp Object Pascal - Delphi & Lazarus
Boa tarde a todos! Pessoal, preciso de um auxílio, Vou explicar a situação: Possuo uma Query (Exemplificando, pode ser do tipo TUniQuery) que possui os TFields adicionados nela. Ela foi "arrastada" para um DataModule, e os TFields adicionados em tempo de design. Um exemplo dessa situação: select id_empresa, nome_empresa from empresas Na UniQuery1 (TUniQuery) tenho dois Fields, ID_EMPRESA e NOME_EMPRESA adicionados, ou seja, UniQuery1ID_EMPRESA Integer e UniQuery1NOME_EMPRESA String Ok, até ai tudo tranquilo: Pra preencher ela, ao invés de usar o Open tradicional por um SQL informado, usamos classes e ORM, objetos e Listas e RTTI de um produto comercial, que transforma os dados colhidos do BD para o formato herdado TDataset Mais ou menos assim: UniQuery1 := TransformeemDataset('select id_empresa, nome_empresa from empresas'); (Simplificando a forma que utilizamos esse produto comercial fechado que não temos acesso ao código fonte para alterar) Esse método traz corretamente os dados para a UniQuery1. Ao acessar UniQuery1.Fields[0].AsInteger em tenho o código, UniQuery1.Fields[2].AsString eu tenho o nome da empresa tbm. Ele também trás propriedades corretas, Como RecNo, RecordCount, etc.. tudo certinho... se eu tiver 4 registros nessa tabela do BD ele traz RecordCount = 4 Também consigo recuperar os dados, usando FieldByName. exemplo: UniQuery1.FieldByName('ID_EMPRESA').AsInteger também retorna corretamente. Porém, ao acessar diretamente o TField da seguinte forma: UniQuery1ID_EMPRESA.AsInteger ou UniQuery1NOME_EMPRESA.AsString, não recebo valor algum. Ai vem a questão... a utilização desse produto comercial fechado é para um projeto legado grande, e a intenção é ter o mínimo possível de trabalho na migração para este produto comercial.. porém, no código fonte do programa legado, 90% das referencias estão da forma direta, UniQuery1ID_EMPRESA.AsInteger... milhares de referencias no código .... E é justo essa forma de chamada que não está funcional Gostaria de pedir ajuda dos mestres, se existe alguma forma de utilizar algum mapeamento de nomes dos TFields, Ou RTTi, ou alguma coisa que torne possível eu trazer para os nomes dos campos nas Querys os valores que já estão nela, de uma forma viável .. Basicamente, os valores estão na Query porém, precisamos acessar de forma direta o TField e isso não estamos conseguindo.. Existe alguma forma de mapear os nomes aos valores, usar ponteiros, Rtti ou coisa do tipo? Alguém pode nos ajudar? Att Rodrigo -
Mais informações a respeito desse problema Após usar o método LoadFromFile, em qualquer XML ( Anexei um a esta mensagem ), os seguintes valores estão nas tags: NFE.NotasFiscais.Items[0].NFe.Cobr.Fat ('160235', 557,94, 0, 557,94) NFE.NotasFiscais.Items[0].NFe.Pag (0) NFE.NotasFiscais.Items[0].NFe.Cobr.Dup () A tag Cobr.Dup vem vazia e acredito que outras tags tbm podem vir vazias nessa situação! 35180946919791000159550000000230151005985357-nfe.xml
-
Pessoal, abri um tópico referente a busca de informações da tag Cobr.Dup após o loadfromfile, e acredito que o problema que enfrento é o mesmo desse tópico aqui! alguém tbm está passando por isso? Já tentei reinstalar conforme citado e o problema persiste
-
Boa tarde, Na versão 4 da NFe ao importar o XML pelo ACBr, qual a forma correta de acessar a tag Cobr.Dup, pois não estamos conseguindo acessar os valores desta tag após mudarmos para a versão 4.0, nem mesmo pelo demo do ACBr NodePai := trvwNFe.Items.AddChild(Nota, 'Cobr'); Node := trvwNFe.Items.AddChild(NodePai, 'Fat'); trvwNFe.Items.AddChild(Node, 'nFat=' + Cobr.Fat.nFat); trvwNFe.Items.AddChild(Node, 'vOrig=' + FloatToStr(Cobr.Fat.vOrig)); trvwNFe.Items.AddChild(Node, 'vDesc=' + FloatToStr(Cobr.Fat.vDesc)); trvwNFe.Items.AddChild(Node, 'vLiq=' + FloatToStr(Cobr.Fat.vLiq)); for I := 0 to cobr.dup.Count - 1 do begin Node := trvwNFe.Items.AddChild(NodePai, 'Duplicata' + IntToStrZero(I + 1, 3)); with Cobr.Dup.Items[I] do begin trvwNFe.Items.AddChild(Node, 'nDup=' + nDup); trvwNFe.Items.AddChild(Node, 'dVenc=' + DateToStr(dVenc)); trvwNFe.Items.AddChild(Node, 'vDup=' + FloatToStr(vDup)); end; end; Esse código tbm não traz os valores da Tag (código retirado do demo) A forma de pegar esses valores mudou? Como proceder? Abraços Rodrigo
-
Projeto compilando em Delphi e em Lazarus
um tópico no fórum postou teocomp Object Pascal - Delphi & Lazarus
Boa tarde! Existe a possibilidade de um mesmo projeto Delphi ( iniciado no Delphi ) seja compilado pelo Lazarus ( unico código fonte ) , recebendo atualizações no fonte dos dois lados ( Exemplo. Um PC com Delphi Berlin, mandando alterações no mesmo fonte que uma outra estação com Lazarus ) ??? Isso é trabalhoso de conseguir? Att Rodrigo -
Também estamos enfrentando o mesmo problema na data de hoje, após realizarmos o SVN Update Realizamos sempre as atualizações do ACBR, uma vez por mês, e dessa vez, não estamos conseguindo compilar o ACBR pelo instalador Segue o Log log_Delphi_10.1_Berlin.txt
-
Dúvidas sobre Automação Comercial
teocomp replied to teocomp's tópico in Dúvidas Gerais sobre o ACBr
Boa tarde Daniel, Vamos atuar em SP, SAT e NFCe acredito, e talvez ECF Estamos com muita dúvida sobre a questão do TEF, se é necessário homologar, etc... Outra dúvida nossa é que nossos companheiros de software (concorrentes) implementam diversas regras de negócios e facilidades em seu sistema, que provavelmente tbm precisaremos ter pra não ficar pra trás.. Um software PDV de qualidade deve ter quais características/recursos em sua opinião? Desde já agradeço Att Rodrigo -
Bom dia! Pessoal, somos um softwarehouse que atua com sistemas de gestão e vamos iniciar totalmente do zero no mundo da automação comercial Queríamos se possível, dicas de vocês que já são mestres na área de como proceder com PDV, por exemplo.. Vocês adotam quais práticas de regras de negócio no PDV, exemplo.. o PDV é offline, caso cair a rede ele continua funcionando, depois sincroniza com a retaguarda, etc.. essa parte mais da arquitetura do negócio, que caminho devemos tomar? Desde já agradeço Att Rodrigo
-
Bom dia pessoal, Também estou com o mesmo problema, e depois de muito debug consegui entender o que ocorre, mas não consegui resolver! A aliquota de ISS para o Ginfes que meu cliente utiliza em Rio Preto - SP é de 3,87 Esse valor é recebido do banco de dados Firebird, de uma tabela com tal campo configurado como double precision. Usamos componentes IBX e detectamos na primeira vez que se atribui o valor 3,87 a tag Servicos.Valores.Aliquota ocorre tudo bem, o componente preenche com 3,87 corretamente o XML e da tudo certo, antes da primeira asinatura Após isso, quando o cliente tenta após a primeira assinatura, nossa aplicação estava enviando um valor alterado ... A atribuição é realizada de tal forma: Servico.Valores.Aliquota := Dm.QSeek.FieldByName('aliq_iss_ginfes').AsCurrency; na segunda ocrrencia, Dm.QSeek.FieldByName('aliq_iss_ginfes').AsCurrency estava vindo com 3,8701 o que era passado para o componente e o componente gerava 3,88 .. até ai tudo bem... Fizemos um cast na instrução SQL que traz os valores, (cast aliq_iss_serv as numeric(15,2)) e agora sempre é retornado para a aplicação o valor 3,87 ou seja, não mais vem como 3,8701 Porém, mesmo passando na segunda vez o valor correto ( e nos certificamos disso ), o componente tbm possui o mesmo "bug", ele altera o valor que passamos de 3,87 para 3,8701 Ao debugar essa linha aqui proGINFES: Gerador.wCampoNFSe(tcDe4, '#25', 'Aliquota', 01, 05, 0, (NFSe.Servico.Valores.Aliquota / 100), DSC_VALIQ); Na segunda vez, mesmo passando 3,87 corretamente o componente possui o valor 3,8701 , isso ocorre em todas as vezes Para nos certificamos do problema, resolvemos passar o valor 3,87 no código, sempre, atribuindo diretamente (Servico.Valores.Aliquota := 3.87;) e o componente na segunda vez, após a assinatura, sempre coloca 3,8701 Como proceder para truncar em duas casas decimais NFSe.Servico.Valores.Aliquota ?
-
LAMW - Lazarus Android Module Wizard
teocomp replied to jmpessoa's tópico in Object Pascal - Delphi & Lazarus
Muito interesante!!! jmpessoa Percebi que vc esta usando Mormot localmente no Android. It´s amazing!!! Dúvida: Em teoria, eu conseguiria usar todas as funcionalidades do Mormot no dispositivo, por exemplo, um apk que possui implementado um REST/HTTP Server do Mormot? Todos os recursos do Mormot funcionam? Att Rodrigo -
Bom dia a todos Pessoal, dei um update nos fontes aqui, (ultimo update meu do ACBR foi a 10 dias atrás) e não consigo rodar o acbr install Recebo essa mensagem aqui D:\componentes_d_10_1\ACBR\Fontes\ACBrSAT\Extrato\EscPos\ACBrSATExtratoESCPOS.pas(371) Error: E2029 '[' expected but '.' found D:\componentes_d_10_1\ACBR\Fontes\ACBrSAT\Extrato\EscPos\ACBrSATExtratoESCPOS.pas(372) Error: E2029 '[' expected but '.' found ACBr_SATExtratoESCPOS.dpk(36) Fatal: F2063 Could not compile used unit 'ACBrSATExtratoESCPOS.pas' Compilation failure Erro ao compilar o pacote "ACBr_SATExtratoESCPOS.dpk". Ja removi o acbr todo e tentei instalar denovo pelo acbrinstall e continua sempre a mesma mensagem... restauro o backup que fiz de 10 dias atrás.. instala normal Alguém tem idéia o que pode ser ? Desculpe pessoal, acho q postei no local errado.... Algum administrador pode mover para o local certo por gentileza? Desculpas novamente!
-
CEST - Rejeição 806 - Operação sem informação do CEST
teocomp replied to rafael.oasys's tópico in ACBrNFe
Ligamos no ambiente nacional, eles disseram que tem que acionar a Sefaz do estado, mas o Sefaz de são paulo pelo menos diz q telefone só na segunda quinzena de abril... é mole? -
Bom dia pessoal! Mesmo com o adiamento do CEST, enfrento essa mensagem ao enviar NFe para homologação em SP. Utilizamos o trunk2 Essa validação é da Sefaz? Eles que precisam retirar lá ou é algo que possamos resolver por aqui? Obrigado desde já
-
Ola, Boa tarde! Também estamos enfrentando o mesmo problema. Na frente do campo Beneficiário do Recibo do Pagador, o campo CPF/CNPJ saiu com os dados de agencia e conta do cedente, mas deveria sair o CNPJ do Beneficiário! Estou usando a versão em FastReport, o arquivo BoletoFR.fr3. Logo abaixo, o CNPJ do beneficiário sai corretamente, o problema é apenas no recibo do pagador! Isso já tem correção? Obrigado Teocomp Sistemas
-
Impressão Da �Danfe-Nfc-E No Rave Reports
teocomp replied to André F.'s tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Ola, Boa tarde! Qual a versão do FastReport para Delphi 7 que seria suportada pelo DANFE NFC-e? Precisamos imprimi-lo em A4 ... Desde já agradeço! Rodrigo