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
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.
|
|
|