git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
278 lines
7.6 KiB
ObjectPascal
278 lines
7.6 KiB
ObjectPascal
unit CalendarioMontajes;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, CalendarioBasico, Menus, cxStyles, cxGraphics, cxEdit,
|
|
cxScheduler, cxSchedulerStorage, cxSchedulerCustomControls,
|
|
cxSchedulerCustomResourceView, cxSchedulerDayView,
|
|
cxSchedulerDateNavigator, cxSchedulerWeekView, ActnList,
|
|
cxSchedulerDBStorage, cxControls, RdxBotones, ExtCtrls, RdxPaneles,
|
|
RdxBarras, DB, IBCustomDataSet, cxContainer, cxCheckListBox, dxPSGlbl,
|
|
dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
|
|
dxPSFillPatterns, dxPSEdgePatterns, dxPrnDlg, dxPSCore, dxPScxCommon,
|
|
cxSchedulerTimeGridView, cxSchedulerUtils, cxSchedulerYearView,
|
|
dxPScxScheduler2Lnk, ImgList;
|
|
|
|
type
|
|
TfrCalendarioMontajes = class(TfrCalendarioBasico)
|
|
TablaCitas: TIBDataSet;
|
|
dsCitas: TDataSource;
|
|
dsInstaladores: TDataSource;
|
|
TablaInstaladores: TIBDataSet;
|
|
pnlInstaladores: TPanel;
|
|
cxResources: TcxCheckListBox;
|
|
Panel2: TPanel;
|
|
Panel3: TPanel;
|
|
bAnadir: TRdxBoton;
|
|
bEliminar: TRdxBoton;
|
|
ImageList1: TImageList;
|
|
procedure RdxFrameShow(Sender: TObject);
|
|
procedure cxResourcesEditValueChanged(Sender: TObject);
|
|
procedure actVerTodosExecute(Sender: TObject);
|
|
procedure cxSchedulerGetEventDisplayText(Sender: TObject;
|
|
AEvent: TcxSchedulerControlEvent; var AText: String);
|
|
procedure cxSchedulerGetEventHintText(Sender: TObject;
|
|
AEvent: TcxSchedulerControlEvent; var AText: String);
|
|
private
|
|
procedure TablaCitasBeforePost(DataSet: TDataSet);
|
|
procedure TablaCitasAfterPost(DataSet: TDataSet);
|
|
procedure CargarListaInstaladores;
|
|
protected
|
|
procedure InicializarEvento (var aEvent : TcxSchedulerControlEvent); override;
|
|
procedure InicializarCampos; override;
|
|
public
|
|
constructor Create(AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
var
|
|
frCalendarioMontajes: TfrCalendarioMontajes;
|
|
|
|
implementation
|
|
|
|
uses BaseDatos, TablaCitas, TablaObras;
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TfrCalendarioMontajes }
|
|
|
|
procedure TfrCalendarioMontajes.CargarListaInstaladores;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
cxResources.Items.BeginUpdate;
|
|
|
|
try
|
|
cxResources.Items.Clear;
|
|
|
|
for I := 0 to cxScheduler.Storage.ResourceCount - 1 do
|
|
begin
|
|
with cxResources.Items.Add do
|
|
begin
|
|
ImageIndex := 0;
|
|
Text := cxScheduler.Storage.ResourceNames[I];
|
|
Checked := cxScheduler.Storage.Resources.ResourceItems[I].Visible;
|
|
ItemObject := cxScheduler.Storage.Resources.ResourceItems[I];
|
|
end;
|
|
end;
|
|
finally
|
|
cxResources.Items.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
constructor TfrCalendarioMontajes.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
|
|
dsCitas.DataSet := TablaCitas;
|
|
dsInstaladores.DataSet := TablaInstaladores;
|
|
|
|
with TablaCitas do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SelectSQL.Assign(dmTablaCitas.sqlConsultar);
|
|
SelectSQL.Add('WHERE TIPOTAREA in (');
|
|
SelectSQL.Add('''' + TextoTipoCita[Ord(tcMontaje)] + ''',');
|
|
SelectSQL.Add('''' + TextoTipoCita[Ord(tcEntrega)] + ''',');
|
|
SelectSQL.Add('''' + TextoTipoCita[Ord(tcRemate)] + ''')');
|
|
InsertSQL.Assign(dmTablaCitas.sqlInsertar);
|
|
ModifySQL.Assign(dmTablaCitas.sqlModificar);
|
|
DeleteSQL.Assign(dmTablaCitas.sqlEliminar);
|
|
RefreshSQL.Assign(dmTablaCitas.sqlRefrescar);
|
|
RefreshSQL.Add('and TIPOTAREA in (');
|
|
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcMontaje)] + ''',');
|
|
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcEntrega)] + ''',');
|
|
RefreshSQL.Add('''' + TextoTipoCita[Ord(tcRemate)] + ''')');
|
|
|
|
BeforePost := TablaCitasBeforePost;
|
|
AfterPost := TablaCitasAfterPost;
|
|
Prepare;
|
|
end;
|
|
|
|
with TablaInstaladores do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SelectSQL.Add('select * from INSTALADORES');
|
|
Prepare;
|
|
end;
|
|
end;
|
|
|
|
destructor TfrCalendarioMontajes.Destroy;
|
|
begin
|
|
TablaCitas.Close;
|
|
TablaInstaladores.Close;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.InicializarCampos;
|
|
var
|
|
aField : TcxSchedulerDBStorageField;
|
|
begin
|
|
inherited;
|
|
Exit;
|
|
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 TfrCalendarioMontajes.InicializarEvento(
|
|
var aEvent: TcxSchedulerControlEvent);
|
|
begin
|
|
inherited;
|
|
with AEvent do
|
|
begin
|
|
SetCustomFieldValueByName('TIPOTAREA', TextoTipoCita[Ord(tcMontaje)]);
|
|
AllDayEvent := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.TablaCitasAfterPost(DataSet: TDataSet);
|
|
begin
|
|
dmBaseDatos.Transaccion.CommitRetaining;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.TablaCitasBeforePost(DataSet: TDataSet);
|
|
begin
|
|
if (DataSet.FieldByName('ID').AsVariant = -1) or
|
|
(VarIsNull(DataSet.FieldByName('ID').AsVariant)) then
|
|
begin
|
|
DataSet.Edit;
|
|
DataSet.FieldByName('ID').AsVariant := dmTablaCitas.DarNuevoCodigo;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.RdxFrameShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
try
|
|
cxScheduler.BeginUpdate;
|
|
|
|
TablaInstaladores.Open;
|
|
TablaCitas.Open;
|
|
|
|
cxSchedulerDBStorage.DataSource := dsCitas;
|
|
cxSchedulerDBStorage.Resources.DataSource := dsInstaladores;
|
|
|
|
CargarListaInstaladores;
|
|
finally;
|
|
cxScheduler.EndUpdate;
|
|
end;
|
|
actSemana.Execute;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.cxResourcesEditValueChanged(
|
|
Sender: TObject);
|
|
var
|
|
AIndex: Integer;
|
|
begin
|
|
AIndex := cxResources.ItemIndex;
|
|
|
|
if AIndex < 0 then
|
|
Exit;
|
|
with cxResources.Items[AIndex] do
|
|
TcxSchedulerStorageResourceItem(ItemObject).Visible := Checked;
|
|
|
|
if cxScheduler.Storage.Resources.ResourceItems.VisibleResourceCount = 0 then
|
|
begin
|
|
cxResources.Items[AIndex].Checked := True;
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.actVerTodosExecute(Sender: TObject);
|
|
var
|
|
I : Integer;
|
|
begin
|
|
cxResources.Items.BeginUpdate;
|
|
try
|
|
for I := 0 to cxResources.Items.Count - 1 do
|
|
begin
|
|
cxResources.Items[I].Checked := True;
|
|
TcxSchedulerStorageResourceItem(cxResources.Items[I].ItemObject).Visible := True;
|
|
end;
|
|
finally
|
|
cxResources.Items.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.cxSchedulerGetEventDisplayText(
|
|
Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
|
|
var
|
|
Nombre : String;
|
|
Tipo : String;
|
|
begin
|
|
inherited;
|
|
|
|
if not VarIsNull(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE')) then
|
|
begin
|
|
Nombre := VarToStr(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE'));
|
|
Tipo := VarToStr(AEvent.GetCustomFieldValueByName('TIPOTAREA'));
|
|
AText := AEvent.Caption + ' - ' + Tipo + ' (' + Nombre + ')';
|
|
end;
|
|
end;
|
|
|
|
procedure TfrCalendarioMontajes.cxSchedulerGetEventHintText(
|
|
Sender: TObject; AEvent: TcxSchedulerControlEvent; var AText: String);
|
|
var
|
|
Nombre : String;
|
|
Tipo : String;
|
|
begin
|
|
inherited;
|
|
if not VarIsNull(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE')) then
|
|
begin
|
|
Nombre := VarToStr(AEvent.GetCustomFieldValueByName('NOMBRECLIENTE'));
|
|
Tipo := VarToStr(AEvent.GetCustomFieldValueByName('TIPOTAREA'));
|
|
AText := AEvent.Caption + #10#13 + Tipo + ' (' + Nombre + ')';
|
|
end;
|
|
end;
|
|
|
|
end.
|