Jump to content

Pedro da Rosa

Membros
  • Posts

    19
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Pedro da Rosa's Achievements

Apprentice

Apprentice (3/14)

  • Reacting Well Rare
  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. Boa tarde! Migrei recentemente da versão 2010 para Alexandria do Delphi, tudo funcionando ok, apenas os Frames que eu tinha criado na versão 2010 que não aparecem na lista de frames no Alexandria. Alguém saberia me ajudar em como fazer com que eles apareçam? Os frames que eu crio já na Alexandria aparecem normalmente. Se eu copio o frame de uma tela que já tinha ele, eu consigo usar, mas não é o ideal.
  2. Valeu pelas respostas gurizada, me enrolei nos últimos dias e não conseguir agradecer propriamente. Mas pra fechar mais uma dúvida, estou fazendo o curso de Delphi Updates do @Thulio Bittencourt, estou no caminho certo? Tem algum outro curso dele que vocês me indicam? Curso, formação, qualquer que seja do tipo, tenho vários outros cursos mais avançados dele e também o Clube de Programadores, mas quero pegar bem essa base primeiro, entender bem as interfaces, generics e tal, em resumo, cansei de apanhar com código confuso rsrs
  3. Olá, Estou ajustando algumas dependências do meu código, e me deparei com o seguinte cenário: Tenho vários arquivos de Schemas dentro de uma pasta "Model/Schemas" e cada um desses arquivos é usado em diferentes arquivos, gerando dependências diretas do unit que preciso por exemplo "Model.Schemas.Schema1", mas tenho uma unit que deve ver todos os Schemas, e gostaria que essa unit conseguisse ver todos os arquivos dentro de Model/Schemas, mas tentei utilizar a dependencia "Model.Schemas" e essa não é aceita, teria uma forma de fazer isso? Não sei se fui claro, mas agradeço qualquer ajuda.
  4. Olá Leandro, valeu pela resposta! Interessante, dessa forma tu acaba trabalhando apenas com as interfaces sempre, no meu modelo eu tenho o TControllerCliente.New devolvendo a instancia do iCliente direto, talvez seja interessante a criação de uma factory para que o view não precise conhecer os controllers, acredito que seja uma alteração fácil de implementar e que daria um bom resultado nesse sentido. Outra coisa também é a interface de DAO, atualmente eu uso um iQuery diretamente ligado ao TIBQuery, como uso delphi 2010 é a opção que tenho, mas já sabia que para migrar seria doloroso. Não manjo muito de Generics para saber fazer a migração dessa parte, vou dar uma estudada, achei interessante esse formato. Agora uma dúvida sobre o teu esqueleto, funções específicas como verificar o limite do cliente, tu usa diretamente no iCliente? e para a persistência dos dados, tu tens um mapeamento da tabela de cliente no banco de dados?
  5. Olá, Estou refatorando um sistema legado e me surgiu uma dúvida sobre boas práticas, espero que possam me ajudar. Ambas as duvidas são relacionadas com o uso de interfaces, a primeira é sobre existir uma função na propriedade que devolve um objeto, para fazer a manipulação baseado nesse objeto, por exemplo: Uma interface de cliente, iCliente._Objeto, devolve um TCliente, que da acesso aos dados do Cliente, outras funções seriam para manipular esse TCliente, por exemplo, um iCliente.Select(1) seria uma função para retornar o cliente de código 1, dentro do iCliente._Objeto. Depois ainda posso fazer um iCliente.Alterar, para persistir alterações que fiz no iCliente._Objeto. Deu pra entender? Esta é uma boa prática no uso de interfaces? Fiz isso pois achei que seria um retrabalho desnecessário criar uma função para cada propriedade de TCliente, dentro da interface; A segunda dúvida, também sobre boas práticas com interfaces, é a de ter funções como "PreencherObjeto(Value : TForm)" que, recebendo um form, varre o mesmo utilizando RTTI e anotações nos componentes para preencher o _objeto da interface de forma automática, o contrário acontecendo com a função "PreencherView(Value : TForm)" que preenche a tela com os dados do _Objeto também utilizando RTTI e anotações nos componentes. Dessa forma consigo preencher uma tela com os dados de um Cliente, alterar o que quiser direto na tela e depois persistir as alterações sem precisar ficar alterando manualmente os dados no _Objeto. Trago essas dúvidas até para levantar uma discussão, talvez essa estrutura seja claramente ruim, um incrivelmente bem distribuída, mas trabalho sozinho, aprendi a programar sozinho, as vezes fico em dúvida se o que estou fazendo pode ser melhor de alguma forma. Agradeço desde já pela atenção!
  6. Não acredito que 1 post de bump seja considerado excessivo, mas não vai se repetir. Poderia me ajudar com minha dúvida?
  7. Olá, Estou tentando fazer o envio de vários e-mails em sequencia, nos testes ainda, mudando apenas o assunto e os destinatários. São dois e-mails, um deles com os destinatários corretos, outro com o destinatário incorreto, causando erro na emissão, até ai tudo bem. Mas gostaria de conseguir identificar o e-mail que teve problema, mas se no OnMailException eu tento identificar o assunto (por exemplo) que está no componente, ele já puxa o do último e-mail, que não é o que está dando erro. Em resumo, gostaria de conseguir identificar qual o e-mail está dando o erro, tanto para gerar um log correto quanto para mostrar para o usuário qual o problema. Outra informação que acho importante é de que estou usando o envio com thread: ACBrMail1.Send(True);
  8. Boa tarde, Estou fazendo uma impressão de etiquetas para um cliente, o qual deseja usar folhas A4 e não uma impressora de etiquetas diretamente. Já fiz a etiqueta base, que é basicamente idêntica às próximas, exceto pela informação de volumes, sendo a primeira "1/3", a segunda "2/3" e a última "3/3", isso em um exemplo com apenas 3 volumes, mas podem ser mais, infinitamente. Pensei em fazer uma cópia, em tempo de execução, da Band onde está toda a etiqueta, mas não funcionou, talvez eu tenha feito da forma errada, fiz algo bem básico nesse sentido: //no BeforePrint var band : TRLBand; begin band := TRLBand.Create(RLReportEtiquetas); band := RLBand1; end; A Band está com o BandType setado para btSummary. Tentei também o CarbonCopies, mas não encontrei forma de alterar as informações de volume como preciso. Tentei ainda, colocar várias Bands no Report, mas teria que prever um máximo de etiquetas e alterar uma a uma antes de imprimir, o que funciona, mas gostaria de saber se alguém conhece uma forma melhor. Agradeço desde já!
  9. Olá. Primeiramente peço desculpas caso tenha criado o tópico no local incorreto e também se essa dúvida já existir em outro tópico, mas realmente não encontrei o que preciso. Minha situação é a seguinte, meu sistema atualmente gera o .INI e manda para o ACBRMonitor, esse me é fornecido por um terceiro. Gostaria de trazer para dentro do meu sistema a geração da NFE usando o componente ACBRNfe. Acredito que o padrão seria alimentar o componente com os dados e gerar a nota a partir daí, mas atualmente, meu sistema ainda tem alguns problemas para notas específicas, e por algumas vezes é necessário editar o .INI para ajustar, na maioria das vezes é um valor que não calculou corretamente ou algum arredondamento que deu problema. Enfim, o que preciso, realmente, é saber se existe uma forma do ACBrNFe gerar, assinar, enviar o XML a partir de um .INI que eu indique. Tem como? Agradeço desde já a atenção.
  10. Segui mexendo e entendi que os dados estão todos no *ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[0].XML*. Com isso usei um TStringList para criar o arquivo .XML a partir da função "SaveToFile" do próprio TStringList. Pra mim está tudo resolvido, muito obrigado!
  11. Obrigado pela resposta BigWings. Era exatamente ai que estava me perdendo, não conhecia esse procedimento da nota sendo enviada compactada. Nem mesmo que o componente já faria essa extração. Minha dúvida agora fica para o "GravarXMLNoBD" eu passo a chave da nota e o valor do arquivo zipado. Depois disso ele me retorna diretamente o XML? Explico, preciso do XML no formato padrão para o meu sistema poder fazer leitura dele na entrada via XML. Como consigo o XML no formato padrão?
  12. Olá. Primeiramente gostaria de pedir desculpas caso o tópico esteja de alguma forma errado, tanto em teor como em localização. Mesmo depois de pesquisar pelo fórum ainda não consegui entender o que pode estar causando o meu problema, por isso este novo tópico. Minha dúvida é, como consigo fazer o download do XML com o DistribuicaoDFe? Estou testando diretamente no exemplo do ACBr, para entender o funcionamento antes de passar para o meu sistema, mas esbarro sempre no mesmo problema, uso o método ACBrNFe1.EventoNFe.Evento.New passando os parâmetros necessários conforme mostra no exemplo, sendo que em infEvento.tpEvento está sendo passado teManifDestConfirmacao. A parte da Manifestação corre ok, recebo a mensagem de que tudo correu bem e que a mesma já está vinculada à NF. Mas depois disso que vem o problema, pelo exemplo mesmo eu uso os metódos ACBrNFe1.DistribuicaoDFePorChaveNFe ou ACBrNFe1.DistribuicaoDFe e ambos me retornam um XML apenas me dizendo que o Documento foi localizado. Nesse ponto que sempre paro, já tentei fazer isso outras vezes e acabei desistindo, dessa vez preferi abrir esse tópico para tentar entender e resolver isso. Detalhes que talvez sejam importantes: Estou emitindo a NFe em ambiente de testes (2) e também alterei o sistema de exemplo do ACBr para funcionar em Homologação. XML que recebo como retorno: <retDistDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <tpAmb>2</tpAmb> <verAplic>1.2.0</verAplic> <cStat>138</cStat> <xMotivo>Documento localizado</xMotivo> <dhResp>2020-12-23T13:03:36-03:00</dhResp> -<loteDistDFeInt> <docZip schema="procNFe_v4.00.xsd" NSU="000000000000048">H4sIAAAAAAAEAO052XKjSrK/ouh5uTcc3Sxa6aAVUaxCYhObhN4QIHaQAIGkr58CbLV92nPm9J25MS/jMFRmVlbuVa40ZH7y1bJwR41fVk7x48vkG4p+Gd2yNK9+fAnr+vwdQdq2/XYuytpJT1HlOum3KD99O5YIXPtlScqc/1v8EOmWfFQoeD++QOpkjKMYPiZmGDr8YBNiOoXDgE3xMYaO0TmGQ7gT5flL0jW55WRMIt1IujK3fOOAJIiRuVMr56XFygwYycqI1Q3AKCQykMms8JbTKYl0I1n5ZeQvMRIZADKH66FOyNwJ8kI2i5Y4iqNfMfwrPjZQ9Hv/+xUdf+/UDQyQT3ciNq//nPWVh6zPUDZU2Y/QI8av6g5/hUhXuuYcDz1EO9+hTwMO1wnZeVjYARCHyquB0EOky1hL6Fk3wFmQHZd4N9kB5CmCLvWuvkIwLR4X5U7a636DO6pa+tVy3BN7kDzDeukchW68gSTMZldGy/E3DJLfsM4LKNrPIugILavr5cfUkkhPJG9ykflLIFECKxvsiGFHBkwTq4/wkaYclJEuQEwCOokMnOSNc2DsPswNS0bQxWGS9HPPL9le9U0MyqU2AoYIZENgAOTpKGReFjC/0OEOIG+UE5UQWAONEaQRxRpAFjreV3qfio+JgIu6Nw3olcIKmiCvOv5+AlajBg3uipJm1SUxIebobAGD02GkqzpdstDpAgrqYfLWD5QGdEGEQgYi8s4LgV1i8zmKj2foZE4iECVpzejy1Q2Qtefy+qrp44qOJ4vFDBYhDDa++BhsmfvKjlhJ6MIBx9H74K8USREVHtBAGX0d6XDWAqKijThBp4H4TEJv2lCkQ4BNMBLNgwDD9jHCfwzwSuChLkVVREH/NbywLlD8Q3hVRTOUERBZXmP/UXjh2YCivx3eU5H70D5iMYMae+Q14oNbsOQF9rkhn0iXCZSY4XNiAl9DJpAh7p5fj3Kh9rMfX7Av/VbxOmu6AUW/od1JM2CkywJ52cWWNwQZUjsUGtnNqUADnKkrnZk9r0xLy0UfGRzumQ6DTuvGEp6LkynaOw0xkuYUdTmdoFBJD5JXusiWKk0iPUBeujf2rdt8JNIjZGPmPRH9hj5/4P4dqGTTq+8nIfGn3UYZHf9ge08ir/3QaxwIl3546hyIUPxA/kXrMA8jbRRvMe+g/qCBuqPsXFQ1LBWBlvThrcsYii/JooyC7kDqR5LWFV2G4mFSBxDm6CcvMqxWheEF0ujSLenC2fHDQDYUvXx1GkLkuWNFX33oERiZV1IXl46APCUhPU4rnCA/x7+g43XBU82bgObdBOR9IyPvBSNP6jNCsB4/liP+WTnO/ko56ma3Adn/l2rEf7sa8X+5GvH/VuN/vBrHn1Tj7D9/OI4/K8fxn5Uj8S+X4/jzcvxV63/L8d9bjnVRd1fczuE+jn9Q2vSReCUMUekHeAUo8vf0gUA2HK2+kTuwk9f59Cax9+snoUch30/KgLwSNWjhe3qHv/09/ngENlzp1/6TuUegIj94aoIg2UAr3TdKD0NvhKcbQoeqP3H1lcD4TZG+ow74rxn+B4lolGsNr3av1AEhm67hefOha3qQZwqQ15zUpZNXQ3c2OIT1Hdqbc50JF6szDG6bboSC+vfbOrc4wsvnyYEicw6+hyaug6BJ3S546u+xT6MjwuJ5sol9JfUCvStUkDPwjXb12kOkZ/m5+67hgyXWU6BkOP0U0/MivQRksPHsBP3BqHZj12LBcdjbPaWnY/DMGhiaHn3mvyMhb4uR8yDiBLzI7QH6nC7/hy68KChGdBr5ee1/X+DE+H87+f1sDwz8yNCXL0k9CmBvfC0/6+rb8beiDJCuo0BQAoEMXhUFf/syrPI9IT/BBNNOXuQRbPyjh1NHRS75dVh4I5AG8ASqw+wzkYbWScUQjaW/QrFfXWySf+0osNuafhkh7+z6K+L+aGFZOV+r0MF6SZp/8kuYHX9kasKPL3/7/X88GF2dnYoyq97Bv2eRnzd+Wpx972v15lhv3F8U98/jhbw3kokC2J/8XyL3jNogwnLSq7+sx+V2Uq2OJ9QPLaOuCftlKq75xhbADxJ5z0kiz2hD+H2VPPM5MEYsffK25zMXK2hhEr6FOYXZ5DinSI94RwGCt5VSsIMVexJmW3XORtTGuvGz6/qy30S+QiFuen6YHFqZFXfatOVqtQBBMdHqu5+YccJeSsFoJ3TF4Nal5bhTeNbmMZ7T4UZfJwY/G8v641Awt4t6TxB7YSTyLfAbdkXUhbxYXzY3rlHuWmptikReT5F95gcicSmx9eKsputNney2ouSrxdmWp0eKyLFrjguC7vL+rUHi+WJ2cx6YdNaKLAkIWTuAl0N7Moj7ROW9fHOsMeIibqb++Izf1d0tZ7WCKs+NX0XafnyMK9QHUYqqwCLs6coMTrktRPjDdSqZuM/1C3t1t1uuuLDhemLsCiwVbDMLgh8/hqC/CzS58e9DBvZTlGCc2hkg2i/r6AS3LTxiJUFYJQZNU/ssAK1AgUAQ9ixhFsFRvuRoy2zt9aY4CGHjymDLitQWtF7MihJIeICZLBVK9DYVbuwDaFQgWxQoDDpJGZPGaDfjHs6uvckxQIe5yhAtObXH69TjubuzY4MDzwZmZsWHXYraOsUfdloK11UCrzUCu77be/l8pEEtcGt+G7OORAW9XnCTtK0pBWZisZpOrTXWWm91StcSoV2FrizFkMNgJ5IhYVLMTnc9jf1Ii2mKYH7PF/oB1sNcYIB0bUia2bKtzVjb7Yptb8zWlAUDtdZmkio6y964B7DefGdi6SY/BEwxXFRiQCsZNg6fVgb9epG9Y8ZhJ98Pey10szSEMQih36mNW2cPxknLrOSwX4dHmkqOd+rNpkAc/L5xMTCfuiwYr4hKRVNWTLYItgb7zq/KoHMK6pHTYyafbeiXGINqmJOMtbVWTZRTYFx3utn5AnWzZmCihLVL2Jn0SKDd0H6mf24yk7RBwEYSQHlav/C6cBwzW5YCWxOAiUAxLejmN6CA9bVlFExbMU3LXLTQY9cL/xbt7wcZXCb49EHnx0XCBVgsGfy8Wjl7blJsw6SOd+4N8eqxlwIGvbvH6a0NfCnacN4E15XF+XEew6s6GqIWI+FUUZryFtvbEruqG56YiMyFz9OTgjf5fPzSgkd2aYQ7FfmSfDnpB7Fd+4l4To3k+MjwctLMcoaqaLTwKm4rtfcHiyY4u4hfXtATqu7FuAkQPkcDwsPPsZyEaBo3E+TY4LLDC3DHFfThKMYBFpqhZVKqpmw49XF6WZsYHWhibb2E0o66vjz8hXY5ZrfUv0k6ms1mIdWs9A0Rtnsz8UPvxazBnhhrzHEfAfWeq4m33sTNwX4ktOhm3iWVFxf3UOGY8+BAIFEA8HEQbCK4p+k8BqcunytdYnkG7ALKmJmI6kmM9WKpB6zisK0n7/faHD2dGaD0vNsFBU4LmDiJpnzQHru61tCA4oP2EFMJFRxg0bM02JntLqZsKghKKmA5auvSQDtIzkpDXaZoRLi/XZ54OHutgXXciBkXu13t7tLuCcVMbo76NHIjIrTv2L3b807/cPdDJjSHFRWLu49r3OwQiTmVHOCerYPerhMl8FdJ4EuJUwLTodQwwQpvpbVKtIB6rfY4luG+IeA5s7ja3b566mGvNk7UYra+izgXi/t1euCtc/fY+3VmR0Rlj4Xa3kn1LzZk8v3IUGbBbQJTOCj/yGcpmobdOfeUq0/jI45e7VxoPpWL32I3wj6LxxXKqSTe5Gm64uGe4qiWpSguaa0HZb3LQQuKw/rflYNPbczB2Ibxvw7x12D87zD+TaDdOI2zKDPR1C1rMbtEVo1Uo7ZJKummRsGz47pFCbmgWZ7aURLYSnRBBQaX/tk5wwf81uZstqVAqwQsJSm/njtZoIA3Hj0Qb1ItGWYrPdip/HBx+Nzl2J5C3vvrmj99Csp9s29VgInB/MrjDXvKZIez9hl7BgS2sGltitqaK9BuP/u7yQQBPP84zn5ZLCblJbjDK8dtdpfBdXwG6kxQrJlMKetNeKLVyH3EPOwbGqDA1EfBBsdDgCO7y6xZz5LcOenaCS3h5UhhHMqanC+1Vh1tKMRo5vzq7MUvJZJhNFtsTtjswDXnC1jNqEh5SHluusk0nc1Wq8kt2yKHitgaJaIwGz0SuNXDUGeJAG80K/EgzWcVm8zEOtscpsjkYZ4afEPlFmdGrVa4gKbQNhxnWu7g+8LRHslK04+efZuv1ugC9exI1+88TqlWHklSHBpC6jxazpVOIORwjdpZMh/rLopK1a05TNEN14y9BRur3kuEe9V4lgA5Kg1nXh+mW00skSR0ry66mC+w9lG+vPCipqDwvM3YqPL3EY+/aI03b92TceeuN/sxqbC5ZyhNiVmcSNnCYedS4qHxzpGFAP4uYsV9WjL+MZlKi9CMHgS9CIgtRVvUOthqmidZ55Nl0/5+Z2s1kvALpF0rvBo9YoTW9j48rHksP2yY6YVfKIe5RdBVRESbnR9ccJMzxyDL6PulYMMW4+E1sJihVyo4ggmYeGfmcmc2KO6dFjP7NDmVdctPvEV+32AxYTN4YoWKg+cPk1VmL8gEU50b7FyI68MhEn2RN6dINnAZ2VRXbm3rbJ7OSnzVGrWPScadyYrFi7/Jc6E4jx9qShm2PAfgvoqpw+WO6UHZWKqDJBkSh9QLvNJMNm54cDCoeC6w6UaSnGi6Ve8SifzxtjhQhpsk8rxd/rx3QrjvLM9lUf/66fc3vx2rZVH/+j0TigTnFPaxmt414bBPm6DEBO8/RQ4TpBt2RvxOowd79H4N6YWa7x7r4v0XXQz7ji6+Txc/v+i+8pB5byLWaerkY9h8vICyBjIJu3F4D/8nHdQrE+nqtQNF9d+ye5C8SUUdNcUSXGvYwz0crxgVo2tVjDxnJHNf/e772MDRd/SDTuQ18hB6/d6//DsSbCQM+R8AAA==</docZip> </loteDistDFeInt> </retDistDFeInt> Espero que possam me ajudar e desde já agradeço!
  13. Olá amigos, gostaria de uma ajuda um tanto urgente, tenho um cliente de tempos que usa meu sistema com emissão de nfe pelo acbr, recentemente ele trocou o certificado dele de cartão para token, e se iniciou um problema, de tempos em tempos, 2, 3 emissões de nota, o token tranca, e a única forma de faze-lo voltar a funcionar é reiniciando a máquina, para prevenir a reinicialização constante instruí o pessoa que emite as notas a tirar e colocar o token a cada nota emitida, mas isso, em horários de pico, acaba se tornando quase inviável, gostaria de saber se algum dos amigos com mais conhecimento saberia me dar uma ideia, uma luz, do que pode estar acontecendo.
  14. realmente, ontem a noite fui olhar com mais cuidado o xml e encontrei o erro, já corrigi e já funcionou, no fim o campo ICMS_vBCSTRet=1171.1, era assim mesmo, e não zerado, mas muito obrigado a todos pela atenção!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.