unit uViewParametrosColeccion;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, dxLayoutControl, StdCtrls, Mask, JvExMask, JvToolEdit,
  JvCombobox, cxControls, uViewParametrosControlGrid, TBXDkPanels,
  uBizParametros;

type
  IViewParametrosColeccion = interface(IViewParametrosControlGrid)
    ['{5523284E-4445-4026-AFAC-B243C19F0DA7}']

    function GetColeccionesSeleccionadas: TStringList;
    property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas;
  end;

  TfrViewParametrosColeccion = class(TfrViewParametrosControlGrid, IViewParametrosColeccion)
    dxLayoutControl1Group_Root: TdxLayoutGroup;
    dxLayoutControl1: TdxLayoutControl;
    ccbColeccion: TJvCheckedComboBox;
    dxLayoutControl1Item1: TdxLayoutItem;
  private
    FColecciones : IBizColecciones;
    procedure RellenarListaColecciones;
    function GetColeccionesSeleccionadas: TStringList;
  public
    procedure Execute; override;
    procedure Refresh; override;
    property ColeccionesSeleccionadas : TStringList read GetColeccionesSeleccionadas;
  end;

implementation

uses
  uDataModuleParametros, uDADataTable;

{$R *.dfm}

{ TfrViewParametrosColeccion }

procedure TfrViewParametrosColeccion.Execute;
begin
  // inherited; <- no descomentar
end;

function TfrViewParametrosColeccion.GetColeccionesSeleccionadas: TStringList;
var
  i : integer;
begin
  Result := TStringList.Create;

  FColecciones.DataTable.First;
  for i := 0 to ccbColeccion.Items.Count - 1 do
  begin
    if ccbColeccion.Checked[i] then
      Result.Add(FColecciones.COLECAO);
    FColecciones.DataTable.Next;
  end;
end;

procedure TfrViewParametrosColeccion.Refresh;
begin
  // inherited; <- no descomentar
  RellenarListaColecciones;
end;

procedure TfrViewParametrosColeccion.RellenarListaColecciones;
var
  i : Integer;
begin
  FColecciones := dmParametros.GetColecciones;
  ccbColeccion.Items.BeginUpdate;

  ShowHourglassCursor;
  try
    ccbColeccion.Items.Clear;
    FColecciones.DataTable.Active := True;
    for i := 0 to FColecciones.DataTable.RecordCount - 1 do
    begin
      ccbColeccion.Items.Add(FColecciones.DESC_COLECAO);
      FColecciones.DataTable.Next;
    end;
  finally
    ccbColeccion.Items.EndUpdate;
    HideHourglassCursor;
  end;
end;

end.
