unit fcc_camaras;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractDataset, ZDataset,
  ZAbstractRODataset, 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: TZReadOnlyQuery;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    qcc_camaras: TZQuery;
    qcc_camarasinf: TZQuery;
    qcontroladores: TZReadOnlyQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    qinsertar: TZQuery;
    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.
