unit uViewArticulo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, DBCtrls, Grids, DBGrids, uBizArticulos, Mask, ComCtrls, uCustomView, JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList, ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, uFamiliasController; type IViewArticulo = interface(IViewBase) ['{65206152-786D-47AE-A037-5EF480BC056C}'] function GetArticulo: IBizArticulo; procedure SetArticulo(const Value: IBizArticulo); property Articulo: IBizArticulo read GetArticulo write SetArticulo; end; TfrViewArticulo = class(TfrViewBase, IViewArticulo) dsViewArticulo: TDADataSource; dxLayoutControlArticuloGroup_Root: TdxLayoutGroup; dxLayoutControlArticulo: TdxLayoutControl; dxLayoutControlArticuloGroup1: TdxLayoutGroup; dxLayoutControlArticuloItem3: TdxLayoutItem; eReferencia: TcxDBTextEdit; dxLayoutControlArticuloItem8: TdxLayoutItem; eDescripcion: TcxDBTextEdit; dxLayoutControlArticuloGroup2: TdxLayoutGroup; dxLayoutControlArticuloItem1: TdxLayoutItem; eNoComisionable: TcxDBCheckBox; dxLayoutControlArticuloGroup4: TdxLayoutGroup; OpenDialog1: TOpenDialog; SmallImages: TPngImageList; ActionList1: TActionList; actAnadir: TAction; actEliminar: TAction; dxLayoutControlArticuloItem2: TdxLayoutItem; PngSpeedButton2: TPngSpeedButton; dxLayoutControlArticuloItem5: TdxLayoutItem; PngSpeedButton1: TPngSpeedButton; dxLayoutControlArticuloGroup3: TdxLayoutGroup; dxLayoutControlArticuloGroup7: TdxLayoutGroup; eImagen: TcxImage; dxLayoutControlArticuloItem6: TdxLayoutItem; dxLayoutControlArticuloGroup5: TdxLayoutGroup; dxLayoutControlArticuloItem4: TdxLayoutItem; cbFamilia: TcxDBComboBox; dxLayoutControlArticuloGroup6: TdxLayoutGroup; procedure actEliminarExecute(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure cbFamiliaPropertiesInitPopup(Sender: TObject); procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure cbFamiliaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); private procedure CargarImagen; procedure SalvarImagen; protected FFamiliasController: IFamiliasController; FArticulo: IBizArticulo; function GetArticulo: IBizArticulo; procedure SetArticulo(const Value: IBizArticulo); virtual; public property Articulo: IBizArticulo read GetArticulo write SetArticulo; end; implementation uses uDataModuleArticulos, uSistemaFunc, uBizFamilias; {$R *.dfm} { TfrViewArticulos } { ******************************* TfrViewArticulos ******************************** } procedure TfrViewArticulo.actAnadirExecute(Sender: TObject); begin { eImagen.LoadFromFile; SalvarImagen;} end; procedure TfrViewArticulo.actEliminarExecute(Sender: TObject); begin inherited; { eImagen.Clear; FArticulo.QuitarImagen;} end; procedure TfrViewArticulo.CargarImagen; var aAux : String; begin if FArticulo.HayImagen then begin aAux := DarFicheroJPGTemporal; try FArticulo.SalvarImagen(aAux); try eImagen.Picture.LoadFromFile(aAux); except // end; finally DeleteFile(aAux); end; end; end; procedure TfrViewArticulo.cbFamiliaPropertiesInitPopup(Sender: TObject); begin inherited; with cbFamilia.Properties.Items do begin BeginUpdate; try Clear; AddStrings(FFamiliasController.DarListaFamilias); finally EndUpdate; end; end; end; procedure TfrViewArticulo.cbFamiliaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var AFamilias : IBizFamilia; begin inherited; with (Sender as TcxDBComboBox) do begin if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then if Properties.LookupItems.IndexOf(DisplayValue) < 0 then begin Properties.LookupItems.BeginUpdate; AFamilias := FFamiliasController.BuscarTodos; AFamilias.DataTable.Active := True; try FFamiliasController.Anadir(AFamilias); AFamilias.DESCRIPCION := DisplayValue; FFamiliasController.Guardar(AFamilias); Properties.LookupItems.Add(DisplayValue); finally Properties.LookupItems.EndUpdate; AFamilias := NIL; end; end; end; end; procedure TfrViewArticulo.CustomViewCreate(Sender: TObject); begin inherited; FFamiliasController := TFamiliasController.Create; end; procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject); begin FFamiliasController := Nil; inherited; end; function TfrViewArticulo.GetArticulo: IBizArticulo; begin Result := FArticulo; end; procedure TfrViewArticulo.SalvarImagen; var aAux : String; begin aAux := DarFicheroJPGTemporal; eImagen.Picture.SaveToFile(aAux); try FArticulo.CargarImagen(aAux); finally DeleteFile(aAux); end; end; procedure TfrViewArticulo.SetArticulo(const Value: IBizArticulo); begin FArticulo := Value; if Assigned(FArticulo) then begin dsViewArticulo.DataTable := FArticulo.DataTable; // CargarImagen; end else begin dsViewArticulo.DataTable := NIL; // eImagen.Clear; end; end; end.