unit uEditorControlVentaProceso; 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, uBizControlesBase, uCustomView, uViewBase, uViewControlBase, uViewControlVentaProceso, Grids, DBGrids, pngimage; type IEditorControlVentaProceso = interface(IEditorControlBase) ['{7F768AD2-1FF0-41E0-9157-4AB2E2CD7D32}'] end; TfEditorControlVentaProceso = class(TfEditorControlBase, IEditorControlVentaProceso) frViewControlVentaProceso1: TfrViewControlVentaProceso; dsVentasProceso: TDADataSource; TBXSeparatorItem16: TTBXSeparatorItem; tbxiExpandir: TTBXItem; tbxiContraer: TTBXItem; tbxiAnchoAuto: TTBXItem; actExpandir: TAction; actContraer: TAction; actAnchoAuto: TAction; TBXItem37: TTBXItem; TBXItem36: TTBXItem; TBXItem35: TTBXItem; TBXSeparatorItem17: TTBXSeparatorItem; procedure actRefrescarExecute(Sender: TObject); procedure actExpandirExecute(Sender: TObject); procedure actContraerExecute(Sender: TObject); procedure actAnchoAutoExecute(Sender: TObject); procedure CustomEditorCreate(Sender: TObject); procedure CustomEditorGetModified(Sender: TObject; var Modified: Boolean); procedure actGuardarExecute(Sender: TObject); procedure FormShow(Sender: TObject); procedure actPrevisualizarExecute(Sender: TObject); procedure actImprimirExecute(Sender: TObject); procedure actConfPaginaExecute(Sender: TObject); procedure frViewControlVentaProceso1bRefrescarClick(Sender: TObject); private procedure RestaurarConfiguracion; procedure GuardarConfiguracion; protected FModificado : Boolean; procedure OnViewControlChanged(Sender: TObject); procedure SetControl(const Value: IBizControlBase); override; procedure RellenarCabeceraInforme; public constructor Create(AOwner: TComponent); override; end; implementation uses uEditorUtils, uBizControlVentasProceso, uROClasses, cxGridTableView; {$R *.dfm} function ShowEditorVentasProceso (ABizObject : TDADataTableRules): TModalResult; var AEditor: IEditorControlVentaProceso; //TfEditorInformeVentas; begin AEditor := TfEditorControlVentaProceso.Create(Application); try AEditor.Control := (ABizObject as IBizControlVentasProceso); Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorControlVentaProceso } procedure TfEditorControlVentaProceso.SetControl( const Value: IBizControlBase); begin inherited; RefrescarTituloEditor; if Assigned(FControl) then begin frViewControlVentaProceso1.Control := FControl; frViewControlVentaProceso1.OnViewChanged := OnViewControlChanged; dsDataTable.DataTable := FControl.DataTable; with (FControl as IBizControlVentasProceso) do begin Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar' dsVentasProceso.DataTable := Items.DataTable; frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.DataSource := dsVentasProceso; end; end; end; procedure TfEditorControlVentaProceso.actRefrescarExecute(Sender: TObject); begin inherited; frViewControlVentaProceso1.Refresh; while (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do begin frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecord.Expand(True); if (frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.FocusedRecordIndex < frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.RowCount - 1) then frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.Controller.GoToNext(False, True) else Exit; end; end; procedure TfEditorControlVentaProceso.actExpandirExecute(Sender: TObject); begin inherited; frViewControlVentaProceso1.frViewControlGridVentaProceso1.ExpandirTodo; end; procedure TfEditorControlVentaProceso.actContraerExecute(Sender: TObject); begin inherited; frViewControlVentaProceso1.frViewControlGridVentaProceso1.ContraerTodo; end; procedure TfEditorControlVentaProceso.actAnchoAutoExecute(Sender: TObject); begin inherited; frViewControlVentaProceso1.frViewControlGridVentaProceso1.AjustarAncho; end; procedure TfEditorControlVentaProceso.OnViewControlChanged( Sender: TObject); begin FModificado := True; end; procedure TfEditorControlVentaProceso.CustomEditorCreate(Sender: TObject); begin inherited; FModificado := False; end; procedure TfEditorControlVentaProceso.CustomEditorGetModified( Sender: TObject; var Modified: Boolean); begin inherited; Modified := FModificado; end; procedure TfEditorControlVentaProceso.actGuardarExecute(Sender: TObject); begin GuardarConfiguracion; inherited; FModificado := False; end; procedure TfEditorControlVentaProceso.GuardarConfiguracion; var Aux : IROStrings; begin Aux := NewROStrings(); Aux.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties); if not (FControl.DataTable.State in dsEditModes) then FControl.Edit; FControl.VISTA := Aux; end; procedure TfEditorControlVentaProceso.RestaurarConfiguracion; begin frViewControlVentaProceso1.frViewControlGridVentaProceso1.ViewProperties := FControl.VISTA.Text; end; procedure TfEditorControlVentaProceso.FormShow(Sender: TObject); begin inherited; if FControl.DataTable.State <> dsInsert then // No restaurar si estamos insertando RestaurarConfiguracion; frViewControlVentaProceso1.frViewColumnas1.Refresh; frViewControlVentaProceso1.frViewAgrupaciones1.Refresh; end; procedure TfEditorControlVentaProceso.actPrevisualizarExecute( Sender: TObject); begin inherited; RellenarCabeceraInforme; frViewControlVentaProceso1.frViewControlGridVentaProceso1.Preview; end; procedure TfEditorControlVentaProceso.actImprimirExecute(Sender: TObject); begin inherited; RellenarCabeceraInforme; frViewControlVentaProceso1.frViewControlGridVentaProceso1.Print; end; procedure TfEditorControlVentaProceso.actConfPaginaExecute( Sender: TObject); begin inherited; RellenarCabeceraInforme; frViewControlVentaProceso1.frViewControlGridVentaProceso1.PrintSetup; end; procedure TfEditorControlVentaProceso.RellenarCabeceraInforme; begin with frViewControlVentaProceso1.frViewControlGridVentaProceso1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do begin LeftTitle.Clear; LeftTitle.Add(FControl.NOMBRE); RightTitle.Clear; RightTitle.Add(frViewControlVentaProceso1.frViewControlGridVentaProceso1.FocusedView.DataController.Filter.FilterText); end; end; constructor TfEditorControlVentaProceso.Create(AOwner: TComponent); begin inherited; FViewControl := frViewControlVentaProceso1; Self.Caption := 'Nueva consulta de ventas en proceso'; JvNavPanelHeader.Caption := Self.Caption; end; procedure TfEditorControlVentaProceso.frViewControlVentaProceso1bRefrescarClick( Sender: TObject); begin inherited; frViewControlVentaProceso1.actRefrescarExecute(Sender); end; initialization RegisterEditor(IBizControlVentasProceso, ShowEditorVentasProceso, etItem); end.