Db, como deixar o foco em determinada coluna
estou dando um while not em uma tabela e verificando se o usuário digitou todos os campos,
Gostaria de saber como dar um setfocus em determinada coluna, ai eu dou uma message e em seguida foco e ele digita, tudo pratico
thanks
Gostaria de saber como dar um setfocus em determinada coluna, ai eu dou uma message e em seguida foco e ele digita, tudo pratico
thanks
Marcos Fernando
Curtidas 0
Respostas
Marlon Spiess
20/10/2005
no momento imediatamente antes de salvar chamar a função
function TFom.ckeckFields (dCad : TDataSet) : boolean;
var
X : integer;
begin
Result := false;
for X:= 0 to self.ComponentCount - 1 do
if (Self.Components[X].ClassType = TDBEdit) then
begin
if (TDBEdit(Self.Components[X]).DataSource <> nil)
and (TDBEdit(Self.Components[X]).DataSource.DataSet = dCad)
and (dCad.FieldByName(TDBEdit(Self.Components[X]).DataField).Required = true) then // para campo obrigatório, pode ser trocado por outra validação
if (dCad.FieldByName(TDBEdit(Self.Components[X]).DataField).IsNull then
begin
MessageDlg(TDBEdit(Self.Components[X]).Hint + ´ deve possuir um valor. ´,mtError,[mbOk],0);
TDBEdit(Self.Components[X]).SetFocus;
exit;
end
// demais validações........
function TFom.ckeckFields (dCad : TDataSet) : boolean;
var
X : integer;
begin
Result := false;
for X:= 0 to self.ComponentCount - 1 do
if (Self.Components[X].ClassType = TDBEdit) then
begin
if (TDBEdit(Self.Components[X]).DataSource <> nil)
and (TDBEdit(Self.Components[X]).DataSource.DataSet = dCad)
and (dCad.FieldByName(TDBEdit(Self.Components[X]).DataField).Required = true) then // para campo obrigatório, pode ser trocado por outra validação
if (dCad.FieldByName(TDBEdit(Self.Components[X]).DataField).IsNull then
begin
MessageDlg(TDBEdit(Self.Components[X]).Hint + ´ deve possuir um valor. ´,mtError,[mbOk],0);
TDBEdit(Self.Components[X]).SetFocus;
exit;
end
// demais validações........
GOSTEI 0
Marcos Fernando
20/10/2005
na verdade só procurava isso:
DbGrid.SelectedIndex:=TdagColumn(dbgrid.ColumnByFieldName(´campo´)).Index;
Thanks
DbGrid.SelectedIndex:=TdagColumn(dbgrid.ColumnByFieldName(´campo´)).Index;
Thanks
GOSTEI 0
Marlon Spiess
20/10/2005
Desculpa por incomodar, mas gostaria de intender a solução.
Vc não queria descobrir e dar um focus num dbedit qdo o campo não tivesse satisfeito alguma clausula ??
O q um grid tem haver com isso.
Ficaria contente em intender.
Muito Obrigado
Vc não queria descobrir e dar um focus num dbedit qdo o campo não tivesse satisfeito alguma clausula ??
O q um grid tem haver com isso.
Ficaria contente em intender.
Muito Obrigado
GOSTEI 0
Marcos Fernando
20/10/2005
Não na verdade eu estou editando dentro de um grid e quando eu for fazer qualquer procedimento deve verificar se a coluna tal tem informação e ai pedir ao usuário que preencha
GOSTEI 0
Jrfigueiredo
20/10/2005
Olá Marcos Fernando,
Gostaria de saber como você fez quando tem um campo de preenchimento obrigatório no Dbgrid e o cliente não preenche.
Tem como passar para mim ?
Grato
Gostaria de saber como você fez quando tem um campo de preenchimento obrigatório no Dbgrid e o cliente não preenche.
Tem como passar para mim ?
Grato
GOSTEI 0
Marcos Fernando
20/10/2005
Boa noite amigo,
Vc pode fazer essa verificação te enumeras formas, pode usar no before post da tabela
if tabelacampo.isnull=true then begin
showmessage(´Campo obrigatório´):
DbGrid.SelectedIndex:=TdagColumn(dbgrid.ColumnByFieldName(´campo´)).Index; //ai ele vai focar no grid o campo
exit;
end;
thanks
Vc pode fazer essa verificação te enumeras formas, pode usar no before post da tabela
if tabelacampo.isnull=true then begin
showmessage(´Campo obrigatório´):
DbGrid.SelectedIndex:=TdagColumn(dbgrid.ColumnByFieldName(´campo´)).Index; //ai ele vai focar no grid o campo
exit;
end;
thanks
GOSTEI 0
Marco Salles
20/10/2005
Vc pode fazer essa verificação te enumeras formas, pode usar no before post da tabela
como o amigo Marcos Fernando disse , pode-se fazer de n formas .. MAs acho que tecnicamente a maneira mais correta é usar o evento Onvalidade do Campo e gerar uma exceção caso o valor seje nulo
GOSTEI 0