git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
263 lines
7.7 KiB
ObjectPascal
263 lines
7.7 KiB
ObjectPascal
unit CalendarioBasico;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, RdxFrame, RdxBotones, cxControls, cxContainer, cxEdit,
|
|
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
|
|
cxDBLookupComboBox, ExtCtrls, RdxPaneles, RdxBarras, Menus, cxStyles,
|
|
cxGraphics, cxScheduler, cxSchedulerStorage, cxSchedulerCustomControls,
|
|
cxSchedulerCustomResourceView, cxSchedulerDayView,
|
|
cxSchedulerDateNavigator, cxSchedulerWeekView, cxSchedulerDBStorage,
|
|
cxCheckListBox, ActnList, IBQuery, DB, IBCustomDataSet, IBDatabase,
|
|
IBTable, ComCtrls, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
|
|
dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
|
|
dxPSEdgePatterns, dxPSCore, dxPSContainerLnk, dxPrnDlg, dxPgsDlg,
|
|
dxPScxCommon, cxSchedulerTimeGridView,
|
|
cxSchedulerUtils, cxSchedulerYearView, dxPScxScheduler2Lnk;
|
|
|
|
type
|
|
TfrCalendarioBasico = class(TRdxFrame)
|
|
BarraAgenda: TRdxBarraSuperior;
|
|
imgSombra: TImage;
|
|
pnlExtra: TRdxBarraSuperior;
|
|
bRefrescar: TRdxBoton;
|
|
cxScheduler: TcxScheduler;
|
|
cxSchedulerDBStorage: TcxSchedulerDBStorage;
|
|
RdxBoton1: TRdxBoton;
|
|
RdxBoton2: TRdxBoton;
|
|
ActionList: TActionList;
|
|
actDia: TAction;
|
|
actSemana: TAction;
|
|
actMes: TAction;
|
|
RdxBoton3: TRdxBoton;
|
|
bSeparador1: TShape;
|
|
bConsultar: TRdxBotonSuperior;
|
|
RdxBotonSuperior1: TRdxBotonSuperior;
|
|
RdxBotonSuperior2: TRdxBotonSuperior;
|
|
actVerTodos: TAction;
|
|
actAnadir: TAction;
|
|
actModificar: TAction;
|
|
actEliminar: TAction;
|
|
bImprimir: TRdxBotonSuperior;
|
|
actRefrescar: TAction;
|
|
Shape1: TShape;
|
|
actSemana5: TAction;
|
|
RdxBoton4: TRdxBoton;
|
|
actImprimir: TAction;
|
|
dxComponentPrinter1: TdxComponentPrinter;
|
|
dxComponentPrinter1Link2: TcxSchedulerReportLink;
|
|
dxPrintDialog1: TdxPrintDialog;
|
|
procedure actDiaExecute(Sender: TObject); virtual;
|
|
procedure actSemanaExecute(Sender: TObject);virtual;
|
|
procedure actMesExecute(Sender: TObject);virtual;
|
|
procedure actAnadirExecute(Sender: TObject);virtual;
|
|
procedure actModificarExecute(Sender: TObject);virtual;
|
|
procedure actModificarUpdate(Sender: TObject);virtual;
|
|
procedure actEliminarExecute(Sender: TObject);virtual;
|
|
procedure actEliminarUpdate(Sender: TObject);virtual;
|
|
procedure cxSchedulerCustomDrawEvent(Sender: TObject;
|
|
ACanvas: TcxCanvas; AViewInfo: TcxSchedulerEventCellViewInfo;
|
|
var ADone: Boolean);virtual;
|
|
procedure actRefrescarExecute(Sender: TObject);virtual;
|
|
procedure cxSchedulerBeforeEditing(Sender: TcxCustomScheduler;
|
|
AEvent: TcxSchedulerControlEvent; AInplace: Boolean;
|
|
var Allow: Boolean);
|
|
procedure actSemana5Execute(Sender: TObject);
|
|
procedure actImprimirExecute(Sender: TObject);
|
|
protected
|
|
AnchorDate: TDateTime;
|
|
procedure InicializarCampos; virtual;
|
|
procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); virtual;
|
|
public
|
|
constructor Create(AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
frCalendarioBasico: TfrCalendarioBasico;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TfrCalendarioMontajes }
|
|
|
|
uses
|
|
Entidades, Configuracion, ResourcesEditor, cxSchedulerDialogs,
|
|
dxOffice11, cxGeometry, cxLookAndFeelPainters, TablaCitas;
|
|
|
|
type
|
|
TcxSchedulerTimeRulerCellViewInfoAccess = class(TcxSchedulerTimeRulerCellViewInfo);
|
|
|
|
constructor TfrCalendarioBasico.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
|
|
Entidad := entAgenda;
|
|
ConfigurarFrame(Self, Self.Entidad);
|
|
|
|
AnchorDate := Date;
|
|
InicializarCampos;
|
|
end;
|
|
|
|
destructor TfrCalendarioBasico.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actDiaExecute(Sender: TObject);
|
|
begin
|
|
if not cxScheduler.ViewWeek.Active then
|
|
AnchorDate := cxScheduler.SelectedDays[0];
|
|
cxScheduler.SelectDays([AnchorDate], True);
|
|
|
|
cxScheduler.ViewDay.Active := True;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actSemanaExecute(Sender: TObject);
|
|
begin
|
|
if not cxScheduler.ViewWeek.Active then
|
|
AnchorDate := cxScheduler.SelectedDays[0];
|
|
cxScheduler.SelectDays([AnchorDate], False);
|
|
|
|
cxScheduler.ViewWeek.Active := True;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actMesExecute(Sender: TObject);
|
|
begin
|
|
if not cxScheduler.ViewWeek.Active then
|
|
AnchorDate := cxScheduler.SelectedDays[0];
|
|
cxScheduler.SelectDays([AnchorDate], False);
|
|
|
|
cxScheduler.GoToDate(cxScheduler.SelectedDays[0], vmMonth);
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actAnadirExecute(Sender: TObject);
|
|
begin
|
|
cxScheduler.CreateEventUsingDialog;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actModificarExecute(Sender: TObject);
|
|
begin
|
|
if (cxScheduler.SelectedEventCount = 1) then
|
|
cxScheduler.EditEventUsingDialog(cxScheduler.SelectedEvents[0]);
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actModificarUpdate(Sender: TObject);
|
|
begin
|
|
(Sender as TAction).Enabled := (cxScheduler.SelectedEventCount = 1);
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actEliminarExecute(Sender: TObject);
|
|
begin
|
|
if (cxScheduler.SelectedEventCount > 0) then
|
|
cxScheduler.DeleteSelectedEvents();
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actEliminarUpdate(Sender: TObject);
|
|
begin
|
|
(Sender as TAction).Enabled := (cxScheduler.SelectedEventCount > 0);
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.cxSchedulerCustomDrawEvent(Sender: TObject;
|
|
ACanvas: TcxCanvas; AViewInfo: TcxSchedulerEventCellViewInfo;
|
|
var ADone: Boolean);
|
|
begin
|
|
{ if not AViewInfo.Selected then
|
|
begin
|
|
AViewInfo.Transparent := True;
|
|
FillGradientRect(ACanvas, AViewInfo.Bounds, clWhite,
|
|
AViewInfo.Color, False);
|
|
end;
|
|
ADone := False;}
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actRefrescarExecute(Sender: TObject);
|
|
begin
|
|
cxSchedulerDBStorage.FullRefresh;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.InicializarEvento(
|
|
var aEvent: TcxSchedulerControlEvent);
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.InicializarCampos;
|
|
var
|
|
aField : TcxSchedulerDBStorageField;
|
|
begin
|
|
inherited;
|
|
with cxSchedulerDBStorage.CustomFields do
|
|
begin
|
|
try
|
|
BeginUpdate;
|
|
Clear;
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'TIPOTAREA';
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'CODIGOCONTRATO';
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'NOMBRECLIENTE';
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'PARTIDA';
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'COMPLETADA';
|
|
|
|
aField := Add;
|
|
aField.FieldName := 'NOMBREPROVEEDOR';
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.cxSchedulerBeforeEditing(
|
|
Sender: TcxCustomScheduler; AEvent: TcxSchedulerControlEvent;
|
|
AInplace: Boolean; var Allow: Boolean);
|
|
begin
|
|
if VarIsNull(AEvent.ID) then
|
|
InicializarEvento(AEvent);
|
|
Allow := True;
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actSemana5Execute(Sender: TObject);
|
|
begin
|
|
AnchorDate := cxScheduler.SelectedDays[0];
|
|
cxScheduler.SelectDays([AnchorDate], True);
|
|
|
|
cxScheduler.SelectWorkDays(Date);
|
|
end;
|
|
|
|
procedure TfrCalendarioBasico.actImprimirExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
with dxComponentPrinter1Link2.PrintStyles do
|
|
begin
|
|
if cxScheduler.ViewDay.Active then
|
|
begin
|
|
Daily.Active := True;
|
|
AnchorDate := cxScheduler.SelectedDays.Items[0];
|
|
end
|
|
else
|
|
if cxScheduler.ViewWeek.Active then
|
|
Weekly.Active := True
|
|
else begin
|
|
Monthly.Active := True;
|
|
AnchorDate := cxScheduler.SelectedDays.Items[cxScheduler.SelectedDays.Count DIV 2];
|
|
end;
|
|
end;
|
|
dxComponentPrinter1Link2.PrintRange.PrintFrom := AnchorDate;
|
|
dxComponentPrinter1Link2.PrintRange.PrintTo := AnchorDate;
|
|
dxComponentPrinter1.Print(True, nil, nil);
|
|
end;
|
|
|
|
end.
|