Ir para conteúdo
  • Cadastre-se

dev botao

XML com valor default para campos obrigatórios


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 2018 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Olá a todos.

Temos diversos campos obrigatórios na geração do XML, dentre eles, apenas como exemplo, o modfrete.

Caso não seja informado valor algum, para esse campo na geração do XML, automaticamente é gerado com o valor do primeiro item do conversor, nesse caso 0.

Isso é possível que seja configurado, de forma que o componente não gere um valor default, mesmo sendo obrigatório?

Sei que apresentará erro na validação, mas pelo menos, se o usuário não informar nada nesse campo o componente não irá gerar nada default.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Marcelo,

Eu acredito que você pode impedir que o usuário informe valores errados ou até mesmo a falta deles através da sua aplicação.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
3 minutos atrás, Italo Jurisato Junior disse:

Bom dia Marcelo,

Eu acredito que você pode impedir que o usuário informe valores errados ou até mesmo a falta deles através da sua aplicação.

Bom dia Italo, muito obrigado pela rápida resposta.

Sim, essa é uma opção, mas no caso de campos obrigatórios de XML com múltipla escolha, como no caso do modfrete, se o usuário não informar nada nesse campo, não existe uma forma , de não lançar um valor padrão?

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Marcelo,

Nesse caso o que você acha de usar um TRadioGroup?

E você pode definir um valor padrão.

Escolha.jpg

  • Curtir 2
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Não importa a forma que é apresentado para o usuário, se ele não escolher uma opção.

Sei que se eu tratar essa obrigatoriedade do lado da minha aplicação, resolve e pronto.

Mas minha pergunta é, se o usuário não escolher nenhuma opção, e o aplicativo não tratar isso, é passado para o componente NULL, e o componente gera automaticamente 0 na tag modfrete.

Passo para o componente dessa forma: Transp.modFrete := StrTomodFrete(OK,tbl_NFe.FieldByName('ModalidadeFrete').AsString);

Mas se o usuário não escolhe nenhuma opção, o campo ModalidadeFrete, na base de dados será NULL e a tag Transp.modFrete, assumirá automaticamente, 0.

Existe uma forma de a tag Transp.modFrete, não assumir um valor padrão automaticamente?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Marcelo,

O componente na ausência de um valor sempre vai adotar um, se tratado de enumeradores como é o caso da modalidade de frete, se não informar será adotado o primeiro da lista.

Sempre foi dessa forma a anos.

Segundo, continuando no exemplo da modalidade do frete, o TRadioGroup permite definir um valor padrão que se você desejar pode ser configurável pela sua aplicação.

Vamos supor que o seu cliente ABC, 90 % das vendas o frete é por conta do destinatário, a sua aplicação através de configuração seta automaticamente essa opção, mas permite que o usuário altere.

Por outro lado o seu cliente XYZ, 90% das vendas o frente é por conta do emitente, da mesma forma a sua aplicação seta automaticamente essa opção, mas permite que o usuário altere.

Desculpe não vejo dificuldade nenhuma em você fazer esse tratamento na aplicação.

Da trabalho, sim da trabalho, mas quanto mais você conseguir evitar que usuário cometa erros, melhor.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
16 minutos atrás, Marcelo Calvi Belanga disse:

Passo para o componente dessa forma: Transp.modFrete := StrTomodFrete(OK,tbl_NFe.FieldByName('ModalidadeFrete').AsString);

A variável OK serve para esse verificação, caso após o comando de conversão ela esteja com o valor FALSE é sinal que o valor informado não é válido e foi assumido o valor default.

  • Curtir 1
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
30 minutos atrás, Italo Jurisato Junior disse:

Marcelo,

O componente na ausência de um valor sempre vai adotar um, se tratado de enumeradores como é o caso da modalidade de frete, se não informar será adotado o primeiro da lista.

Sempre foi dessa forma a anos.

Segundo, continuando no exemplo da modalidade do frete, o TRadioGroup permite definir um valor padrão que se você desejar pode ser configurável pela sua aplicação.

Vamos supor que o seu cliente ABC, 90 % das vendas o frete é por conta do destinatário, a sua aplicação através de configuração seta automaticamente essa opção, mas permite que o usuário altere.

Por outro lado o seu cliente XYZ, 90% das vendas o frente é por conta do emitente, da mesma forma a sua aplicação seta automaticamente essa opção, mas permite que o usuário altere.

Desculpe não vejo dificuldade nenhuma em você fazer esse tratamento na aplicação.

Da trabalho, sim da trabalho, mas quanto mais você conseguir evitar que usuário cometa erros, melhor.

Ítalo,

Não estou questionando o funcionamento do componente que uso a anos e por sinal é o melhor.

Também não estou falando que é difícil fazer essa validação pelo lado da aplicação. 

Estou apenas trocando ideia sobre o funcionamento, para eu aprimorar meu aplicativo, evitando assim erros.

É apenas essa confirmação que precisava, onde na ausência, sempre adotará um valor.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
31 minutos atrás, André Ferreira de Moraes disse:

A variável OK serve para esse verificação, caso após o comando de conversão ela esteja com o valor FALSE é sinal que o valor informado não é válido e foi assumido o valor default.

Olá André, muito obrigado pela informação,  não havia pensado nisso. Posso tratar isso na geração de forma que seu falhar alguma validação pelo lado da minha aplicação, posso interromper a geração do XML e apresentar um aviso ao usuario.

36 minutos atrás, Amarildo de Matos disse:

 

Bom dia..

Na Minha aplicação tudo o que podemos, fazer no lado cliente, fizemos, para quando 

chegar na geração do xml, esteja tudo 100%.. isso é nossa obrigação fazer isso no  sistema.

Blz

 

Obrigado pela colaboração ao post.

3 minutos atrás, Amarildo de Matos disse:

Na minha opiniao..

Somos obrigado a mandar as informações obrigatorias.

pois o transmissor nao tem como saber, no teu exemplo que tipo de modalidade de frete vai..

ele nao pode chutar e colocar algo.

eu acho que o transmissor nao pode fazer isso.. 

Blz?

Isso mesmo Amarildo.

Peguei uma falha exatamente na modalidade do frete que passou sem o cliente informar valor algum, e automaticamente o componente informou o primeiro valor da lista, por ser um tipo enumerado. Vale lembrar que em momento nenhum estou falando que isso é errado.

Por isso resolvi rever toda a geração do XML, e resolver outros possíveis problemas parecidos com esse.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2018 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.