unit uViewPresupuestoFactura; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewPresupuestoRelacionado, DB, uDADataTable, ImgList, PngImageList, ActnList, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, ComCtrls, ToolWin, ExtCtrls, StdCtrls; type TfrViewPresupuestoFactura = class(TfrViewPresupuestoRelacionado) procedure actElegirPresupuestoExecute(Sender: TObject); procedure actVerPresupuestoUpdate(Sender: TObject); private { Private declarations } public { Public declarations } end; var frViewPresupuestoFactura: TfrViewPresupuestoFactura; implementation {$R *.dfm} uses uBizPresupuestosCliente, uDataModulePresupuestos, schFacturasClienteClient_Intf, uDAInterfaces; procedure TfrViewPresupuestoFactura.actElegirPresupuestoExecute(Sender: TObject); var APresupuesto : IBizPresupuestos; begin inherited; if Length(edtlReferencia.Text) > 0 then if (MessageBox(0, 'Esta factura ya tiene asociado un presupuesto/albarán. '+#13+#10+ 'Si elige otro presupuesto/albarán, se cambiará en esta factura el cliente y los conceptos '+#13+#10+ 'para hacerlos coincidir con el presupuesto/albarán elegido. '+#13+#10+ '¿Desea continuar?', 'Confirmación', MB_ICONQUESTION or MB_YESNO) = idNo) then Exit; APresupuesto := dmPresupuestos.GetPresupuestos; try if APresupuesto.ShowForSelect = mrOK then begin Self.Presupuesto := dmPresupuestos.GetItemsSeleccionados(APresupuesto) end; finally APresupuesto := NIL; end; end; procedure TfrViewPresupuestoFactura.actVerPresupuestoUpdate( Sender: TObject); begin // inherited; if assigned(DADataSource) then begin (Sender as TAction).Enabled := not VarIsNull(edtlReferencia.EditValue); end; end; end.