unit fcc_basculas;

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_basculas = 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_basculas: TFDQuery;
    qcontroladores: TFDQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    qinsertar: TFDQuery;
    qcc_basculaside: TIntegerField;
    qcc_basculasfecha: TDateField;
    qcc_basculasidb: TIntegerField;
    qcc_basculaspeso_muestra: TFloatField;
    qcc_basculaspeso_real: TFloatField;
    dsqcampanyas: TDataSource;
    dscontroladores: TDataSource;
    dsqccbasculas: TDataSource;
    qcc_basculasdescripcion: TWideStringField;
    qcc_basculasinf: TFDQuery;
    dsqccbasculasinf: TDataSource;
    qcc_basculasinfide: TIntegerField;
    qcc_basculasinffecha: TDateField;
    qcc_basculasinfidb: TIntegerField;
    qcc_basculasinfdescripcion: TWideStringField;
    qcc_basculasinfpeso_muestra: TFloatField;
    qcc_basculasinfpeso_real: TFloatField;
    procedure dsqcampanyasDataChange(Sender: TObject; Field: TField);
    procedure FormShow(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure bteimprimirClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cc_basculas: Tcc_basculas;
const
  rojo=$00AAAAFF;
  amarillo=$00B9FFFF;
  verde=$00C7FBAA;
  azul=$00FFFFBB;
implementation

{$R *.dfm}

procedure Tcc_basculas.bteimprimirClick(Sender: TObject);
begin
   qcc_basculasinf.Close;
   qcc_basculasinf.Prepare;
   qcc_basculasinf.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
   qcc_basculasinf.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
   qcc_basculasinf.Open;
   informedb.Datasource:=dsqccbasculasinf;
   informes.Report.Clear;
   informes.LoadFromFile('c:\agrigest\informes\infccbasculas.fr3');
   informes.Variables.Variables['CAMPANYA']:=QUOTEDSTR(qcampanyasdescripcion.asstring);
   informes.ShowReport();
end;

procedure Tcc_basculas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
     if (qcc_basculaspeso_real.AsString='')  then
    begin
        DBGrid1.Canvas.brush.Color := rojo;
    end else
        DBGrid1.Canvas.brush.Color := verde;

    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tcc_basculas.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_basculas.Close;
    qcc_basculas.Prepare;
    qcc_basculas.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
    qcc_basculas.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
    qcc_basculas.Open;

end;

procedure Tcc_basculas.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_basculas.FormShow(Sender: TObject);
begin
    qcampanyas.Open;
    qcontroladores.Open;
    combocampanyas.Keyvalue:=qcampanyasid.asstring;
    comboencargado.Keyvalue:=qcontroladoresnombre.asstring;
end;

end.
