unit fcc_camaras;

interface

uses
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, uFireDacHelper,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB,  
   Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.DBCtrls,
  Vcl.ExtCtrls, frxClass, frxDBSet, frxExportBaseDialog, frxExportPDF;

type
  Tcc_camaras = class(TForm)
    frxPDFExport1: TfrxPDFExport;
    gcrpagado: TDBCheckBox;
    informedb: TfrxDBDataset;
    informedbempresa: TfrxDBDataset;
    informedbencargado: TfrxDBDataset;
    informes: TfrxReport;
    Panel1: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    combocampanyas: TDBLookupComboBox;
    comboencargado: TDBLookupComboBox;
    bteimprimir: TButton;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    qcampanyas: TFDQuery;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    qcc_camaras: TFDQuery;
    qcc_camarasinf: TFDQuery;
    qcontroladores: TFDQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    qinsertar: TFDQuery;
    dsqcampanyas: TDataSource;
    dscontroladores: TDataSource;
    dsqcccamaras: TDataSource;
    dsqcccamarasinf: TDataSource;
    qcc_camaraside: TIntegerField;
    qcc_camarasfecha: TDateField;
    qcc_camarasidal: TIntegerField;
    qcc_camarasdescripcion: TWideStringField;
    qcc_camarastemperatura: TFloatField;
    qcc_camarasinfide: TIntegerField;
    qcc_camarasinffecha: TDateField;
    qcc_camarasinfidal: TIntegerField;
    qcc_camarasinfdescripcion: TWideStringField;
    qcc_camarasinftemperatura: TFloatField;
    qcc_camarastemperatura2: TFloatField;
    qcc_camarasinftemperatura2: TFloatField;
    qcc_camarastemperatura3: TFloatField;
    qcc_camarastemperatura4: TFloatField;
    qcc_camarasinftemperatura3: TFloatField;
    qcc_camarasinftemperatura4: TFloatField;
    procedure bteimprimirClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure dsqcampanyasDataChange(Sender: TObject; Field: TField);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cc_camaras: Tcc_camaras;
const
  rojo=$00AAAAFF;
  amarillo=$00B9FFFF;
  verde=$00C7FBAA;
  azul=$00FFFFBB;
implementation

{$R *.dfm}

procedure Tcc_camaras.bteimprimirClick(Sender: TObject);
begin
   qcc_camarasinf.Close;
   qcc_camarasinf.Prepare;
   qcc_camarasinf.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
   qcc_camarasinf.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
   qcc_camarasinf.Open;
   informedb.Datasource:=dsqcccamarasinf;
   informes.Report.Clear;
   informes.LoadFromFile('c:\agrigest\informes\infcccamaras.fr3');
   informes.Variables.Variables['CAMPANYA']:=QUOTEDSTR(qcampanyasdescripcion.asstring);
   informes.ShowReport();
end;

procedure Tcc_camaras.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
     if (qcc_camarastemperatura.AsString='')  then
    begin
        DBGrid1.Canvas.brush.Color := rojo;
    end else
        DBGrid1.Canvas.brush.Color := verde;

    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tcc_camaras.dsqcampanyasDataChange(Sender: TObject; Field: TField);
begin
    qinsertar.Close;
    qinsertar.Prepare;
    qinsertar.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
    qinsertar.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
    qinsertar.ExecSQL;
    qcc_camaras.Close;
    qcc_camaras.Prepare;
    qcc_camaras.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
    qcc_camaras.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
    qcc_camaras.Open;
end;

procedure Tcc_camaras.FormKeyPress(Sender: TObject; var Key: Char);
begin
   key:=upcase(key);
    if (key='.') and (activecontrol is tdbgrid) then
    begin
        key:=','
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
// si presionamos ESC
    if (key=#$1B)  and (activecontrol is tdblookupcombobox )then
    begin
      activecontrol.Visible:=false;
    end;
end;

procedure Tcc_camaras.FormShow(Sender: TObject);
begin
    qcampanyas.Open;
    qcontroladores.Open;
    combocampanyas.Keyvalue:=qcampanyasid.asstring;
    comboencargado.Keyvalue:=qcontroladoresnombre.asstring;
end;

end.
