listar nome de campos da tabela
24/08/2010
0
Fabio Sanches
Posts
01/09/2010
Fabio Sanches
01/09/2010
Fabio Sanches
procedure TFLocUsu.BOkClick(Sender: TObject); begin if FLocUsu.ShowModal = mrOK then begin if not(DataModule1.ADOQCadUsu.Active) then DataModule1.ADOQCadUsu.Open; if not(DataModule1.ADOQCadUsu.IsEmpty) then begin FCadUsu.ENomUsu.Text := DataModule1.ADOTCadUsu.FieldByName('NomUsu').Value; FCadUsu.EPassUsu.Text := DataModule1.ADOTCadUsu.FieldByName('PasUsu').Value; FCadUsu.ComboNivUsu.ItemIndex := DataModule1.ADOTCadUsu.FieldByName('NivUsu').Value; FCadUsu.EIdUsu.Text := DataModule1.ADOTCadUsu.FieldByName('CodUsu').AsString; FLocUsu.Close; end; end;
e ta dando a seguinte mensagem de erro
"Cannot make a visible window modal"
01/09/2010
Eriley Barbosa
01/09/2010
Fabio Sanches
eu vou colocar esse codigo no onclick do botao q eu clico para ir para tela de pesquisa?
01/09/2010
Eriley Barbosa
01/09/2010
Fabio Sanches
procedure TFCadUsu.BProcuraClick(Sender: TObject);begin FPrincipal.limpacampos(FCadUsu); EIdUsu.SetFocus; DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu'); DataModule1.ADOQCadUsu.Open; FLocUsu.ShowModal; if FLocUsu.ShowModal = mrOK thenbegin //Para funcionar essa linha o sql da query tem que estar select * from tabela DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu'); DataModule1.ADOQCadUsu.Open; if DataModule1.ADOQCadUsu.Locate('IdUsu', FLocUsu.FieldByName('IdUSu').Value, []) then begin ENomUsu.Text := DataModule1.ADOTCadUsu.FieldByName('NomUsu').Value; EPassUsu.Text := DataModule1.ADOTCadUsu.FieldByName('PasUsu').Value; ComboNivUsu.ItemIndex := DataModule1.ADOTCadUsu.FieldByName('NivUsu').Value; EIdUsu.Text := DataModule1.ADOTCadUsu.FieldByName('CodUsu').AsString; end; FLocUsu.Close;end;end;
ta dando erro a linha if DataModule1.ADOQCadUsu.Locate('IdUsu', FLocUsu.FieldByName('IdUSu').Value, []) then
erro[Error] UCadUsu.pas(286): Undeclared identifier: 'FieldByName'
01/09/2010
Eriley Barbosa
procedure TFCadUsu.BProcuraClick(Sender: TObject); begin FPrincipal.limpacampos(FCadUsu); if FLocUsu.ShowModal = mrOK then begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu'); DataModule1.ADOQCadUsu.SQL.Add('Where CodUsu = ' + DataModule1.ADOTCadUsu.FieldByName('CodUsu').AsString); DataModule1.ADOQCadUsu.Open; ENomUsu.Text := DataModule1.ADOQCadUsu.FieldByName('NomUsu').Value; EPassUsu.Text := DataModule1.ADOQCadUsu.FieldByName('PasUsu').Value; ComboNivUsu.ItemIndex := DataModule1.ADOQCadUsu.FieldByName('NivUsu').Value; EIdUsu.Text := DataModule1.ADOQCadUsu.FieldByName('CodUsu').AsString; EIdUsu.SetFocus; end; FLocUsu.Close; end; end;
02/09/2010
Fabio Sanches
02/09/2010
Eriley Barbosa
Escolher um campo, uma operação e digitar o dado a pesquisar no edit e clicar no botão.
Se você após fazer isso, clicar no botão novamente a pesquisa será repetida.
Mas se você escolher outro campo e digitar outro dado no Edit, será feita uma nova pesquisa. Alias quando montei a pesquisa, você estava estava usando:
DataModule1.ADOQCadUsu.Close;
DataModule1.ADOQCadUsu.SQL.Clear; Mas quando montei o retorno da pesquisa estavamos usando:
DataModule1.ADOTCadUsu Para funcionar sua tela de pesquisa tem que estar usando:
DataModule1.ADOTCadUsu, somente na tela de pesquisa, na tela de cadastro, continua como está.
Para não repetir itens no combobox, basta limpa-lo antes de inserir os itens: procedure TFLocUsu.CarregarCampos(parDataSource: TDataSource; cbCampos: TComboBox);
Var
C : Integer; // Irá auxiliar no laço para realizar a leitura de todos os fields da query pertencente ao formulário atual;
begin
//Limpando o combobox para não repetir itens
cbCampos.Clear;
with(parDataSource)do
begin
for C := 0 To DataModule1.DataSetCadUsu.FieldCount -1 do // A rotina ao lado irá realizar uma laço em todos os Fields
begin // da query que esta ligado ao DataSource.
if((DataModule1.DataSetCadUsu.Fields[C].FieldKind = fkData)and // Apenas os Fields que são do tipo fkData serão adicionados ao
(DataModule1.DataSetCadUsu.Fields[C].Tag <> 5))then // ComboBox para que o usuário escolha qual será o campo de pesquisa;
cbCampos.Items.Add(DataModule1.DataSetCadUsu.Fields[C].DisplayLabel);
end;
cbCampos.ItemIndex := 0; // Coloca o primeiro Field no ComboBox
end;
end;
02/09/2010
Fabio Sanches
02/09/2010
Fabio Sanches
02/09/2010
Eriley Barbosa
02/09/2010
Eriley Barbosa
procedure TFCadUsu.EIdUsuExit(Sender: TObject); begin if Namedoseubotaoquefazaprocura.Focused = True then Exit else begin if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text); DataModule1.ADOQCadUsu.Open; if (DataModule1.ADOQCadUsu.IsEmpty) then begin TipOpr:=0; Fprincipal.limpaCampos(FCadUsu); EIdUsu.Text:=''; BInserir.Enabled:=true; BAlterar.Enabled:=false; DataModule1.AdoQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu'); DataModule1.ADOQCadUsu.Open; if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo} EIdUsu.Text := '1' {: então este será o 1º registro} else begin EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1); ENomUsu.SetFocus; end; end else begin TipOpr:=1; BInserir.Enabled:=False; BAlterar.Enabled:=True; ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString; EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString; TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger; if (tipniv=1) then ComboNivUsu.ItemIndex:=1 else ComboNivUsu.ItemIndex:=2; end; end else if (EIdUsu.Text='0') or (EIdUsu.Text='') then begin TipOpr:=0; BInserir.Enabled:=True; BAlterar.Enabled:=False; DataModule1.AdoQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu'); DataModule1.ADOQCadUsu.Open; if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo} EIdUsu.Text := '1' {: então este será o 1º registro} else begin EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1); ENomUsu.SetFocus; end; end; end; end; //end procedure
02/09/2010
Eriley Barbosa
Case CbCampos.ItemIndex of 0 : begin // codigo if cbpesquisa.ItemIndex = 0 then begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text); DataModule1.ADOQCadUsu.Open; end else begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' + ELocUsu.Text); DataModule1.ADOQCadUsu.Open; end; end; 1 : begin //nome if cbpesquisa.ItemIndex = 1 then begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr(Trim(ELocUsu.Text)+'%')); DataModule1.ADOQCadUsu.Open; end else begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where NomUsu like ' + QuotedStr('%'+Trim(ELocUsu.Text)+'%')); DataModule1.ADOQCadUsu.Open; end; end; 2 : begin //nivel if cbpesquisa.ItemIndex = 2 then begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text); DataModule1.ADOQCadUsu.Open; end else begin DataModule1.ADOQCadUsu.Close; DataModule1.ADOQCadUsu.SQL.Clear; DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where nivusu = ' + ELocUsu.Text); DataModule1.ADOQCadUsu.Open; end; end; end;
02/09/2010
Eriley Barbosa
Clique aqui para fazer login e interagir na Comunidade :)