Ir para conteúdo

POWERED BY:

Arquivado

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

Elisei

[Resolvido] Lista de presença, Qual a melhor Forma?

Recommended Posts

Ola, boa tarde!

 

Por favor, me ajudem a desenhar um processo de lista de presença.

Tenha uma data e quero marcar se determinada pessoa esteve presente ou faltou.

 

Tanto os nomes quanto as datas, estão banco de dados, porém não quero jogar os nomes em uma LoockUpCombo pois não teria usabilidade para osusuário poer ter que gravara um a um.

 

Então penso em criar uma lista com todos os participantes e de alguma forma, marcar se esteve presente ou não.

Fiz isso com DBGrid e chekbutton mas não funcionou muito bem, pois preciso que o DBrgid seja readonly

 

Alguem poderia sugerir algo?

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae cologa não tenho certeza mais acho q o dbedit do TMS tem opção check box você podi usar ele organizando por datas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq você não faz assim:

 

coloque um DBGrid com a lista de pessoas ...

 

no evendo DblClick do DBGrid você faz a alteração tipo:

 

query1.edit;

if query1.fieldbyname('presente').value = 'SIM' then

query1.fieldbyname('presente').value:= 'NAO'

else

query1.fieldbyname('presente').value:= 'SIM';

query1.post;

 

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido da Seguinte forma:

 

Objetos Utilizados:

 

1 DateEdit

1 CheckListBox

1 DataModule

1 Query

1 Table

 

Procedimento: (Evento OnActivate do form)

 

TCheckListBox.Items.Clear;
with TDataModule.TTable do begin
     Open;
     First;
     while not Eof do begin
           TCheckListBox.Items.Add(FieldValues['matricula'] + ' - ' + FieldValues['nome']);
           Next;
     end;
end;
TDataModule.TTable.Close;
TDataModule.TTable.EmptyDataSet;

Procedimento: (OnClick do botão gravar)

Declare a variável conteudo como string

 

   for i:=0 to TCheckListBox.Items.Count-1 do begin
       if (TCheckListBox.Checked[i]) then begin
           conteudo := Copy(TCheckListBox.Items.Strings[i],1,14);
           TDataModule.TQuery.Close;
           TDataModule.TQuery.SQL.Clear;
           TDataModule.TQuery.SQL.Add('INSERT INTO tabela VALUES (:V_Data, :V_Matricula)');
           TDataModule.TQuery.ParamByName('V_Data').AsDate := strToDate(TDadeEdit.Text);
           TDataModule.TQuery.ParamByName('V_Matricula').AsString := conteudo;
           TDataModule.TQuery.ExecSQL;
       end;
   end;
   // desmarcando as linhas
   for i:=0 to TCheckListBox.Items.Count-1 do begin
       TCheckListBox.Checked[i] := false;
   end;

É isso aí...

Espero que ajude alguém!

Abraços

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.