unit uViewApuntes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, uBizApuntes, ActnList, Menus, cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, cxCalendar, cxImageComboBox, cxTextEdit, cxCurrencyEdit, ComCtrls, ToolWin, cxButtonEdit, uApuntesController, StdCtrls, cxContainer, ExtCtrls, dxLayoutControl; type IViewApuntes = interface(IViewDetallesGenerico) ['{BEEA820D-80E5-4B7F-8659-A9C37BAFECFF}'] function GetApuntes: IBizApunte; procedure SetApuntes(const Value: IBizApunte); property Apuntes: IBizApunte read GetApuntes write SetApuntes; end; TfrViewApuntes = class(TfrViewDetallesGenerico, IViewApuntes) cxGridViewCONCEPTO: TcxGridDBColumn; cxGridViewREF_SUBCUENTA: TcxGridDBColumn; PngImageList: TPngImageList; cxGridViewSUBCUENTA: TcxGridDBColumn; cxGridViewDEBE: TcxGridDBColumn; cxGridViewHABER: TcxGridDBColumn; cxGridViewDOCUMENTO: TcxGridDBColumn; cxGridViewID_ASIENTO: TcxGridDBColumn; actElegirSubCuenta: TAction; ToolButton3: TToolButton; cxGridViewNUM_ORDEN: TcxGridDBColumn; eDescuadre: TcxCurrencyEdit; Label1: TLabel; Panel1: TPanel; Panel2: TPanel; procedure cxGridViewIDCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure cxGridViewREF_SUBCUENTAPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure actElegirSubCuentaExecute(Sender: TObject); procedure cxGridViewDEBEPropertiesEditValueChanged(Sender: TObject); procedure cxGridViewHABERPropertiesEditValueChanged(Sender: TObject); procedure cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); protected FApuntes: IBizApunte; FController : IApuntesController; function GetApuntes: IBizApunte; virtual; procedure SetApuntes(const Value: IBizApunte); virtual; procedure AnadirInterno; override; procedure ModificarInterno; override; public property Apuntes: IBizApunte read GetApuntes write SetApuntes; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure GotoLast; override; end; implementation {$R *.dfm} { TfrViewApuntes } { ******************************* TfrViewApuntes ******************************* } function TfrViewApuntes.GetApuntes: IBizApunte; begin Result := FApuntes; end; procedure TfrViewApuntes.GotoLast; begin inherited; if Assigned(FApuntes) then begin cxGrid.SetFocus; cxGridViewCONCEPTO.Focused := true; end; end; procedure TfrViewApuntes.ModificarInterno; begin inherited; { with TDireccionesContactoController.Create do Ver((dsDetalles.DataTable) as IBizDireccionesContacto); } end; procedure TfrViewApuntes.SetApuntes(const Value: IBizApunte); begin FApuntes := Value; if Assigned(FApuntes) then dsDetalles.DataTable := FApuntes.DataTable; end; procedure TfrViewApuntes.actElegirSubCuentaExecute(Sender: TObject); begin inherited; FController.ElegirSubCuenta(Apuntes); end; procedure TfrViewApuntes.AnadirInterno; begin // inherited; FController.Anadir(Apuntes); // try // with TApuntesController.Create do // begin // Anadir(Apuntes); // Ver(Apuntes); // end; // finally // if (dsDetalles.DataTable.State in dsEditModes) then // dsDetalles.DataTable.Post; // end; end; constructor TfrViewApuntes.Create(AOwner: TComponent); begin inherited; FController := TApuntesController.Create; end; procedure TfrViewApuntes.cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary); var Descuadre: Double; begin inherited; Descuadre := 0; if not VarIsNull(cxGridView.DataController.Summary.FooterSummaryValues[0]) then Descuadre := cxGridView.DataController.Summary.FooterSummaryValues[0]; if not VarIsNull(cxGridView.DataController.Summary.FooterSummaryValues[1]) then Descuadre := Descuadre - cxGridView.DataController.Summary.FooterSummaryValues[1]; eDescuadre.Value := Descuadre; end; procedure TfrViewApuntes.cxGridViewDEBEPropertiesEditValueChanged(Sender: TObject); begin inherited; //Tengo que hacer esto para que se haga un post del apunte y pueda ver el nuevo valor if cxGridView.Controller.EditingController.IsEditing then cxGridView.Controller.EditingController.Edit.PostEditValue; FController.AsignarDEBE(Apuntes); end; procedure TfrViewApuntes.cxGridViewHABERPropertiesEditValueChanged( Sender: TObject); begin inherited; //Tengo que hacer esto para que se haga un post del apunte y pueda ver el nuevo valor if cxGridView.Controller.EditingController.IsEditing then cxGridView.Controller.EditingController.Edit.PostEditValue; FController.AsignarHABER(Apuntes); end; procedure TfrViewApuntes.cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); {var R : TRect;} begin inherited; { R := AViewInfo.ContentBounds; ACanvas.FillRect(R); ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); ADone := True; } end; procedure TfrViewApuntes.cxGridViewREF_SUBCUENTAPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin inherited; actElegirSubCuenta.Execute; end; destructor TfrViewApuntes.Destroy; begin FController := Nil; inherited; end; end.