Problema para alterar a Cor dos Componentes Delphi XE2
Galera, boa tarde!
Preciso muito da ajuda de vcs para resolver uma bronca aqui na minha IDE,
Trabalho com as seguintes ferramentas:
Embarcadero® Delphi® XE2 Version 16.0.4429.46931 + Update 4,
JVCL345CompleteJCL231-Build4197,
cnPack 0.9.9.621 Build 2011.10.01,
é o seguinte... Antes mesmo de instalar esses plugins, me deparei com um problema para alterar as cores de alguns componentes: DBGrid, Panel, TabSheet entre outros, curiosamente em outros componentes as cores sao alteradas normalmente,
GroupBox, TEdit etc...
Mesmo que eu tente alterar a cor do compotente com problema, em tempo de execução, nada muda...
não sei se é um bug do Delphi XE2 ou se eu mexi em algo que não deveria, o fato é que isso ta me deixando de cabelo em pé
pois já postei em outros forums e ninguem sabe me explicar o que pode está acontecendo, peço a ajuda de todos, pois mais boba que seja a ideia, já é uma ajuda!
Agradeço a todos, até mais!
Preciso muito da ajuda de vcs para resolver uma bronca aqui na minha IDE,
Trabalho com as seguintes ferramentas:
Embarcadero® Delphi® XE2 Version 16.0.4429.46931 + Update 4,
JVCL345CompleteJCL231-Build4197,
cnPack 0.9.9.621 Build 2011.10.01,
é o seguinte... Antes mesmo de instalar esses plugins, me deparei com um problema para alterar as cores de alguns componentes: DBGrid, Panel, TabSheet entre outros, curiosamente em outros componentes as cores sao alteradas normalmente,
GroupBox, TEdit etc...
Mesmo que eu tente alterar a cor do compotente com problema, em tempo de execução, nada muda...
não sei se é um bug do Delphi XE2 ou se eu mexi em algo que não deveria, o fato é que isso ta me deixando de cabelo em pé
pois já postei em outros forums e ninguem sabe me explicar o que pode está acontecendo, peço a ajuda de todos, pois mais boba que seja a ideia, já é uma ajuda!
Agradeço a todos, até mais!
Claudio Colares
Curtidas 0
Respostas
Rodrigo Mourão
14/09/2012
Posta aqui os passos que você executou para testarmos reproduzir, exemplo:
1) Criei novo projeto.
2) Adicioneei componente xxx;
3) No evento xxx digitei o código xxxx
Assim podemos reproduzir os passos e verificar.
Abs
1) Criei novo projeto.
2) Adicioneei componente xxx;
3) No evento xxx digitei o código xxxx
Assim podemos reproduzir os passos e verificar.
Abs
GOSTEI 0
Alisson Santos
14/09/2012
Amigo, poste como solicitado por Rodrigo poste o que está fazendo para que possamos analisar e auxiliar você.
GOSTEI 0
Claudio Colares
14/09/2012
Blz, Primeiramente quero agradecer a ajuda de todos, vamos lá....
1º Crio um novo projeto no Delphi XE2 em : File/New/Vcl Forms Application Delphi.
2º Com o novo projeto aberto, vou em Tool Palette/ Data Controls e insiro um TDBGrid.
3º Insiro o DataSource da base ao TDBGrid, até aí tudo normal, "aparece os dados da minha tabela no DBGrid".
4º No Object Inspector, tento alterar a Cor do meu DBGrid "Aí ta o problema", a cor não é alterada.
Obs. Segundo algumas pesquisas que realizei, isso é um bug do Delphi XE2, alguns sujeriram alterar diretamente no evento
DrawColumnCell do meu DBGrid e assim o fiz.
6º
Resultado: De início, pareceu resolver meu problema, o comportamento do DBGrid foi o esperado e alterou as cores,
porém ao fazer uma pesquisa na qry que é linkada a esse DBGrid, o comportamento das cores muda, sempre que eu clico em qualquer celula do meu DBGrid ela é pintada de cinza "o que é um erro", pois cinza tem que ficar somente a linha selecionada.
Segue o codigo de toda a minha Unit que comtém o dbGrid
unit UFrmCadExtintores;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls,
Vcl.Mask, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.Buttons, Vcl.ComCtrls,
Vcl.ActnList, frxClass, frxDBSet, ComObj, Data.FMTBcd, Data.SqlExpr;
type
TFrmCadExtintores = class(TForm)
pnlTopo: TPanel;
dtsExtintor: TDataSource;
lblCodigo: TLabel;
dbedtNumPatrimonio: TDBEdit;
lblDataCad: TLabel;
dbedtDataCad: TDBEdit;
lblDescricao: TLabel;
lblCarga: TLabel;
dbedtCarga: TDBEdit;
dblkcbbDesc: TDBLookupComboBox;
lblPeso: TLabel;
pnlDados: TPanel;
pnlBotoes: TPanel;
dbgrdDados: TDBGrid;
dbnvgrNavegador: TDBNavigator;
dtsTipo: TDataSource;
dtsBrigada: TDataSource;
rbBrigada: TRadioButton;
rbLojas: TRadioButton;
dblkcbbBrigada: TDBLookupComboBox;
dblkcbbLojas: TDBLookupComboBox;
dtsLojas: TDataSource;
btnNovo: TSpeedButton;
btnSalvar: TSpeedButton;
btnEditar: TSpeedButton;
btnCancelar: TSpeedButton;
btnExcluir: TSpeedButton;
btnSair: TSpeedButton;
lblVencimento: TLabel;
dbedtVencimento: TDBEdit;
lblVistoria: TLabel;
dbedtVistoria: TDBEdit;
lblProxMan: TLabel;
dbedtProxMan: TDBEdit;
dbmmoObs: TDBMemo;
lblObs: TLabel;
pgcDados: TPageControl;
tsDados: TTabSheet;
tsPesquisa: TTabSheet;
grpOpcaoesPesq: TGroupBox;
grpPorLoja: TGroupBox;
dtpVencDeInicio: TDateTimePicker;
dtpVencFim: TDateTimePicker;
dblkcbbLoja: TDBLookupComboBox;
dbcbbCarga: TDBComboBox;
dtsSetores: TDataSource;
dbrgrpEmUso: TDBRadioGroup;
dtsMotivo: TDataSource;
btnMotivo: TBitBtn;
dblkcbbMotivo: TDBLookupComboBox;
btnPesquisa: TSpeedButton;
btnLimparPesquisa: TSpeedButton;
btnImprimir: TSpeedButton;
pnlCaracteristicas: TPanel;
grpDadosVistoria: TGroupBox;
grpLocalizacao: TGroupBox;
lblLocal: TLabel;
btnLocal: TBitBtn;
lblMotivo: TLabel;
dtpVistoriaInicio: TDateTimePicker;
actlstExtintores: TActionList;
actNovo: TAction;
actEditar: TAction;
actSalvar: TAction;
actCancelar: TAction;
actExcluir: TAction;
actSair: TAction;
dtpVistoriaFim: TDateTimePicker;
dblkcbbPesqCarga: TDBLookupComboBox;
lblVistoriaInicio: TLabel;
lblVistoriaFim: TLabel;
dblkcbbSetores: TDBLookupComboBox;
dtpManutencaoInicio: TDateTimePicker;
dtpManutencaoFinal: TDateTimePicker;
rgDatasPesq: TRadioGroup;
grpPesquisaDatas: TGroupBox;
rgOrigem: TRadioGroup;
edtPesqCodigo: TEdit;
lblPesqCodigo: TLabel;
frxDbDsLoja: TfrxDBDataset;
frxDbDsBrigada: TfrxDBDataset;
frxRelExtBrigada: TfrxReport;
frxDbDsExtintores: TfrxDBDataset;
btnExportExcel: TSpeedButton;
SQLTable1: TSQLTable;
SQLTable1cod_extintor: TIntegerField;
SQLTable1ext_data_cadastro: TDateField;
SQLTable1ext_data_vencimento: TDateField;
SQLTable1ext_carga: TStringField;
SQLTable1ext_vencido: TStringField;
SQLTable1ext_em_uso: TStringField;
SQLTable1ext_data_vistoria: TSQLTimeStampField;
SQLTable1ext_data_prox_man: TDateField;
SQLTable1ext_obs: TBlobField;
SQLTable1tip_cod_tipo: TIntegerField;
SQLTable1loj_cod_loja: TIntegerField;
SQLTable1bri_cod_brigada: TIntegerField;
SQLTable1mot_cod_motivo: TIntegerField;
SQLTable1loc_cod_localizacao: TIntegerField;
procedure rbBrigadaClick(Sender: TObject);
procedure rbLojasClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure btnEditarClick(Sender: TObject);
procedure btnExcluirClick(Sender: TObject);
procedure btnNovoClick(Sender: TObject);
procedure btnSairClick(Sender: TObject);
procedure btnSalvarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnMotivoClick(Sender: TObject);
procedure dbrgrpEmUsoClick(Sender: TObject);
procedure HabilitarEdicao(habilita: boolean);
procedure btnPesquisaClick(Sender: TObject);
procedure btnLimparPesquisaClick(Sender: TObject);
procedure dtpManutencaoFinalCloseUp(Sender: TObject);
procedure btnLocalClick(Sender: TObject);
procedure dbgrdDadosDblClick(Sender: TObject);
procedure rgDatasPesqClick(Sender: TObject);
procedure rgOrigemClick(Sender: TObject);
procedure dbedtVencimentoKeyPress(Sender: TObject; var Key: Char);
procedure dbedtProxManKeyPress(Sender: TObject; var Key: Char);
procedure dbedtVistoriaKeyPress(Sender: TObject; var Key: Char);
procedure btnImprimirClick(Sender: TObject);
procedure btnExportExcelClick(Sender: TObject);
procedure dbgrdDadosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
procedure EstadoDasColunas(valor: String);
end;
var
FrmCadExtintores: TFrmCadExtintores;
Filtro: Word;
implementation
{$R *.dfm}
uses UdmPrincipal, UFrmCadMotivo, Funcoes, UFrmCadSetores, UfrmPrincipal;
procedure TFrmCadExtintores.EstadoDasColunas(valor: String);
begin
{$REGION 'Colunas do DBGrid}
if valor = 'padrao' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := True; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := True; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'tipo' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'limpo' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := False; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := False; { Brigada }
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
dbgrdDados.Columns[5].Visible := False; { Descrição }
dbgrdDados.Columns[6].Visible := False; { Carga }
dbgrdDados.Columns[7].Visible := False; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'vistoria' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := True; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'manutencao' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := True; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'vencimento' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := True; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
{$ENDREGION}
end;
procedure TFrmCadExtintores.HabilitarEdicao(habilita: boolean);
begin
dbedtNumPatrimonio.Enabled := habilita;
dbedtDataCad.Enabled := False;
dblkcbbDesc.Enabled := habilita;
dbedtCarga.Enabled := False;
dbcbbCarga.Enabled := habilita;
rbBrigada.Enabled := habilita;
rbLojas.Enabled := habilita;
dblkcbbBrigada.Enabled := False;
dblkcbbLojas.Enabled := False;
dblkcbbSetores.Enabled := habilita;
btnLocal.Enabled := habilita;
dbedtVencimento.Enabled := habilita;
dbedtProxMan.Enabled := habilita;
dbedtVistoria.Enabled := habilita;
dbrgrpEmUso.Enabled := habilita;
dblkcbbMotivo.Enabled := habilita;
btnMotivo.Enabled := habilita;
dbmmoObs.Enabled := habilita;
end;
procedure TFrmCadExtintores.btnCancelarClick(Sender: TObject);
{ BOTÃO CANCELAR }
begin
if btnCancelar.Enabled = True then
begin
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
CancelarRegistro(dmPrincipal.cdsExtintores);
HabilitarEdicao(False);
end;
end;
procedure TFrmCadExtintores.btnEditarClick(Sender: TObject);
{ BOTÃO EDITAR }
begin
if btnEditar.Enabled = True then
begin
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'novo');
HabilitarEdicao(True);
pgcDados.ActivePage := tsDados;
dblkcbbDesc.SetFocus;
EditarRegistro(dmPrincipal.cdsExtintores);
end;
end;
procedure TFrmCadExtintores.btnExcluirClick(Sender: TObject);
{ BOTÃO EXCLUIR }
begin
if btnExcluir.Enabled = True then
begin
HabilitarEdicao(False);
ExcluirRegistro(dmPrincipal.cdsExtintores, dmPrincipal.qryExtintores);
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
FrmPrincipal.AtualizarAlertas;
end;
end;
procedure TFrmCadExtintores.btnExportExcelClick(Sender: TObject);
{$REGION 'Exportar Excel'}
var
linha, coluna: Integer;
planilha, sheet, cTitulo: variant;
valorcampo: string;
begin
dmPrincipal.cdsExtintores.CancelUpdates;
planilha := CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := ' Relatorio de Extintores ';
planilha.caption := cTitulo;
planilha.Range['A1:R1'].Font.Bold := True; // Mesclando células
// Planilha.Range['A1:R1'].HorizontalAlignment := Center;//Centralizando a célula
planilha.Range['A1:R1'].Interior.Color := clBlack; // Cor da célula
planilha.Range['A1:R1'].Font.Color := clWhite; // Cor da célula
planilha.Range['A1:R1'].HorizontalAlignment := 3;
// Sheet.Range['A1','D1'].font.color := clYellow; // Cor da Fonte
// Planilha.Range['A1:R1'].Borders.LineStyle := xlContinuous; //Estilo da
dmPrincipal.cdsExtintores.First;
for linha := 0 to dmPrincipal.cdsExtintores.RecordCount - 1 do
begin
for coluna := 1 to dmPrincipal.cdsExtintores.FieldCount do
begin
valorcampo := dmPrincipal.cdsExtintores.Fields[coluna - 1].AsString;
planilha.cells[linha + 2, coluna] := valorcampo;
planilha.cells[linha + 2, coluna].HorizontalAlignment := 2;
// planilha.cells[linha + 2,coluna].Interior.color := clSilver;
planilha.cells[linha + 2, coluna].Font.Color := clBlue;
// planilha.cells[linha + 2,coluna].font.Bold := True;
end;
dmPrincipal.cdsExtintores.Next;
end;
for coluna := 1 to dmPrincipal.cdsExtintores.FieldCount do
begin
valorcampo := dmPrincipal.cdsExtintores.Fields[coluna - 1].DisplayLabel;
planilha.cells[1, coluna] := valorcampo;
end;
planilha.Columns.Autofit;
planilha.Visible := True;
{$ENDREGION}
end;
procedure TFrmCadExtintores.btnImprimirClick(Sender: TObject);
begin
frxRelExtBrigada.ShowReport();
end;
procedure TFrmCadExtintores.btnLimparPesquisaClick(Sender: TObject);
{ BOTÃO LIMPAR PESQUISA }
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('INNER JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('INNER JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('INNER JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
EstadoDasColunas('padrao');
{ Pesquisar pela origem recebe , Todos }
rgOrigem.ItemIndex := 0;
{ Pesquisa por filtro recebe, sem filtro }
rgDatasPesq.ItemIndex := 0;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
end;
end;
procedure TFrmCadExtintores.btnLocalClick(Sender: TObject);
begin
Application.CreateForm(TFrmCadSetores, FrmCadSetores);
FrmCadSetores.ShowModal;
end;
procedure TFrmCadExtintores.btnMotivoClick(Sender: TObject);
begin
Application.CreateForm(TFrmCadMotivo, FrmCadMotivo);
FrmCadMotivo.ShowModal;
end;
procedure TFrmCadExtintores.btnNovoClick(Sender: TObject);
begin
if btnNovo.Enabled = True then
begin
pgcDados.ActivePage := tsDados;
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'novo');
HabilitarEdicao(True);
NovoRegistro(dmPrincipal.cdsExtintores);
dbrgrpEmUso.ItemIndex := 0;
dbedtDataCad.Text := DateToStr(now);
dblkcbbDesc.SetFocus;
end;
end;
procedure TFrmCadExtintores.btnPesquisaClick(Sender: TObject);
var
dataInicio, dataFim: string;
begin
{$REGION 'Pesquisar somente filtros'}
{ PESQUISA SOMENTE COM FILTROS, SEM LOJAS OU BRIGADA }
if rgOrigem.ItemIndex = 0 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('WHERE');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('WHERE');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('manutencao');
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('WHERE');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('WHERE');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('tipo');
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
{$REGION 'Pesquisa pela Brigada'}
{ PESQUISANDO PELA BRIGADA }
if rgOrigem.ItemIndex = 1 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
SQL.add('WHERE');
SQL.add('bri_cod_brigada LIKE 1');
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('AND');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('AND');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('manutencao');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('AND');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('AND');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('tipo');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
{$REGION 'Pesquisa por Loja'}
{ PESQUISA POR NOME DA LOJA }
if rgOrigem.ItemIndex = 2 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
SQL.add('WHERE');
SQL.add('loj_cod_loja LIKE ' + VarToStr(dblkcbbLoja.KeyValue));
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('AND');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('AND');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('menutencao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('AND');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('AND');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
dbgrdDados.SetFocus;
end;
procedure TFrmCadExtintores.btnSairClick(Sender: TObject);
begin
FrmCadExtintores.Close;
end;
procedure TFrmCadExtintores.btnSalvarClick(Sender: TObject);
begin
if btnSalvar.Enabled = True then
begin
SalvarRegistro(dmPrincipal.cdsExtintores, dmPrincipal.qryExtintores);
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
HabilitarEdicao(False);
FrmPrincipal.AtualizarAlertas;
end;
end;
procedure TFrmCadExtintores.dbedtProxManKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtProxMan.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbedtVencimentoKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtVencimento.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbedtVistoriaKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtVistoria.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbgrdDadosDblClick(Sender: TObject);
begin
pgcDados.ActivePage := tsDados;
end;
procedure TFrmCadExtintores.dbgrdDadosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (gdSelected in State) then
begin
dbgrdDados.Canvas.Brush.Color := clGray;
dbgrdDados.Canvas.Font.Color := clWhite;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end
else
begin
dbgrdDados.Canvas.Brush.Color := clInfoBk;
dbgrdDados.Canvas.Font.Color := clBlue;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end;
end;
procedure TFrmCadExtintores.dbrgrpEmUsoClick(Sender: TObject);
begin
{ Se o usuário informar que o extintor está sendo usado }
if dbrgrpEmUso.ItemIndex = 0 then
begin
dmPrincipal.cdsExtintoresCódigoMotivo.Clear;
dmPrincipal.cdsExtintoresVencido.Value := 'Sim';
dblkcbbMotivo.Enabled := False;
btnMotivo.Enabled := False;
Exit;
end;
{ Caso o extintor não esteja em uso }
if dbrgrpEmUso.ItemIndex = 1 then
begin
dmPrincipal.cdsExtintoresVencido.Value := 'Não';
dblkcbbMotivo.Enabled := True;
btnMotivo.Enabled := True;
end;
end;
procedure TFrmCadExtintores.dtpManutencaoFinalCloseUp(Sender: TObject);
begin
if (dtpManutencaoInicio.Date > dtpManutencaoFinal.Date) then
ShowMessage('A data final não pode ser menor que a data de ínicio');
dtpManutencaoFinal.SetFocus;
end;
procedure TFrmCadExtintores.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// with dmPrincipal.qryExtintores do
// begin
// Close;
// SQL.Clear;
// SQL.add('SELECT');
// SQL.add('`ex`.`cod_extintor` AS `Código`,');
// SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
// SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
// SQL.add('`bi`.`bri_nome` AS `Brigada`,');
// SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
// SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
// SQL.add('`ex`.`ext_carga` AS `Carga`,');
// SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
// SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
// SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
// SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
// SQL.add('`ex`.`ext_obs` AS `Observações`,');
// SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
// SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
// SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
// SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
// SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
// SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
// SQL.add('`ex`.`ext_vencido` AS `Vencido`');
// SQL.add('FROM');
// SQL.add('tbextintor ex');
// SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
// SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
// SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
// SQL.add('WHERE');
// SQL.add('ex.cod_extintor LIKE -1');
// Open;
//
// dmPrincipal.cdsExtintores.Refresh;
// end;
dmPrincipal.cdsExtintores.Close;
dmPrincipal.cdsTipo.Close;
dmPrincipal.cdsBrigada.Close;
dmPrincipal.cdsLoja.Close;
dmPrincipal.cdsMotivo.Close;
dmPrincipal.cdsSetores.Close;
end;
procedure TFrmCadExtintores.FormShow(Sender: TObject);
begin
rgOrigem.ItemIndex := 0;
rgDatasPesq.ItemIndex := 0;
pgcDados.ActivePage := tsPesquisa;
dmPrincipal.cdsExtintores.Open;
dmPrincipal.cdsTipo.Open;
dmPrincipal.cdsBrigada.Open;
dmPrincipal.cdsLoja.Open;
dmPrincipal.cdsMotivo.Open;
dmPrincipal.cdsSetores.Open;
HabilitarEdicao(False);
EstadoDasColunas('padrao');
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
end;
procedure TFrmCadExtintores.rbBrigadaClick(Sender: TObject);
begin
if rbBrigada.Checked then
begin
dblkcbbBrigada.Enabled := True;
dmPrincipal.cdsExtintoresCódigoLoja.Clear;
dblkcbbLojas.Enabled := False;
end;
end;
procedure TFrmCadExtintores.rbLojasClick(Sender: TObject);
begin
if rbLojas.Checked then
begin
dblkcbbBrigada.Enabled := False;
dmPrincipal.cdsExtintoresCódigoBrigada.Clear;
dblkcbbLojas.Enabled := True;
end;
end;
procedure TFrmCadExtintores.rgDatasPesqClick(Sender: TObject);
begin
{ Sem Filtro }
if rgDatasPesq.ItemIndex = 0 then
begin
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data da Vistoria }
if rgDatasPesq.ItemIndex = 1 then
begin
dtpVistoriaInicio.Enabled := True;
dtpVistoriaFim.Enabled := True;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data da Manutenção }
if rgDatasPesq.ItemIndex = 2 then
begin
dtpManutencaoInicio.Enabled := True;
dtpManutencaoFinal.Enabled := True;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data do Vencimento }
if rgDatasPesq.ItemIndex = 3 then
begin
dtpVencDeInicio.Enabled := True;
dtpVencFim.Enabled := True;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Tipo da Carga }
if rgDatasPesq.ItemIndex = 4 then
begin
dblkcbbPesqCarga.Enabled := True;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
end;
end;
procedure TFrmCadExtintores.rgOrigemClick(Sender: TObject);
begin
if rgOrigem.ItemIndex = 2 then
begin
dblkcbbLoja.Enabled := True;
end
else
dblkcbbLoja.Enabled := False;
end;
end.
1º Crio um novo projeto no Delphi XE2 em : File/New/Vcl Forms Application Delphi.
2º Com o novo projeto aberto, vou em Tool Palette/ Data Controls e insiro um TDBGrid.
3º Insiro o DataSource da base ao TDBGrid, até aí tudo normal, "aparece os dados da minha tabela no DBGrid".
4º No Object Inspector, tento alterar a Cor do meu DBGrid "Aí ta o problema", a cor não é alterada.
Obs. Segundo algumas pesquisas que realizei, isso é um bug do Delphi XE2, alguns sujeriram alterar diretamente no evento
DrawColumnCell do meu DBGrid e assim o fiz.
6º
procedure TFrmCadExtintores.dbgrdDadosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (gdSelected in State) then
begin
dbgrdDados.Canvas.Brush.Color := clGray;
dbgrdDados.Canvas.Font.Color := clWhite;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end
else
begin
dbgrdDados.Canvas.Brush.Color := clInfoBk;
dbgrdDados.Canvas.Font.Color := clBlue;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end;
end;
State: TGridDrawState);
begin
if (gdSelected in State) then
begin
dbgrdDados.Canvas.Brush.Color := clGray;
dbgrdDados.Canvas.Font.Color := clWhite;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end
else
begin
dbgrdDados.Canvas.Brush.Color := clInfoBk;
dbgrdDados.Canvas.Font.Color := clBlue;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end;
end;
Resultado: De início, pareceu resolver meu problema, o comportamento do DBGrid foi o esperado e alterou as cores,
porém ao fazer uma pesquisa na qry que é linkada a esse DBGrid, o comportamento das cores muda, sempre que eu clico em qualquer celula do meu DBGrid ela é pintada de cinza "o que é um erro", pois cinza tem que ficar somente a linha selecionada.
Segue o codigo de toda a minha Unit que comtém o dbGrid
unit UFrmCadExtintores;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls,
Vcl.Mask, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.Buttons, Vcl.ComCtrls,
Vcl.ActnList, frxClass, frxDBSet, ComObj, Data.FMTBcd, Data.SqlExpr;
type
TFrmCadExtintores = class(TForm)
pnlTopo: TPanel;
dtsExtintor: TDataSource;
lblCodigo: TLabel;
dbedtNumPatrimonio: TDBEdit;
lblDataCad: TLabel;
dbedtDataCad: TDBEdit;
lblDescricao: TLabel;
lblCarga: TLabel;
dbedtCarga: TDBEdit;
dblkcbbDesc: TDBLookupComboBox;
lblPeso: TLabel;
pnlDados: TPanel;
pnlBotoes: TPanel;
dbgrdDados: TDBGrid;
dbnvgrNavegador: TDBNavigator;
dtsTipo: TDataSource;
dtsBrigada: TDataSource;
rbBrigada: TRadioButton;
rbLojas: TRadioButton;
dblkcbbBrigada: TDBLookupComboBox;
dblkcbbLojas: TDBLookupComboBox;
dtsLojas: TDataSource;
btnNovo: TSpeedButton;
btnSalvar: TSpeedButton;
btnEditar: TSpeedButton;
btnCancelar: TSpeedButton;
btnExcluir: TSpeedButton;
btnSair: TSpeedButton;
lblVencimento: TLabel;
dbedtVencimento: TDBEdit;
lblVistoria: TLabel;
dbedtVistoria: TDBEdit;
lblProxMan: TLabel;
dbedtProxMan: TDBEdit;
dbmmoObs: TDBMemo;
lblObs: TLabel;
pgcDados: TPageControl;
tsDados: TTabSheet;
tsPesquisa: TTabSheet;
grpOpcaoesPesq: TGroupBox;
grpPorLoja: TGroupBox;
dtpVencDeInicio: TDateTimePicker;
dtpVencFim: TDateTimePicker;
dblkcbbLoja: TDBLookupComboBox;
dbcbbCarga: TDBComboBox;
dtsSetores: TDataSource;
dbrgrpEmUso: TDBRadioGroup;
dtsMotivo: TDataSource;
btnMotivo: TBitBtn;
dblkcbbMotivo: TDBLookupComboBox;
btnPesquisa: TSpeedButton;
btnLimparPesquisa: TSpeedButton;
btnImprimir: TSpeedButton;
pnlCaracteristicas: TPanel;
grpDadosVistoria: TGroupBox;
grpLocalizacao: TGroupBox;
lblLocal: TLabel;
btnLocal: TBitBtn;
lblMotivo: TLabel;
dtpVistoriaInicio: TDateTimePicker;
actlstExtintores: TActionList;
actNovo: TAction;
actEditar: TAction;
actSalvar: TAction;
actCancelar: TAction;
actExcluir: TAction;
actSair: TAction;
dtpVistoriaFim: TDateTimePicker;
dblkcbbPesqCarga: TDBLookupComboBox;
lblVistoriaInicio: TLabel;
lblVistoriaFim: TLabel;
dblkcbbSetores: TDBLookupComboBox;
dtpManutencaoInicio: TDateTimePicker;
dtpManutencaoFinal: TDateTimePicker;
rgDatasPesq: TRadioGroup;
grpPesquisaDatas: TGroupBox;
rgOrigem: TRadioGroup;
edtPesqCodigo: TEdit;
lblPesqCodigo: TLabel;
frxDbDsLoja: TfrxDBDataset;
frxDbDsBrigada: TfrxDBDataset;
frxRelExtBrigada: TfrxReport;
frxDbDsExtintores: TfrxDBDataset;
btnExportExcel: TSpeedButton;
SQLTable1: TSQLTable;
SQLTable1cod_extintor: TIntegerField;
SQLTable1ext_data_cadastro: TDateField;
SQLTable1ext_data_vencimento: TDateField;
SQLTable1ext_carga: TStringField;
SQLTable1ext_vencido: TStringField;
SQLTable1ext_em_uso: TStringField;
SQLTable1ext_data_vistoria: TSQLTimeStampField;
SQLTable1ext_data_prox_man: TDateField;
SQLTable1ext_obs: TBlobField;
SQLTable1tip_cod_tipo: TIntegerField;
SQLTable1loj_cod_loja: TIntegerField;
SQLTable1bri_cod_brigada: TIntegerField;
SQLTable1mot_cod_motivo: TIntegerField;
SQLTable1loc_cod_localizacao: TIntegerField;
procedure rbBrigadaClick(Sender: TObject);
procedure rbLojasClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure btnEditarClick(Sender: TObject);
procedure btnExcluirClick(Sender: TObject);
procedure btnNovoClick(Sender: TObject);
procedure btnSairClick(Sender: TObject);
procedure btnSalvarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnMotivoClick(Sender: TObject);
procedure dbrgrpEmUsoClick(Sender: TObject);
procedure HabilitarEdicao(habilita: boolean);
procedure btnPesquisaClick(Sender: TObject);
procedure btnLimparPesquisaClick(Sender: TObject);
procedure dtpManutencaoFinalCloseUp(Sender: TObject);
procedure btnLocalClick(Sender: TObject);
procedure dbgrdDadosDblClick(Sender: TObject);
procedure rgDatasPesqClick(Sender: TObject);
procedure rgOrigemClick(Sender: TObject);
procedure dbedtVencimentoKeyPress(Sender: TObject; var Key: Char);
procedure dbedtProxManKeyPress(Sender: TObject; var Key: Char);
procedure dbedtVistoriaKeyPress(Sender: TObject; var Key: Char);
procedure btnImprimirClick(Sender: TObject);
procedure btnExportExcelClick(Sender: TObject);
procedure dbgrdDadosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
procedure EstadoDasColunas(valor: String);
end;
var
FrmCadExtintores: TFrmCadExtintores;
Filtro: Word;
implementation
{$R *.dfm}
uses UdmPrincipal, UFrmCadMotivo, Funcoes, UFrmCadSetores, UfrmPrincipal;
procedure TFrmCadExtintores.EstadoDasColunas(valor: String);
begin
{$REGION 'Colunas do DBGrid}
if valor = 'padrao' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := True; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := True; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'tipo' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'limpo' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := False; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := False; { Brigada }
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
dbgrdDados.Columns[5].Visible := False; { Descrição }
dbgrdDados.Columns[6].Visible := False; { Carga }
dbgrdDados.Columns[7].Visible := False; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'vistoria' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := True; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'manutencao' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := False; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := True; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
if valor = 'vencimento' then
begin
dbgrdDados.Columns[0].Visible := False; { Código }
dbgrdDados.Columns[1].Visible := True; { Nº Patrimônio }
dbgrdDados.Columns[2].Visible := False; { Data do cadastro }
dbgrdDados.Columns[3].Visible := True; { Brigada }
dbgrdDados.Columns[4].Visible := True; { Loja Nome }
dbgrdDados.Columns[5].Visible := True; { Descrição }
dbgrdDados.Columns[6].Visible := True; { Carga }
dbgrdDados.Columns[7].Visible := True; { Tipo Carga }
dbgrdDados.Columns[8].Visible := True; { Data Vencimento }
dbgrdDados.Columns[9].Visible := False; { Data Vistoria }
dbgrdDados.Columns[10].Visible := False; { Data Manutenção }
dbgrdDados.Columns[11].Visible := False; { Observações }
dbgrdDados.Columns[12].Visible := False; { Código Tipo }
dbgrdDados.Columns[13].Visible := False; { Código Loja }
dbgrdDados.Columns[14].Visible := False; { Código Motivo }
dbgrdDados.Columns[15].Visible := False; { Código Brigada }
dbgrdDados.Columns[16].Visible := False; { Códigp Localizacao }
dbgrdDados.Columns[17].Visible := False; { Em Uso }
dbgrdDados.Columns[18].Visible := False; { Vencido }
end;
{$ENDREGION}
end;
procedure TFrmCadExtintores.HabilitarEdicao(habilita: boolean);
begin
dbedtNumPatrimonio.Enabled := habilita;
dbedtDataCad.Enabled := False;
dblkcbbDesc.Enabled := habilita;
dbedtCarga.Enabled := False;
dbcbbCarga.Enabled := habilita;
rbBrigada.Enabled := habilita;
rbLojas.Enabled := habilita;
dblkcbbBrigada.Enabled := False;
dblkcbbLojas.Enabled := False;
dblkcbbSetores.Enabled := habilita;
btnLocal.Enabled := habilita;
dbedtVencimento.Enabled := habilita;
dbedtProxMan.Enabled := habilita;
dbedtVistoria.Enabled := habilita;
dbrgrpEmUso.Enabled := habilita;
dblkcbbMotivo.Enabled := habilita;
btnMotivo.Enabled := habilita;
dbmmoObs.Enabled := habilita;
end;
procedure TFrmCadExtintores.btnCancelarClick(Sender: TObject);
{ BOTÃO CANCELAR }
begin
if btnCancelar.Enabled = True then
begin
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
CancelarRegistro(dmPrincipal.cdsExtintores);
HabilitarEdicao(False);
end;
end;
procedure TFrmCadExtintores.btnEditarClick(Sender: TObject);
{ BOTÃO EDITAR }
begin
if btnEditar.Enabled = True then
begin
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'novo');
HabilitarEdicao(True);
pgcDados.ActivePage := tsDados;
dblkcbbDesc.SetFocus;
EditarRegistro(dmPrincipal.cdsExtintores);
end;
end;
procedure TFrmCadExtintores.btnExcluirClick(Sender: TObject);
{ BOTÃO EXCLUIR }
begin
if btnExcluir.Enabled = True then
begin
HabilitarEdicao(False);
ExcluirRegistro(dmPrincipal.cdsExtintores, dmPrincipal.qryExtintores);
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
FrmPrincipal.AtualizarAlertas;
end;
end;
procedure TFrmCadExtintores.btnExportExcelClick(Sender: TObject);
{$REGION 'Exportar Excel'}
var
linha, coluna: Integer;
planilha, sheet, cTitulo: variant;
valorcampo: string;
begin
dmPrincipal.cdsExtintores.CancelUpdates;
planilha := CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := ' Relatorio de Extintores ';
planilha.caption := cTitulo;
planilha.Range['A1:R1'].Font.Bold := True; // Mesclando células
// Planilha.Range['A1:R1'].HorizontalAlignment := Center;//Centralizando a célula
planilha.Range['A1:R1'].Interior.Color := clBlack; // Cor da célula
planilha.Range['A1:R1'].Font.Color := clWhite; // Cor da célula
planilha.Range['A1:R1'].HorizontalAlignment := 3;
// Sheet.Range['A1','D1'].font.color := clYellow; // Cor da Fonte
// Planilha.Range['A1:R1'].Borders.LineStyle := xlContinuous; //Estilo da
dmPrincipal.cdsExtintores.First;
for linha := 0 to dmPrincipal.cdsExtintores.RecordCount - 1 do
begin
for coluna := 1 to dmPrincipal.cdsExtintores.FieldCount do
begin
valorcampo := dmPrincipal.cdsExtintores.Fields[coluna - 1].AsString;
planilha.cells[linha + 2, coluna] := valorcampo;
planilha.cells[linha + 2, coluna].HorizontalAlignment := 2;
// planilha.cells[linha + 2,coluna].Interior.color := clSilver;
planilha.cells[linha + 2, coluna].Font.Color := clBlue;
// planilha.cells[linha + 2,coluna].font.Bold := True;
end;
dmPrincipal.cdsExtintores.Next;
end;
for coluna := 1 to dmPrincipal.cdsExtintores.FieldCount do
begin
valorcampo := dmPrincipal.cdsExtintores.Fields[coluna - 1].DisplayLabel;
planilha.cells[1, coluna] := valorcampo;
end;
planilha.Columns.Autofit;
planilha.Visible := True;
{$ENDREGION}
end;
procedure TFrmCadExtintores.btnImprimirClick(Sender: TObject);
begin
frxRelExtBrigada.ShowReport();
end;
procedure TFrmCadExtintores.btnLimparPesquisaClick(Sender: TObject);
{ BOTÃO LIMPAR PESQUISA }
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('INNER JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('INNER JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('INNER JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
EstadoDasColunas('padrao');
{ Pesquisar pela origem recebe , Todos }
rgOrigem.ItemIndex := 0;
{ Pesquisa por filtro recebe, sem filtro }
rgDatasPesq.ItemIndex := 0;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
end;
end;
procedure TFrmCadExtintores.btnLocalClick(Sender: TObject);
begin
Application.CreateForm(TFrmCadSetores, FrmCadSetores);
FrmCadSetores.ShowModal;
end;
procedure TFrmCadExtintores.btnMotivoClick(Sender: TObject);
begin
Application.CreateForm(TFrmCadMotivo, FrmCadMotivo);
FrmCadMotivo.ShowModal;
end;
procedure TFrmCadExtintores.btnNovoClick(Sender: TObject);
begin
if btnNovo.Enabled = True then
begin
pgcDados.ActivePage := tsDados;
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'novo');
HabilitarEdicao(True);
NovoRegistro(dmPrincipal.cdsExtintores);
dbrgrpEmUso.ItemIndex := 0;
dbedtDataCad.Text := DateToStr(now);
dblkcbbDesc.SetFocus;
end;
end;
procedure TFrmCadExtintores.btnPesquisaClick(Sender: TObject);
var
dataInicio, dataFim: string;
begin
{$REGION 'Pesquisar somente filtros'}
{ PESQUISA SOMENTE COM FILTROS, SEM LOJAS OU BRIGADA }
if rgOrigem.ItemIndex = 0 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('WHERE');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('WHERE');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('manutencao');
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('WHERE');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('WHERE');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('tipo');
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
{$REGION 'Pesquisa pela Brigada'}
{ PESQUISANDO PELA BRIGADA }
if rgOrigem.ItemIndex = 1 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
SQL.add('WHERE');
SQL.add('bri_cod_brigada LIKE 1');
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('AND');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('AND');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('manutencao');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('AND');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('AND');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('tipo');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
{$REGION 'Pesquisa por Loja'}
{ PESQUISA POR NOME DA LOJA }
if rgOrigem.ItemIndex = 2 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
SQL.add('WHERE');
SQL.add('loj_cod_loja LIKE ' + VarToStr(dblkcbbLoja.KeyValue));
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('AND');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('AND');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('menutencao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('AND');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('AND');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
dbgrdDados.Columns[3].Visible := False; { Brigada }
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
dbgrdDados.SetFocus;
end;
procedure TFrmCadExtintores.btnSairClick(Sender: TObject);
begin
FrmCadExtintores.Close;
end;
procedure TFrmCadExtintores.btnSalvarClick(Sender: TObject);
begin
if btnSalvar.Enabled = True then
begin
SalvarRegistro(dmPrincipal.cdsExtintores, dmPrincipal.qryExtintores);
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
HabilitarEdicao(False);
FrmPrincipal.AtualizarAlertas;
end;
end;
procedure TFrmCadExtintores.dbedtProxManKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtProxMan.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbedtVencimentoKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtVencimento.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbedtVistoriaKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #84) or (Key = #116) then
dbedtVistoria.Text := DateToStr(now);
end;
procedure TFrmCadExtintores.dbgrdDadosDblClick(Sender: TObject);
begin
pgcDados.ActivePage := tsDados;
end;
procedure TFrmCadExtintores.dbgrdDadosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (gdSelected in State) then
begin
dbgrdDados.Canvas.Brush.Color := clGray;
dbgrdDados.Canvas.Font.Color := clWhite;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end
else
begin
dbgrdDados.Canvas.Brush.Color := clInfoBk;
dbgrdDados.Canvas.Font.Color := clBlue;
dbgrdDados.Canvas.Font.Style := [fsBold];
dbgrdDados.Canvas.FillRect(Rect);
dbgrdDados.DefaultDrawDataCell(Rect, Column.Field, State);
end;
end;
procedure TFrmCadExtintores.dbrgrpEmUsoClick(Sender: TObject);
begin
{ Se o usuário informar que o extintor está sendo usado }
if dbrgrpEmUso.ItemIndex = 0 then
begin
dmPrincipal.cdsExtintoresCódigoMotivo.Clear;
dmPrincipal.cdsExtintoresVencido.Value := 'Sim';
dblkcbbMotivo.Enabled := False;
btnMotivo.Enabled := False;
Exit;
end;
{ Caso o extintor não esteja em uso }
if dbrgrpEmUso.ItemIndex = 1 then
begin
dmPrincipal.cdsExtintoresVencido.Value := 'Não';
dblkcbbMotivo.Enabled := True;
btnMotivo.Enabled := True;
end;
end;
procedure TFrmCadExtintores.dtpManutencaoFinalCloseUp(Sender: TObject);
begin
if (dtpManutencaoInicio.Date > dtpManutencaoFinal.Date) then
ShowMessage('A data final não pode ser menor que a data de ínicio');
dtpManutencaoFinal.SetFocus;
end;
procedure TFrmCadExtintores.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// with dmPrincipal.qryExtintores do
// begin
// Close;
// SQL.Clear;
// SQL.add('SELECT');
// SQL.add('`ex`.`cod_extintor` AS `Código`,');
// SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
// SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
// SQL.add('`bi`.`bri_nome` AS `Brigada`,');
// SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
// SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
// SQL.add('`ex`.`ext_carga` AS `Carga`,');
// SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
// SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
// SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
// SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
// SQL.add('`ex`.`ext_obs` AS `Observações`,');
// SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
// SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
// SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
// SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
// SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
// SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
// SQL.add('`ex`.`ext_vencido` AS `Vencido`');
// SQL.add('FROM');
// SQL.add('tbextintor ex');
// SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
// SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
// SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
// SQL.add('WHERE');
// SQL.add('ex.cod_extintor LIKE -1');
// Open;
//
// dmPrincipal.cdsExtintores.Refresh;
// end;
dmPrincipal.cdsExtintores.Close;
dmPrincipal.cdsTipo.Close;
dmPrincipal.cdsBrigada.Close;
dmPrincipal.cdsLoja.Close;
dmPrincipal.cdsMotivo.Close;
dmPrincipal.cdsSetores.Close;
end;
procedure TFrmCadExtintores.FormShow(Sender: TObject);
begin
rgOrigem.ItemIndex := 0;
rgDatasPesq.ItemIndex := 0;
pgcDados.ActivePage := tsPesquisa;
dmPrincipal.cdsExtintores.Open;
dmPrincipal.cdsTipo.Open;
dmPrincipal.cdsBrigada.Open;
dmPrincipal.cdsLoja.Open;
dmPrincipal.cdsMotivo.Open;
dmPrincipal.cdsSetores.Open;
HabilitarEdicao(False);
EstadoDasColunas('padrao');
EstadoDosBotoes(btnNovo, btnSalvar, btnEditar, btnCancelar, btnExcluir, btnSair, 'normal');
end;
procedure TFrmCadExtintores.rbBrigadaClick(Sender: TObject);
begin
if rbBrigada.Checked then
begin
dblkcbbBrigada.Enabled := True;
dmPrincipal.cdsExtintoresCódigoLoja.Clear;
dblkcbbLojas.Enabled := False;
end;
end;
procedure TFrmCadExtintores.rbLojasClick(Sender: TObject);
begin
if rbLojas.Checked then
begin
dblkcbbBrigada.Enabled := False;
dmPrincipal.cdsExtintoresCódigoBrigada.Clear;
dblkcbbLojas.Enabled := True;
end;
end;
procedure TFrmCadExtintores.rgDatasPesqClick(Sender: TObject);
begin
{ Sem Filtro }
if rgDatasPesq.ItemIndex = 0 then
begin
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data da Vistoria }
if rgDatasPesq.ItemIndex = 1 then
begin
dtpVistoriaInicio.Enabled := True;
dtpVistoriaFim.Enabled := True;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data da Manutenção }
if rgDatasPesq.ItemIndex = 2 then
begin
dtpManutencaoInicio.Enabled := True;
dtpManutencaoFinal.Enabled := True;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Data do Vencimento }
if rgDatasPesq.ItemIndex = 3 then
begin
dtpVencDeInicio.Enabled := True;
dtpVencFim.Enabled := True;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
dblkcbbPesqCarga.Enabled := False;
end;
{ Tipo da Carga }
if rgDatasPesq.ItemIndex = 4 then
begin
dblkcbbPesqCarga.Enabled := True;
dtpVencDeInicio.Enabled := False;
dtpVencFim.Enabled := False;
dtpManutencaoInicio.Enabled := False;
dtpManutencaoFinal.Enabled := False;
dtpVistoriaInicio.Enabled := False;
dtpVistoriaFim.Enabled := False;
end;
end;
procedure TFrmCadExtintores.rgOrigemClick(Sender: TObject);
begin
if rgOrigem.ItemIndex = 2 then
begin
dblkcbbLoja.Enabled := True;
end
else
dblkcbbLoja.Enabled := False;
end;
end.
GOSTEI 0
Claudio Colares
14/09/2012
Eu identifiquei um problema...
se eu comentar as linhas de código informadas abaixo, o funcionamento das cores das celular ficam normais, "não sao pintadas ao serem selecionadas" porem eu preciso dessa linha para ocultar a coluna {Nome da Loja}.
Outra coisa, alterar a cor via Object Inspector continua sem funcionar, o que está me salvando aqui é essa opção de alterar em modo de execução via evento do objeto.
se eu comentar as linhas de código informadas abaixo, o funcionamento das cores das celular ficam normais, "não sao pintadas ao serem selecionadas" porem eu preciso dessa linha para ocultar a coluna {Nome da Loja}.
Outra coisa, alterar a cor via Object Inspector continua sem funcionar, o que está me salvando aqui é essa opção de alterar em modo de execução via evento do objeto.
{ PESQUISANDO PELA BRIGADA }
if rgOrigem.ItemIndex = 1 then
begin
with dmPrincipal.qryExtintores do
begin
Close;
SQL.Clear;
SQL.add('SELECT');
SQL.add('`ex`.`cod_extintor` AS `Código`,');
SQL.add('`ex`.`ext_num_patrimonio` AS `Nº Patrimônio`,');
SQL.add('`ex`.`ext_data_cadastro` AS `Cadastro`,');
SQL.add('`bi`.`bri_nome` AS `Brigada`,');
SQL.add('`lo`.`loj_fantasia` AS `Nome da Loja`,');
SQL.add('`ti`.`tip_descricao` AS `Descrição`,');
SQL.add('`ex`.`ext_carga` AS `Carga`,');
SQL.add('`ti`.`tip_carga` AS `Tipo Carga`,');
SQL.add('`ex`.`ext_data_vencimento` AS `Vencimento`,');
SQL.add('`ex`.`ext_data_vistoria` AS `Vistoría`,');
SQL.add('`ex`.`ext_data_prox_man` AS `Manutenção`,');
SQL.add('`ex`.`ext_obs` AS `Observações`,');
SQL.add('`ex`.`tip_cod_tipo` AS `Código Tipo`,');
SQL.add('`ex`.`loj_cod_loja` AS `Código Loja`,');
SQL.add('`ex`.`mot_cod_motivo` AS `Código Motivo`,');
SQL.add('`ex`.`bri_cod_brigada` AS `Código Brigada`,');
SQL.add('`ex`.`loc_cod_localizacao` AS `Código Localização`,');
SQL.add('`ex`.`ext_em_uso` AS `Em Uso`,');
SQL.add('`ex`.`ext_vencido` AS `Vencido`');
SQL.add('FROM');
SQL.add('tbextintor ex');
SQL.add('LEFT JOIN tbtipo ti ON ti.cod_tipo = ex.tip_cod_tipo');
SQL.add('LEFT JOIN tbbrigada bi ON bi.cod_brigada = ex.bri_cod_brigada');
SQL.add('LEFT JOIN tbloja lo ON lo.cod_loja = ex.loj_cod_loja');
SQL.add('WHERE');
SQL.add('bri_cod_brigada LIKE 1');
case (rgDatasPesq.ItemIndex) of
1: { SE O USUÁRIO FILTRAR PELA DATA DA VISTORIA }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVistoriaInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVistoriaFim.Date);
SQL.add('AND');
SQL.add('ext_data_vistoria >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vistoria <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vistoria');
EstadoDasColunas('vistoria');
Essa --> dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
2: { SE O USUÁRIO FILTRAR PELA DATA DA MANUTENÇÃO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpManutencaoInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpManutencaoFinal.Date);
SQL.add('AND');
SQL.add('ext_data_prox_man >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_prox_man <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_prox_man');
EstadoDasColunas('manutencao');
Essa --> dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
3: { SE O USUÁRIO FILTRAR PELA DATA DE VENCIMENTO }
begin
dataInicio := FormatDateTime('yyyy/mm/dd', dtpVencDeInicio.Date);
dataFim := FormatDateTime('yyyy/mm/dd', dtpVencFim.Date);
SQL.add('AND');
SQL.add('ext_data_vencimento >= "' + dataInicio + '"');
SQL.add('AND');
SQL.add('ext_data_vencimento <= "' + dataFim + '"');
SQL.add('ORDER BY ext_data_vencimento');
EstadoDasColunas('vencimento');
Essa --> dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
4: { SE O USUÁRIO FILTRAR PELO TIPO DE CARGA }
begin
if dblkcbbPesqCarga.Text = '' then
begin
ShowMessage('Defina o tipo da carga');
dblkcbbPesqCarga.SetFocus;
Exit;
end
else
begin
SQL.add('AND');
SQL.add('tip_cod_tipo LIKE ' + VarToStr(dblkcbbPesqCarga.KeyValue));
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('tipo');
Essa --> dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
{ SE O USUÁRIO NÃO FILTRAR APRESENTE AS COLUNAS PADRÃO }
else
begin
SQL.add('ORDER BY ext_data_cadastro');
EstadoDasColunas('padrao');
Essa --> dbgrdDados.Columns[4].Visible := False; { Loja Nome }
end;
end;
Open;
dmPrincipal.qryExtintores.Refresh;
dmPrincipal.cdsExtintores.Refresh;
Exit;
end;
{$ENDREGION}
end;
GOSTEI 0