Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Erro em campo NotNull
#11
Testado, funcionando, obrigado
Responder
#12
oque voce acha isaque de colocar para mostrar o ConstraintErrorMessage ?

nessa alteração iria mostrar uma mensagem mais bonitinha para o usuario "Descrição da Mesa" ao inves de "DESCRICAO"

[Dictionary('DESCRICAO', 'Descrição da Mesa', '', '', '', taLeftJustify)]

function TRttiSingleton.RunValidade(AObject: TObject): Boolean;
var
LColumn: TColumnMapping;
LColumns: TColumnMappingList;
LAttribute: TCustomAttribute;
begin
Result := False;
LColumns := TMappingExplorer.GetInstance.GetMappingColumn(AObject.ClassType);
for LColumn in LColumns do
begin
/// <summary> Valida se o valor é NULO </summary>
LAttribute := LColumn.PropertyRtti.GetNotNullConstraint;
if LAttribute <> nil then
NotNullConstraint(LAttribute)
.Validate(Dictionary(LColumn.PropertyRtti.GetDictionary).ConstraintErrorMessage,//alterado
LColumn.PropertyRtti.GetNullableValue(AObject));
/// <summary> Valida se o valor é menor que ZERO </summary>
LAttribute := LColumn.PropertyRtti.GetHighestConstraint;
if LAttribute <> nil then
HighestConstraint(LAttribute)
.Validate(Dictionary(LColumn.PropertyRtti.GetDictionary).ConstraintErrorMessage,//alterado
LColumn.PropertyRtti.GetNullableValue(AObject));
end;
Result := True;
end;
Responder
#13
(28-09-2018, 10:12 AM)samuca.ti@hotmail.com Escreveu: oque voce acha isaque de colocar para mostrar o ConstraintErrorMessage ?

nessa alteração iria mostrar uma mensagem mais bonitinha para o usuario "Descrição da Mesa" ao inves de "DESCRICAO"

[Dictionary('DESCRICAO', 'Descrição da Mesa', '', '', '', taLeftJustify)]

function TRttiSingleton.RunValidade(AObject: TObject): Boolean;
var
 LColumn: TColumnMapping;
 LColumns: TColumnMappingList;
 LAttribute: TCustomAttribute;
begin
 Result := False;
 LColumns := TMappingExplorer.GetInstance.GetMappingColumn(AObject.ClassType);
 for LColumn in LColumns do
 begin
    /// <summary> Valida se o valor é NULO </summary>
    LAttribute := LColumn.PropertyRtti.GetNotNullConstraint;
    if LAttribute <> nil then
      NotNullConstraint(LAttribute)
        .Validate(Dictionary(LColumn.PropertyRtti.GetDictionary).ConstraintErrorMessage,//alterado
        LColumn.PropertyRtti.GetNullableValue(AObject));
    /// <summary> Valida se o valor é menor que ZERO </summary>
    LAttribute := LColumn.PropertyRtti.GetHighestConstraint;
    if LAttribute <> nil then
       HighestConstraint(LAttribute)
         .Validate(Dictionary(LColumn.PropertyRtti.GetDictionary).ConstraintErrorMessage,//alterado
         LColumn.PropertyRtti.GetNullableValue(AObject));
 end;
 Result := True;
end;

Boa, assim que conseguir vou olhar com calma e subo esse recurso

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#14
Um próximo recurso que quero alterar nessa validação é que:
1 - tem mensagem que deve gerar uma exception ('campos invisíveis para o usuario'), pq seria vaza de programação
2 - Campos visíveis para o usuário, que deve gerar um informativo, por exemplo 'Descrição'
Responder
#15
enviado codigo alterado para analise
Responder


Possíveis Tópicos Relacionados...
Tópico: Autor Respostas: Visualizações: Última Mensagem
  Erro instanciando TContainerClientDataSet com coluna > 31 caracteres e valor default Odlawso 3 2,238 04-04-2019, 05:37 AM
Última Mensagem: juliomar
  Erro em ormbr.dataset.bind Osiel Gomes 5 4,208 01-03-2019, 08:49 AM
Última Mensagem: Isaque Pinheiro
  Erro de Tycast campo Blob Osiel Gomes 1 2,308 26-11-2017, 10:59 AM
Última Mensagem: juliomar

Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)