Fórum Dificuldades com o PocketStudio #407440
08/09/2011
0
unit frmCadEntrevistados;
interface
uses PSL, funcoes_globais;
const
formCadEntrevistados = AutoID;
function Valida : Boolean;
function HandleEvent(var Event: EventType): Boolean;
procedure CarregaDados;
Procedure Limpar;
var
DBEntrevistadosTipo: TDatabase;
implementation
uses
frmPrincipal, DBEntrevistados;
const
btnPrincipal = AutoID;
LabelNome = AutoID;
LabelIdade = AutoID;
LabelSexo = AutoID;
LabelProfissao = AutoID;
LabelEstado = AutoID;
LabelCidade = AutoID;
LabelEndereco = AutoID;
LabelBairro = AutoID;
FieldNome = AutoID;
FieldIdade = AutoID;
FieldSexo = AutoID;
FieldProfissao = AutoID;
FieldEstado = AutoID;
FieldCidade = AutoID;
FieldEndereco = AutoID;
FieldBairro = AutoID;
FieldId = AutoID;
btnIPrimeiro = AutoID;
btnAnterior = AutoID;
btnUltimo = AutoID;
btnProximo = AutoID;
btnGravar = AutoID;
btnLimpar = AutoID;
AlertConfirmacao = AutoID;
btnNovo = AutoID;
btnExcluir = AutoID;
LabelId = AutoID;
AlertError = AutoID;
resource
ALERT AlertError ERROR
BEGIN
TITLE 'M130'
MESSAGE '^1'
BUTTONS 'OK'
END;
ALERT AlertConfirmacao {HELP String1} {DEFAULTBUTTON 0} CONFIRMATION
BEGIN
TITLE 'Confirmação'
MESSAGE '^1'
BUTTONS 'Sim' 'Não'
END;
FORM formCadEntrevistados AT (0 0 160 160) NOFRAME
BEGIN
TITLE 'Cadastro de Entrevistados'
LABEL LabelNome 'Nome:' AT (8 38)
LABEL LabelIdade 'Idade:' AT (8 50)
LABEL LabelSexo 'Sexo:' AT (8 62)
LABEL LabelProfissao 'Profiss'#227'o:' AT (8 74)
LABEL LabelCidade 'Cidade:' AT (8 86)
LABEL LabelEstado 'Estado:' AT (8 98)
LABEL LabelEndereco 'Endere'#231'o:' AT (8 110)
LABEL LabelBairro 'Bairro:' AT (8 122)
FIELD FieldId AT (53 25 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldNome AT (53 37 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldIdade AT (53 49 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldSexo AT (53 61 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldProfissao AT (53 73 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldCidade AT (53 85 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldEstado AT (53 97 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldEndereco AT (53 109 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldBairro AT (53 121 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
BUTTON btnIPrimeiro '<<' AT (6 145 18 10)
BUTTON btnAnterior '<' AT (10 132 18 10)
BUTTON btnUltimo '>>' AT (38 145 18 10)
BUTTON btnProximo '>' AT (35 132 18 10)
BUTTON btnGravar 'Gravar' AT (113 135 38 8)
BUTTON btnPrincipal 'Inicio' AT (5 17 148 10)
BUTTON btnLimpar 'Limpar' AT (63 135 38 8)
BUTTON btnNovo 'Novo' AT (67 146 38 8)
BUTTON btnExcluir 'Excluir' AT (109 146 38 8)
LABEL LabelId 'Id:' AT (8 26)
END;
procedure formCadEntrevistadosOpen;
begin
PSForm.Draw;
CarregaDados;
PSForm.SetFocus(FieldID);
end;
function formCadEntrevistadosCustomEvent: Boolean;
begin
Result := False;
end;
procedure btnPrincipalSelect;
begin
FrmGotoForm(formPrincipal);
Handled := True;
end;
procedure CarregaDados;
var
Buffer: Array[0..9-1] of Char; // Temporária
begin
StrIToA(Buffer, PSDatabase.FieldUInt16(DBEntrevistadosTipo, Entrevistado_ID));
PSField.SetText(FieldId, Buffer);
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
exit;
// load field values from database
PSField.SetText(FieldId, Buffer);
PSField.SetText(FieldNome, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_NOME));
PSField.SetText(FieldIdade, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_IDADE));
PSField.SetText(FieldSexo, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_SEXO));
PSField.SetText(FieldProfissao, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_PROFISSAO));
PSField.SetText(FieldCidade, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_CIDADE));
PSField.SetText(FieldEstado, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_ESTADO));
PSField.SetText(FieldEndereco, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_ENDERECO));
PSField.SetText(FieldBairro, PSDatabase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_BAIRRO));
PSForm.SetFocus(FieldID);
end;
procedure btnIPrimeiroSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.First(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
procedure btnAnteriorSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.Prior(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
procedure btnProximoSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.Next(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
procedure btnUltimoSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.Last(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
Procedure Limpar;
Begin
PsField.SetText (FieldId, '');
PsField.SetText (FieldNome, '');
PsField.SetText (FieldIdade, '');
PsField.SetText (FieldSexo, '');
PsField.SetText (FieldProfissao, '');
PsField.SetText (FieldCidade, '');
PsField.SetText (FieldEstado, '');
PsField.SetText (FieldEndereco, '');
PsField.SetText (FieldBairro, '');
PSForm.SetFocus(FieldID);
end;
procedure btnGravarSelect;
var
Buffer: Array[0..9-1] of Char; // Temporária
begin
// Valida os campos do formulário
{ if not Valida then
exit;
}
// Se estivermos Incluindo colocamos o registro em modo de edição
if DBEntrevistadosInclui then
begin
PSDatabase.Append(DBEntrevistadosTipo);
end
else
PSDatabase.Edit(DBEntrevistadosTipo);
PSDatabase.SetFieldUInt16(DBEntrevistadosTipo, Entrevistado_ID, StrAToI(PSField.TextPtr(FieldId)));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_NOME, PSField.TextPtr(FieldNome));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_IDADE, PSField.TextPtr(FieldIdade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_SEXO, PSField.TextPtr(FieldSexo));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_PROFISSAO, PSField.TextPtr(FieldProfissao));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_CIDADE, PSField.TextPtr(FieldCidade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ESTADO, PSField.TextPtr(FieldEstado));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ENDERECO, PSField.TextPtr(FieldEndereco));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_BAIRRO, PSField.TextPtr(FieldBairro));
PSDatabase.Post(DBEntrevistadosTipo);
DBEntrevistadosInclui := false;
CarregaDados;
PSForm.SetFocus(FieldID);
End;
Function Valida : Boolean;
var
Buffer : array [0..8] of char;
Begin
Result := True;
PsField.Text (FieldId, Buffer, PsField.TextLength (FieldId + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Código do Entrevistado');
PsField.SetFocused (FieldId, True);
Result := False;
Exit;
End;
PsField.Text (FieldNome, Buffer, PsField.TextLength (FieldNome + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Nome do Entrevistado');
PsField.SetFocused (FieldNome, True);
Result := False;
Exit;
End;
PsField.Text (FieldIdade, Buffer, PsField.TextLength (FieldIdade + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Idade do Entrevistado');
PsField.SetFocused (FieldIdade, True);
Result := False;
Exit;
End;
PsField.Text (FieldSexo, Buffer, PsField.TextLength (FieldSexo + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Sexo do Entrevistado');
PsField.SetFocused (FieldSexo, True);
Result := False;
Exit;
End;
PsField.Text (FieldProfissao, Buffer, PsField.TextLength (FieldProfissao + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Profissão do Entrevistado');
PsField.SetFocused (FieldProfissao, True);
Result := False;
Exit;
End;
PsField.Text (FieldCidade, Buffer, PsField.TextLength (FieldCidade + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Cidade do Entrevistado');
PsField.SetFocused (FieldCidade, True);
Result := False;
Exit;
End;
PsField.Text (FieldEstado, Buffer, PsField.TextLength (FieldEstado + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Estado do Entrevistado');
PsField.SetFocused (FieldEstado, True);
Result := False;
Exit;
End;
PsField.Text (FieldEndereco, Buffer, PsField.TextLength (FieldEndereco + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Endereco do Entrevistado');
PsField.SetFocused (FieldEndereco, True);
Result := False;
Exit;
End;
PsField.Text (FieldBairro, Buffer, PsField.TextLength (FieldBairro + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Bairro do Entrevistado');
PsField.SetFocused (FieldBairro, True);
Result := False;
Exit;
End;
End;
procedure excluir;
begin
if DBEntrevistadosInclui then
begin
ShowMessage ('Nada Selecionado');
end;
If FrmCustomAlert (AlertConfirmacao,'Deseja Sair do Cadastro de Entrevistados?','','') = 0 then
FrmGoToForm (FormPrincipal);
Exit;
PSDatabase.delete(DBEntrevistadosTipo);
DBEntrevistadosInclui:= True;
Limpar;
PSForm.SetFocus(FieldID);
end;
procedure btnLimparSelect;
begin
Limpar;
end;
procedure btnNovoSelect;
begin
// create a new record
if not PSDatabase.Append(DBEntrevistadosTipo) then
FrmCustomAlert(AlertError, 'Erro', '', '')
else
begin
DBEntrevistadosInclui:= True;
Limpar;
PSForm.SetFocus(FieldId);
end
end;
procedure btnExcluirSelect;
begin
excluir;
end;
function HandleEvent(var Event: EventType): Boolean;
begin
PSApplication.Event := @Event;
PSApplication.Handled := True;
if not formCadEntrevistadosCustomEvent then
case Event.eType of
ctlSelectEvent:
with Event.ctlSelect do
case controlID of
btnIPrimeiro:
btnIPrimeiroSelect;
btnAnterior:
btnAnteriorSelect;
btnUltimo:
btnUltimoSelect;
btnProximo:
btnProximoSelect;
btnGravar:
btnGravarSelect;
btnPrincipal:
btnPrincipalSelect;
btnLimpar:
btnLimparSelect;
btnNovo:
btnNovoSelect;
btnExcluir:
btnExcluirSelect;
else
PSApplication.Handled := False;
end;
frmOpenEvent:
formCadEntrevistadosOpen;
else
PSApplication.Handled := False;
end;
Result := PSApplication.Handled;
end;
end.
Carlos Rocha
Curtir tópico
+ 0Posts
08/09/2011
Carlos Rocha
procedure btnGravarSelect;
var
Buffer: Array[0..9-1] of Char; // Temporária
begin
// Valida os campos do formulário
{ if not Valida then
exit;
}
// Se estivermos Incluindo colocamos o registro em modo de inserção
if DBEntrevistadosInclui then
begin
PSDatabase.insert(DBEntrevistadosTipo);
end
else
PSDatabase.Edit(DBEntrevistadosTipo);
PSDatabase.SetFieldUInt16(DBEntrevistadosTipo, Entrevistado_ID, StrAToI(PSField.TextPtr(FieldId)));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_NOME, PSField.TextPtr(FieldNome));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_IDADE, PSField.TextPtr(FieldIdade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_SEXO, PSField.TextPtr(FieldSexo));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_PROFISSAO, PSField.TextPtr(FieldProfissao));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_CIDADE, PSField.TextPtr(FieldCidade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ESTADO, PSField.TextPtr(FieldEstado));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ENDERECO, PSField.TextPtr(FieldEndereco));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_BAIRRO, PSField.TextPtr(FieldBairro));
if PSDatabase.Post(DBEntrevistadosTipo) then
begin
Showmessage('Gravado com sucesso');
DBEntrevistadosInclui := false;
PSForm.SetFocus(FieldID);
end
else
begin
Showmessage('Erro na Gravação!');
end;
CarregaDados;
PSForm.SetFocus(FieldID);
End;
procedure btnNovoSelect; begin // create a new record if not PSDatabase.Append(DBEntrevistadosTipo) then FrmCustomAlert(AlertError, 'Erro', '', '') else begin DBEntrevistadosInclui:= True; Limpar; PSForm.SetFocus(FieldId); end end;
Gostei + 0
13/09/2011
Micheus
1) Ápós Gravar ou Editar, a navegar entre os registros, quando chega no primeiro o no último, da erro do Pocket.
Olhando seu código:
procedure btnAnteriorSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.Prior(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end; procedure btnProximoSelect;
begin
if PsDataBase.recordCount(DBEntrevistadosTipo) = 0 then
exit;
PsDataBase.Next(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
Vemos que vc simplesmente testa se há registros no database, porém vc ainda precisaria testar se voce pode ou não mover-se - testar se vc já não teria atingido o início (BOF) ou o fim (EOF) do do database.
Com a ajuda do bom e velho Google, verifiquei que existem estas funções no "componente" que vc está usando. Assim, vc deve utilizá-las e isto deverá evitar o erro que vc mensionou:
procedure btnAnteriorSelect;
begin
if (PsDataBase.recordCount(DBEntrevistadosTipo) = 0) or
PSDatabase.Bof(DBEntrevistadosTipo) then
exit;
PsDataBase.Prior(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end; procedure btnProximoSelect;
begin
if (PsDataBase.recordCount(DBEntrevistadosTipo) = 0) or
PSDatabase.Eof(DBEntrevistadosTipoDBEntrevistadosTipoDBEntrevistadosTipo) then
exit;
PsDataBase.Next(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldID);
end;
Espero que isto lhe ajude.
Abraços
Gostei + 0
13/09/2011
Micheus
Gostei + 0
13/09/2011
Carlos Rocha
Function Valida : Boolean;
var
Buffer : array [0..2] of char;
Begin
Result := True;
PsField.Text (FieldTitulo, Buffer, PsField.TextLength (FieldTitulo + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Titulo da Enquete');
PsField.SetFocused (FieldTitulo, True);
Result := False;
Exit;
End;
PsField.Text (FieldDataEnquete, Buffer, PsField.TextLength (FieldDataEnquete + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a data da Enquete');
PsField.SetFocused (FieldDataEnquete, True);
Result := False;
Exit;
End;
End;
Que valida dois campos do meu form.
Acontece que, quando deixo o campo vazio, o Message é disparado dizendo que o campo esta vazio. Porem, se eu colocar alguma coisa no campo, continua dizendo que esta vazio. O que será que pode ser isso?
Gostei + 0
13/09/2011
Carlos Rocha
Segue o código todo:
unit frmCadEntrevistados;
interface
uses PSL;
const
formCadEntrevistados = AutoID;
function Valida : Boolean;
function HandleEvent(var Event: EventType): Boolean;
procedure CarregaDados;
procedure Limpar;
procedure habilitabotoes;
procedure desabilitabotoes;
procedure BtnNovoSelect;
var
DBEntrevistadosTipo: TDatabase;
implementation
uses
frmPrincipal, DBEntrevistados, frmCadastros;
const
LabelNome = AutoID;
LabelIdade = AutoID;
LabelSexo = AutoID;
LabelProfissao = AutoID;
LabelEstado = AutoID;
LabelCidade = AutoID;
LabelEndereco = AutoID;
LabelBairro = AutoID;
FieldNome = AutoID;
FieldIdade = AutoID;
FieldSexo = AutoID;
FieldProfissao = AutoID;
FieldEstado = AutoID;
FieldCidade = AutoID;
FieldEndereco = AutoID;
FieldBairro = AutoID;
BtnPrincipal = AutoID;
BtnPrimeiro = AutoID;
BtnAnterior = AutoID;
BtnUltimo = AutoID;
BtnProximo = AutoID;
BtnGravar = AutoID;
BtnLimpar = AutoID;
BtnNovo = AutoID;
BtnExcluir = AutoID;
BtnVoltar = AutoID;
AlertConfirmacao = AutoID;
AlertError = AutoID;
BtnCancelar = AutoID;
BmpDesabilita = AutoID;
BmpCancelar = AutoID ;
BmpVoltar = AutoID ;
BmpInicio = AutoID ;
BmpAnterior = AutoID ;
BmpProximo = AutoID ;
BmpFim = AutoID ;
BmpNovo = AutoID ;
BmpGravar = AutoID ;
BmpExcluir = AutoID ;
BmpProcurar = AutoID ;
resource
BITMAP BmpDesabilita 'img/Disable.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpCancelar 'img/Cancel.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpVoltar 'img/Return.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpInicio 'img/First.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpAnterior 'img/Previous.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpProximo 'img/Next.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpFim 'img/Last.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpNovo 'img/New.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpGravar 'img/Post.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpExcluir 'img/Delete.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
BITMAP BmpProcurar 'img/Search.bmp' DENSITY 72 DIRECTCOLOR TRANSPARENCY 0 0 ;
ALERT AlertError ERROR
BEGIN
TITLE 'M130'
MESSAGE '^1'
BUTTONS 'OK'
END;
ALERT AlertConfirmacao CONFIRMATION
BEGIN
TITLE 'Confirma'#231#227'o'
MESSAGE 'Deseja excluir o item selecionado?'
BUTTONS 'N'#227'o' 'Sim'
END;
FORM formCadEntrevistados AT (0 0 160 160) NOFRAME
BEGIN
TITLE 'Cadastro de Entrevistados'
BUTTON BtnPrimeiro '<<' AT (9 149 18 8)
BUTTON BtnAnterior '<' AT (9 138 18 8)
BUTTON BtnUltimo '>>' AT (33 149 18 8)
BUTTON BtnProximo '>' AT (33 138 18 8)
BUTTON BtnGravar 'Gravar' AT (114 138 38 8)
BUTTON BtnPrincipal 'Inicio' AT (9 17 142 10)
BUTTON BtnLimpar 'Limpar' AT (72 138 38 8)
BUTTON BtnNovo 'Novo' AT (72 149 38 8)
BUTTON BtnExcluir 'Excluir' AT (115 149 38 8)
BUTTON BtnVoltar '<<' AT (140 1 18 12)
BUTTON BtnCancelar 'Cancelar' AT (9 127 143 8)
LABEL LabelNome 'Nome:' AT (8 30)
LABEL LabelIdade 'Idade:' AT (8 42)
LABEL LabelSexo 'Sexo:' AT (8 54)
LABEL LabelProfissao 'Profiss'#227'o:' AT (8 66)
LABEL LabelCidade 'Cidade:' AT (8 78)
LABEL LabelEstado 'Estado:' AT (8 90)
LABEL LabelEndereco 'Endere'#231'o:' AT (8 102)
LABEL LabelBairro 'Bairro:' AT (8 114)
FIELD FieldNome AT (53 28 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldIdade AT (53 40 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldSexo AT (53 52 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldProfissao AT (53 64 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldCidade AT (53 76 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldEstado AT (53 88 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldEndereco AT (53 100 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
FIELD FieldBairro AT (53 112 100 14) UNDERLINED MAXCHARS 10 AUTOSHIFT
END;
procedure formCadEntrevistadosOpen;
begin
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
begin
BtnNovoSelect;
end
else
begin
habilitabotoes;
end;
PSForm.Draw;
CarregaDados;
PSForm.SetFocus(FieldNome);
end;
function formCadEntrevistadosCustomEvent: Boolean;
begin
Result := False;
end;
procedure BtnPrincipalSelect;
begin
FrmGotoForm(formPrincipal);
end;
procedure BtnPrimeiroSelect;
begin
PsDataBase.First(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldNome);
end;
procedure BtnAnteriorSelect;
begin
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
begin
exit;
end;
PSDataBase.Prior(DBEntrevistadosTipo);
if PSDataBase.Bof(DBEntrevistadosTipo) then
begin
PSDataBase.First(DBEntrevistadosTipo);
end;
CarregaDados;
PSForm.SetFocus(FieldNome);
end;
procedure BtnProximoSelect;
begin
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
begin
exit;
end;
PSDataBase.Next(DBEntrevistadosTipo);
if PSDataBase.Eof(DBEntrevistadosTipo) then
begin
PSDataBase.Last(DBEntrevistadosTipo);
end;
CarregaDados;
PSForm.SetFocus(FieldNome);
end;
procedure BtnUltimoSelect;
begin
PsDataBase.Last(DBEntrevistadosTipo);
CarregaDados;
PSForm.SetFocus(FieldNome);
end;
procedure BtnVoltarSelect;
begin
FrmGotoForm(formCadastros);
end;
procedure BtnCancelarSelect;
begin
DBEntrevistadosInclui:= False;
BtnAnteriorSelect;
PSForm.SetFocus(FieldNome);
habilitabotoes;
end;
procedure BtnLimparSelect;
begin
Limpar;
end;
procedure Limpar;
begin
PsField.SetText (FieldNome, '');
PsField.SetText (FieldIdade, '');
PsField.SetText (FieldSexo, '');
PsField.SetText (FieldProfissao, '');
PsField.SetText (FieldCidade, '');
PsField.SetText (FieldEstado, '');
PsField.SetText (FieldEndereco, '');
PsField.SetText (FieldBairro, '');
PSForm.SetFocus (FieldNome);
end;
procedure BtnNovoSelect;
begin
desabilitabotoes;
// create a new record
if not PSDatabase.Append(DBEntrevistadosTipo) then
FrmCustomAlert(AlertError, 'Erro', '', '')
else
begin
DBEntrevistadosInclui:= True;
Limpar;
PSForm.SetFocus(FieldNome);
end;
end;
procedure BtnExcluirSelect;
begin
//If FrmCustomAlert (AlertConfirmacao,'Deseja Sair do Cadastro de Entrevistados?','','') = 0 then
if FrmAlert(AlertConfirmacao)=0 then
begin
Exit;
end;
PSDatabase.Delete(DBEntrevistadosTipo);
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
begin
Limpar;
PSForm.SetFocus(FieldNome);
PSButton.SetEnabled(BtnExcluir,false);
habilitabotoes;
end
else
begin
CarregaDados;
PSForm.SetFocus(FieldNome);
habilitabotoes
end;
end;
procedure habilitabotoes;
begin
PSButton.SetEnabled(BtnAnterior,true);
PSButton.SetEnabled(BtnProximo,true);
PSButton.SetEnabled(BtnUltimo,true);
PSButton.SetEnabled(BtnPrimeiro,true);
PSButton.SetEnabled(BtnNovo,true);
PSButton.SetEnabled(BtnGravar,true);
PSButton.SetEnabled(BtnExcluir,true);
PSButton.SetEnabled(BtnLimpar,true);
PSButton.SetEnabled(BtnVoltar,true);
PSButton.SetEnabled(BtnPrincipal,true);
PSButton.SetEnabled(BtnCancelar,false);
end;
procedure desabilitabotoes;
begin
PSButton.SetEnabled(BtnAnterior,false);
PSButton.SetEnabled(BtnProximo,false);
PSButton.SetEnabled(BtnUltimo,false);
PSButton.SetEnabled(BtnPrimeiro,false);
PSButton.SetEnabled(BtnNovo,false);
PSButton.SetEnabled(BtnExcluir,false);
PSButton.SetEnabled(BtnVoltar,false);
PSButton.SetEnabled(BtnPrincipal,false);
PSButton.SetEnabled(BtnGravar,true);
PSButton.SetEnabled(BtnLimpar,true);
PSButton.SetEnabled(BtnCancelar,true);
end;
procedure BtnGravarSelect;
begin
if not Valida then
exit;
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_NOME, PSField.TextPtr(FieldNome));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_IDADE, PSField.TextPtr(FieldIdade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_SEXO, PSField.TextPtr(FieldSexo));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_PROFISSAO, PSField.TextPtr(FieldProfissao));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_CIDADE, PSField.TextPtr(FieldCidade));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ESTADO, PSField.TextPtr(FieldEstado));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_ENDERECO, PSField.TextPtr(FieldEndereco));
PSDatabase.SetFieldString(DBEntrevistadosTipo, Entrevistado_BAIRRO, PSField.TextPtr(FieldBairro));
if PSDatabase.Post(DBEntrevistadosTipo) then
begin
if DBEntrevistadosInclui = true then
begin
Showmessage('Gravado com sucesso');
CarregaDados;
habilitabotoes;
DBEntrevistadosInclui := false;
end
else
begin
Showmessage('Alterado com sucesso');
CarregaDados;
habilitabotoes;
end;
end
else
begin
Showmessage('Erro na Gravação!');
CarregaDados;
habilitabotoes;
exit;
end;
habilitabotoes;
End;
Function Valida : Boolean;
var
Buffer : array [0..8] of char;
Begin
Result := True;
PsField.Text (FieldNome, Buffer, PsField.TextLength (FieldNome + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Nome do Entrevistado');
PsField.SetFocused (FieldNome, True);
Result := False;
Exit;
End;
PsField.Text (FieldIdade, Buffer, PsField.TextLength (FieldIdade + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Idade do Entrevistado');
PsField.SetFocused (FieldIdade, True);
Result := False;
Exit;
End;
PsField.Text (FieldSexo, Buffer, PsField.TextLength (FieldSexo + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Sexo do Entrevistado');
PsField.SetFocused (FieldSexo, True);
Result := False;
Exit;
End;
PsField.Text (FieldProfissao, Buffer, PsField.TextLength (FieldProfissao + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Profissão do Entrevistado');
PsField.SetFocused (FieldProfissao, True);
Result := False;
Exit;
End;
PsField.Text (FieldCidade, Buffer, PsField.TextLength (FieldCidade + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha a Cidade do Entrevistado');
PsField.SetFocused (FieldCidade, True);
Result := False;
Exit;
End;
PsField.Text (FieldEstado, Buffer, PsField.TextLength (FieldEstado + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Estado do Entrevistado');
PsField.SetFocused (FieldEstado, True);
Result := False;
Exit;
End;
PsField.Text (FieldEndereco, Buffer, PsField.TextLength (FieldEndereco + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Endereco do Entrevistado');
PsField.SetFocused (FieldEndereco, True);
Result := False;
Exit;
End;
PsField.Text (FieldBairro, Buffer, PsField.TextLength (FieldBairro + 1));
If Buffer[0] = #0 then
Begin
Showmessage ('Preencha o Bairro do Entrevistado');
PsField.SetFocused (FieldBairro, True);
Result := False;
Exit;
End;
End;
procedure CarregaDados;
begin
//Se não tiver nenhum registro na tabela nada será feito
if PsDataBase.RecordCount(DBEntrevistadosTipo) = 0 then
begin
PSButton.SetEnabled(BtnExcluir,false);
exit;
end;
PsField.SetText(FieldNome, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_NOME));
PsField.SetText(FieldIdade, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_IDADE));
PsField.SetText(FieldSexo, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_SEXO));
PsField.SetText(FieldProfissao, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_PROFISSAO));
PsField.SetText(FieldCidade, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_CIDADE));
PsField.SetText(FieldEstado, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_ESTADO));
PsField.SetText(FieldEndereco, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_ENDERECO));
PsField.SetText(FieldBairro, PsDataBase.FieldStringPtr(DBEntrevistadosTipo, Entrevistado_BAIRRO));
end;
function HandleEvent(var Event: EventType): Boolean;
begin
PSApplication.Event := @Event;
PSApplication.Handled := True;
if not formCadEntrevistadosCustomEvent then
case Event.eType of
ctlSelectEvent:
with Event.ctlSelect do
case controlID of
BtnPrimeiro:
BtnPrimeiroSelect;
BtnAnterior:
BtnAnteriorSelect;
BtnUltimo:
BtnUltimoSelect;
BtnProximo:
BtnProximoSelect;
BtnGravar:
BtnGravarSelect;
BtnPrincipal:
BtnPrincipalSelect;
BtnLimpar:
BtnLimparSelect;
BtnNovo:
BtnNovoSelect;
BtnExcluir:
BtnExcluirSelect;
BtnVoltar:
BtnVoltarSelect;
BtnCancelar:
BtnCancelarSelect;
else
PSApplication.Handled := False;
end;
frmOpenEvent:
formCadEntrevistadosOpen;
else
PSApplication.Handled := False;
end;
Result := PSApplication.Handled;
end;
end.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)