unit fvehiculos;

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, Vcl.StdCtrls, Vcl.DBCtrls, Data.DB,
     Vcl.Grids, Vcl.DBGrids,
  Vcl.ExtCtrls,
  shellapi, Vcl.Mask,
 Vcl.ComCtrls, frxClass, frxDBSet, URLMon, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
  Tvehiculos = class(TForm)
    Panel7: TPanel;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    btAcancelar: TButton;
    DBGrid1: TDBGrid;
    qmaquinaria: TFDQuery;
    dsqmaquinaria: TDataSource;
    ZReadOnlyQuery1: TFDQuery;
    qmaquinariaID: TWideStringField;
    qmaquinariaFECHA_COMPRA: TDateField;
    qmaquinariaPROPIO: TIntegerField;
    qmaquinariavehiculo: TIntegerField;
    qmaquinariamaquinaria: TIntegerField;
    qmaquinariaACTIVO: TIntegerField;
    qmaquinariatractor: TIntegerField;
    qmaquinariafumigadora: TIntegerField;
    qmaquinariaDESCRIPCION: TWideStringField;
    qmaquinariaIDEMPRESA: TIntegerField;
    qmaquinariaTIPO: TWideStringField;
    gcrpagado: TDBCheckBox;
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure FormShow(Sender: TObject);
    procedure btAnuevoClick(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAguardarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
    procedure qmaquinariaBeforePost(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  vehiculos: Tvehiculos;

implementation

{$R *.dfm}
uses datos, principal;

procedure Tvehiculos.btAborrarClick(Sender: TObject);
begin
   qmaquinaria.Delete;
end;

procedure Tvehiculos.btAcancelarClick(Sender: TObject);
begin
   qmaquinaria.Cancel;
end;

procedure Tvehiculos.btAguardarClick(Sender: TObject);
begin
  qmaquinaria.Post;
end;

procedure Tvehiculos.btAmodificarClick(Sender: TObject);
begin
   qmaquinaria.Edit;
end;

procedure Tvehiculos.btAnuevoClick(Sender: TObject);
begin
  qmaquinaria.append;
end;

procedure Tvehiculos.DBGrid1CellClick(Column: TColumn);
begin
    if column.Field.FieldName ='propio' then
    begin
        if qmaquinariapropio.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariapropio.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariapropio.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;
    if column.Field.FieldName ='fumigadora' then
    begin
        if qmaquinariafumigadora.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariafumigadora.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariafumigadora.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;
    if column.Field.FieldName ='tractor' then
    begin
        if qmaquinariatractor.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariatractor.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariatractor.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;
        if column.Field.FieldName ='activo' then
    begin
        if qmaquinariaactivo.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariaactivo.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariaactivo.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;
        if column.Field.FieldName ='maquinaria' then
    begin
        if qmaquinariamaquinaria.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariamaquinaria.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariamaquinaria.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;
        if column.Field.FieldName ='vehiculo' then
    begin
        if qmaquinariavehiculo.asinteger=1 then
         begin
           qmaquinaria.Edit;
           qmaquinariavehiculo.Value:=0;
           qmaquinaria.Post;
           dbgrid1.selectedIndex:=1;
         end else
               begin
                 qmaquinaria.Edit;
                 qmaquinariavehiculo.Value:=1;
                 qmaquinaria.Post;
                 qmaquinaria.Refresh;
                 dbgrid1.SelectedIndex:=1;
               end;
    end;

end;

procedure Tvehiculos.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
const IsChecked : array[Boolean] of Integer =
 (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var
  DrawState,imgindex,bmpwidth: Integer;
  DrawRect: TRect;
begin
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'ACTIVO') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'ACTIVO') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'vehiculo') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'vehiculo') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'PROPIO') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'PROPIO') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'maquinaria') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'maquinaria') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'tractor') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'tractor') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
if (gdFocused in State) then
begin

    if (Column.Field.FieldName = 'fumigadora') then
     begin
       gcrpagado.Left := Rect.Left + DBgrid1.Left + 2;
       gcrpagado.Top := Rect.Top + DBgrid1.top + 2;
       gcrpagado.Width := Rect.Right - Rect.Left;
       gcrpagado.Height := Rect.Bottom - Rect.Top;
       gcrpagado.Visible := True;
     end;
end else
     begin

       if (Column.Field.FieldName = 'fumigadora') then
       begin
         DrawRect:=Rect;
         InflateRect(DrawRect,-1,-1);
         if column.Field.Asinteger=0  then DrawState := ischecked[false];
         if column.Field.Asinteger=1  then DrawState := ischecked[true];
         DBgrid1.Canvas.FillRect(Rect);
         DrawFrameControl(DBgrid1.Canvas.Handle, DrawRect,DFC_BUTTON, DrawState);
       end;
    end;
    gcrpagado.visible:=false;
end;

procedure Tvehiculos.FormShow(Sender: TObject);
begin
  qmaquinaria.Open;
end;

procedure Tvehiculos.qmaquinariaBeforePost(DataSet: TDataSet);
begin
   qmaquinariaidempresa.Value:=1;
end;

end.
