TpAUX CLASE SELECCION CRITERIOS unit

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

El objeto TpAUX_CLASE_SELECCION_CRITERIOS_unit (SQL para seleccionar criterios múltiples en consultas) procesa los auxiliares de tipo SELECCION_CRITERIOS, ver detalles en DEV AUXILIARES/SELECCION CRITERIOS.

Identidad

  • Ancestro: TComponent
  • Carpeta: C:\DevelopPrx\pPRAGMA
  • Archivo: pAUX_CLASE_SELECCION_CRITERIOS_unit.pas

Declaración

type
  TpAUX_CLASE_SELECCION_CRITERIOS_unit = class(TComponent)
  private
    FDataSet: TDataSet;
    FClase: String;

    FQuery: TprxADOQuery;

    FSQL_COMANDO: TStringList;

    FItems: TStringList;
    FItems_Index: Integer;
  protected

  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;

    property    DataSet: TDataSet read FDataSet write FDataSet;
    property    Clase: String read FClase write FClase;

    function    Execute: Boolean;

    property    Query: TprxADOQuery read FQuery write FQuery;

    property    Items: TStringList read FItems;
    property    Items_Index: Integer read FItems_Index;

    property    SQL_COMANDO: TStringList read FSQL_COMANDO write FSQL_COMANDO;
  published
  end;

Implementación

function Execute: Boolean

Carga el comando definido para la selección de criterios.

Modo de uso

Habitualmente el auxiliar se usa de la siguiente manera (ejemplo tomado de TTfvsDBClientFrameGridConsultas.fvsDBGridResultadoGetPopupOptions):

prxADOClientDM.pAUX_CLASE_SELECCION_CRITERIOS_unit.DataSet       := DataSource.DataSet; // QueryRESULTADO;
prxADOClientDM.pAUX_CLASE_SELECCION_CRITERIOS_unit.Clase         := TprxADODataSetEdit(TprxADOQuery(QueryRESULTADO).MasterDataSet).ppTableName;

Primero asignamos las propiedades:

  • Dataset que se asigna al dataset de la pantalla que llama al auxiliar.
  • Clase se inicializa al nombre de la tabla del componente que está llamando al auxiliar.

Si Exexute retorna True (indicando que se ha definido un SQL para la selección de criterios) toma ese SQL y agrega la opción Definir criterios... al menú local:

if prxADOClientDM.pAUX_CLASE_SELECCION_CRITERIOS_unit.Execute then
   begin
   SQL_Criterios := prxADOClientDM.pAUX_CLASE_SELECCION_CRITERIOS_unit.SQL_COMANDO.Text;

   aPopupMenu.OptionAdd('Definir criterios...', True, 'magnifier_zoom_in', AbrirFormCriterios);
   aPopupMenu.OptionAddSeparator;
   end;

AbrirFormCriterios es una función local que se ocupa de abrir el form TTprxCriteriosConsultasForm de criterios, aplicar el SQL del auxiliar y administrar la selección de valores:

procedure TTfvsDBClientFrameGridConsultas.AbrirFormCriterios(Sender: TObject);
var
  vF: TTprxCriteriosConsultasForm;
begin
  if Assigned(CriteriosForm) = False then
     CriteriosForm := TTprxCriteriosConsultasForm.Create(Self);

  CriteriosForm.GUID := TprxADODataSetEdit(DataSource.DataSet).GUID;
  CriteriosForm.SQL  := SQL_Criterios;
  CriteriosForm.ShowModal;
  CriteriosForm.Release;

  CriteriosForm := nil;

  SQLEjecutar(Sender);
  fvsDBGridResultado.WidthJustify;
end;

Usos

Este auxiliar se usa en: