GARANTIR DESCONTO

Fórum if else if #466604

10/01/2014

0

bom, eu quero que só possa gravar os dados se todos os campos forem preenchidos, tenho o DBLookupCombobox1, o JvDBDateEdit1 e o DBEdit4
no evento do botão salvar esta assim:
procedure TForm_Dizimos.btnGravarClick(Sender: TObject);
begin
if DBLookupCombobox1.KeyValue = null then
  begin
    MessageDlg('Preencha o Nome!', mtWarning,[mbOk], 0);
  end
  else if JvDBDateEdit1.Text = emptystr then
  begin
    MessageDlg('Preencha a data!', mtWarning,[mbOk], 0);
  end
  else
    begin
      inherited;
  end;
end;


mais só esta passando a parte 'preencha o nome'
e ainda falta o teste ou if do DBEdit4

algum pode me ajudar ?
Moabe Oliveira

Moabe Oliveira

Responder

Posts

10/01/2014

Marco Salles



Estranho testar os DataWares como vc esta Fazendo

Se é para fazer algum teste , seria mais correto testar os Fields

Responder

Gostei + 0

11/01/2014

Moabe Oliveira

como eu faria esse teste?
Responder

Gostei + 0

11/01/2014

Marco Salles

Qual o Seu Componente de Conexão qua vc esta utilizando ??? Vc carregou os Fileds Nels ???

Clique com o Botão direito nele e escolheu a opção Add All Fields ???

Se Não pode utilizar o FieldByName

A grosso modo seria mais ou menos assim

if (SeuDataSet.FieldByName('Nome do Seu Campo').asastring = '')OR(SeuDataSet.FieldByName('Nome de Outro Campo).asstring='')OR(SeuDataSet.FieldByName('Nome de Outro Campo.asstring='') Then


digo a grosso modo porque tem outra abordagens

Responder

Gostei + 0

11/01/2014

Moabe Oliveira

componente de conexão é um data source na ado table que fica em um data module
Responder

Gostei + 0

11/01/2014

Marco Salles

Tanto o seu DataSource e o Seu Ado Table ficam no DataModulo ??? OS dois ??

Outra , vc não respondeu sobre os Fileds ??? Adicionou ou não os Fileds ???
Responder

Gostei + 0

11/01/2014

Moabe Oliveira

o data source esta em um form, e o ado table em um data module,
adicionei os fields e puxei para o form
Responder

Gostei + 0

11/01/2014

Marco Salles

o data source esta em um form, e o ado table em um data module,
adicionei os fields e puxei para o form


Não precisa puxar .... O mais indicado é isto mesmo .. DataSource em um Form e data module em outro ..

Olha so , quando nos referimos a Ado Table , Table , ClientDataSet , enfim , nos referimos a DATASET .. Pois eles se originam a partir desta classe ta legal

TADOTable = class(TCustomADODataSet)

TCustomADODataSet = class(TDataSet, IUnknown, RecordsetEventsVt)

então quando falamos em DataSer estamos falando no seu caso de ADOTable ... Correto ???


Vamos voltar ...

Quando vc adicionou os fields no AdoTable , vc pode fazer os testes com ele ... Para isto vc data USES no seu Formulário Principal e ele passa a enxergar todos os Fields que estão
no DataModulo .... Os Fields é como se vc um componente mesmo e vc utiliza a Propriedade AsString do mesmo para verificar se esta vazia

Outro possibilidade dentre outra , é Referenciar esse AdoTable pelo seu DataSource ... Tipo isto

if (SeuDataSource1.DataSet.FieldByName('SeuCampo').asstring = '')OR (SeuDataSource1.DataSet.FieldByName('SeuOutroCampo').asstring = '') ............. Then


particularmente prefiro a segunda abordagem , apesar que o método FieldByname é menos performático do que o acessso direto aos componentes , mas nada que impeça o seu uso

[]sds

Responder

Gostei + 0

11/01/2014

Moabe Oliveira

sim esta correto, usei essa segunda abordagem que voc me mandou, resolveu meu problema!
obrigado man! vai desculpando ai o encomodo..
Responder

Gostei + 0

11/01/2014

Marco Salles


[]sds e um grande abraço
Responder

Gostei + 0

11/01/2014

Moabe Oliveira

tenho uma outra duvida, sobre outro assunto, pode me ajudar ?
Responder

Gostei + 0

11/01/2014

Marco Salles

tenho uma outra duvida, sobre outro assunto, pode me ajudar ?


Claro mas sugiro abrir um outro tópico , para ficar mais limpo .. Porque esses tópicos servem de pesquisa nio futuro e ajudam a outra pessoas . Se alongarem e
misturarem muito , passam a ficar confusos e deixam de ser fontes de consulta

Ok ?

[]sds
Responder

Gostei + 0

11/01/2014

Moabe Oliveira

ok, é verdade, vou abrir outro forum, se você poder me ajudar lá ..
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar