git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
240 lines
6.9 KiB
ObjectPascal
240 lines
6.9 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2003. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 10-05-2003
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 10-05-2003
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit Articulos;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
|
cxEdit, DB, cxDBData, ActnList, Menus, am2000menuitem, am2000popupmenu,
|
|
am2000, StdCtrls,
|
|
AdvPanel, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
|
|
ExtCtrls, RdxBotones, RdxBarras, RdxPaneles, RdxFrame, ArticulosModelo,
|
|
cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, Configuracion,
|
|
am2000utils, cxDataStorage;
|
|
|
|
type
|
|
TfrArticulos = class(TfrArticulosModelo)
|
|
pnlExtra: TRdxBarraSuperior;
|
|
eFamilia: TLabel;
|
|
cbxFamilia: TcxComboBox;
|
|
Panel1: TPanel;
|
|
eNombre: TLabel;
|
|
Buscar: TcxTextEdit;
|
|
bLimpiar: TRdxBoton;
|
|
|
|
//Habra que llamar a ArticuloModelo en lugar de artículo
|
|
procedure actAnadirExecute(Sender: TObject); override;
|
|
procedure actModificarExecute(Sender: TObject); override;
|
|
procedure actEliminarExecute(Sender: TObject); override;
|
|
procedure actConsultarExecute(Sender: TObject); override;
|
|
procedure cbxFamiliaPropertiesEditValueChanged(Sender: TObject);
|
|
procedure bLimpiarClick(Sender: TObject);
|
|
procedure BuscarPropertiesChange(Sender: TObject);
|
|
procedure actSeleccionarExecute(Sender: TObject);
|
|
private
|
|
FFamilia: String;
|
|
procedure SetFamilia(const Value: String);
|
|
protected
|
|
procedure BuscarArticulo; override;
|
|
procedure InicializarTablas; override;
|
|
public
|
|
//Solo cambiariamos las sql a las que referencia la tabla
|
|
constructor Create (AOwner : TComponent); override;
|
|
property Familia : String read FFamilia write SetFamilia;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
frArticulos: TfrArticulos;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
TablaArticulos, Articulo, Entidades, BaseDatos, IBCustomDataSet, TablaFamilias,
|
|
Mensajes, Literales;
|
|
|
|
|
|
{ TfrArticulosModelo }
|
|
|
|
procedure TfrArticulos.actAnadirExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrArticulo.Create(Self);
|
|
Contenido.Modo := Anadir;
|
|
end;
|
|
|
|
procedure TfrArticulos.actConsultarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrArticulo.Create(Self);
|
|
Contenido.Modo := Consultar;
|
|
end;
|
|
|
|
procedure TfrArticulos.actEliminarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrArticulo.Create(Self);
|
|
Contenido.Modo := Eliminar;
|
|
end;
|
|
|
|
procedure TfrArticulos.actModificarExecute(Sender: TObject);
|
|
begin
|
|
Contenido := TfrArticulo.Create(Self);
|
|
Contenido.Modo := Modificar;
|
|
end;
|
|
|
|
constructor TfrArticulos.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
cbxFamilia.Properties.Items.Add('Todas');
|
|
cbxFamilia.Properties.Items.AddStrings(dmTablaFamilias.DarFamilias);
|
|
cbxFamilia.ItemIndex := 0;
|
|
end;
|
|
|
|
procedure TfrArticulos.InicializarTablas;
|
|
begin
|
|
Entidad := entArticulo;
|
|
|
|
with TablaArticulos do
|
|
begin
|
|
DisableControls;
|
|
Database := BaseDatos;
|
|
Transaction := Transaccion;
|
|
SelectSQL.Assign(dmTablaArticulos.sqlGrid);
|
|
Prepare;
|
|
Open;
|
|
ActualizarBotones;
|
|
EnableControls;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulos.SetFamilia(const Value: String);
|
|
var
|
|
FamiliaAux : String;
|
|
Columna : TcxGridDBColumn;
|
|
begin
|
|
FamiliaAux := Value;
|
|
with gridArticulos.ActiveView.DataController.Filter do
|
|
begin
|
|
BeginUpdate;
|
|
try
|
|
Columna := (gridArticulos.ActiveView as TcxGridDBTableView).GetColumnByFieldName('FAMILIA');
|
|
if UpperCase(FamiliaAux) = 'TODAS' then
|
|
begin
|
|
Columna.Visible := True;
|
|
Clear;
|
|
end
|
|
else begin
|
|
Columna.Visible := False;
|
|
Root.Clear;
|
|
Root.AddItem(Columna, foEqual, FamiliaAux, 'Familia');
|
|
Active := True;
|
|
end;
|
|
cbxFamilia.Text := Value;
|
|
finally
|
|
EndUpdate;
|
|
gridArticulos.ActiveView.DataController.GotoFirst;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulos.cbxFamiliaPropertiesEditValueChanged(
|
|
Sender: TObject);
|
|
begin
|
|
Familia := cbxFamilia.Text;
|
|
end;
|
|
|
|
procedure TfrArticulos.BuscarArticulo;
|
|
begin
|
|
// inherited; <- No llamar al padre
|
|
with TablaArticulos do
|
|
begin
|
|
DisableControls;
|
|
Close;
|
|
Open;
|
|
dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
|
|
ActualizarBotones;
|
|
|
|
EnableControls;
|
|
if not Locate('CODIGO', CodigoArticulo, []) then
|
|
gridArticulosDBTableView1.Controller.GoToFirst
|
|
else
|
|
gridArticulosDBTableView1.Controller.TopRowIndex := gridArticulosDBTableView1.Controller.FocusedRowIndex;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrArticulos.bLimpiarClick(Sender: TObject);
|
|
begin
|
|
Buscar.Text := '';
|
|
end;
|
|
|
|
procedure TfrArticulos.BuscarPropertiesChange(Sender: TObject);
|
|
begin
|
|
FiltrarGrid(gridArticulos, Buscar.Text);
|
|
end;
|
|
|
|
destructor TfrArticulos.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrArticulos.actSeleccionarExecute(Sender: TObject);
|
|
var
|
|
i : integer;
|
|
AIndex : Integer;
|
|
begin
|
|
// inherited; <- No llamar al padre
|
|
|
|
if TablaArticulos.RecordCount = 0 then
|
|
begin
|
|
VerMensaje(msgArtNoHayArt);
|
|
exit;
|
|
end;
|
|
|
|
if gridArticulosDBTableView1.VisibleItemCount = 0 then
|
|
begin
|
|
VerMensaje(msgArtNoHayArt);
|
|
exit;
|
|
end;
|
|
|
|
{ CodigoArticulo := TablaArticulos.FieldByName('CODIGO').AsString;
|
|
CloseFrame;}
|
|
|
|
FListaArticulos.Clear;
|
|
if gridArticulosDBTableView1.Controller.SelectedRecordCount <= 1 then
|
|
FListaArticulos.Add(TablaArticulos.FieldByName('CODIGO').AsString)
|
|
else begin
|
|
// Buscar el índice de la columna que tiene el código del artículo.
|
|
AIndex := gridArticulosDBTableView1.GetColumnByFieldName('CODIGO').Index;
|
|
for i := 0 to gridArticulosDBTableView1.Controller.SelectedRecordCount - 1 do
|
|
FListaArticulos.Add(gridArticulosDBTableView1.Controller.SelectedRecords[i].DisplayTexts[AIndex]);
|
|
end;
|
|
CloseFrame;
|
|
end;
|
|
|
|
end.
|