Varela_PuntosVenta/Source/Modulos/VentasProceso/Cliente/uEditorControlVentaProceso.pas

242 lines
7.6 KiB
ObjectPascal

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.