ProGestion/Modulos/Obras final/Cliente/uViewObraRelacionada.pas
2007-06-21 16:12:43 +00:00

127 lines
3.5 KiB
ObjectPascal
Raw Blame History

unit uViewObraRelacionada;
interface
uses uViewBase, DB, uDADataTable, ImgList, Controls, PngImageList,
Classes, ActnList, dxLayoutControl, ComCtrls, ToolWin, cxContainer,
cxEdit, cxTextEdit, cxDBEdit, cxControls, uBizObraFinal;
type
IViewObraRelacionada = interface(IViewBase)
['{B2AC5AD9-5F73-4FF4-8F8E-B2C8CDBF1B89}']
function GetObra: IBizObraFinal;
procedure SetObra(const Value: IBizObraFinal);
property Obra: IBizObraFinal read GetObra write SetObra;
function GetOnObraChanged : TNotifyEvent;
procedure SetOnObraChanged (const Value : TNotifyEvent);
property OnObraChanged : TNotifyEvent read GetOnObraChanged write SetOnObraChanged;
end;
TfrViewObraRelacionada = class(TfrViewBase, IViewObraRelacionada)
ActionList1: TActionList;
actElegirObra: TAction;
actVerObra: TAction;
PngImageList: TPngImageList;
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtlNombre: TcxDBTextEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
ToolButton2: TToolButton;
procedure actVerObraExecute(Sender: TObject);
procedure actVerObraUpdate(Sender: TObject);
procedure actElegirObraExecute(Sender: TObject);
private
FObra : IBizObraFinal;
FOnObraChanged : TNotifyEvent;
protected
function GetObra: IBizObraFinal;
procedure SetObra(const Value: IBizObraFinal);
function GetOnObraChanged : TNotifyEvent;
procedure SetOnObraChanged (const Value : TNotifyEvent);
public
property Obra: IBizObraFinal read GetObra write SetObra;
property OnObraChanged : TNotifyEvent read GetOnObraChanged write SetOnObraChanged;
end;
implementation
{$R *.dfm}
uses Windows, uDataModuleObrasFinal;
{ TfrViewObraRelacionada }
procedure TfrViewObraRelacionada.actVerObraExecute(Sender: TObject);
begin
FObra.Show;
end;
procedure TfrViewObraRelacionada.actVerObraUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(FObra);
end;
function TfrViewObraRelacionada.GetObra: IBizObraFinal;
begin
Result := FObra;
end;
procedure TfrViewObraRelacionada.SetObra(const Value: IBizObraFinal);
begin
FObra := Value;
DADataSource.DataTable := FObra.DataTable;
if not FObra.DataTable.Active then
FObra.DataTable.Active := True;
if Assigned(FOnObraChanged) then
FOnObraChanged(Self);
end;
function TfrViewObraRelacionada.GetOnObraChanged: TNotifyEvent;
begin
Result := FOnObraChanged;
end;
procedure TfrViewObraRelacionada.SetOnObraChanged(const Value: TNotifyEvent);
begin
FOnObraChanged := Value;
end;
procedure TfrViewObraRelacionada.actElegirObraExecute(Sender: TObject);
var
AObra : IBizObraFinal;
begin
inherited;
if Length(edtlNombre.Text) > 0 then
if (MessageBox(0, 'Esta factura ya tiene asociada una obra. '+#13+#10+
'Si elige otra obra, se cambiar<61> en esta factura el cliente '+#13+#10+
'para hacerlos coincidir con la obra elegida. '+#13+#10+
'<27>Desea continuar?', 'Confirmaci<63>n', MB_ICONQUESTION or MB_YESNO) = idNo) then
Exit;
AObra := dmObrasFinal.GetObrasItems;
try
if AObra.ShowForSelect = mrOK then
begin
Obra := dmObrasFinal.GetItemsSeleccionados(AObra);
end;
finally
AObra := NIL;
end;
end;
end.