GARANTIR DESCONTO

Fórum Gravar dados depois da escolha no combobox #313515

19/02/2006

0

Olá Lista,

Mais um dilema do novato... Para gravar
os dados de um formulário faço o seguinte:

Ativação dos botões SQL e da variável NOVO.

No evento ON SHOW do formulário

Novo:= True;
SQLInsert:= ´Insert into TABCLIENTE Values (:V1,:V2,:V3,:V4,:V5,:V6)´;
SQLUpdate:= ´Update TABCLIENTE Set Nome= :V1, Endereco= :V2, Estado Civil= :V3, Conjugue= :V4, Pai = :V5 Where Ed CodCliente= :V6´;
SQLDelete:= ´Delete From TABCLIENTE Where EdCodCliente = :V1´;
SQLSelect:= ´Select * From TABEDITORAS Where EdCodCliente = :V1´;

NO BOTÃO GRAVAR FAÇO ASSIM:

//Verifica se os principais campos foram preenchidos
if EdNome.Text=´´ then
begin
MessageDlg(´Informe o Nome do Cliente´,mtError,[mbok],0);
EdNome.SetFocus;
exit;
end;

if Novo then
begin
with QryConsulta do
begin
Close;
Sql.Clear;
Sql.Add(´Select Max(CodCliente) from TabClientes´); // busca o último registro
Open;
If Fields[0].IsNull = False then
EdCodCliente.Text := IntToStr(Fields[0].Value+1)// acrescenta mais um registro automaticamente
else
EdCodCliente.Text := ´1´;
Close;
Sql.Clear;
Sql.Add(SqlInsert);
Params[0].Value := EdCodCliente.Text;
Params[1].Value := EdNome.Text;
Params[2].Value := EdEndereco.Text;
Params[3].Value := CboEstadoCivil.Text;
Params[4].Value := EdConjungue.Text;
Params[6].Value := EdPai.Text;
ExecSql;
DM.TransRegistro.CommitRetaining;
ShowMessage(´Registro gravado´);
Novo := False;
end;
end
else
begin
with QryConsulta do
begin
Close;
Sql.Clear;
Sql.Add(SqlUpdate);
Params[0].Value := EdNome.Text;
Params[1].Value := EdEndereco.Text;
Params[2].Value := CboEstadoCivil.Text;
Params[3].Value := EdConjungue.Text;
Params[4].Value := EdPai.Text;
Params[6].Value := EdCodCliente.Text;
ExecSql;
DM.TransRegistro.CommitRetaining;
ShowMessage(´Registro Atualizado´);
end;
end;

Então a minha pergunta é a seguinte. Como faço para gravar dados depois da escolha de um item do combobox? Como Assim?

Seguindo o código acima como exemplo, temos: um combobox “CBOESTADOCIVIL”, dois itens nele “CASADO e SOLTEIRO”, os campos EDCONJUGUE e EDPAI com sua propriedade visible como false. Então após a escolha no combo habilitasse o campo correspondente (CASADO habilitasse EDCONJUGUE/ SOLTEIRO habilitasse EDPAI) e depois gravasse os dados inseridos no bando de dados... eu até comecei a fazer, mas...

procedure TFrmCliente.CboEstadoCivilClick(Sender: TObject);
begin
If CboEstadoCivil.ItemIndex=0 Then
begin
Label5.Visible:=True;
EdConjugue.Visible:=True;
EdConjugue.SetFocus;
end
else
begin
Label5.Visible:=False;
EdConjugue.Visible:=False;
CboEstadocivil.SetFocus;
end;

Deu pra entender? Alguém poderia me dar uma idéia como fazer?
Valeu


Jrcosmoluis

Jrcosmoluis

Responder

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

Aceitar