Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Shimaru

GroupBox com RadioButton

Recommended Posts

Boa Noite pessoal, to querendo fazer o seguinte: tenho uma tela que tem um GroupBox com varios RadioButtons dentro, e preciso que ao selecionar um RadioButton e clicar em um "Botao" tipo Incluir o "Caption" desse RadioButton aparece em um DBGrid que ja esta ligado a tabela "Acesso".

Cada RadioButtons corresponde a um modulo do sistema e esse DBGrid vai armazenar os Modulos liberados

Gostaria da ajuda de vcs de como faço o codigo para o botao Incluir...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa tabela acesso é organizada como? ela tem uma coluna para cada módulo + uma coluna para o ID do usuário?

 

Eu faria cada coluna dessa tabela como boolean e usaria uma query para inserir os dados:

query1.sql.add('
INSERT INTO acesso
 (usu_codigo, modulo1, modulo2, modulo3)
VALUES
(:codigo, :modulo1, :Modulo2, :modulo3)
');

query1.Parameters.ParamByName['codigo'] := '1';
query1.Parameters.ParamByName['modulo1'] := checkbox1.checked;
query1.Parameters.ParamByName['modulo2'] := checkbox2.checked;
query1.Parameters.ParamByName['modulo3'] := checkbox3.checked;

query1.execSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parceiro é o seguinte nessa tabela acesso tem os campos modulo, codfunc, codmodulo, e no mesmo form quero deixar um DBGrid com os campos dos usuarios do sistema. Aí seleciono um usuario e com os Checkbox insiro os modulos liberados para o usuario selecionado, mais nao estou conseguindo adaptar esse codigo que você me mandou, desculpa nao tenho muita experiencia será que você nao poderia me explicar novamente? Desde já agradeço sua ajuda...

 

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi, você tem 3 campos, da forma que está, eu não usaria o primeiro, faria um INSERT INTO nesta tabela onde seriam passados o código do funcionário e o código do módulo, para cada checkbox, seria um insert into novo, ou seja:

 

if checkbox1.checked then
  begin
	query1.sql.add('INSERT INTO acesso
						   (codfunc, codmodulo)
						   VALUES
						   (:func, :mod)');
	query1.Parameters.ParamByName['func'] := '1';
	query1.Parameters.ParamByName['mod'] := '1';
	query1.execSQL;
  end;

Bom, não sei o que você conhece dos componentes de operação em banco de dados, no caso, utilizei um componente que permite executar comandos SQL, para isso, existe o TQquery, ADOQuery, IBXQuery e vários outros. Todos eles pemitem criar querys com suporte a parâmetros que são acessados geralmente pela propriedade Parameters.

 

Se tiver mais dúvidas, estamos aí para ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi, você tem 3 campos, da forma que está, eu não usaria o primeiro, faria um INSERT INTO nesta tabela onde seriam passados o código do funcionário e o código do módulo, para cada checkbox, seria um insert into novo, ou seja:

 

if checkbox1.checked then
  begin
	query1.sql.add('INSERT INTO acesso
						   (codfunc, codmodulo)
						   VALUES
						   (:func, :mod)');
	query1.Parameters.ParamByName['func'] := '1';
	query1.Parameters.ParamByName['mod'] := '1';
	query1.execSQL;
  end;

Bom, não sei o que você conhece dos componentes de operação em banco de dados, no caso, utilizei um componente que permite executar comandos SQL, para isso, existe o TQquery, ADOQuery, IBXQuery e vários outros. Todos eles pemitem criar querys com suporte a parâmetros que são acessados geralmente pela propriedade Parameters.

 

Se tiver mais dúvidas, estamos aí para ajudar...

 

 

Boa noite, essa noite nao tive tempo de fazer o que você me passou,pois só posso fazer a noite, estou usando o componente Zeos, uso o Zquery , queria saber se com esse componente é possivel fazer esse trabalho com esse codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que sim, não uso o zeus, verifique o nome da propriedade referente aos parâmetros, é algo parecido com o que eu escrevi....

Bom dia, com o componente Zquery coloquei o seguinte codigo:

 

if checkbox1.checked then

begin

'Essa é a linha74' F_Dados.Q_Nivel_Acesso.sql.add('INSERT INTO Q_Nivel_Acesso

(codfunc, codmodulo)

VALUES

(:func, :mod)');

F_Dados.Q_Nivel_Acesso.Params.ParamByName['func'] := '1';

F_Dados.Q_Nivel_Acesso.Params.ParamByName['mod'] := '1';

F_Dados.Q_Nivel_Acesso.execSQL;

end;

 

Com esse componente nao tem o "Parameters" e sim o "Params", mais apareceu varios erros Tipo:

[Error] U_Acesso.pas(74): Unterminated string

[Error] U_Acesso.pas(75): Missing operator or semicolon

[Error] U_Acesso.pas(76): ')' expected but identifier 'VALUES' found

[Error] U_Acesso.pas(77): Expression expected but ':' found

[Error] U_Acesso.pas(77): Unterminated string

[Error] U_Acesso.pas(78): Missing operator or semicolon

[Error] U_Acesso.pas(78): Not enough actual parameters

[Error] U_Acesso.pas(79): Not enough actual parameters

[Error] U_Acesso.pas(80): Not enough actual parameters

[Fatal Error] Controle.dpr(17): Could not compile used unit 'U_Acesso.pas'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Shimaru beleza? Irmaum utilizei esse componente no último programa q tive q fazer aki na empresa, vou colocar a passagem de parâmetro e a execução de um ZQuery, qualquer problema você responde p/ a gente ver o q pode ser feito.

ZQryInsert.Close;

ZQryInsert.SQL.Clear;

ZQryInsert.SQL.Add(w_sql_insert);

ZQryInsert.Close;

ZQryInsert.ParamByName('loja_id').AsInteger := StrtoInt(Trim(EditCodigo.Text));

ZQryInsert.ParamByName('indicacao').AsString := QrySelect.Fields[5].AsString;

ZQryInsert.ParamByName('codigo').AsInteger := QrySelect.Fields[0].AsInteger;

ZQryInsert.ParamByName('nome').AsString := QrySelect.Fields[2].AsString;

ZQryInsert.ParamByName('bairro').AsString := QrySelect.Fields[3].AsString;

ZQryInsert.ParamByName('perfil').AsString := QrySelect.Fields[4].AsString;

ZQryInsert.ParamByName('telefone').AsString := QrySelect.Fields[7].AsString;

ZQryInsert.ParamByName('ramal').AsString := QrySelect.Fields[6].AsString;

ZQryInsert.ParamByName('ativo').AsString := QrySelect.Fields[1].AsString;

ZQryInsert.ExecSQL;

 

Esta funcionando perfeitamente, o w_sql_insert é uma string q contem uma instrução sql de insert normal, qualquer erro q venha a dar aí no seu seguindo o exemplo q eu coloquei pode ser devido ao q você esta passando por parametro, da uma olhada ai com calma. Valew, espero ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

if checkbox1.checked then
  begin
	F_Dados.Q_Nivel_Acesso.sql.add('INSERT INTO Q_Nivel_Acesso');
	F_Dados.Q_Nivel_Acesso.sql.add('(codfunc, codmodulo)');
	F_Dados.Q_Nivel_Acesso.sql.add('VALUES');
	F_Dados.Q_Nivel_Acesso.sql.add('(:func, :mod)');
	F_Dados.Q_Nivel_Acesso.Params.ParamByName['func'] := '1';
	F_Dados.Q_Nivel_Acesso.Params.ParamByName['mod'] := '1';
	F_Dados.Q_Nivel_Acesso.execSQL;
  end;

 

Tenta agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

if checkbox1.checked then
  begin
	F_Dados.Q_Nivel_Acesso.sql.add('INSERT INTO Q_Nivel_Acesso');
	F_Dados.Q_Nivel_Acesso.sql.add('(codfunc, codmodulo)');
	F_Dados.Q_Nivel_Acesso.sql.add('VALUES');
	F_Dados.Q_Nivel_Acesso.sql.add('(:func, :mod)');
	F_Dados.Q_Nivel_Acesso.Params.ParamByName['func'] := '1';
	F_Dados.Q_Nivel_Acesso.Params.ParamByName['mod'] := '1';
	F_Dados.Q_Nivel_Acesso.execSQL;
  end;

 

Tenta agora...

 

É parceiro to te dando um trabalhão, desculpa mas to aqui denovo, tentei com esse ultimo codigo que você me passou e deu o seguinte erro:

 

F_Dados.Q_Nivel_Acesso.sql.add('INSERT INTO Q_Nivel_Acesso');

F_Dados.Q_Nivel_Acesso.sql.add('(codfunc, codmodulo)');

F_Dados.Q_Nivel_Acesso.sql.add('VALUES');

F_Dados.Q_Nivel_Acesso.sql.add('(:func, :mod)');

linha 78 F_Dados.Q_Nivel_Acesso.Params.ParamByName['func'] := '1';

F_Dados.Q_Nivel_Acesso.Params.ParamByName['mod'] := '1';

F_Dados.Q_Nivel_Acesso.execSQL;

 

[Error] U_Acesso.pas(78): Not enough actual parameters

 

To tentando resolver mais nao consigo, novamente agradeço sua ajuda....

 

Fala Shimaru beleza? Irmaum utilizei esse componente no último programa q tive q fazer aki na empresa, vou colocar a passagem de parâmetro e a execução de um ZQuery, qualquer problema você responde p/ a gente ver o q pode ser feito.

ZQryInsert.Close;

ZQryInsert.SQL.Clear;

ZQryInsert.SQL.Add(w_sql_insert);

ZQryInsert.Close;

ZQryInsert.ParamByName('loja_id').AsInteger := StrtoInt(Trim(EditCodigo.Text));

ZQryInsert.ParamByName('indicacao').AsString := QrySelect.Fields[5].AsString;

ZQryInsert.ParamByName('codigo').AsInteger := QrySelect.Fields[0].AsInteger;

ZQryInsert.ParamByName('nome').AsString := QrySelect.Fields[2].AsString;

ZQryInsert.ParamByName('bairro').AsString := QrySelect.Fields[3].AsString;

ZQryInsert.ParamByName('perfil').AsString := QrySelect.Fields[4].AsString;

ZQryInsert.ParamByName('telefone').AsString := QrySelect.Fields[7].AsString;

ZQryInsert.ParamByName('ramal').AsString := QrySelect.Fields[6].AsString;

ZQryInsert.ParamByName('ativo').AsString := QrySelect.Fields[1].AsString;

ZQryInsert.ExecSQL;

 

Esta funcionando perfeitamente, o w_sql_insert é uma string q contem uma instrução sql de insert normal, qualquer erro q venha a dar aí no seu seguindo o exemplo q eu coloquei pode ser devido ao q você esta passando por parametro, da uma olhada ai com calma. Valew, espero ter ajudado...

 

 

Boa tarde, agradeço sua ajuda Leonardo vou tentar adaptar esse codigo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.