git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
272 lines
8.2 KiB
ObjectPascal
272 lines
8.2 KiB
ObjectPascal
unit PropiedadesArticulo;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
||
cxData, cxEdit, DB, cxDBData, RdxPaneles, RdxBarras, RdxBotones,
|
||
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
||
cxGridCustomTableView, cxGridCardView, cxGridDBCardView, cxGrid,
|
||
ExtCtrls, AdvPanel, RxMemDS, Grids, DBGrids, StdCtrls, ActnList,
|
||
TablaArticulos, cxContainer, cxTextEdit, cxMemo, cxDBEdit,
|
||
IBCustomDataSet, IBQuery, cxDBLookupComboBox, cxDataStorage;
|
||
|
||
type
|
||
TfrPropiedadesArticulo = class(TForm)
|
||
gridPropiedades: TcxGrid;
|
||
gridPropiedadesDBCardView: TcxGridDBCardView;
|
||
gridPropiedadesLevel: TcxGridLevel;
|
||
brDoble: TRdxBarraInferior;
|
||
bAceptar: TRdxBoton;
|
||
bCancelar: TRdxBoton;
|
||
TablaPropiedadesArt: TRxMemoryData;
|
||
dsPropiedadesArt: TDataSource;
|
||
RdxPanel1: TRdxPanel;
|
||
bAnadir: TRdxBoton;
|
||
bEliminar: TRdxBoton;
|
||
bEliminarTodo: TRdxBoton;
|
||
eDescripcionArticulo: TLabel;
|
||
ActionList1: TActionList;
|
||
actAnadir: TAction;
|
||
actEliminar: TAction;
|
||
actEliminarTodo: TAction;
|
||
actAceptar: TAction;
|
||
actCancelar: TAction;
|
||
eDescripcion: TLabel;
|
||
Descripcion: TcxMemo;
|
||
TablaValores: TIBQuery;
|
||
TablaPropiedades: TIBQuery;
|
||
dsPropiedades: TDataSource;
|
||
dsValores: TDataSource;
|
||
gridPropiedadesDBCardViewDBCardViewRow1: TcxGridDBCardViewRow;
|
||
gridPropiedadesDBCardViewDBCardViewRow2: TcxGridDBCardViewRow;
|
||
gridPropiedadesDBCardViewDBCardViewRow3: TcxGridDBCardViewRow;
|
||
procedure gridPropiedadesResize(Sender: TObject);
|
||
procedure actAnadirExecute(Sender: TObject);
|
||
procedure actEliminarExecute(Sender: TObject);
|
||
procedure actEliminarTodoExecute(Sender: TObject);
|
||
procedure actEliminarUpdate(Sender: TObject);
|
||
procedure actEliminarTodoUpdate(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure actAceptarExecute(Sender: TObject);
|
||
procedure actCancelarExecute(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
private
|
||
FDatosArticulo : TDatosArticulo;
|
||
procedure SetDatosArticulo(const Value: TDatosArticulo);
|
||
procedure VALORGetProperties(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AProperties: TcxCustomEditProperties);
|
||
public
|
||
property DatosArticulo : TDatosArticulo read FDatosArticulo write SetDatosArticulo;
|
||
end;
|
||
|
||
var
|
||
frPropiedadesArticulo: TfrPropiedadesArticulo;
|
||
|
||
implementation
|
||
|
||
{$R *.dfm}
|
||
|
||
{ TfrPropiedadesArticulo }
|
||
|
||
uses
|
||
BaseDatos, cxDropDownEdit, Mensajes,
|
||
Literales, TablaPropiedadesArticulo, TablaPropiedades, Configuracion, Entidades;
|
||
|
||
procedure TfrPropiedadesArticulo.gridPropiedadesResize(Sender: TObject);
|
||
begin
|
||
gridPropiedadesDBCardView.OptionsView.CardWidth := (gridPropiedades.Width - 50) div 2;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actAnadirExecute(Sender: TObject);
|
||
begin
|
||
gridPropiedades.SetFocus;
|
||
with TablaPropiedadesArt do
|
||
begin
|
||
Append;
|
||
Post;
|
||
Edit;
|
||
FieldByName('CODIGOPROPIEDAD').FocusControl;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actEliminarExecute(Sender: TObject);
|
||
begin
|
||
if TablaPropiedadesArt.RecordCount = 0 then begin
|
||
{ Hacemos un cancel de la tabla por si el registro actual estuviera
|
||
recien creado }
|
||
TablaPropiedadesArt.Cancel;
|
||
Exit;
|
||
end;
|
||
if (VerMensajePregunta(msgDatosBorrarPropiedad) <> IDYES) then
|
||
Exit;
|
||
TablaPropiedadesArt.Delete;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actEliminarTodoExecute(Sender: TObject);
|
||
begin
|
||
if (VerMensajePregunta(msgDatosBorrarPropiedades) = IDYES) then
|
||
TablaPropiedadesArt.EmptyTable;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actEliminarUpdate(Sender: TObject);
|
||
begin
|
||
(Sender as TAction).Enabled := not (TablaPropiedadesArt.RecordCount = 0);
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actEliminarTodoUpdate(Sender: TObject);
|
||
begin
|
||
(Sender as TAction).Enabled := not (TablaPropiedadesArt.RecordCount = 0);
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.FormShow(Sender: TObject);
|
||
var
|
||
Contador : Integer;
|
||
FPropiedad : TDatosPropiedad;
|
||
begin
|
||
Descripcion.Text := FDatosArticulo.Descripcion;
|
||
|
||
with TablaPropiedadesArt do
|
||
begin
|
||
DisableControls;
|
||
try
|
||
EmptyTable;
|
||
Open;
|
||
for Contador := 0 to (FDatosArticulo.ListaPropiedades.Count - 1) do
|
||
begin
|
||
FPropiedad := FDatosArticulo.ListaPropiedades.Items[Contador];
|
||
Insert;
|
||
FieldByName('CODIGOPROPIEDAD').AsInteger := FPropiedad.CodigoPropiedad;
|
||
FieldByName('VALOR').AsString := FPropiedad.Valor;
|
||
Post;
|
||
end;
|
||
finally
|
||
EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.SetDatosArticulo(
|
||
const Value: TDatosArticulo);
|
||
begin
|
||
FDatosArticulo := Value;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actAceptarExecute(Sender: TObject);
|
||
var
|
||
FPropiedad : TDatosPropiedad;
|
||
FBookmark : string;
|
||
begin
|
||
FDatosArticulo.Descripcion := Descripcion.Text;
|
||
FDatosArticulo.ListaPropiedades.Clear;
|
||
|
||
// Copiar las nuevas propiedades
|
||
with TablaPropiedadesArt do
|
||
begin
|
||
FBookmark := Bookmark;
|
||
DisableControls;
|
||
try
|
||
First;
|
||
while not EOF do
|
||
begin
|
||
FPropiedad := TDatosPropiedad.Create;
|
||
FPropiedad.CodigoPropiedad := FieldByName('CODIGOPROPIEDAD').AsInteger;
|
||
FPropiedad.Valor := FieldByName('VALOR').AsString;
|
||
FDatosArticulo.ListaPropiedades.Add(FPropiedad);
|
||
Next;
|
||
end;
|
||
finally
|
||
Bookmark := FBookmark;
|
||
EnableControls;
|
||
ModalResult := mrOk;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.actCancelarExecute(Sender: TObject);
|
||
begin
|
||
ModalResult := mrCancel;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.FormCreate(Sender: TObject);
|
||
begin
|
||
ConfigurarFrame(Self, entPresupuestoCliente);
|
||
with TablaPropiedades do
|
||
begin
|
||
Database := dmBaseDatos.BD;
|
||
Transaction := dmBaseDatos.Transaccion;
|
||
Open;
|
||
end;
|
||
|
||
with TablaValores do
|
||
begin
|
||
Database := dmBaseDatos.BD;
|
||
Transaction := dmBaseDatos.Transaccion;
|
||
end;
|
||
|
||
//dmTablaPropiedadesArticulo.InicializarGridPropiedadesArticulo(gridPropiedadesDBCardView);
|
||
with TcxLookupComboBoxProperties(gridPropiedadesDBCardView.GetRowByFieldName('CODIGOPROPIEDAD').Properties) do
|
||
ListSource := dsPropiedades;
|
||
gridPropiedadesDBCardView.GetRowByFieldName('VALOR').OnGetProperties := VALORGetProperties;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.FormClose(Sender: TObject;
|
||
var Action: TCloseAction);
|
||
begin
|
||
TablaPropiedades.Close;
|
||
end;
|
||
|
||
procedure TfrPropiedadesArticulo.VALORGetProperties(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AProperties: TcxCustomEditProperties);
|
||
begin
|
||
if not Sender.Focused then
|
||
begin
|
||
AProperties := TcxTextEditProperties.Create(Self);//dmConfiguracion.ItemEdit.Properties;
|
||
end
|
||
else begin
|
||
with TablaValores do
|
||
begin
|
||
try
|
||
DisableControls;
|
||
Close;
|
||
// <20>Tiene 'copia'?
|
||
if TablaPropiedades.FieldByName('COPIA').AsVariant <> NULL then
|
||
ParamByName('CODIGOPROPIEDAD').AsInteger := TablaPropiedades.FieldByName('COPIA').AsInteger
|
||
else // No tiene 'copia'
|
||
ParamByName('CODIGOPROPIEDAD').AsInteger := TablaPropiedadesArt.FieldByName('CODIGOPROPIEDAD').AsInteger;
|
||
Prepare;
|
||
Open;
|
||
|
||
if RecordCount = 0 then
|
||
begin
|
||
AProperties := TcxTextEditProperties.Create(Self);//dmConfiguracion.ItemEdit.Properties;
|
||
EnableControls;
|
||
Exit;
|
||
end;
|
||
|
||
AProperties := TcxLookupComboBoxProperties.Create(Self);
|
||
with TcxLookupComboBoxProperties(AProperties) do
|
||
begin
|
||
DropDownListStyle := lsEditList;
|
||
ImmediatePost := True;
|
||
KeyFieldNames := 'DESCRIPCION';
|
||
ListColumns.Clear;
|
||
ListColumns.Add.FieldName := 'DESCRIPCION';
|
||
ListOptions.AnsiSort := True;
|
||
ListOptions.GridLines := glNone;
|
||
ListOptions.ShowHeader := False;
|
||
ListSource := dsValores;
|
||
end;
|
||
finally
|
||
EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
end.
|