Puxar dados de outro Formulario
Obrigado, a todos, aguardo uma ajuda.
Att, Felipe.
Felipe Arruda
Respostas
Joel Rodrigues
12/06/2013
1) Declarar variáveis públicas no form secundário;
2) Ao selecionar o registro, preencher essas variáveis (com Código, Id, Nome, etc);
3) No form principal, você chama o form secundário e após o ShowModal, acessa essas variáveis (afinal, são públicas).
Veja um exemplo:
formClientes := TformClientes.Create(Application); formClientes.ShowModal(); codigoCliente := formClientes.CodigoClienteSelecionado;
Essa é uma forma, mas você poderia muito bem acessar a tabela que está no form secundário direto:
formClientes := TformClientes.Create(Application);
formClientes.ShowModal();
codigoCliente := formClientes.queryClientes.FieldByName('Codigo').AsString;
Qualquer coisa, é só falar.
Felipe Arruda
12/06/2013
Vamos la, como sou iniciante em delphi gostaria de uma ajuda mais detalhada.
1) Eu declaro a variavel no FRSecundario, seria isso?
private
{ Private declarations }
public
{ Public declarations }
end;
var
FRPrimario: TFRPrimario;
implementation
uses unitprimario;
2) Essa segunda citação tenho que fazer algo ou ja esta incluso no codigo a frente?
3) O cdigo que vc citou abaixo eu o coloco no FRPrimario? Em qual evento do Formulario? Onde vc cita formClientes, seria meu FRSecundario? o codigocliente que vc tambem citou e uma variavel "var", tenho que cita la também?
Obrigado, aguardo, tenha um bom dia.
Joel Rodrigues
12/06/2013
Rapaz, nesse caso sugiro que você faça da segundo forma que eu citei. Vai ser mais rápido e mais fácil pra você~, além de atender bem sua necessidade.
O formClientes que citei é o form secundário sim, no seu caso, o FRSecundario.
Com relação a em que evento fazer o procedimento, aí depende de você, se vai ser em um botão ou em outro controle, por exemplo.
Abraço.
Felipe Arruda
12/06/2013
esse codigocleinte que vc citou no seu codigo o que seria?
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
Posso mostrar em um DBMemo, ele ligado a minha tabela principal, pois esses dados tem que ficar salvos no banco de dados, a ele tenho um IBTable e um DataSource, não tenho nenhuma query, e necessario essa query?
Joel Rodrigues
12/06/2013
E como eu disse, uma vez acessado o valor, você pode fazer o que quiser com ele, inclusive mostrar em um Memo.
Felipe Arruda
12/06/2013
procedure TFRAtendimento.DBMemo1Change(Sender: TObject);
var
codigocliente : String;
begin
FRSecundario := TFRSecundario.Create(Application);
FRFRSecundario.ShowModal();
codigoCliente := FRSecundario.IBTable1.FieldByName('Codigo').AsString;
end;
Os erros foram: inves de abrir o formulario primario, abre o secundario, ok. O outro erro e o seguinte, fecho os formularios secundarios para voltar para o primario, quando eu clico no DBMemo abre o formulario secundario, ate ai certo, porem, quero que abra o formualario eu escolha um dos registro da minha tabela que esta sendo mostrada em um DBGrid e ele preenche automaticamento esse campo no meu formulario primario. exemplo que vc me passou so esta abrindo o formulario.
Joel Rodrigues
12/06/2013
1) Está abrindo o form secundário: ora, e não é essa a intenção? Abrir o form secundário para que nele o usuário selecione um registro?
2) Você colocou no evento OnChange do Memo, isso não é bom. Utilize um botão ou algo do tipo.
3) Você atribuiu o retorno a uma variável, mas não fez nada relacionado ao memo. Precisaria colocar a variável dentro do memo, por exemplo:
DBMemo1.Lines.Add('Cliente: ' + codigoCliente);Felipe Arruda
12/06/2013
a variavel dentro do memo, seria assim:
var
codigocliente : String;
begin
DBMemo1.Lines.Add('Cliente: ' + codigoCliente);
end;
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
procedure TFRAtendimento.Button4Click(Sender: TObject);
var
codigocliente : String;
begin
FRErro := TFRErro.Create(Application);
FRErro.ShowModal();
codigoCliente := FRErro.IBTable1.FieldByName('ERRO/PROBLEMA').AsString;
DBMemo1.Lines.Add('ERRO/PROBLEMA: ' + codigoCliente);
end;
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
Posso te passar a aplicação para vc ver?
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
Certo, eu clico no botão do form principal dai abre o form secundario.
Com o form secundario aberto eu seleciono o registro e fecho o form secundario.
Quando vou no form principal os dados que selecionei do form secundario estão no campo que eu desejava do fom principal.
Porem quando eu clico nesse campo os dados somi.
Obrigado.
Att, Felipe.
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
procedure TFRAtendimento.Button4Click(Sender: TObject);
var
codigocliente : String;
begin
FRErro := TFRErro.Create(Application);
FRErro.ShowModal();
codigoCliente := FRErro.IBTable1.FieldByName('ERRO/PROBLEMA').AsString;
DBMemo1.Lines.Add('ERRO/PROBLEMA: ' + codigoCliente);
end;
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, DBCtrls, Grids, DBGrids, Mask,
DB, DBClient, IBQuery, IBCustomDataSet, IBTable, IBDatabase;
type
TFRAtendimento = class(TForm)
MainMenu1: TMainMenu;
A1: TMenuItem;
NovoCadastro1: TMenuItem;
SalvarCliente1: TMenuItem;
Desfazer1: TMenuItem;
ExcluirNovoCadastro1: TMenuItem;
ProximoCliente1: TMenuItem;
ClienteAnterior1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Procurar1: TMenuItem;
Relatrio1: TMenuItem;
Clie1: TMenuItem;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Label1: TLabel;
DBEdit1: TDBEdit;
Label3: TLabel;
Label13: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
DBEdit15: TDBEdit;
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
Label2: TLabel;
DBEdit2: TDBEdit;
Label6: TLabel;
DBEdit10: TDBEdit;
Label10: TLabel;
DBEdit11: TDBEdit;
Label11: TLabel;
DBEdit12: TDBEdit;
Label4: TLabel;
Label16: TLabel;
DBEdit17: TDBEdit;
DBMemo1: TDBMemo;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBTable1: TIBTable;
DataSource1: TDataSource;
IBTransaction2: TIBTransaction;
IBTable2: TIBTable;
DataSource2: TDataSource;
DataSource3: TDataSource;
DataSource4: TDataSource;
IBTransaction3: TIBTransaction;
IBTransaction4: TIBTransaction;
IBTable3: TIBTable;
IBTable4: TIBTable;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBMemo2: TDBMemo;
DataSource5: TDataSource;
IBTable5: TIBTable;
IBTransaction5: TIBTransaction;
DBLookupComboBox4: TDBLookupComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
AguardandoRetorno1: TMenuItem;
EmAndamento1: TMenuItem;
Retornar1: TMenuItem;
Finalizado1: TMenuItem;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure Sair1Click(Sender: TObject);
procedure ProximoCliente1Click(Sender: TObject);
procedure ClienteAnterior1Click(Sender: TObject);
procedure ExcluirNovoCadastro1Click(Sender: TObject);
procedure Desfazer1Click(Sender: TObject);
procedure SalvarCliente1Click(Sender: TObject);
procedure NovoCadastro1Click(Sender: TObject);
procedure DBEdit10Enter(Sender: TObject);
procedure DBEdit11Enter(Sender: TObject);
procedure DBEdit7Enter(Sender: TObject);
procedure DBEdit8Enter(Sender: TObject);
procedure DBEdit15Enter(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure DBGrid1TitleClick(Column: TColumn);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
procedure AguardandoRetorno1Click(Sender: TObject);
procedure EmAndamento1Click(Sender: TObject);
procedure Retornar1Click(Sender: TObject);
procedure Finalizado1Click(Sender: TObject);
procedure IBTable2AfterOpen(DataSet: TDataSet);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FRAtendimento: TFRAtendimento;
implementation
uses unitclientes, uniterro;
{$R *.dfm}
procedure TFRAtendimento.AguardandoRetorno1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 1';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.BitBtn1Click(Sender: TObject);
var
NOVO: integer;
begin
IBTable1.Last;
NOVO:=IBTable1.FieldByName ('CODIGO ATENDIMENTO').AsInteger+1;
IBTable1.Append;
IBTable1.FieldByName('CODIGO ATENDIMENTO').AsInteger:=NOVO;
DBEdit10.Text:=datetostr(now);
DBEdit7.Text:=timetostr(now);
DBEdit2.SetFocus;
end;
procedure TFRAtendimento.BitBtn2Click(Sender: TObject);
var
NOVO : integer;
begin
IBTable1.Post;
ShowMessage ('Atendimento Cadastrado com Sucesso.');
end;
procedure TFRAtendimento.BitBtn3Click(Sender: TObject);
begin
IBTable1.Cancel;
ShowMessage ('Cadastro de Novo Atendimento cancelado.');
end;
procedure TFRAtendimento.BitBtn4Click(Sender: TObject);
begin
If Application.MessageBox('Confirma Exclusão ?','Cuidado !!!',MB_YESNO +
MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES Then
IBTable1.Delete;
end;
procedure TFRAtendimento.BitBtn6Click(Sender: TObject);
begin
IBTable1.Prior;
end;
procedure TFRAtendimento.BitBtn7Click(Sender: TObject);
begin
IBTable1.Next;
end;
procedure TFRAtendimento.BitBtn8Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFRAtendimento.Button3Click(Sender: TObject);
begin
DataSource1.DataSet.Close;
DBGrid1.DataSource.DataSet.Filtered := False;
DataSource1.DataSet.Open;
end;
procedure TFRAtendimento.Button4Click(Sender: TObject);
var
codigocliente : String;
begin
FRErro := TFRErro.Create(Application);
FRErro.ShowModal();
codigoCliente := FRErro.IBTable1.FieldByName('ERRO/PROBLEMA').AsString;
DBMemo1.Lines.Add('ERRO/PROBLEMA: ' + codigoCliente);
end;
procedure TFRAtendimento.Button1Click(Sender: TObject);
begin
FRCliente.ShowModal ()
end;
procedure TFRAtendimento.Button2Click(Sender: TObject);
begin
FRErro.ShowModal ()
end;
procedure TFRAtendimento.ClienteAnterior1Click(Sender: TObject);
begin
IBTable1.Prior;
end;
procedure TFRAtendimento.DBEdit10Enter(Sender: TObject);
begin
DBEdit10.Field.EditMask:= '!99/99/0000;1';
end;
procedure TFRAtendimento.DBEdit11Enter(Sender: TObject);
begin
DBEdit11.Field.EditMask:= '!99/99/0000;1';
end;
procedure TFRAtendimento.DBEdit15Enter(Sender: TObject);
begin
DBEdit15.Field.EditMask:= 'R$999,99;0';
end;
procedure TFRAtendimento.DBEdit7Enter(Sender: TObject);
begin
DBEdit7.Field.EditMask:= '!90:00;1;_';
end;
procedure TFRAtendimento.DBEdit8Enter(Sender: TObject);
begin
DBEdit8.Field.EditMask:= '!90:00;1;_';
end;
procedure TFRAtendimento.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if IBTable1.FieldByName('STATUS').Value='4' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clRed;
end
else
if IBTable1.FieldByName('STATUS').Value='3' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clBlue;
end
else
if IBTable1.FieldByName('STATUS').Value='2' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clGreen;
end
else
if IBTable1.FieldByName('STATUS').Value='1' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clpurple;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TFRAtendimento.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
Pesquisa : String;
begin
if key = #13 then
begin
if InputQuery('Pesquisar por: ' + TDBGrid(Sender).Columns[TDBGrid(Sender).SelectedIndex].FieldName, 'Digite o conteúdo a Pesquisar', Pesquisa) then
begin
TDBGrid(Sender).DataSource.DataSet.Filter := '"' + TDBGrid(Sender).Columns[TDBGrid(Sender).SelectedIndex].FieldName + '"' + ' LIKE ' + UpperCase(QuotedStr(Pesquisa + '%'));
TDBGrid(Sender).DataSource.DataSet.Filtered := True;
end
else
TDBGrid(Sender).DataSource.DataSet.Filtered := False;
end;
end;
procedure TFRAtendimento.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
mousePt: TGridcoord;
begin
mousePt := DbGrid1.MouseCoord(x,y);
if mousePt.y = 0 then
Screen.Cursor := crHandPoint
else
Screen.Cursor := crDefault;
end;
procedure TFRAtendimento.DBGrid1TitleClick(Column: TColumn);
var
I: Integer;
begin
for I := 0 to DBGrid1.Columns.Count - 1 do
DBGrid1.Columns[i].Title.Font.Style := [];
if(Column.Field.KeyFields = '') then
IBTable1.IndexFieldNames:=Column.FieldName
else
IBTable1.IndexFieldNames:=Column.Field.KeyFields;
Column.Title.Font.Style := [fsBold];
end;
procedure TFRAtendimento.Desfazer1Click(Sender: TObject);
begin
IBTable1.Cancel;
ShowMessage ('Cadastro de Novo Atendimento cancelado.');
end;
procedure TFRAtendimento.EmAndamento1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 2';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.ExcluirNovoCadastro1Click(Sender: TObject);
begin
If Application.MessageBox('Confirma Exclusão ?','Cuidado !!!',MB_YESNO +
MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES Then
IBTable1.Delete;
end;
procedure TFRAtendimento.Finalizado1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 4';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.FormCreate(Sender: TObject);
begin
IBTable1.Open;
IBTable1.Last;
IBTable2.Open;
IBTable2.Last;
IBTable3.Open;
IBTable3.Last;
IBTable4.Open;
IBTable4.Last;
IBTable5.Open;
IBTable5.Last;
end;
procedure TFRAtendimento.IBTable2AfterOpen(DataSet: TDataSet);
begin
DataSet.Refresh;
end;
procedure TFRAtendimento.NovoCadastro1Click(Sender: TObject);
var
NOVO: integer;
begin
IBTable1.Last;
NOVO:=IBTable1.FieldByName ('CODIGO ATENDIMENTO').AsInteger+1;
IBTable1.Append;
IBTable1.FieldByName('CODIGO ATENDIMENTO').AsInteger:=NOVO;
DBEdit2.SetFocus;
end;
procedure TFRAtendimento.ProximoCliente1Click(Sender: TObject);
begin
IBTable1.Next;
end;
procedure TFRAtendimento.Retornar1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 3';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.Sair1Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFRAtendimento.SalvarCliente1Click(Sender: TObject);
var
NOVO : integer;
begin
IBTable1.Post;
ShowMessage ('Atendimento Cadastrado com Sucesso.');
end;
end.
Felipe Arruda
12/06/2013
unit unitatendimento;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, DBCtrls, Grids, DBGrids, Mask,
DB, DBClient, IBQuery, IBCustomDataSet, IBTable, IBDatabase;
type
TFRAtendimento = class(TForm)
MainMenu1: TMainMenu;
A1: TMenuItem;
NovoCadastro1: TMenuItem;
SalvarCliente1: TMenuItem;
Desfazer1: TMenuItem;
ExcluirNovoCadastro1: TMenuItem;
ProximoCliente1: TMenuItem;
ClienteAnterior1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Procurar1: TMenuItem;
Relatrio1: TMenuItem;
Clie1: TMenuItem;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Label1: TLabel;
DBEdit1: TDBEdit;
Label3: TLabel;
Label13: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
DBEdit15: TDBEdit;
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
Label2: TLabel;
DBEdit2: TDBEdit;
Label6: TLabel;
DBEdit10: TDBEdit;
Label10: TLabel;
DBEdit11: TDBEdit;
Label11: TLabel;
DBEdit12: TDBEdit;
Label4: TLabel;
Label16: TLabel;
DBEdit17: TDBEdit;
DBMemo1: TDBMemo;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBTable1: TIBTable;
DataSource1: TDataSource;
IBTransaction2: TIBTransaction;
IBTable2: TIBTable;
DataSource2: TDataSource;
DataSource3: TDataSource;
DataSource4: TDataSource;
IBTransaction3: TIBTransaction;
IBTransaction4: TIBTransaction;
IBTable3: TIBTable;
IBTable4: TIBTable;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBMemo2: TDBMemo;
DataSource5: TDataSource;
IBTable5: TIBTable;
IBTransaction5: TIBTransaction;
DBLookupComboBox4: TDBLookupComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
AguardandoRetorno1: TMenuItem;
EmAndamento1: TMenuItem;
Retornar1: TMenuItem;
Finalizado1: TMenuItem;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure Sair1Click(Sender: TObject);
procedure ProximoCliente1Click(Sender: TObject);
procedure ClienteAnterior1Click(Sender: TObject);
procedure ExcluirNovoCadastro1Click(Sender: TObject);
procedure Desfazer1Click(Sender: TObject);
procedure SalvarCliente1Click(Sender: TObject);
procedure NovoCadastro1Click(Sender: TObject);
procedure DBEdit10Enter(Sender: TObject);
procedure DBEdit11Enter(Sender: TObject);
procedure DBEdit7Enter(Sender: TObject);
procedure DBEdit8Enter(Sender: TObject);
procedure DBEdit15Enter(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure DBGrid1TitleClick(Column: TColumn);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
procedure AguardandoRetorno1Click(Sender: TObject);
procedure EmAndamento1Click(Sender: TObject);
procedure Retornar1Click(Sender: TObject);
procedure Finalizado1Click(Sender: TObject);
procedure IBTable2AfterOpen(DataSet: TDataSet);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FRAtendimento: TFRAtendimento;
implementation
uses unitclientes, uniterro;
{$R *.dfm}
procedure TFRAtendimento.AguardandoRetorno1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 1';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.BitBtn1Click(Sender: TObject);
var
NOVO: integer;
begin
IBTable1.Last;
NOVO:=IBTable1.FieldByName ('CODIGO ATENDIMENTO').AsInteger+1;
IBTable1.Append;
IBTable1.FieldByName('CODIGO ATENDIMENTO').AsInteger:=NOVO;
DBEdit10.Text:=datetostr(now);
DBEdit7.Text:=timetostr(now);
DBEdit2.SetFocus;
end;
procedure TFRAtendimento.BitBtn2Click(Sender: TObject);
var
NOVO : integer;
begin
IBTable1.Post;
ShowMessage ('Atendimento Cadastrado com Sucesso.');
end;
procedure TFRAtendimento.BitBtn3Click(Sender: TObject);
begin
IBTable1.Cancel;
ShowMessage ('Cadastro de Novo Atendimento cancelado.');
end;
procedure TFRAtendimento.BitBtn4Click(Sender: TObject);
begin
If Application.MessageBox('Confirma Exclusão ?','Cuidado !!!',MB_YESNO +
MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES Then
IBTable1.Delete;
end;
procedure TFRAtendimento.BitBtn6Click(Sender: TObject);
begin
IBTable1.Prior;
end;
procedure TFRAtendimento.BitBtn7Click(Sender: TObject);
begin
IBTable1.Next;
end;
procedure TFRAtendimento.BitBtn8Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFRAtendimento.Button3Click(Sender: TObject);
begin
DataSource1.DataSet.Close;
DBGrid1.DataSource.DataSet.Filtered := False;
DataSource1.DataSet.Open;
end;
procedure TFRAtendimento.Button4Click(Sender: TObject);
var
codigocliente : String;
begin
FRErro := TFRErro.Create(Application);
FRErro.ShowModal();
codigoCliente := FRErro.IBTable1.FieldByName('ERRO/PROBLEMA').AsString;
DBMemo1.Lines.Add('ERRO/PROBLEMA: ' + codigoCliente);
end;
procedure TFRAtendimento.Button1Click(Sender: TObject);
begin
FRCliente.ShowModal ()
end;
procedure TFRAtendimento.Button2Click(Sender: TObject);
begin
FRErro.ShowModal ()
end;
procedure TFRAtendimento.ClienteAnterior1Click(Sender: TObject);
begin
IBTable1.Prior;
end;
procedure TFRAtendimento.DBEdit10Enter(Sender: TObject);
begin
DBEdit10.Field.EditMask:= '!99/99/0000;1';
end;
procedure TFRAtendimento.DBEdit11Enter(Sender: TObject);
begin
DBEdit11.Field.EditMask:= '!99/99/0000;1';
end;
procedure TFRAtendimento.DBEdit15Enter(Sender: TObject);
begin
DBEdit15.Field.EditMask:= 'R$999,99;0';
end;
procedure TFRAtendimento.DBEdit7Enter(Sender: TObject);
begin
DBEdit7.Field.EditMask:= '!90:00;1;_';
end;
procedure TFRAtendimento.DBEdit8Enter(Sender: TObject);
begin
DBEdit8.Field.EditMask:= '!90:00;1;_';
end;
procedure TFRAtendimento.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if IBTable1.FieldByName('STATUS').Value='4' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clRed;
end
else
if IBTable1.FieldByName('STATUS').Value='3' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clBlue;
end
else
if IBTable1.FieldByName('STATUS').Value='2' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clGreen;
end
else
if IBTable1.FieldByName('STATUS').Value='1' then
begin
DBGrid1.Canvas.Brush.Color:=clMenu;
DbGrid1.Canvas.Font.Color := clpurple;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TFRAtendimento.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
Pesquisa : String;
begin
if key = #13 then
begin
if InputQuery('Pesquisar por: ' + TDBGrid(Sender).Columns[TDBGrid(Sender).SelectedIndex].FieldName, 'Digite o conteúdo a Pesquisar', Pesquisa) then
begin
TDBGrid(Sender).DataSource.DataSet.Filter := '"' + TDBGrid(Sender).Columns[TDBGrid(Sender).SelectedIndex].FieldName + '"' + ' LIKE ' + UpperCase(QuotedStr(Pesquisa + '%'));
TDBGrid(Sender).DataSource.DataSet.Filtered := True;
end
else
TDBGrid(Sender).DataSource.DataSet.Filtered := False;
end;
end;
procedure TFRAtendimento.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
mousePt: TGridcoord;
begin
mousePt := DbGrid1.MouseCoord(x,y);
if mousePt.y = 0 then
Screen.Cursor := crHandPoint
else
Screen.Cursor := crDefault;
end;
procedure TFRAtendimento.DBGrid1TitleClick(Column: TColumn);
var
I: Integer;
begin
for I := 0 to DBGrid1.Columns.Count - 1 do
DBGrid1.Columns[i].Title.Font.Style := [];
if(Column.Field.KeyFields = '') then
IBTable1.IndexFieldNames:=Column.FieldName
else
IBTable1.IndexFieldNames:=Column.Field.KeyFields;
Column.Title.Font.Style := [fsBold];
end;
procedure TFRAtendimento.Desfazer1Click(Sender: TObject);
begin
IBTable1.Cancel;
ShowMessage ('Cadastro de Novo Atendimento cancelado.');
end;
procedure TFRAtendimento.EmAndamento1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 2';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.ExcluirNovoCadastro1Click(Sender: TObject);
begin
If Application.MessageBox('Confirma Exclusão ?','Cuidado !!!',MB_YESNO +
MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES Then
IBTable1.Delete;
end;
procedure TFRAtendimento.Finalizado1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 4';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.FormCreate(Sender: TObject);
begin
IBTable1.Open;
IBTable1.Last;
IBTable2.Open;
IBTable2.Last;
IBTable3.Open;
IBTable3.Last;
IBTable4.Open;
IBTable4.Last;
IBTable5.Open;
IBTable5.Last;
end;
procedure TFRAtendimento.IBTable2AfterOpen(DataSet: TDataSet);
begin
DataSet.Refresh;
end;
procedure TFRAtendimento.NovoCadastro1Click(Sender: TObject);
var
NOVO: integer;
begin
IBTable1.Last;
NOVO:=IBTable1.FieldByName ('CODIGO ATENDIMENTO').AsInteger+1;
IBTable1.Append;
IBTable1.FieldByName('CODIGO ATENDIMENTO').AsInteger:=NOVO;
DBEdit2.SetFocus;
end;
procedure TFRAtendimento.ProximoCliente1Click(Sender: TObject);
begin
IBTable1.Next;
end;
procedure TFRAtendimento.Retornar1Click(Sender: TObject);
begin
IBTable1.Filter := 'STATUS = 3';
IBTable1.Filtered := True;
end;
procedure TFRAtendimento.Sair1Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFRAtendimento.SalvarCliente1Click(Sender: TObject);
var
NOVO : integer;
begin
IBTable1.Post;
ShowMessage ('Atendimento Cadastrado com Sucesso.');
end;
end.
Joel Rodrigues
12/06/2013
Felipe Arruda
12/06/2013
E se eu tentar salvar da o seguinte erro:
IBTable1: Dataset not in edit insert mode
Joel Rodrigues
12/06/2013
Você precisará chamar o método Insert ou o Edit (se for inserir um registro novo ou editar, respectivamente).
Você pode ter um botão "Novo" ou "Editar" e executar o seguinte no OnClick:
Para iserir:
IBTable1.Insert;
Para editar:
IBTable1.Edit;
Felipe Arruda
12/06/2013
Obrigado mesmo.
Joel Rodrigues
12/06/2013
Um grande abraço.
Estou encerrando o tópico.