You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

144 lines
3.5 KiB

unit umstLista;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, System.UITypes,
Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls, Buttons, ComCtrls, DB, ShellAPI;
type
TmstLista = class(TForm)
GroupBox1: TGroupBox;
stbStatus: TStatusBar;
dtsDB: TDataSource;
navPrincipal: TDBNavigator;
grdLista: TDBGrid;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure dtsDBDataChange(Sender: TObject; Field: TField);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure navPrincipalBeforeAction(Sender: TObject; Button: TNavigateBtn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mstLista: TmstLista;
implementation
uses udtmSystem;
{$R *.DFM}
procedure TmstLista.FormActivate(Sender: TObject);
begin
Screen.Cursor := crDefault;
{
if (dtmSistema.tp_acesso = 'D') and (dtsDB.Dataset.RecordCount >= 10) then
begin
btnNovo.Enabled := False;
grdLista.KeyOptions := [dgEnterToTab];
end;
}
end;
procedure TmstLista.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if navPrincipal.DataSource.State in [dsInsert,dsEdit] then
begin
ShowMessage('Existem alterações pendendes, clique em CONFIRMAR ou CANCELAR');
CanClose := False;
end;
end;
procedure TmstLista.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
// Envia as alterações para o banco
if navPrincipal.DataSource.State in [dsInsert,dsEdit] then //LU052012 - Solucção de Inconsistência quando fechava aplicação
dtsDB.DataSet.Post;
end;
procedure TmstLista.dtsDBDataChange(Sender: TObject; Field: TField);
begin
{if dtmSistema.tblUsuarios.Active then
begin
if dtmSistema.tblUsuarios.Locate('ID_USUARIO', dtsDB.Dataset.FieldByName('ID_USUARIO').AsInteger,[]) then
stbStatus.Panels[2].Text := dtmSistema.tblUsuariosTX_NOME.AsString + ' - ' + dtsDB.Dataset.FieldByName('DT_ATUALIZACAO').AsString
else
stbStatus.Panels[2].Text := dtsDB.Dataset.FieldByName('DT_ATUALIZACAO').AsString;
end;
stbStatus.Panels[0].Text := 'Registros: ' + FormatFloat('#,##0',dtsDB.Dataset.RecordCount);
if (dtmSistema.tp_acesso = 'D') and (dtsDB.Dataset.RecordCount >= 10) then
begin
btnNovo.Enabled := False;
grdLista.KeyOptions := [dgEnterToTab];
end;
}
end;
procedure TmstLista.FormCreate(Sender: TObject);
begin
dtmSystem.tx_formulario := TForm(Sender).Name;
dtsDB.DataSet.Open;
//if dtmSystem.tp_bloqueado = 'S' then btnNovo.Visible := False;
end;
procedure TmstLista.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{
if Key = VK_F1 then
ShellExecute(0, nil, PChar('controller.chm'), PChar('Plano de Contas'), nil, Sw_Normal);
// ShellExecute(0, nil, char(dtmSistema.tx_modulo+'.chm'), TForm(Sender).Caption, nil, Sw_Normal);
}
end;
procedure TmstLista.navPrincipalBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case Button of
nbDelete:
begin
if MessageDlg('Deseja apagar este registro?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort;
try
dtsDB.Dataset.Delete;
except
ShowMessage('Este registro está sendo utilizado pelo sistema e não pode ser apagado');
end;
Abort;
end;
end;
end;
end.