unit uEditorControlStockEDI; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorControlBase, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uCustomView, uViewBase, uViewControlBase, Grids, DBGrids, pngimage, StdCtrls, uEditorGridBase, uViewGridBase, uViewGrid, Menus, TB2ExtItems, TBXExtItems, uBizStock,uViewControGridStockEDI, uViewControGridStockPrendasCentros, uViewControGridStockEDIInventario, uDAInterfaces, JvTabBar; type IEditorControlStockEDI = interface(IEditorGridBase) ['{8CDABF14-FD43-48BF-8B33-B6B5A9B03CEB}'] { function GetItems: IBizStockEDI; procedure SetItems(const Value: IBizStockEDI); property Items: IBizStockEDI read GetItems write SetItems;} end; TfEditorControlStockEDI = class(TfEditorGridBase, IEditorControlStockEDI) dsVentasTerminadas: TDADataSource; TBXSeparatorItem16: TTBXSeparatorItem; tbxiAnchoAuto: TTBXItem; actExpandir: TAction; actContraer: TAction; actAnchoAuto: TAction; TBXItem37: TTBXItem; TBXItem36: TTBXItem; TBXItem35: TTBXItem; TBXSeparatorItem17: TTBXSeparatorItem; TBXItem38: TTBXItem; TBXItem39: TTBXItem; frViewControlGridStockEDI1: TfrViewControlGridStockEDI; PageControl1: TPageControl; tabResumen: TTabSheet; tabDesglose: TTabSheet; frViewControlGridStockPrendasCentros1: TfrViewControlGridStockPrendasCentros; tabInventario: TTabSheet; frViewControlGridStockEDIInventario1: TfrViewControlGridStockEDIInventario; JvTabBar1: TJvTabBar; JvModernTabBarPainter1: TJvModernTabBarPainter; procedure actAnchoAutoExecute(Sender: TObject); procedure FormShow(Sender: TObject); override; procedure actExpandirExecute(Sender: TObject); procedure actContraerExecute(Sender: TObject); procedure PageControl1Change(Sender: TObject); procedure actRefrescarExecute(Sender: TObject); procedure JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); protected FDesglose : IBizStockEDI; FInventario : IBizStockEDIInventario; FResumen : IBizStockPrendasCentros; function GetItemsDesglose: IBizStockEDI; procedure SetItemsDesglose(const Value: IBizStockEDI); function GetItemsInventario: IBizStockEDIInventario; procedure SetItemsInventario(const Value: IBizStockEDIInventario); function GetItemsResumen: IBizStockPrendasCentros; procedure SetItemsResumen(const Value: IBizStockPrendasCentros); public property ItemsDesglose: IBizStockEDI read GetItemsDesglose write SetItemsDesglose; property ItemsInventario: IBizStockEDIInventario read GetItemsInventario write SetItemsInventario; property ItemsResumen: IBizStockPrendasCentros read GetItemsResumen write SetItemsResumen; constructor Create(AOwner: TComponent); override; end; implementation uses cxControls, uEditorUtils, DateUtils, uCustomEditor, uEditorBase, uDataModuleStock; {$R *.dfm} { TfEditorControlStockEDI } procedure TfEditorControlStockEDI.actAnchoAutoExecute(Sender: TObject); begin inherited; case PageControl1.ActivePageIndex of 0 : frViewControlGridStockPrendasCentros1.AjustarAncho; 1 : frViewControlGridStockEDI1.AjustarAncho; 2 : frViewControlGridStockEDIInventario1.AjustarAncho; end; end; procedure TfEditorControlStockEDI.FormShow(Sender: TObject); begin // inherited; <- No descomentar if not Assigned(ViewGrid) then raise Exception.Create('No hay una vista asignada'); case PageControl1.ActivePageIndex of 0 : ViewGrid.ShowEmbedded(tabResumen); 1 : ViewGrid.ShowEmbedded(tabDesglose); 2 : ViewGrid.ShowEmbedded(tabInventario); end; ViewGrid.ExpandirTodo; end; constructor TfEditorControlStockEDI.Create(AOwner: TComponent); var i:Integer; begin inherited; FResumen := nil; FDesglose := nil; FInventario := nil; Self.Caption := 'Control de stock en centros'; JvNavPanelHeader.Caption := Self.Caption; //Para ocultar las pestaņas y dejar que se encargue del cambio el componente de jv for i := 0 to PageControl1.PageCount - 1 do begin PageControl1.Pages[i].TabVisible := false; end; PageControl1.ActivePageIndex := 0; if not Assigned(FResumen) then ItemsResumen := dmStock.GetItemsStockPrendasCentros; ViewGrid := frViewControlGridStockPrendasCentros1; end; procedure TfEditorControlStockEDI.actExpandirExecute(Sender: TObject); begin inherited; ViewGrid.ExpandirTodo; end; procedure TfEditorControlStockEDI.actRefrescarExecute(Sender: TObject); begin case PageControl1.ActivePageIndex of 0 : begin frViewControlGridStockPrendasCentros1.Refresh; end; 1 : begin frViewControlGridStockEDI1.Refresh; end; 2 : begin frViewControlGridStockEDIInventario1.Refresh end; end; inherited; ViewGrid.ExpandirTodo; ViewGrid.GotoFirst; end; procedure TfEditorControlStockEDI.actContraerExecute(Sender: TObject); begin inherited; ViewGrid.ContraerTodo; end; function TfEditorControlStockEDI.GetItemsDesglose: IBizStockEDI; begin Result := FDesglose; end; function TfEditorControlStockEDI.GetItemsResumen: IBizStockPrendasCentros; begin Result := FResumen; end; procedure TfEditorControlStockEDI.JvTabBar1TabSelected(Sender: TObject; Item: TJvTabBarItem); begin inherited; PageControl1.ActivePageIndex := Item.Index; end; procedure TfEditorControlStockEDI.SetItemsDesglose(const Value: IBizStockEDI); begin FDesglose := Value; if Assigned(FDesglose) then begin ShowHourglassCursor; try dsDataTable.DataTable := FDesglose.DataTable; frViewControlGridStockEDI1.Items := FDesglose; // if not FDesglose.DataTable.Active then // FDesglose.DataTable.Active := True; actAnchoAuto.Execute; finally HideHourglassCursor; end; end; end; procedure TfEditorControlStockEDI.SetItemsResumen(const Value: IBizStockPrendasCentros); begin FResumen := Value; if Assigned(FResumen) then begin ShowHourglassCursor; try dsDataTable.DataTable := FResumen.DataTable; frViewControlGridStockPrendasCentros1.Items := FResumen; // if not FResumen.DataTable.Active then // FResumen.DataTable.Active := True; actAnchoAuto.Execute; finally HideHourglassCursor; end; end; end; procedure TfEditorControlStockEDI.PageControl1Change(Sender: TObject); begin inherited; Self.Update; //Quitamos el filtro que hubiera actQuitarFiltro.Execute; case PageControl1.ActivePageIndex of 0 : begin ViewGrid := frViewControlGridStockPrendasCentros1; if not Assigned(FResumen) then ItemsResumen := dmStock.GetItemsStockPrendasCentros; end; 1 : begin ViewGrid := frViewControlGridStockEDI1; if not Assigned(FDesglose) then ItemsDesglose := dmStock.GetItemsStockEDI; end; 2 : begin ViewGrid := frViewControlGridStockEDIInventario1; if not Assigned(FInventario) then ItemsInventario := dmStock.GetItemsStockEDIInventario; end; end; ViewGrid.Refresh; end; function TfEditorControlStockEDI.GetItemsInventario: IBizStockEDIInventario; begin Result := FInventario; end; procedure TfEditorControlStockEDI.SetItemsInventario(const Value: IBizStockEDIInventario); begin FInventario := Value; if Assigned(FInventario) then begin ShowHourglassCursor; try dsDataTable.DataTable := FInventario.DataTable; frViewControlGridStockEDIInventario1.Items := FInventario; // if not FInventario.DataTable.Active then // FInventario.DataTable.Active := True; actAnchoAuto.Execute; finally HideHourglassCursor; end; end; end; end.