This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Datos/Articulos.pas

240 lines
6.9 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2003. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 10-05-2003
Versi<EFBFBD>n actual: 1.0.0
Fecha versi<EFBFBD>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<72>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 <20>ndice de la columna que tiene el c<>digo del art<72>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.