SOCOOORRROOOOO!!!!!!
Olá pessoal,
Estou fazendo um BD para cadastrar alunos q colarão grau para confecção de diplomas, e neste sistema tenho uma consulta onde eu especifico os critérios q desejo utilizar:
- RadioGroup1:
Data da Colação
Nome do Curso
Ambos
- RadioGroup2:
Frente
Verso
1 ComboBox com os nomes dos cursos e 1 Edit para entrar com a data. No caso do edit, as informações serão mesmo como texto, pois o usuário terá q digitar a data seguida de um dígito (semestre). Mas está dando um erro q diz:
ConsDiplomas: Cannot perform this operation on a closed dataset.
O meu comando está da seguinte forma:
-------------------------------------------------
unit UDiplomasPorCriterio;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons;
type
TFrmDiplomasPorCriterio = class(TForm)
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel1: TPanel;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
RadioGroup2: TRadioGroup;
Edit2: TEdit;
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDiplomasPorCriterio: TFrmDiplomasPorCriterio;
implementation
Uses UDados, URelDiplomaPorCriterioFrente;
{$R *.DFM}
procedure TFrmDiplomasPorCriterio.RadioGroup2Click(Sender: TObject);
begin
RadioGroup1.Enabled:=True;
RadioGroup1.SetFocus;
end;
procedure TFrmDiplomasPorCriterio.RadioGroup1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Label1.Enabled:=False;
ComboBox1.Enabled:=False;
Label2.Enabled:=True;
Edit1.Enabled:=True;
Edit1.SetFocus
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Label2.Enabled:=False;
Edit1.Clear;
Edit1.Enabled:=False
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Edit1.Enabled:=True;
Edit1.Clear;
End;
end;
procedure TFrmDiplomasPorCriterio.ComboBox1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Edit2.Text:=´Eletromecânica´
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Edit2.Text:=´Recursos Hídricos / Irrigação´
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Edit2.Text:=´Recursos Hídricos / Saneamento Ambiental´
End
Else
If RadioGroup1.ItemIndex = 3 Then
Begin
Edit2.Text:=´Tecnologia de Alimentos´;
End;
end;
procedure TFrmDiplomasPorCriterio.BitBtn1Click(Sender: TObject);
begin
If (RadioGroup1.ItemIndex = 0) and (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE DataDeColacao LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit1.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Data da colação não encontrada´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End
End
Else
If (RadioGroup1.ItemIndex = 1) And (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Curso não encontrado´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End;
End;
end;
end.
-------------------------------------------------
COMO POSSO RESOLVER ISSO?
Grato pela imensa paciência e atenção,
Ilano.
Estou fazendo um BD para cadastrar alunos q colarão grau para confecção de diplomas, e neste sistema tenho uma consulta onde eu especifico os critérios q desejo utilizar:
- RadioGroup1:
Data da Colação
Nome do Curso
Ambos
- RadioGroup2:
Frente
Verso
1 ComboBox com os nomes dos cursos e 1 Edit para entrar com a data. No caso do edit, as informações serão mesmo como texto, pois o usuário terá q digitar a data seguida de um dígito (semestre). Mas está dando um erro q diz:
ConsDiplomas: Cannot perform this operation on a closed dataset.
O meu comando está da seguinte forma:
-------------------------------------------------
unit UDiplomasPorCriterio;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons;
type
TFrmDiplomasPorCriterio = class(TForm)
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel1: TPanel;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
RadioGroup2: TRadioGroup;
Edit2: TEdit;
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDiplomasPorCriterio: TFrmDiplomasPorCriterio;
implementation
Uses UDados, URelDiplomaPorCriterioFrente;
{$R *.DFM}
procedure TFrmDiplomasPorCriterio.RadioGroup2Click(Sender: TObject);
begin
RadioGroup1.Enabled:=True;
RadioGroup1.SetFocus;
end;
procedure TFrmDiplomasPorCriterio.RadioGroup1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Label1.Enabled:=False;
ComboBox1.Enabled:=False;
Label2.Enabled:=True;
Edit1.Enabled:=True;
Edit1.SetFocus
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Label2.Enabled:=False;
Edit1.Clear;
Edit1.Enabled:=False
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Edit1.Enabled:=True;
Edit1.Clear;
End;
end;
procedure TFrmDiplomasPorCriterio.ComboBox1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Edit2.Text:=´Eletromecânica´
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Edit2.Text:=´Recursos Hídricos / Irrigação´
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Edit2.Text:=´Recursos Hídricos / Saneamento Ambiental´
End
Else
If RadioGroup1.ItemIndex = 3 Then
Begin
Edit2.Text:=´Tecnologia de Alimentos´;
End;
end;
procedure TFrmDiplomasPorCriterio.BitBtn1Click(Sender: TObject);
begin
If (RadioGroup1.ItemIndex = 0) and (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE DataDeColacao LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit1.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Data da colação não encontrada´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End
End
Else
If (RadioGroup1.ItemIndex = 1) And (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Curso não encontrado´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End;
End;
end;
end.
-------------------------------------------------
COMO POSSO RESOLVER ISSO?
Grato pela imensa paciência e atenção,
Ilano.
Anonymous
Curtidas 0
Respostas
Carnette
27/02/2003
Olá pessoal,
Estou fazendo um BD para cadastrar alunos q colarão grau para confecção de diplomas, e neste sistema tenho uma consulta onde eu especifico os critérios q desejo utilizar:
- RadioGroup1:
Data da Colação
Nome do Curso
Ambos
- RadioGroup2:
Frente
Verso
1 ComboBox com os nomes dos cursos e 1 Edit para entrar com a data. No caso do edit, as informações serão mesmo como texto, pois o usuário terá q digitar a data seguida de um dígito (semestre). Mas está dando um erro q diz:
ConsDiplomas: Cannot perform this operation on a closed dataset.
O meu comando está da seguinte forma:
-------------------------------------------------
unit UDiplomasPorCriterio;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons;
type
TFrmDiplomasPorCriterio = class(TForm)
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel1: TPanel;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
RadioGroup2: TRadioGroup;
Edit2: TEdit;
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDiplomasPorCriterio: TFrmDiplomasPorCriterio;
implementation
Uses UDados, URelDiplomaPorCriterioFrente;
{$R *.DFM}
procedure TFrmDiplomasPorCriterio.RadioGroup2Click(Sender: TObject);
begin
RadioGroup1.Enabled:=True;
RadioGroup1.SetFocus;
end;
procedure TFrmDiplomasPorCriterio.RadioGroup1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Label1.Enabled:=False;
ComboBox1.Enabled:=False;
Label2.Enabled:=True;
Edit1.Enabled:=True;
Edit1.SetFocus
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Label2.Enabled:=False;
Edit1.Clear;
Edit1.Enabled:=False
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Label1.Enabled:=True;
ComboBox1.Enabled:=True;
ComboBox1.SetFocus;
Edit1.Enabled:=True;
Edit1.Clear;
End;
end;
procedure TFrmDiplomasPorCriterio.ComboBox1Click(Sender: TObject);
begin
If RadioGroup1.ItemIndex = 0 Then
Begin
Edit2.Text:=´Eletromecânica´
End
Else
If RadioGroup1.ItemIndex = 1 Then
Begin
Edit2.Text:=´Recursos Hídricos / Irrigação´
End
Else
If RadioGroup1.ItemIndex = 2 Then
Begin
Edit2.Text:=´Recursos Hídricos / Saneamento Ambiental´
End
Else
If RadioGroup1.ItemIndex = 3 Then
Begin
Edit2.Text:=´Tecnologia de Alimentos´;
End;
end;
procedure TFrmDiplomasPorCriterio.BitBtn1Click(Sender: TObject);
begin
If (RadioGroup1.ItemIndex = 0) and (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE DataDeColacao LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit1.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Data da colação não encontrada´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End
End
Else
If (RadioGroup1.ItemIndex = 1) And (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE=:P1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Curso não encontrado´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End;
End;
end;
end.
-------------------------------------------------
COMO POSSO RESOLVER ISSO?
Grato pela imensa paciência e atenção,
Ilano.
Miguim...onde é que voce está fazendo a abertura do SQL ???
procedure TFrmDiplomasPorCriterio.BitBtn1Click(Sender: TObject);
begin
If (RadioGroup1.ItemIndex = 0) and (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE DataDeColacao LIKE=1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit1.Text;
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Data da colação não encontrada´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End
End
Else
If (RadioGroup1.ItemIndex = 1) And (RadioGroup2.ItemIndex = 0) Then
Begin
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE=1´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
>>>DMDados.ConsDiplomas.Open; <<<< faltou isso
If (DMDados.ConsDiplomas.RecordCount = 0) Then
Begin
ShowMessage(´Curso não encontrado´)
End
Else
Begin
Application.CreateForm(TFrmRelDiplomaPorCriterioFrente, FrmRelDiplomaPorCriterioFrente);
FrmRelDiplomaPorCriterioFrente.QuickRep1.PreviewModal;
End;
End;
end;
GOSTEI 0
Ilanocf
27/02/2003
Rápido, hein!
Quem sabe, sabe, quem não sabe bate palma. Valeu cara!
Infelizmente hoje não dá mais para eu ver, mas já imprimi sua resposta e irei trabalhar nela amanhã,
Obrigadão pela dica.
Quem sabe, sabe, quem não sabe bate palma. Valeu cara!
Infelizmente hoje não dá mais para eu ver, mas já imprimi sua resposta e irei trabalhar nela amanhã,
Obrigadão pela dica.
GOSTEI 0