diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB new file mode 100644 index 00000000..9f26c664 Binary files /dev/null and b/Database/FACTUGES.FDB differ diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 3e263068..76893ad1 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -1,5 +1,5 @@ /******************************************************************************/ -/**** Generated by IBExpert 2007.05.03 12/11/2007 21:23:54 ****/ +/**** Generated by IBExpert 2007.05.03 11/12/2007 16:51:58 ****/ /******************************************************************************/ SET SQL DIALECT 3; @@ -11,7 +11,6 @@ PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1; - /******************************************************************************/ /**** User Defined Functions ****/ /******************************************************************************/ @@ -22,7 +21,7 @@ DECLARE EXTERNAL FUNCTION F_RTFTOTEXT ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; -DECLARE EXTERNAL FUNCTION MOD +DECLARE EXTERNAL FUNCTION "MOD" INTEGER, INTEGER RETURNS DOUBLE PRECISION BY VALUE @@ -116,7 +115,7 @@ CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0; CREATE GENERATOR GEN_CONTACTOS_DIR_ID; -SET GENERATOR GEN_CONTACTOS_DIR_ID TO 3; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 5; CREATE GENERATOR GEN_CONTACTOS_ID; SET GENERATOR GEN_CONTACTOS_ID TO 2001; @@ -201,6 +200,57 @@ SET GENERATOR GEN_USUARIOS_ID TO 0; +SET TERM ^ ; + + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + +CREATE PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +BEGIN + SUSPEND; +END^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD INTEGER, + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO FLOAT, + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +BEGIN + SUSPEND; +END^ + + + +SET TERM ; ^ + + /******************************************************************************/ /**** Tables ****/ /******************************************************************************/ @@ -214,6 +264,7 @@ CREATE TABLE AGENTES_COMISIONES ( COMISION TIPO_PORCENTAJE DEFAULT 0 ); + CREATE TABLE ALBARANES_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -250,6 +301,7 @@ CREATE TABLE ALBARANES_CLIENTE ( REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE ALBARANES_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_ALBARAN TIPO_ID NOT NULL, @@ -267,6 +319,7 @@ CREATE TABLE ALBARANES_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE ALBARANES_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -301,6 +354,7 @@ CREATE TABLE ALBARANES_PROVEEDOR ( REF_FACTURA_PROV VARCHAR(255) ); + CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_ALBARAN TIPO_ID NOT NULL, @@ -318,6 +372,7 @@ CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE ALMACENES ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -336,6 +391,7 @@ CREATE TABLE ALMACENES ( USUARIO TIPO_USUARIO ); + CREATE TABLE ARTICULOS ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -357,11 +413,13 @@ CREATE TABLE ARTICULOS ( ELIMINADO TIPO_BOOLEANO ); + CREATE TABLE CATEGORIAS ( ID TIPO_ID NOT NULL, CATEGORIA VARCHAR(255) NOT NULL ); + CREATE TABLE CLIENTES_DATOS ( ID_CLIENTE TIPO_ID NOT NULL, ID_AGENTE TIPO_ID, @@ -379,6 +437,7 @@ CREATE TABLE CLIENTES_DATOS ( CODIGO_ASIGNADO VARCHAR(255) ); + CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( ID TIPO_ID NOT NULL, ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL, @@ -386,10 +445,12 @@ CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( DESCUENTO TIPO_PORCENTAJE DEFAULT 0 ); + CREATE TABLE CLIENTES_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE COMISIONES_LIQUIDADAS ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -403,12 +464,14 @@ CREATE TABLE COMISIONES_LIQUIDADAS ( USUARIO TIPO_USUARIO ); + CREATE TABLE CONFIGURACION ( CODIGO VARCHAR(50) NOT NULL, VALOR VARCHAR(255) NOT NULL, ID_EMPRESA TIPO_ID ); + CREATE TABLE CONTACTOS ( ID TIPO_ID NOT NULL, NIF_CIF VARCHAR(15), @@ -433,11 +496,13 @@ CREATE TABLE CONTACTOS ( PERSONA_CONTACTO VARCHAR(255) ); + CREATE TABLE CONTACTOS_CATEGORIAS ( ID_CONTACTO TIPO_ID NOT NULL, ID_CATEGORIA TIPO_ID NOT NULL ); + CREATE TABLE CONTACTOS_DATOS_BANCO ( ID TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL, @@ -450,6 +515,7 @@ CREATE TABLE CONTACTOS_DATOS_BANCO ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE CONTACTOS_DIRECCIONES ( ID TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL, @@ -469,6 +535,7 @@ CREATE TABLE CONTACTOS_DIRECCIONES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE EMPLEADOS_DATOS ( ID_EMPLEADO TIPO_ID NOT NULL, FECHA_NACIMIENTO DATE, @@ -480,10 +547,12 @@ CREATE TABLE EMPLEADOS_DATOS ( EXPERIENCIA TIPO_NOTAS ); + CREATE TABLE EMPLEADOS_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE EMPRESAS ( ID TIPO_ID NOT NULL, NIF_CIF VARCHAR(15), @@ -510,11 +579,13 @@ CREATE TABLE EMPRESAS ( IVA TIPO_PORCENTAJE ); + CREATE TABLE EMPRESAS_CONTACTOS ( ID_EMPRESA TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL ); + CREATE TABLE EMPRESAS_DATOS_BANCO ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -527,21 +598,25 @@ CREATE TABLE EMPRESAS_DATOS_BANCO ( SUFIJO_N58 VARCHAR(3) ); + CREATE TABLE EMPRESAS_USUARIOS ( ID_EMPRESA TIPO_ID NOT NULL, ID_USUARIO TIPO_ID NOT NULL ); + CREATE TABLE F_PERFILES ( ID TIPO_ID NOT NULL, PERFIL TIPO_PERFIL NOT NULL ); + CREATE TABLE F_PERFILES_USUARIOS ( ID_PERFIL TIPO_ID NOT NULL, ID_USUARIO TIPO_ID NOT NULL ); + CREATE TABLE F_USUARIOS ( ID TIPO_ID NOT NULL, USUARIO TIPO_USUARIO NOT NULL, @@ -550,6 +625,7 @@ CREATE TABLE F_USUARIOS ( PASS VARCHAR(10) ); + CREATE TABLE FACTURAS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -582,6 +658,7 @@ CREATE TABLE FACTURAS_CLIENTE ( ID_COMISION_LIQUIDADA TIPO_ID ); + CREATE TABLE FACTURAS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID NOT NULL, @@ -599,6 +676,7 @@ CREATE TABLE FACTURAS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE FACTURAS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -631,6 +709,7 @@ CREATE TABLE FACTURAS_PROVEEDOR ( RECARGO_EQUIVALENCIA TIPO_BOOLEANO ); + CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID NOT NULL, @@ -648,10 +727,12 @@ CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE FAMILIAS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE FORMAS_PAGO ( ID TIPO_ID NOT NULL, REFERENCIA VARCHAR(255), @@ -663,6 +744,7 @@ CREATE TABLE FORMAS_PAGO ( CUENTA VARCHAR(15) ); + CREATE TABLE FORMAS_PAGO_PLAZOS ( ID TIPO_ID NOT NULL, ID_FORMA_PAGO TIPO_ID NOT NULL, @@ -670,6 +752,7 @@ CREATE TABLE FORMAS_PAGO_PLAZOS ( PORCENTAJE TIPO_PORCENTAJE ); + CREATE TABLE INFORMES ( ID SMALLINT NOT NULL, ID_EMPRESA TIPO_ID, @@ -683,6 +766,7 @@ CREATE TABLE INFORMES ( VISTA BLOB SUB_TYPE 2 SEGMENT SIZE 4096 ); + CREATE TABLE MOVIMIENTOS ( ID TIPO_ID NOT NULL, ID_ALMACEN TIPO_ID, @@ -693,6 +777,7 @@ CREATE TABLE MOVIMIENTOS ( CAUSA TIPO_CONCEPTO ); + CREATE TABLE PAGOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_RECIBO TIPO_ID, @@ -708,6 +793,7 @@ CREATE TABLE PAGOS_CLIENTE ( USUARIO TIPO_USUARIO ); + CREATE TABLE PAGOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_RECIBO TIPO_ID, @@ -723,6 +809,7 @@ CREATE TABLE PAGOS_PROVEEDOR ( USUARIO TIPO_USUARIO ); + CREATE TABLE PEDIDOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -755,6 +842,7 @@ CREATE TABLE PEDIDOS_CLIENTE ( REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_PEDIDO TIPO_ID NOT NULL, @@ -772,6 +860,7 @@ CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PEDIDOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -806,6 +895,7 @@ CREATE TABLE PEDIDOS_PROVEEDOR ( FECHA_ENVIO DATE ); + CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_PEDIDO TIPO_ID NOT NULL, @@ -823,6 +913,7 @@ CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PERMISOS ( ID_USUARIO TIPO_ID, MODULO VARCHAR(50), @@ -830,6 +921,7 @@ CREATE TABLE PERMISOS ( CHECKSUM VARCHAR(250) ); + CREATE TABLE PERMISOSEX ( ID_USUARIO TIPO_ID, MODULO VARCHAR(50), @@ -838,6 +930,7 @@ CREATE TABLE PERMISOSEX ( CHECKSUM VARCHAR(250) ); + CREATE TABLE PRESUPUESTOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -867,6 +960,7 @@ CREATE TABLE PRESUPUESTOS_CLIENTE ( CLIENTE_FINAL VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_PRESUPUESTO TIPO_ID NOT NULL, @@ -884,6 +978,7 @@ CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PROVEEDORES_DATOS ( ID_PROVEEDOR TIPO_ID NOT NULL, DESCUENTO TIPO_PORCENTAJE, @@ -898,10 +993,12 @@ CREATE TABLE PROVEEDORES_DATOS ( HOMOLOGADO SMALLINT ); + CREATE TABLE PROVEEDORES_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE RECIBOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID, @@ -919,6 +1016,7 @@ CREATE TABLE RECIBOS_CLIENTE ( ID_RECIBO_COMPENSADO INTEGER ); + CREATE TABLE RECIBOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID, @@ -937,6 +1035,7 @@ CREATE TABLE RECIBOS_PROVEEDOR ( ID_RECIBO_COMPENSADO INTEGER ); + CREATE TABLE REFERENCIAS ( CODIGO VARCHAR(50) NOT NULL, VALOR VARCHAR(255) NOT NULL, @@ -944,6 +1043,7 @@ CREATE TABLE REFERENCIAS ( DESCRIPCION VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE REMESAS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -958,6 +1058,7 @@ CREATE TABLE REMESAS_CLIENTE ( TIPO VARCHAR(40) ); + CREATE TABLE REMESAS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -972,6 +1073,7 @@ CREATE TABLE REMESAS_PROVEEDOR ( TIPO VARCHAR(40) ); + CREATE TABLE TIENDA_WEB ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -984,6 +1086,7 @@ CREATE TABLE TIENDA_WEB ( BDPASS VARCHAR(255) ); + CREATE TABLE TIPOS_IVA ( ID TIPO_ID NOT NULL, REFERENCIA VARCHAR(255), @@ -992,6 +1095,7 @@ CREATE TABLE TIPOS_IVA ( RE TIPO_PORCENTAJE ); + CREATE TABLE USUARIOS ( ID TIPO_ID NOT NULL, USERNAME VARCHAR(30), @@ -1007,6 +1111,7 @@ CREATE TABLE USUARIOS ( CHECKSUM VARCHAR(250) ); + CREATE TABLE USUARIOS_EVENTOS ( APLICACION VARCHAR(250), ID_USUARIO TIPO_ID, @@ -1019,6 +1124,7 @@ CREATE TABLE USUARIOS_EVENTOS ( TNAME VARCHAR(20) ); + CREATE TABLE USUARIOS_LOGON ( LOGONID CHAR(38) NOT NULL, ID_USUARIO TIPO_ID, @@ -1029,6 +1135,7 @@ CREATE TABLE USUARIOS_LOGON ( + /******************************************************************************/ /**** Views ****/ /******************************************************************************/ @@ -2344,6 +2451,9 @@ LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) ; + + + /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ @@ -2486,3 +2596,145 @@ CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO); CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA); CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO); CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO); + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + + +SET TERM ^ ; + +ALTER PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_capitulos integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +begin + num_capitulos = 0; + existe = 0; + total_acumulado = 0.0; + + /* ¿Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :EXISTE + do + begin + if (existe = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + if (existe = 1) then + begin + /* Existen conceptos sin capitulo */ + for select tipo_detalle, importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + if (tipo_detalle <> 'Concepto') then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + else begin + if (visible <> 0) then + total_acumulado = total_acumulado + importe_total; + end + end + end + + + for select id, id_presupuesto, posicion, tipo_detalle, concepto, + importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where tipo_detalle <> 'Concepto' and id_presupuesto = :AID + order by id_presupuesto, posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + suspend; + +end +^ + +ALTER PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD INTEGER, + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO FLOAT, + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable capitulo_actual integer; +begin +capitulo_actual = -1; +ID_CAPITULO = -1; +for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, + pre.id_articulo, articulos.referencia, pre.concepto, pre.cantidad, + pre.importe_unidad, pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from presupuestos_cliente_detalles pre + left join articulos on (pre.id_articulo = articulos.id) + where pre.id_presupuesto = :AID + order by pre.id_presupuesto, pre.posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :ID_ARTICULO, + :REFERENCIA, :CONCEPTO, :CANTIDAD, :IMPORTE_UNIDAD, :DESCUENTO, + :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE +do + begin + if (:tipo_detalle <> 'Concepto') then + begin + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; + end + else + suspend; + end +end +^ + + +SET TERM ; ^ \ No newline at end of file diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 065b913c..3dcc8be0 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -60,56 +60,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f31..1641339f 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/GUIBase/GUIBase.dpk b/Source/GUIBase/GUIBase.dpk index 82c968ff..fe98cd83 100644 --- a/Source/GUIBase/GUIBase.dpk +++ b/Source/GUIBase/GUIBase.dpk @@ -65,6 +65,7 @@ contains uEditorBasico in 'uEditorBasico.pas' {fEditorBasico}, uDialogBase in 'uDialogBase.pas' {fDialogBase}, uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame}, - uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}; + uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}, + uViewRichEditor in 'uViewRichEditor.pas' {frViewRichEditor: TCustomView}; end. diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index 70b14487..ceaab69b 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -57,22 +57,22 @@ MainSource - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
fDialogBase
@@ -155,6 +155,10 @@
frViewPreview
TFrame
+ +
frViewRichEditor
+ TCustomView +
frViewTotales
TFrame diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res index 8b251f31..1641339f 100644 Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/GUIBase/uViewRichEditor.dfm b/Source/GUIBase/uViewRichEditor.dfm new file mode 100644 index 00000000..0310a08d --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.dfm @@ -0,0 +1,1395 @@ +inherited frViewRichEditor: TfrViewRichEditor + Width = 635 + Height = 401 + OnCreate = CustomViewCreate + OnShow = CustomViewShow + ExplicitWidth = 635 + ExplicitHeight = 401 + object TBXDock1: TTBXDock + Left = 0 + Top = 0 + Width = 635 + Height = 26 + BackgroundOnToolbars = False + UseParentBackground = True + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'TBXToolbar1' + DragHandleStyle = dhNone + Images = SmallImages + TabOrder = 0 + object TBControlItem1: TTBControlItem + Control = fcbFontName + end + object TBControlItem2: TTBControlItem + Control = meFontSize + end + object TBControlItem3: TTBControlItem + Control = cxSpinButton + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXColorItem1: TTBXColorItem + Caption = 'Color' + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object bBold: TTBXItem + AutoCheck = True + Caption = 'Negrita' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 0 + OnClick = bBoldClick + end + object bItalic: TTBXItem + AutoCheck = True + Caption = 'Cursiva' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 1 + OnClick = bItalicClick + end + object bUnderline: TTBXItem + AutoCheck = True + Caption = 'Subrayado' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 2 + OnClick = bUnderlineClick + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem5: TTBXItem + Action = actEditCut + end + object TBXItem6: TTBXItem + Action = actEditCopy + end + object TBXItem7: TTBXItem + Action = actEditPaste + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object bAlignLeft: TTBXItem + AutoCheck = True + Caption = 'Alinear a la izquierda' + GroupIndex = 50 + ImageIndex = 8 + OnClick = bAlignLeftClick + end + object bAlignCenter: TTBXItem + Tag = 2 + AutoCheck = True + Caption = 'Centrar' + GroupIndex = 50 + ImageIndex = 9 + OnClick = bAlignCenterClick + end + object bAlignRight: TTBXItem + Tag = 1 + AutoCheck = True + Caption = 'Alinear a la derecha' + GroupIndex = 50 + ImageIndex = 10 + OnClick = bAlignRightClick + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object bBullets: TTBXItem + AutoCheck = True + Caption = 'Vi'#241'etas' + ImageIndex = 12 + OnClick = bBulletsClick + end + object fcbFontName: TcxFontNameComboBox + Left = 0 + Top = 0 + ParentFont = False + Properties.DropDownSizeable = True + Properties.FontPreview.ShowButtons = False + Properties.OnChange = cxFontNameComboBox1PropertiesChange + Properties.OnInitPopup = fcbFontNamePropertiesInitPopup + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 215 + end + object meFontSize: TcxMaskEdit + Left = 215 + Top = 0 + Hint = 'cxMaskEdit' + ParentFont = False + Properties.MaskKind = emkRegExpr + Properties.EditMask = '\d\d' + Properties.MaxLength = 0 + Properties.OnChange = meFontSizePropertiesChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = '0' + Width = 24 + end + object cxSpinButton: TcxSpinButton + Left = 239 + Top = 0 + Hint = 'cxSpinButton' + Associate = meFontSize + AutoSize = False + ParentFont = False + Properties.MaxValue = 100.000000000000000000 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Height = 21 + Width = 20 + end + end + end + object RichEdit: TcxDBRichEdit + Left = 0 + Top = 26 + Align = alClient + Properties.HideSelection = False + Properties.ScrollBars = ssBoth + Properties.OnChange = RichEditPropertiesChange + Properties.OnSelectionChange = RichEditPropertiesSelectionChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 375 + Width = 635 + end + object ActionList: TActionList + Images = SmallImages + Left = 320 + Top = 80 + object actEditCut: TAction + Category = 'Edit' + Caption = 'Cu&t' + Hint = 'Delete selected item' + ImageIndex = 3 + ShortCut = 16472 + OnExecute = actEditCutExecute + end + object actEditCopy: TAction + Category = 'Edit' + Caption = '&Copy' + Hint = 'Copy selected item to clipboard' + ImageIndex = 4 + ShortCut = 16451 + OnExecute = actEditCopyExecute + end + object actEditPaste: TAction + Category = 'Edit' + Caption = '&Paste' + Hint = 'Paste contents of clipboard' + ImageIndex = 5 + ShortCut = 16470 + OnExecute = actEditPasteExecute + end + object actEditFont: TAction + Category = 'Edit' + Caption = '&Font...' + ImageIndex = 7 + end + object actBullets: TAction + AutoCheck = True + Caption = 'actBullets' + ImageIndex = 12 + OnExecute = actBulletsExecute + end + end + object pmColorSchemes: TPopupMenu + Left = 216 + Top = 96 + object miStandard: TMenuItem + Caption = 'Delphi Colors' + RadioItem = True + end + object miHTML: TMenuItem + Tag = 1 + Caption = '16 Standard Colors' + RadioItem = True + end + object miWeb: TMenuItem + Tag = 2 + Caption = 'Web Colors' + RadioItem = True + end + object miWebSorted: TMenuItem + Tag = 3 + Caption = 'Web Colors By Hue' + RadioItem = True + end + end + object ToolbarImages: TImageList + Left = 56 + Top = 136 + Bitmap = { + 494C01010F001100040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000004000000001002000000000000040 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000084000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000000000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF000000000000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00000000000000000000000000FFFF + FF00840000008400000084000000840000000000000000000000840000008400 + 0000840000008400000084000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000000000000840000008400 + 0000840000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000000000840000008400 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF000000000000000000FFFF + FF00840000008400000084000000840000000000000000848400848484000084 + 8400848484000084840084000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000000000000840000008400 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000084848400008484008484 + 8400008484008484840000848400848484000084840084848400008484008484 + 8400008484000000000000000000000000000000000000000000840000000000 + 0000000000000000000084000000840000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008400000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000FFFFFF0000000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000084848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400008484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000848400848484000084 + 84000000000000FFFF00000000000000000000FFFF0000000000848484000084 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000FFFF0000FFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00000000000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 000000000000000000000000000000FFFF0000FFFF0000FFFF00000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF000000 + 0000008484000084840000848400008484000084840000848400008484000084 + 8400008484000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000848484008484840084848400000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000008484000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF000000000000000000000000000000000000000000FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000400000000100010000000000000200000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFF0000FFFFFFFFFFFF0000 + FFFFFFFF8FFF0000C007C0078C030000FFFFFFFF8FFF0000F83FF807FFFF0000 + FFFFFFFFFFFF0000C007C0078FFF0000FFFFFFFF8C030000F01FF8078FFF0000 + FFFFFFFFFFFF0000C007C007FFFF0000FFFFFFFF8FFF0000F83FF8078C030000 + FFFFFFFF8FFF0000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFE00FFFFFFFFFFFFFFFFFC007F00F81FFF83FFFFFF8C7E3FFF39FC03F + F8C7F1FFF39FFFFFF8C7F8FFF39FC007F80FFC7FF39FFFFFF8C7FE3FF39FC03F + F8C7FF1FF39FFFFFF8C7FF8FF39FC007F00FFF03E10FFFFFFFFFFFFFFFFFC03F + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFC00 + FFFFF6CFFE008000FFFFF6B7FE000000FFFFF6B7FE000000FFF7F8B780000000 + C1F7FE8F80000001C3FBFE3F80000003C7FBFF7F80000003CBFBFE3F80010003 + DCF7FEBF80030003FF0FFC9F80070FC3FFFFFDDF807F0003FFFFFDDF80FF8007 + FFFFFDDF81FFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC001C007 + C007001F8031BFEBC007000F80310005C007000780317E31C007000380017E35 + C007000180010006C007000080017FEAC007001F8FF18014C007001F8FF1C00A + C007001F8FF1E001C0078FF18FF1E007C00FFFF98FF1F007C01FFF758FF5F003 + C03FFF8F8001F803FFFFFFFFFFFFFFFF00000000000000000000000000000000 + 000000000000} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002C04944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C236C01A3E14CBC16890B + 7332A8C9F133C47AAB3004392BA058B4E7F805E27C70F5EE7B069D905570FEAF + D3290C9FBEFC62B870F32D43E5E4530CA7AFBE068B37A41B32A40569C07DB1FF + E425E28308D927DF4F24010D80B8F2F5FBEF0C2ABE10CB85F8D9192EAE08805A + F09FE1D0E9CBE459F0E55822349CFF31BC78FB9D4133680D585C418A87E1C06C + 4F88E540B9A3E7AE1267012875301BCF86F33F1E896778F3FE07C3D9EBAF195A + E75C60B878EB1DD8F00925E60CBAAA82F0483F71F13A610B40A905A498CD740E + CE88B6D4136368CF35629011E78646F05F307DE6CA4DEC16C0CA25100DF32EA7 + C53CB881AFF64533FCFAFD97E1EEE34F0C53565E6358BDFB01033B1B33C3B40A + 73A065A2703DE7AFDFC6B400586E800D0129FA074BE34036AFF502B805CF7747 + C28B8417EFBE3198C56C018BABCAF131ACEB7180EBB974F30E760BD00D07D102 + 768BE0163CD9110E36FCCF3F88252A7E6BE1721796FBC053D8D5DBF7302D88F1 + B3C2301CA458D80151C83EDA160637FCC3E79F0C26D1101FA8C8F232ACECB085 + 3810A8EFFABD07981644F95860187EEDDE0706DBA42D700B764E7303A79A8B37 + DF314C5B7583E1C0D9170C5C1C2C0C53CA4C19745404E0C5C7ED878F302D08F7 + 34C3E97274C0CCCCC8A008B4C85C478421C25D81414C901D49EF7F86FB4F1E63 + 5A10EC6682A2E81FD4A23F48BEFA87E40044E9F90F451FC8BC074F9F605A10E0 + 6C8C4503A6E17FA025262EC34100AB05BE8E86040D27E47218C069C1E6FDA719 + A805502C0055FA2BD76D5FF2EDFB4FAA5990181D80A8F4690900D0674DFECB86 + 8A7D0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002724944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C23DD02CBB80D0C272EBF + C4100F7353629856698562D19EE31748B700140C2D73CE33D44F3F03E6CB49F2 + 30AC6877645093E7C7F0C5FE939748B3001CC6C060496E38C8B078EB6DB05873 + 96314366A82686E12075874E5F26DE0298E12083340257313C7CFE052C7E708E + 37838602D4F5B03881AA3B7AEE2A7116201B7EFFD96706ADA0D560717E1E3686 + 9B1B4280118A6938089FB8789DB005A0D4024F2540CDA0A0C96C3D0296F3B496 + 61985B670316FFF3F72FD47090457FC1F4992B37B15B002B974034DC452043FE + FC65C86C3BCAB07CC75DB07C63862143A29F2AC39F7F88DC0B0F2A207DFEFA6D + 4C0B80E506583348D1BF7FA81A40416010B19EE1F18BAF60353BA6B831A829F0 + 61351C445FBA7907BB05B80C0745AC51E406B0E17CDCAC0C1756FAE3341CA4FE + EAED7B9816C4F85961351CC45EBEFD2E437EF709B0056E16520CD3AA2CB1180E + 618322FEFABD07981644F95860D570EBC10786989A830C0F9E4192675EA41643 + 76983AAA5AE4D40464DF7EF808D382704F330CC3931A0E316C39F41823F9AACA + F131ACEDB107973B7FB004D3FD278F312D0876334151F40F6AD11F24CDFF901D + F017A9C043D20732EFC1D327981604381B63D18069F81F688989CB7010C06A81 + AFA32141C309B91C06705AB079FF69A2EA0462008A05A04A7FE5BAED4BBE7DFF + 49350B12A30310953E2D01006441B6FE0F06917C0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C83DF0246C399382DF87B2E8D81D9681686F89BFD31600BFE012DD871E4 + 1C611FDC7CF081412370259CFF605B1483AC040F3CAC0F9C79C6E091BD9D61C7 + 140F06136D11B038CC177B8E5F202E88907DF2F76C2A50332412FF428387DF66 + 21C4E5488683F0FE939748B7E0D7E91414C3416C21FBC50C2FF744A1180E923F + 74FA32E9167C3F910437FC1FD42211C7250CCF7646202C85FAF0E8B9ABA45BF0 + E558223C1241F41FA041122ECB181E6F0F47311C844F5CBC4ED8827F4071E4D4 + F2F1483C8AE1205F48B9AF60B8BF25046A3848EE2F983E73E526760B60E51288 + 066962339D03B7E0ED815878D8C352929CD72A863B9B82E162305F9CBF7E1BD3 + 0260B901492D4045FFE091B888E1C7AFBF60F157FBA2510C7FF1EE1B8377EE1E + 8623F33C510C07D1976EDEC16E01B2E120B653DA5686D3575F832D38BED09741 + 569C0B6CF81FA09A5DC79F32ACDC799F616A853946F2BD7AFB1EA605317E5628 + 8683E8EDC71E33C4561F0086F97F0617732986B61C630611417686F337DE32D4 + 4C3DC7D09469C0A0A1C00FD503D1078A9BEBF71E605A10E56381E65508FBC8F9 + 170CDD0B2F335CBAFD8EE1EBF73F0C7CDCAC0C96FA620C79111A0C7212DCA8E1 + 0F75E0ED878F302D08F734C3301C3DF250E52149F60F1635F79F3CC6B420D8CD + 04AE089481480587E7B882F583CC7BF0F409A60501CEC6886488C527B0CAE40F + 52664377392C9963B5C0D7D190A0E17F51CA7DEC86E3B560F3FED324070D2E80 + 6201A8D25FB96EFB926FDF7F52CD82C4E80044A54F4B0000DAB495FE133533B1 + 0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003494944415478DA + B5956B48536118C7FF6B864285420991141445AB282C57A6DDD45C65AEB40B5D + 746681D89720838AEA8351D155238308A2DBCC5564999736539A99A9A56D4E9D + A9E944A74E9AB1FA6034D176CE3AE7DD9C5B676E06F9C2E1BD9CE7FDFFCEF33C + EF795E9ED56AC544361E0BC82EA84E647AD97F15E6F124C9F16B1E138034BFCA + 7A70C7DA7F1260F7B1BED3B415144D83A268DB98E9D99670E41214D917781E01 + 75DFEA10FD321AFA437AF8FBFA7B11677BDBBCE8AD0AD94F8B519E7BCD3320A9 + 3409B22F32646DC8C2D1E0A3E312677B4585DA3BA0DFDC8F881711309A8DF0E3 + FBC19062009FC707CDD83B8BDB1EFB9C7968665C52A5F10EB8AABE0A9F493E30 + FE3222539309E926299204075C624DB97CF9E858F9B1C13380B252103C12A066 + 6F0D4C8326320E0E0CC6A73D6ABB3037B1CE5E94D76A3D03F23AF220EF92E3A1 + E82199B3892EEB2D4351AC1C5141228FE22CFCBDAAC93340942F82B247C949FA + BA59EB21DF5ACAC4D9EEC5480E463CB2AF556B9AC706349A1A91A24C816A9FCA + 763A984DC396DF58289B8FBE5F7DA88CABC5A28025B0B01ED8C573141D3873AB + 0EED053B09A0A6B1D53DA0FB6737C485624804129C0839E9F285E7546791517F + 05C1D35720273217D327CF20EB159AAF484EAF24616AC98B23BDFA739B7B00EF + 26CF118E038264DC89B84B4452CB53F04497E378377BCA1C54C736A0B36F00C7 + 6FA8A16E3191F5A6DCEDE483EA5B755C0053376C2788B6DA7F1CA738D3AE3167 + 933B601EC6FE5315C8481362CB9137646FC35331B1D3B675B8078C577CC842E1 + F0850F488C998BB0658158BCBBD0565A1EC712FB665D271720D91E3E2E710BB3 + 764DDA043F5F3E52772C20EF97EE2922804F393124F1AD9D7A2E2041BCDAAB38 + BBF65CA9C7C92CB5DB0AFB51BA99D8EABA7BB880BD31ABC6141F196BBE7CC7E5 + 075ADC4B0F079F0F5277D8E32A94141340E53D11B1ED32F47201BB36099D0056 + FB19A789C0E0100545652FA4451DB87D3A1401D3263BFE5EA3C90C71DA3B02B8 + 9F1E8A794153A1EF337001F11B43468BD65F9E3C2868C7C5FB5A2212B57226AE + 1F133A6C43934B5CC2F4E87C1828CB0F2E605BE4F231733066F574F2D8F96E77 + EB010B7855AEFAA76BD3537301B097FEB397AF65E6C1A1FF063894183F7AE94F + 64FB03E70FC5FE7DFF61640000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000844944415478DA + 63FCFFFF3F032D0123DD2CE0E6E626D9A66FDFBE31E29307998D6241DBD4D518 + 8A3E7CFC0CC19FBE307C4462DF3CBC90740B68EA03464646A20C2505D0D70272 + 828810F8FAF52B23C1484606DFBEFF60F8FEFD279806B37FFC4411FB0E150301 + 5022C0B080A63E1899913C9A932906833F9209816196936905462D200800B3F4 + 07E01B49C5960000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000884944415478DA + 63FCFFFF3F032D0123DD2C6064644491E0E2E222D9E66FDFBEA11802321BAF05 + 6D53576318F2E1E36708FEF485E12312FBE6E185A45B40531F5003D0D7026E6E + 6EAA27A7AF5FBF32A258802D5291C1B7EF3F18BE7FFF09A6C1EC1F3F51C4BE43 + C5400014E91816D0D407433F92477332C93EA00618CDC9832C27D30A8C5A4010 + 000093B807E097AFA8400000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000814944415478DA + 63FCFFFF3F032D0123DD2C606464C4AB908B8B8B64977CFDFA9591240BDAA6AE + C610FFF0F133047FFAC2F011897DF3F042D22DA0A90FC80120B3E96701373737 + D593134A10812CC01689C8E0DBF71F0CDFBFFF04D360F68F9F2862DFA1622080 + 11C934F7C1D08FE401CF07A3397934270F829C4C2B306A01410000E973F5D1CA + C2F46B0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000664944415478DA + 63FCFFFF3F032D0123DD2CE0E6E6A6BA4D5FBF7E6544B1A06DEA6ABC1ABE7DFF + C1F0FDFB4F300D66FFF88922F61D2A0602370F2FC4B480A63E606464A4B6F90C + 20B3E967C1682413F4C16824130CA2D148C606462379904532ADC0A805040100 + 50940DE0E82572D70000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002DA4944415478DA + B5956D4853511CC69F7DCA37245F0AD33058AB61616586A4D687088422CDE883 + F8826941319090C42F068E3012A4CF5110D2521183CA976622E22AB754E674EA + A6AECD39DF3229C9DADCB4BC7779EEF4BA75AF7507FA8771EEEEBDE7F9DDFF79 + 1ECE11B9DD6EEC64890840D1A8C95D1B6BB7555824CABB96995AC7009EBD56BB + 0BAE9CF14B80CC23BDD3B41B144D83A268CFF5DA482AA7E801948A0A910FC0F2 + D9817AD514DA75F3483E12819B17C5904487081427A3E77F73A7168AFA56A85E + 54F9022AEA46102A3988623D90B540C1B53280A67BA98C687070B0A0CE6CD3F3 + 50BEEFE3079CBDA3825A9AE279F3CB18D0D803F7C02D1670F7610D969C2E389D + CBCCE8B02F61F1A7038B3FEC585EF905539702E3B639B4A9FBF90197E51A04EE + 4A40C36F33235A38A9447575995F1D98C667D1D1ADE707100F4A9E0CA2B9D980 + C2840594DDBFCD7AC0ACF1BA89148FB11BEB4F7EAADE217EC056E58F3879FE41 + 3BBC7507351D3674EABF22491A0659BA04E2A8208E384D7901BDA1EBF734FD46 + 7E80FCB901E1D2436C8A9CCBFD78599ECC4C8A08DF2DC803DDB0153D83A3C253 + E4EAB9CE7CD9DEC8304129EAD55BD06730F10332CAD5080A38C9A628DFFA068F + 1E97627595427454A4A00E3EEA3E6160D4CC05ACED1B6C8A5A5A8CC83FF60D25 + 72190EEC09F459DF0D7357696F937D433064B2F003C8439AFE7B827FE2E47DA3 + D9CA05E465A4C03C6B87A27D029A91EF38210E45415A2C62490782C43DD72461 + A3561B179073E934CA1506EC8B8F6353E470EAF0B4F8382370581C23C883F6AE + 619827A7B880AC0B49482BD3705234D396C57C599C64BFA014B5BE1BC2C4CC34 + 177035ED14B22BB508094A6453946D6E42655511038897C60AEA40A91A846D76 + 860BC83C9F88F13907E43563502A47907D741EB2D21B888908F0D916180FA8CD + EDC2DBE08DE39717907E2E61CBF4D0DEF7FE23FE4F408B4A2B681984940F801C + FA0DAFDED63A5D2BDB0628CCCDDC3CF477B2FE0097C77CFE55ACDC7600000000 + 49454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 123 + Top = 136 + Bitmap = {} + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001984944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046 + C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F + CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8 + 7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7 + 9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254 + 66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F + 9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0 + 8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908 + 567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754 + 03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4 + 6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748 + CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B + 37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C + 6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E + 61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B + 0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14 + CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F + 005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD + DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE + D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13 + 9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC + F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C + 81590C9B58CC0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001854944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12 + CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A + B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10 + 67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9 + D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707 + E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356 + D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE + EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426 + 90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8 + 97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F + 1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B + D67559EB1C43180000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001CB4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7 + E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3 + 3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC + 759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E + 32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9 + 4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1 + 1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7 + 70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19 + 562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183 + 3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56 + 28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B + 99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410 + 72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B + F333A26300FC1C815930D4A9C10000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F94944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7 + CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0 + E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8 + 0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651 + 5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049 + 454E44AE426082} + Name = 'PngImage31' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86 + FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED + BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01 + E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7 + 64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE + 9D230000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FC4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66 + 18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF + B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E + FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354 + DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875 + F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000 + 000049454E44AE426082} + Name = 'PngImage30' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B9B286FDC79F09CE1E2F57B845D80CD66 + 18FFDAED87E4BBE0F28D870CB7EE3FC1ED027C36FF01F3FF31DC7FFC8C7C171C + 3B7B8BE1F9ABD79806A0DBFCF3D71F14DB7FFF86B9E81FC39B776F510D88F1B3 + 62E0E7E325CA057B8E5E65F8F8E903AA01E15EE6A8B6E1B01926F7EDDB675403 + 82DC4C88D6FCEFDF7F861F3FBEA01AE0E764C470EAE22DA2BC0003700340B971 + E28CA524E7C6FC8CE8180004936059AAE3EEF00000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001704944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC48062C0BEFB0C0CF593F7331C79CFC5B0 + B7CE9CC14911B7E663676F3054B5CD4235C0B6683F4348B81543C105A0EA190B + 18FE9F4F67686C6CC47045565E31C3D9CB77300D604C3CC9C06061C0C0F0E206 + 83C186090CE7CFCF67E0E6E6C630E0CE83E70C17AFDFC33400E405E7A0990C06 + 0C27187AD7CD677050F8CFF0E70FC2D9200CE35FBBFD10D30064F0EF3F6ECD7F + 80F8D6FD27B80D20A4F937907DFFF133EC5E80C5C2FA0A730607A9EF189A7FFC + FC03663F7FF59A702CBCD813C530634A1F46207A072731BC79F716D580183F2B + 06D694D328B1B079473F83BA923486017B8E5E65F8F8E903AA01E15EE60C3B1F + B03204464062A174C97C062B81779030F80D0B0B44B87CFBF619D58020371394 + 8083B3B168FEF7EF3FC38F1F5F500DF07332623875F1164999096E0028374E9C + B194E4DC989F111D03003D3E8159D33DF1820000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 136 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uViewRichEditor.pas b/Source/GUIBase/uViewRichEditor.pas new file mode 100644 index 00000000..2f554bb7 --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.pas @@ -0,0 +1,238 @@ +unit uViewRichEditor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, Menus, cxLookAndFeelPainters, cxGraphics, cxSpinEdit, + cxSpinButton, cxMaskEdit, cxFontNameComboBox, cxControls, cxContainer, cxEdit, + cxTextEdit, cxDropDownEdit, cxColorComboBox, StdCtrls, cxButtons, ComCtrls, + ToolWin, ImgList, ActnList, TBXExtItems, TB2ExtItems, TB2Item, TBX, TB2Dock, + TB2Toolbar, PngImageList, cxMemo, cxRichEdit, ExtCtrls, DB, uDAInterfaces, + uDADataTable, cxDBRichEdit; + +type + IViewRichEditor = interface(IViewBase) + ['{C29F4555-A57A-436D-BF23-2E2F013BC13D}'] + end; + + + TfrViewRichEditor = class(TfrViewBase, IViewRichEditor) + ActionList: TActionList; + actEditCut: TAction; + actEditCopy: TAction; + actEditPaste: TAction; + actEditFont: TAction; + actBullets: TAction; + pmColorSchemes: TPopupMenu; + miStandard: TMenuItem; + miHTML: TMenuItem; + miWeb: TMenuItem; + miWebSorted: TMenuItem; + ToolbarImages: TImageList; + TBXDock1: TTBXDock; + TBXToolbar1: TTBXToolbar; + bBold: TTBXItem; + bItalic: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + bUnderline: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem7: TTBXItem; + TBXSeparatorItem4: TTBXSeparatorItem; + bAlignLeft: TTBXItem; + bAlignCenter: TTBXItem; + bAlignRight: TTBXItem; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBControlItem1: TTBControlItem; + fcbFontName: TcxFontNameComboBox; + TBXColorItem1: TTBXColorItem; + RichEdit: TcxDBRichEdit; + TBControlItem2: TTBControlItem; + meFontSize: TcxMaskEdit; + TBControlItem3: TTBControlItem; + cxSpinButton: TcxSpinButton; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + bBullets: TTBXItem; + procedure actBulletsExecute(Sender: TObject); + procedure actEditCutExecute(Sender: TObject); + procedure actEditCopyExecute(Sender: TObject); + procedure actEditPasteExecute(Sender: TObject); + procedure RichEditPropertiesChange(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure RichEditPropertiesSelectionChange(Sender: TObject); + procedure cxFontNameComboBox1PropertiesChange(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure fcbFontNamePropertiesInitPopup(Sender: TObject); + procedure meFontSizePropertiesChange(Sender: TObject); + procedure bBoldClick(Sender: TObject); + procedure bItalicClick(Sender: TObject); + procedure bUnderlineClick(Sender: TObject); + procedure bAlignLeftClick(Sender: TObject); + procedure bAlignCenterClick(Sender: TObject); + procedure bAlignRightClick(Sender: TObject); + procedure bBulletsClick(Sender: TObject); + private + FUpdating: Boolean; + FChanged: Boolean; + function CurrText: TTextAttributes; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +procedure TfrViewRichEditor.actBulletsExecute(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(actBullets.Checked); +end; + +procedure TfrViewRichEditor.actEditCopyExecute(Sender: TObject); +begin + RichEdit.CopyToClipboard; +end; + +procedure TfrViewRichEditor.actEditCutExecute(Sender: TObject); +begin + RichEdit.CutToClipboard; +end; + +procedure TfrViewRichEditor.actEditPasteExecute(Sender: TObject); +begin + RichEdit.PasteFromClipboard; +end; + +procedure TfrViewRichEditor.bAlignCenterClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignLeftClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignRightClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bBoldClick(Sender: TObject); +begin + if FUpdating then Exit; + if bBold.Checked then + CurrText.Style := CurrText.Style + [fsBold] + else + CurrText.Style := CurrText.Style - [fsBold]; +end; + +procedure TfrViewRichEditor.bBulletsClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(bBullets.Checked); +end; + +procedure TfrViewRichEditor.bItalicClick(Sender: TObject); +begin + if FUpdating then Exit; + if bItalic.Checked then + CurrText.Style := CurrText.Style + [fsItalic] + else + CurrText.Style := CurrText.Style - [fsItalic]; +end; + +procedure TfrViewRichEditor.bUnderlineClick(Sender: TObject); +begin + if FUpdating then Exit; + if bUnderline.Checked then + CurrText.Style := CurrText.Style + [fsUnderline] + else + CurrText.Style := CurrText.Style - [fsUnderline]; +end; + +function TfrViewRichEditor.CurrText: TTextAttributes; +begin +{ if RichEdit.SelLength > 0 then} + Result := RichEdit.SelAttributes +{ else + Result := RichEdit.DefAttributes;} +end; + +procedure TfrViewRichEditor.CustomViewCreate(Sender: TObject); +begin + inherited; + CurrText.Name := DefFontData.Name; + RichEditPropertiesSelectionChange(Self); +end; + +procedure TfrViewRichEditor.CustomViewShow(Sender: TObject); +begin + inherited; + FChanged := False; +end; + +procedure TfrViewRichEditor.cxFontNameComboBox1PropertiesChange( + Sender: TObject); +begin + if FUpdating then Exit; + CurrText.Name := TcxFontNameComboBox(Sender).Text; +end; + +procedure TfrViewRichEditor.fcbFontNamePropertiesInitPopup(Sender: TObject); +begin + inherited; + fcbFontName.Properties.FontPreview.FontStyle := CurrText.Style; +end; + +procedure TfrViewRichEditor.meFontSizePropertiesChange(Sender: TObject); +begin + if FUpdating then Exit; + if meFontSize.EditText <> '' then + CurrText.Size := StrToInt(meFontSize.EditText) + else + CurrText.Size := 0; +end; + +procedure TfrViewRichEditor.RichEditPropertiesChange(Sender: TObject); +begin + FChanged := True; +end; + +procedure TfrViewRichEditor.RichEditPropertiesSelectionChange(Sender: TObject); +begin + with RichEdit.Paragraph do + try + FUpdating := True; + bBold.Checked := fsBold in CurrText.Style; + bItalic.Checked := fsItalic in CurrText.Style; + bUnderline.Checked := fsUnderline in CurrText.Style; + bBullets.Checked := Boolean(Numbering); + meFontSize.Text := IntToStr(CurrText.Size); + fcbFontName.EditValue := CurrText.Name; + //cxColorComboBox.EditValue := CurrText.Color; + case Ord(Alignment) of + 0: begin + bAlignLeft.Checked := True; + end; + 1: begin + bAlignRight.Checked := True; + end; + 2: begin + bAlignCenter.Checked := True; + end; + end; + finally + FUpdating := False; + end; +end; + +end. diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 index 89d9318e..5fabf2e5 100644 --- a/Source/Informes/InfPresupuestoCliente.fr3 +++ b/Source/Informes/InfPresupuestoCliente.fr3 @@ -1,12 +1,84 @@ - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.dfm b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm index d9a08928..95a926b9 100644 --- a/Source/Modulos/Contactos/Views/uEditorDireccion.dfm +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm @@ -4,7 +4,7 @@ object fEditorDireccion: TfEditorDireccion ActiveControl = eNombre BorderStyle = bsDialog Caption = 'Cambiar datos de la direcci'#243'n' - ClientHeight = 589 + ClientHeight = 499 ClientWidth = 426 Color = clBtnFace ParentFont = True @@ -12,14 +12,14 @@ object fEditorDireccion: TfEditorDireccion Position = poOwnerFormCenter DesignSize = ( 426 - 589) + 499) PixelsPerInch = 96 TextHeight = 13 object Bevel1: TBevel Left = 8 Top = 8 - Width = 322 - Height = 511 + Width = 329 + Height = 457 Anchors = [akLeft, akTop, akRight] Shape = bsFrame end @@ -120,20 +120,14 @@ object fEditorDireccion: TfEditorDireccion AutoSize = False Caption = 'Notas:' end - object Bevel2: TBevel - Left = 20 - Top = 457 - Width = 306 - Height = 9 - Shape = bsBottomLine - end object Label10: TLabel - Left = 21 - Top = 489 + Left = 20 + Top = 471 Width = 156 Height = 13 AutoSize = False Caption = 'Coste del env'#237'o a esta direcci'#243'n:' + Visible = False end object Label11: TLabel Left = 21 @@ -160,7 +154,6 @@ object fEditorDireccion: TfEditorDireccion Caption = '&Aceptar' ModalResult = 1 TabOrder = 0 - ExplicitLeft = 350 end object CancelBtn: TButton Left = 343 @@ -172,7 +165,6 @@ object fEditorDireccion: TfEditorDireccion Caption = '&Cancelar' ModalResult = 2 TabOrder = 1 - ExplicitLeft = 350 end object eDireccion: TDBEdit Left = 135 @@ -272,8 +264,8 @@ object fEditorDireccion: TfEditorDireccion TabOrder = 10 end object ePortes: TcxDBCurrencyEdit - Left = 183 - Top = 486 + Left = 194 + Top = 471 DataBinding.DataField = 'PORTE' DataBinding.DataSource = dsDireccion Properties.UseThousandSeparator = True @@ -286,6 +278,7 @@ object fEditorDireccion: TfEditorDireccion StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True TabOrder = 11 + Visible = False Width = 143 end object eMovil: TDBEdit diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.pas b/Source/Modulos/Contactos/Views/uEditorDireccion.pas index dd882276..c46beae0 100644 --- a/Source/Modulos/Contactos/Views/uEditorDireccion.pas +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.pas @@ -6,7 +6,7 @@ uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, uIEditorDireccionContacto, uDireccionesContactoController, uBizDireccionesContacto, - cxCurrencyEdit; + cxCurrencyEdit, uDAInterfaces; type TfEditorDireccion = class(TForm, IEditorEditorDireccion) @@ -33,7 +33,6 @@ type Label8: TLabel; Label9: TLabel; eNotas: TDBMemo; - Bevel2: TBevel; Label10: TLabel; ePortes: TcxDBCurrencyEdit; Label11: TLabel; diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.dfm b/Source/Modulos/Contactos/Views/uViewProveedor.dfm index 6a3856e5..8617c312 100644 --- a/Source/Modulos/Contactos/Views/uViewProveedor.dfm +++ b/Source/Modulos/Contactos/Views/uViewProveedor.dfm @@ -19,7 +19,7 @@ inherited frViewProveedor: TfrViewProveedor ExplicitLeft = 613 end object Label1: TLabel [3] - Left = 366 + Left = 370 Top = 307 Width = 342 Height = 26 @@ -29,37 +29,37 @@ inherited frViewProveedor: TfrViewProveedor WordWrap = True end inherited eCalle: TcxDBTextEdit - Left = 124 + Left = 134 Top = 304 TabOrder = 9 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 304 ExplicitWidth = 264 Width = 264 end inherited eProvincia: TcxDBTextEdit - Left = 124 + Left = 134 Top = 358 TabOrder = 12 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 358 ExplicitWidth = 264 Width = 264 end inherited ePoblacion: TcxDBTextEdit - Left = 124 + Left = 134 Top = 331 TabOrder = 10 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 331 ExplicitWidth = 163 Width = 163 end inherited eCodigoPostal: TcxDBTextEdit - Left = 271 + Left = 275 Top = 331 TabOrder = 11 - ExplicitLeft = 271 + ExplicitLeft = 275 ExplicitTop = 331 end inherited eObservaciones: TcxDBMemo @@ -70,7 +70,7 @@ inherited frViewProveedor: TfrViewProveedor Height = 20 end object cxDBCheckBox1: TcxDBCheckBox [9] - Left = 366 + Left = 370 Top = 280 Caption = 'Incluir este proveedor en la tienda web' DataBinding.DataField = 'TIENDA_WEB' @@ -119,7 +119,7 @@ inherited frViewProveedor: TfrViewProveedor Width = 326 end object eCertificaciones: TcxDBTextEdit [11] - Left = 124 + Left = 134 Top = 220 DataBinding.DataField = 'CERTIFICACION' DataBinding.DataSource = dsContacto @@ -138,7 +138,7 @@ inherited frViewProveedor: TfrViewProveedor Width = 227 end object cbGrupoProveedor: TcxDBComboBox [12] - Left = 124 + Left = 134 Top = 136 DataBinding.DataField = 'GRUPO_PROVEEDOR' DataBinding.DataSource = dsContacto @@ -161,18 +161,8 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 5 Width = 227 end - inherited eTlfParticular: TcxDBTextEdit - Left = 461 - TabOrder = 14 - ExplicitLeft = 461 - end - inherited eTlfTrabajo: TcxDBTextEdit - Left = 461 - TabOrder = 13 - ExplicitLeft = 461 - end - object eDescripcionProveedor: TcxDBTextEdit [15] - Left = 124 + object eDescripcionProveedor: TcxDBTextEdit [13] + Left = 134 Top = 82 DataBinding.DataField = 'DESCRIPCION_PROVEEDOR' DataBinding.DataSource = dsContacto @@ -190,8 +180,8 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 3 Width = 221 end - object eCodigoAsignado: TcxDBTextEdit [16] - Left = 124 + object eCodigoAsignado: TcxDBTextEdit [14] + Left = 134 Top = 109 DataBinding.DataField = 'CODIGO_ASIGNADO' DataBinding.DataSource = dsContacto @@ -209,53 +199,83 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 4 Width = 221 end + inherited eTlfParticular: TcxDBTextEdit + Left = 465 + TabOrder = 14 + ExplicitLeft = 465 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 465 + TabOrder = 13 + ExplicitLeft = 465 + ExplicitWidth = 127 + Width = 127 + end inherited eTlfMovil: TcxDBTextEdit - Left = 461 + Left = 465 TabOrder = 15 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 155 + Width = 155 end inherited eFax: TcxDBTextEdit - Left = 461 + Left = 465 TabOrder = 16 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 121 + Width = 121 end inherited eNombre: TcxDBTextEdit - Left = 124 - ExplicitLeft = 124 + Left = 134 + ExplicitLeft = 134 + ExplicitWidth = 221 + Width = 221 end inherited eNIFCIF: TcxDBTextEdit - Left = 197 - ExplicitLeft = 197 + Left = 207 + ExplicitLeft = 207 ExplicitWidth = 205 Width = 205 end inherited eMailTrabajo: TcxDBHyperLinkEdit - Left = 461 + Left = 465 Properties.Prefix = 'mailto:' TabOrder = 17 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited eMailParticular: TcxDBHyperLinkEdit - Left = 461 + Left = 465 Properties.Prefix = 'mailto:' TabOrder = 18 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited ePaginaWeb: TcxDBHyperLinkEdit - Left = 461 + Left = 465 TabOrder = 19 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited eReferencia: TcxDBTextEdit - Left = 124 - ExplicitLeft = 124 + Left = 134 + ExplicitLeft = 134 + ExplicitWidth = 38 + Width = 38 end inherited ePersonaContacto: TcxDBTextEdit - Left = 124 + Left = 134 Top = 277 TabOrder = 8 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 277 + ExplicitWidth = 256 + Width = 256 end inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup inherited dxLayoutControlContactoGroup9: TdxLayoutGroup @@ -286,7 +306,7 @@ inherited frViewProveedor: TfrViewProveedor ControlOptions.ShowBorder = False end object dxLayoutControlContactoItem23: TdxLayoutItem - Caption = 'Certificaciones:' + Caption = 'Tipo de homologaci'#243'n:' Control = eCertificaciones ControlOptions.ShowBorder = False end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index bb8e7b64..4fc3c91d 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -1,8 +1,8 @@ object RptFacturasCliente: TRptFacturasCliente OldCreateOrder = True OnCreate = DataModuleCreate - Height = 405 - Width = 447 + Height = 577 + Width = 479 object DADataCabecera: TDADataSource Left = 264 Top = 72 @@ -39,34 +39,6 @@ object RptFacturasCliente: TRptFacturasCliente Left = 344 Top = 128 end - object DABINAdapter: TDABINAdapter - Left = 48 - Top = 80 - end - object frxRichObject1: TfrxRichObject - Left = 48 - Top = 296 - end - object frxBarCodeObject1: TfrxBarCodeObject - Left = 144 - Top = 296 - end - object frxOLEObject1: TfrxOLEObject - Left = 48 - Top = 344 - end - object frxCrossObject1: TfrxCrossObject - Left = 144 - Top = 344 - end - object frxCheckBoxObject1: TfrxCheckBoxObject - Left = 256 - Top = 296 - end - object frxGradientObject1: TfrxGradientObject - Left = 360 - Top = 296 - end object schReport: TDASchema ConnectionManager = dmServer.ConnectionManager Datasets = < @@ -823,7 +795,7 @@ object RptFacturasCliente: TRptFacturasCliente Top = 158 end object frxReport: TfrxReport - Version = '3.23.7' + Version = '4.3' DotMatrixReport = False EngineOptions.DoublePass = True IniFile = '\Software\Fast Reports' @@ -831,6 +803,7 @@ object RptFacturasCliente: TRptFacturasCliente PreviewOptions.OutlineWidth = 180 PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 37871.995398692100000000 ReportOptions.LastChange = 39290.847101226850000000 ReportOptions.VersionBuild = '1' @@ -986,70 +959,6 @@ object RptFacturasCliente: TRptFacturasCliente OnStartReport = 'frxReportOnStartReport' Left = 169 Top = 16 - Datasets = < - item - DataSet = frxDBCabecera - DataSetName = 'frxDBCabecera' - end - item - DataSet = frxDBDetalles - DataSetName = 'frxDBDetalles' - end - item - DataSet = frxDBDataset1 - DataSetName = 'frxDBVencimientos' - end> - Variables = < - item - Name = ' Paginacion' - Value = Null - end - item - Name = 'Pagina' - Value = Null - end - item - Name = 'TotalPaginas' - Value = Null - end> - Style = < - item - Name = 'Concepto normal' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [] - end - item - Name = 'Concepto subtotal' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end - item - Name = 'Cabecera de columna' - Color = 15790320 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] - end - item - Name = 'Concepto titulo' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end> end object frxDBCabecera: TfrxDBDataset UserName = 'frxDBCabecera' @@ -1087,4 +996,98 @@ object RptFacturasCliente: TRptFacturasCliente Left = 344 Top = 184 end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 280 + Top = 496 + end + object frxOLEObject1: TfrxOLEObject + Left = 184 + Top = 432 + end + object frxCrossObject1: TfrxCrossObject + Left = 384 + Top = 496 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 440 + end + object frxGradientObject1: TfrxGradientObject + Left = 384 + Top = 440 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT ' + ' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, ' + ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, ' + ' REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, ' + + ' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,' + + ' ' + ' FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, ' + ' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, ' + ' IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO' + ' FROM' + ' V_PRESUPUESTOS_CLIENTE' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + Left = 136 + Top = 296 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + + 'TALLES.ID_PRESUPUESTO,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.POSICION, PRESUPUESTOS_CLIE' + + 'NTE_DETALLES.TIPO_DETALLE,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIE' + + 'NTE_DETALLES.CANTIDAD,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PRESUPUESTO' + + 'S_CLIENTE_DETALLES.IMPORTE_TOTAL,' + + ' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERE' + + 'NCIA_PROV as REFERENCIA_PROVEEDOR' + '' + 'FROM PRESUPUESTOS_CLIENTE_DETALLES' + + 'LEFT JOIN ARTICULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICUL' + + 'O = ARTICULOS.ID)' + 'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = 31' + 'ORDER BY POSICION') + Left = 136 + Top = 352 + end end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index d9d03c27..bd95b1a1 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -7,7 +7,7 @@ uses Dialogs, frxClass, frxDBSet, uDAScriptingProvider, uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, - uDAInterfaces, uDADataStreamer; + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase; type TRptFacturasCliente = class(TDataModule) @@ -15,13 +15,6 @@ type DADataDetalles: TDADataSource; tbl_FacturaCliente: TDACDSDataTable; tbl_DetallesFacturaCliente: TDACDSDataTable; - DABINAdapter: TDABINAdapter; - frxRichObject1: TfrxRichObject; - frxBarCodeObject1: TfrxBarCodeObject; - frxOLEObject1: TfrxOLEObject; - frxCrossObject1: TfrxCrossObject; - frxCheckBoxObject1: TfrxCheckBoxObject; - frxGradientObject1: TfrxGradientObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; DADataVencimientos: TDADataSource; @@ -30,10 +23,21 @@ type schReport: TDASchema; DataDictionary: TDADataDictionary; frxReport: TfrxReport; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource2: TDataSource; + cabecera: TIBQuery; + detalles: TIBQuery; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; - //Genera cada uno de los albaranes a imprimir + //Genera cada una de las facturas a imprimir procedure GenerarFactura(const ID: integer); overload; public function GenerarFactura(const AFacturaID : String): Binary; overload; @@ -78,7 +82,7 @@ begin ID_Facturas := TStringList.Create; ID_Facturas.CommaText := AFacturaID; - //Vamos generando todos y cada uno de los albaranes recibidos + //Vamos generando todos y cada una de las facturas recibidas for i := 0 to ID_Facturas.Count - 1 do GenerarFactura(StrToInt(ID_Facturas.Strings[i])); @@ -103,7 +107,7 @@ begin dsDetail := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Detalles, ['ID_FACTURA'], [ID], False); dsVencimientos := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Vencimientos, ['ID_FACTURA'], [ID], False); - AStream.Clear; +{ AStream.Clear; DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); DABINAdapter.ReadDataset(AStream, tbl_FacturaCliente, TRUE, '', TRUE, TRUE); @@ -113,7 +117,7 @@ begin AStream.Clear; DABINAdapter.WriteDataset(AStream, dsVencimientos, [woRows, woSchema], -1); - DABINAdapter.ReadDataset(AStream, tbl_Vencimientos, TRUE, '', TRUE, TRUE); + DABINAdapter.ReadDataset(AStream, tbl_Vencimientos, TRUE, '', TRUE, TRUE);} frxReport.LoadFromFile(DarRutaInformes + rptFacturaCliente, True); diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas index f2b94c44..1549b687 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas @@ -270,9 +270,8 @@ begin USUARIO := AppFactuGES.UsuarioActivo.UserName; FECHA_PRESUPUESTO := DateOf(Now); INCIDENCIAS_ACTIVAS := 0; -// INCIDENCIAS := Nil; + INCIDENCIAS := NIL; REFERENCIA := ''; -// SetFieldNull(DataTable, fld_PresupuestosClienteREF_TIENDA_WEB); end; Result.Post; finally diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index b73ee363..dd1eb816 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -63,7 +63,7 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente Name = 'SITUACION' DataType = datString Size = 255 - DisplayLabel = 'Situaci'#195#179'n' + DisplayLabel = 'Situaci'#243'n' DictionaryEntry = 'PresupuestosCliente_SITUACION' end item diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm index d3fde1b4..126529d8 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -2,38 +2,38 @@ object RptPresupuestosCliente: TRptPresupuestosCliente OldCreateOrder = True OnCreate = DataModuleCreate Height = 604 - Width = 447 - object DADataCabecera: TDADataSource + Width = 629 + object DADSCabecera: TDADataSource DataSet = tbl_Cabecera.Dataset DataTable = tbl_Cabecera Left = 264 Top = 72 end - object DADataDetalles: TDADataSource + object DADSDetalles: TDADataSource DataSet = tbl_Detalles.Dataset DataTable = tbl_Detalles - Left = 344 + Left = 440 Top = 72 end object frxBarCodeObject1: TfrxBarCodeObject - Left = 280 - Top = 496 + Left = 400 + Top = 424 end object frxOLEObject1: TfrxOLEObject - Left = 184 - Top = 432 + Left = 400 + Top = 488 end object frxCrossObject1: TfrxCrossObject - Left = 384 - Top = 496 + Left = 400 + Top = 360 end object frxCheckBoxObject1: TfrxCheckBoxObject - Left = 280 - Top = 440 + Left = 400 + Top = 232 end object frxGradientObject1: TfrxGradientObject - Left = 384 - Top = 440 + Left = 400 + Top = 296 end object schReport: TDASchema ConnectionManager = dmServer.ConnectionManager @@ -43,22 +43,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Params = < item Name = 'ID' - Value = '' + Value = '31' ParamType = daptInput end> Statements = < item Connection = 'IBX' - TargetTable = 'V_PRESUPUESTOS_CLIENTE' SQL = - 'SELECT '#10' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, '#10 + - ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, '#10' REF' + - 'ERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, '#10' OBSERVACI' + - 'ONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, '#10' FECHA_M' + - 'ODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, '#10' DESCUENT' + - 'O, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, '#10' IMPORTE_IVA, IMP' + - 'ORTE_TOTAL, ID_FORMA_PAGO'#10' FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' WH' + - 'ERE V_PRESUPUESTOS_CLIENTE.ID = :ID'#10 + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA,'#10' V_PRESUPUESTOS_CLIENTE.PORTADA' + + ','#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBS' + + 'ERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUES' + + 'TOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENTE.DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRESUPUESTOS_CL' + + 'IENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' V_PRESUPUE' + + 'STOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.REFERENCIA_C' + + 'LIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' V_CLIENTES' + + '.NIF_CIF, V_CLIENTES.NOMBRE,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_' + + 'IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' V_CLIENTES.PERSON' + + 'A_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.POBLACION,'#10' V_CLIENT' + + 'ES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL'#10'FROM'#10' V_PRESUPUESTOS_C' + + 'LIENTE INNER JOIN V_CLIENTES ON'#10' (V_PRESUPUESTOS_CLIENTE.' + + 'ID_CLIENTE = V_CLIENTES.ID)'#10' WHERE V_PRESUPUESTOS_CLIENTE.ID = ' + + ':ID'#10 StatementType = stSQL ColumnMappings = < item @@ -73,38 +81,10 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'FECHA_PRESUPUESTO' TableField = 'FECHA_PRESUPUESTO' end - item - DatasetField = 'FECHA_DECISION' - TableField = 'FECHA_DECISION' - end item DatasetField = 'REFERENCIA' TableField = 'REFERENCIA' end - item - DatasetField = 'SITUACION' - TableField = 'SITUACION' - end - item - DatasetField = 'ID_CLIENTE' - TableField = 'ID_CLIENTE' - end - item - DatasetField = 'NIF_CIF' - TableField = 'NIF_CIF' - end - item - DatasetField = 'NOMBRE' - TableField = 'NOMBRE' - end - item - DatasetField = 'REFERENCIA_CLIENTE' - TableField = 'REFERENCIA_CLIENTE' - end - item - DatasetField = 'CLIENTE_FINAL' - TableField = 'CLIENTE_FINAL' - end item DatasetField = 'PORTADA' TableField = 'PORTADA' @@ -117,26 +97,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'OBSERVACIONES' TableField = 'OBSERVACIONES' end - item - DatasetField = 'INCIDENCIAS' - TableField = 'INCIDENCIAS' - end - item - DatasetField = 'INCIDENCIAS_ACTIVAS' - TableField = 'INCIDENCIAS_ACTIVAS' - end - item - DatasetField = 'FECHA_ALTA' - TableField = 'FECHA_ALTA' - end - item - DatasetField = 'FECHA_MODIFICACION' - TableField = 'FECHA_MODIFICACION' - end - item - DatasetField = 'USUARIO' - TableField = 'USUARIO' - end item DatasetField = 'IMPORTE_NETO' TableField = 'IMPORTE_NETO' @@ -161,6 +121,26 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'IVA' TableField = 'IVA' end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end item DatasetField = 'IMPORTE_IVA' TableField = 'IMPORTE_IVA' @@ -170,8 +150,24 @@ object RptPresupuestosCliente: TRptPresupuestosCliente TableField = 'IMPORTE_TOTAL' end item - DatasetField = 'ID_FORMA_PAGO' - TableField = 'ID_FORMA_PAGO' + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' end> end> Name = 'Informe_Cabecera' @@ -190,44 +186,11 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'FECHA_PRESUPUESTO' DataType = datDateTime end - item - Name = 'FECHA_DECISION' - DataType = datDateTime - end item Name = 'REFERENCIA' DataType = datString Size = 255 end - item - Name = 'SITUACION' - DataType = datString - Size = 255 - end - item - Name = 'ID_CLIENTE' - DataType = datInteger - end - item - Name = 'NIF_CIF' - DataType = datString - Size = 15 - end - item - Name = 'NOMBRE' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_CLIENTE' - DataType = datString - Size = 255 - end - item - Name = 'CLIENTE_FINAL' - DataType = datString - Size = 255 - end item Name = 'PORTADA' DataType = datMemo @@ -240,28 +203,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'OBSERVACIONES' DataType = datMemo end - item - Name = 'INCIDENCIAS' - DataType = datMemo - end - item - Name = 'INCIDENCIAS_ACTIVAS' - DataType = datSmallInt - Required = True - end - item - Name = 'FECHA_ALTA' - DataType = datDateTime - end - item - Name = 'FECHA_MODIFICACION' - DataType = datDateTime - end - item - Name = 'USUARIO' - DataType = datString - Size = 30 - end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -286,6 +227,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IVA' DataType = datFloat end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end item Name = 'IMPORTE_IVA' DataType = datCurrency @@ -295,14 +260,173 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datCurrency end item - Name = 'ID_FORMA_PAGO' - DataType = datInteger + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 end> + ReadOnly = True end item Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(:ID_PRESUPUESTO)'#10'WHER' + + 'E {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + SQLOrigin = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + SQLOrigin = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' + end + item + DatasetField = 'ID_CAPITULO' + SQLOrigin = 'ID_CAPITULO' + end + item + DatasetField = 'ID_ARTICULO' + SQLOrigin = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + SQLOrigin = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + SQLOrigin = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + SQLOrigin = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + SQLOrigin = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + SQLOrigin = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos_Detalles' + Fields = < item Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datInteger + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' Value = '' ParamType = daptInput end> @@ -311,68 +435,42 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Connection = 'IBX' TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' SQL = - 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + - 'TALLES.ID_PRESUPUESTO,'#10' PRESUPUESTOS_CLIENTE_DETALLES.POSI' + - 'CION, PRESUPUESTOS_CLIENTE_DETALLES.TIPO_DETALLE,'#10' PRESUPU' + - 'ESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIENTE_DETALLES.C' + - 'ANTIDAD,'#10' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PR' + - 'ESUPUESTOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFE' + - 'RENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERENCIA_PROV as REFERENC' + - 'IA_PROVEEDOR'#10#10'FROM PRESUPUESTOS_CLIENTE_DETALLES'#10'LEFT JOIN ARTIC' + - 'ULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.I' + - 'D)'#10'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = :ID'#10'ORDE' + - 'R BY POSICION'#10 + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,'#10' ' + + ' importe_total, visible'#10'from presupuestos_cliente_detalles'#10'wh' + + 'ere (tipo_detalle = '#39'Titulo'#39') and (id_presupuesto = :ID_PRESUPUE' + + 'STO)'#10'and {where}'#10'order by posicion'#10 StatementType = stSQL ColumnMappings = < item DatasetField = 'ID' - TableField = 'ID' + SQLOrigin = 'ID' end item DatasetField = 'ID_PRESUPUESTO' - TableField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' end item DatasetField = 'POSICION' - TableField = 'POSICION' + SQLOrigin = 'POSICION' end item DatasetField = 'TIPO_DETALLE' - TableField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' end item DatasetField = 'CONCEPTO' - TableField = 'CONCEPTO' - end - item - DatasetField = 'CANTIDAD' - TableField = 'CANTIDAD' - end - item - DatasetField = 'IMPORTE_UNIDAD' - TableField = 'IMPORTE_UNIDAD' + SQLOrigin = 'CONCEPTO' end item DatasetField = 'IMPORTE_TOTAL' - TableField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' end item - DatasetField = 'REFERENCIA' - TableField = '' - SQLOrigin = 'REFERENCIA' - end - item - DatasetField = 'FAMILIA' - TableField = '' - SQLOrigin = 'FAMILIA' - end - item - DatasetField = 'REFERENCIA_PROVEEDOR' - TableField = '' - SQLOrigin = 'REFERENCIA_PROVEEDOR' + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' end> end> - Name = 'Informe_Detalles' + Name = 'Informe_Resumen' Fields = < item Name = 'ID' @@ -398,32 +496,92 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Size = 2000 end item - Name = 'CANTIDAD' + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + SQL = 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + SQLOrigin = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + SQLOrigin = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + SQLOrigin = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' DataType = datInteger end item - Name = 'IMPORTE_UNIDAD' - DataType = datCurrency + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 end item Name = 'IMPORTE_TOTAL' DataType = datCurrency end item - Name = 'REFERENCIA' - DataType = datString - Size = 255 - end - item - Name = 'FAMILIA' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_PROVEEDOR' - DataType = datString - Size = 255 + Name = 'VISIBLE' + DataType = datSmallInt end> + ReadOnly = True end> JoinDataTables = <> UnionDataTables = <> @@ -449,7 +607,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 39404.953391377300000000 + ReportOptions.LastChange = 39427.585072685190000000 ScriptLanguage = 'PascalScript' ScriptText.Strings = ( '' @@ -510,17 +668,38 @@ object RptPresupuestosCliente: TRptPresupuestosCliente '' 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' 'begin' - ' if not Engine.FinalPass then' + '{ if not Engine.FinalPass then' ' Set('#39'TotalPaginas'#39', ( + 1));' '' ' if Engine.FinalPass then' - ' Set('#39'Pagina'#39', ( + 1));' + ' Set('#39'Pagina'#39', ( + 1));} ' 'end;' '' 'procedure frxReportOnStartReport(Sender: TfrxComponent);' 'begin' ' Set('#39'Pagina'#39', 0);' ' Set('#39'TotalPaginas'#39', 0);' + + ' Set('#39'Capitulo'#39', 0); ' + + ' ' + 'end;' + '' + 'procedure Rich3OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + ' if Engine.FinalPass then ' + + ' ' + + ' Set('#39'Capitulo'#39', ( + 1)); ' + + ' ' + 'end;' + '' + 'procedure Page2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + + ' Page2.Visible := False; ' + + ' ' 'end;' '' 'begin' @@ -534,22 +713,18 @@ object RptPresupuestosCliente: TRptPresupuestosCliente end object frxDBCabecera: TfrxDBDataset UserName = 'frxDBCabecera' - CloseDataSource = False - DataSource = DADataCabecera + CloseDataSource = True + DataSource = DADSCabecera Left = 264 Top = 16 end object frxDBDetalles: TfrxDBDataset UserName = 'frxDBDetalles' - CloseDataSource = False - DataSource = DADataDetalles - Left = 344 + CloseDataSource = True + DataSource = DADSDetalles + Left = 440 Top = 16 end - object Bin2DataStreamer: TDABin2DataStreamer - Left = 48 - Top = 80 - end object tbl_Cabecera: TDAMemDataTable RemoteUpdatesOptions = [] Fields = < @@ -567,44 +742,11 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'FECHA_PRESUPUESTO' DataType = datDateTime end - item - Name = 'FECHA_DECISION' - DataType = datDateTime - end item Name = 'REFERENCIA' DataType = datString Size = 255 end - item - Name = 'SITUACION' - DataType = datString - Size = 255 - end - item - Name = 'ID_CLIENTE' - DataType = datInteger - end - item - Name = 'NIF_CIF' - DataType = datString - Size = 15 - end - item - Name = 'NOMBRE' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_CLIENTE' - DataType = datString - Size = 255 - end - item - Name = 'CLIENTE_FINAL' - DataType = datString - Size = 255 - end item Name = 'PORTADA' DataType = datMemo @@ -617,28 +759,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'OBSERVACIONES' DataType = datMemo end - item - Name = 'INCIDENCIAS' - DataType = datMemo - end - item - Name = 'INCIDENCIAS_ACTIVAS' - DataType = datSmallInt - Required = True - end - item - Name = 'FECHA_ALTA' - DataType = datDateTime - end - item - Name = 'FECHA_MODIFICACION' - DataType = datDateTime - end - item - Name = 'USUARIO' - DataType = datString - Size = 30 - end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -663,6 +783,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IVA' DataType = datFloat end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end item Name = 'IMPORTE_IVA' DataType = datCurrency @@ -672,21 +816,41 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datCurrency end item - Name = 'ID_FORMA_PAGO' - DataType = datInteger + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 end> Params = < item Name = 'ID' - Value = '' + Value = '31' ParamType = daptInput end> - MasterMappingMode = mmDataRequest LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False LocalSchema = schReport - LocalDataStreamer = Bin2DataStreamer + LocalDataStreamer = DABin2DataStreamer1 DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Informe_Cabecera' @@ -715,6 +879,19 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datString Size = 10 end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end item Name = 'CONCEPTO' DataType = datString @@ -728,50 +905,48 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IMPORTE_UNIDAD' DataType = datCurrency end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end item Name = 'IMPORTE_TOTAL' DataType = datCurrency end item - Name = 'REFERENCIA' - DataType = datString - Size = 255 - end - item - Name = 'FAMILIA' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_PROVEEDOR' - DataType = datString - Size = 255 + Name = 'VISIBLE' + DataType = datSmallInt end> Params = < item - Name = 'ID' + Name = 'ID_PRESUPUESTO' Value = '' ParamType = daptInput end> + MasterMappingMode = mmWhere MasterParamsMappings.Strings = ( - 'ID=ID') + 'ID_PRESUPUESTO=ID_PRESUPUESTO') LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False LocalSchema = schReport - LocalDataStreamer = Bin2DataStreamer - MasterSource = DADataCabecera + LocalDataStreamer = DABin2DataStreamer1 + MasterSource = DADSCapitulos MasterFields = 'ID' - DetailFields = 'ID_PRESUPUESTO' + DetailFields = 'ID_CAPITULO' DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Informe_Detalles' + LogicalName = 'Informe_Capitulos_Detalles' IndexDefs = <> - Left = 344 + Left = 440 Top = 128 end object IBDatabase1: TIBDatabase - DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + DatabaseName = 'C:\Codigo Tecsitel\Database\FACTUGES.FDB' Params.Strings = ( 'user_name=sysdba' 'password=masterkey' @@ -791,57 +966,418 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Top = 296 end object DataSource2: TDataSource - DataSet = detalles + DataSet = capitulos Left = 216 Top = 352 end - object cabecera: TIBQuery + object capitulos: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 SQL.Strings = ( - 'SELECT ' - ' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, ' - ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, ' - ' REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, ' - - ' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,' + - ' ' - ' FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, ' - ' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, ' - ' IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO' - ' FROM' - ' V_PRESUPUESTOS_CLIENTE' - ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + 'SELECT * FROM PRO_PRES_CAPITULOS(31)') Left = 136 - Top = 296 + Top = 352 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 216 + Top = 416 end object detalles: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 SQL.Strings = ( - - 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + - 'TALLES.ID_PRESUPUESTO,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.POSICION, PRESUPUESTOS_CLIE' + - 'NTE_DETALLES.TIPO_DETALLE,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIE' + - 'NTE_DETALLES.CANTIDAD,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PRESUPUESTO' + - 'S_CLIENTE_DETALLES.IMPORTE_TOTAL,' - - ' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERE' + - 'NCIA_PROV as REFERENCIA_PROVEEDOR' - '' - 'FROM PRESUPUESTOS_CLIENTE_DETALLES' - - 'LEFT JOIN ARTICULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICUL' + - 'O = ARTICULOS.ID)' - 'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = 31' - 'ORDER BY POSICION') + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(31)') Left = 136 - Top = 352 + Top = 416 + end + object DataSource4: TDataSource + DataSet = resumen + Left = 216 + Top = 488 + end + object resumen: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,' + ' importe_total, visible' + 'from presupuestos_cliente_detalles' + 'where tipo_detalle = '#39'Titulo'#39' and id_presupuesto = 31' + 'order by posicion' + '') + Left = 136 + Top = 488 + object resumenID: TIntegerField + FieldName = 'ID' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object resumenID_PRESUPUESTO: TIntegerField + FieldName = 'ID_PRESUPUESTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID_PRESUPUESTO"' + Required = True + end + object resumenPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."POSICION"' + end + object resumenTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object resumenCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object resumenIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object resumenVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."VISIBLE"' + end + end + object frxDBCapitulos: TfrxDBDataset + UserName = 'frxDBCapitulos' + CloseDataSource = True + DataSource = DADSCapitulos + Left = 352 + Top = 16 + end + object frxDBResumen: TfrxDBDataset + UserName = 'frxDBResumen' + CloseDataSource = True + DataSource = DADSResumen + Left = 520 + Top = 16 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_EMPRESA' + + ',' + ' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA,' + ' V_PRESUPUESTOS_CLIENTE.PORTADA,' + + ' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBSER' + + 'VACIONES,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUESTOS_CLIENTE.' + + 'IMPORTE_PORTE,' + + ' V_PRESUPUESTOS_CLIENTE.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMP' + + 'ORTE_DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENT' + + 'E.IVA,' + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.I' + + 'MPORTE_TOTAL,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.PO' + + 'BLACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_PRESUPUESTOS_CLIENTE INNER JOIN V_CLIENTES ON' + ' (V_PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID)' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraFECHA_PRESUPUESTO: TDateField + FieldName = 'FECHA_PRESUPUESTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."FECHA_PRESUPUESTO"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraPORTADA: TMemoField + FieldName = 'PORTADA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."PORTADA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraMEMORIA: TMemoField + FieldName = 'MEMORIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."MEMORIA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PRESUPUESTOS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IVA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraCLIENTE_FINAL: TIBStringField + FieldName = 'CLIENTE_FINAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."CLIENTE_FINAL"' + Size = 255 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object DADSCapitulos: TDADataSource + DataSet = tbl_Capitulos.Dataset + DataTable = tbl_Capitulos + Left = 352 + Top = 72 + end + object tbl_Capitulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Capitulos' + IndexDefs = <> + Left = 352 + Top = 128 + end + object DADSResumen: TDADataSource + DataSet = tbl_Resumen.Dataset + DataTable = tbl_Resumen + Left = 520 + Top = 72 + end + object tbl_Resumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Resumen' + IndexDefs = <> + Left = 520 + Top = 128 + end + object DAMemDataTable1: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 192 + end + object DAMemDataTable2: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 352 + Top = 192 end end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas index a94f64b6..5df9f951 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas @@ -12,8 +12,8 @@ uses type TRptPresupuestosCliente = class(TDataModule) - DADataCabecera: TDADataSource; - DADataDetalles: TDADataSource; + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; frxBarCodeObject1: TfrxBarCodeObject; frxOLEObject1: TfrxOLEObject; frxCrossObject1: TfrxCrossObject; @@ -21,18 +21,62 @@ type frxGradientObject1: TfrxGradientObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; - Bin2DataStreamer: TDABin2DataStreamer; tbl_Cabecera: TDAMemDataTable; tbl_Detalles: TDAMemDataTable; frxReport: TfrxReport; - schReport: TDASchema; - DataDictionary: TDADataDictionary; IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; DataSource1: TDataSource; DataSource2: TDataSource; - cabecera: TIBQuery; + capitulos: TIBQuery; + DataSource3: TDataSource; detalles: TIBQuery; + DataSource4: TDataSource; + resumen: TIBQuery; + resumenID: TIntegerField; + resumenID_PRESUPUESTO: TIntegerField; + resumenPOSICION: TIntegerField; + resumenTIPO_DETALLE: TIBStringField; + resumenCONCEPTO: TIBStringField; + resumenIMPORTE_TOTAL: TIBBCDField; + resumenVISIBLE: TSmallintField; + frxDBCapitulos: TfrxDBDataset; + frxDBResumen: TfrxDBDataset; + DABin2DataStreamer1: TDABin2DataStreamer; + cabecera: TIBQuery; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraFECHA_PRESUPUESTO: TDateField; + cabeceraREFERENCIA: TIBStringField; + cabeceraPORTADA: TMemoField; + cabeceraMEMORIA: TMemoField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraIMPORTE_NETO: TIBBCDField; + cabeceraIMPORTE_PORTE: TIBBCDField; + cabeceraDESCUENTO: TFloatField; + cabeceraIMPORTE_DESCUENTO: TIBBCDField; + cabeceraBASE_IMPONIBLE: TIBBCDField; + cabeceraIVA: TFloatField; + cabeceraID_CLIENTE: TIntegerField; + cabeceraREFERENCIA_CLIENTE: TIBStringField; + cabeceraCLIENTE_FINAL: TIBStringField; + cabeceraNIF_CIF: TIBStringField; + cabeceraNOMBRE: TIBStringField; + cabeceraIMPORTE_IVA: TIBBCDField; + cabeceraIMPORTE_TOTAL: TIBBCDField; + cabeceraPERSONA_CONTACTO: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + DADSCapitulos: TDADataSource; + tbl_Capitulos: TDAMemDataTable; + DADSResumen: TDADataSource; + tbl_Resumen: TDAMemDataTable; + DAMemDataTable1: TDAMemDataTable; + DAMemDataTable2: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; @@ -53,7 +97,7 @@ const { Dataset names for schReport } ds_InformeCabecera = 'Informe_Cabecera'; - ds_InformeDetalles = 'Informe_Detalles'; + ds_InformeCapitulos = 'Informe_Capitulos'; { TRptPresupuestosProveedor } @@ -93,35 +137,62 @@ end; procedure TRptPresupuestosCliente.GenerarPresupuesto(const AID: Integer); var AStream: TMemoryStream; - dsMaster: IDADataset; - dsDetail: IDADataset; + dsCabecera: IDADataset; + dsCapitulos: IDADataset; + I: Integer; begin - //AStream := TMemoryStream.Create; + AStream := TMemoryStream.Create; try - {dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); - dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID'], [AID], False); +{ dsCabecera := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsCapitulos := schReport.NewDataset(FConnection, ds_InformeCapitulos, ['ID_PRESUPUESTO'], [AID], False); AStream.Clear; - Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); - Bin2DataStreamer.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); - + DABin2DataStreamer1.WriteDataset(AStream, dsCabecera, [woRows, woSchema]); + DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable1, True, ds_InformeCabecera, True, True); AStream.Clear; + DABin2DataStreamer1.WriteDataset(AStream, dsCapitulos, [woRows, woSchema]); + DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable2, True, ds_InformeCapitulos, True, True); + + + DADSCabecera.DataTable := DAMemDataTable1; + frxDBCabecera.DataSource := DADSCabecera; + + DADSCapitulos.DataTable := DAMemDataTable2; + frxDBCapitulos.DataSource := DADSCapitulos;} + +{ DAMemDataTable1.Active := True; + + for I := 0 to DAMemDataTable1.RecordCount - 1 do + ShowMessage(DAMemDataTable1.Fields[2].AsString);} + +{ AStream.Clear; Bin2DataStreamer.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); Bin2DataStreamer.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);} + frxDBCabecera.DataSource := DADSCabecera; + frxDBCapitulos.DataSource := DADSCapitulos; + frxDBDetalles.DataSource := DADSDetalles; + frxDBResumen.DataSource := DADSResumen; + tbl_Cabecera.ParamByName('ID').AsInteger := AID; - tbl_Detalles.ParamByName('ID').AsInteger := AID; + tbl_Capitulos.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Resumen.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Cabecera.Active := True; + tbl_Capitulos.Active := True; tbl_Detalles.Active := True; + tbl_Resumen.Active := True; frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); frxReport.PrepareReport(False); + //frxReport.ShowPreparedReport; finally - //AStream.Free; - dsMaster := Nil; - dsDetail := Nil; + AStream.Free; + dsCabecera := Nil; + dsCapitulos := Nil; end; end; diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 2133b44e..4e84330e 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -1,7 +1,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente OldCreateOrder = True OnCreate = DARemoteServiceCreate - RequiresSession = True SessionManager = dmServer.SessionManager ConnectionName = 'IBX' ServiceSchema = schPresupuestosCliente diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj index 3070f7db..ea7653a1 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj @@ -43,6 +43,8 @@ FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + Intraweb 8.0 Design Package for Borland Development Studio 2006 PresupuestosCliente_view.dpk @@ -51,11 +53,11 @@ MainSource - - - - - + + + + +
fEditorElegirArticulosPresupuestoCliente
TfEditorElegirArticulosPedidoCliente @@ -577,4 +579,4 @@ mtException_AntiFreeze0="The application seems to be frozen." Count mtInvalidEmailMsg=1 mtInvalidEmailMsg0="Invalid email." TextsCollection=English -EurekaLog Last Line --> \ No newline at end of file +EurekaLog Last Line --> diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res index 8b251f31..1641339f 100644 Binary files a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res and b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res differ diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm index 7c2396af..8a8b2d81 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -2,19 +2,20 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 332 Top = 147 Caption = 'Nuevo pedido de cliente' - ClientHeight = 631 - ClientWidth = 674 + ClientHeight = 615 + ClientWidth = 749 OnClose = CustomEditorClose - ExplicitWidth = 682 - ExplicitHeight = 658 + ExplicitTop = -85 + ExplicitWidth = 757 + ExplicitHeight = 642 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 674 + Width = 749 Caption = 'Nuevo pedido de cliente' ExplicitWidth = 674 inherited Image1: TImage - Left = 647 + Left = 722 Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 @@ -126,7 +127,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited TBXDock: TTBXDock - Width = 674 + Width = 749 ExplicitWidth = 674 inherited tbxMain: TTBXToolbar ExplicitWidth = 488 @@ -141,30 +142,32 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited tbxMenu: TTBXToolbar - ExplicitWidth = 674 + ExplicitWidth = 749 end end inherited pgPaginas: TPageControl - Width = 674 - Height = 465 + Width = 749 + Height = 420 TabOrder = 1 OnChanging = pgPaginasChanging ExplicitWidth = 674 - ExplicitHeight = 465 + ExplicitHeight = 402 inherited pagGeneral: TTabSheet ExplicitLeft = 4 ExplicitTop = 24 - ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitWidth = 741 + ExplicitHeight = 421 end object pagContenido: TTabSheet Caption = 'Contenido' ImageIndex = 1 + ExplicitWidth = 666 + ExplicitHeight = 374 inline frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente Left = 0 Top = 0 - Width = 666 - Height = 437 + Width = 741 + Height = 392 Align = alClient BiDiMode = bdLeftToRight Font.Charset = DEFAULT_CHARSET @@ -177,10 +180,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitHeight = 374 inherited ToolBar1: TToolBar - Width = 666 - ExplicitWidth = 666 + Width = 741 + ExplicitWidth = 741 inherited FontSize: TEdit Width = 57 ExplicitWidth = 57 @@ -223,14 +226,14 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited cxGrid: TcxGrid - Width = 666 - Height = 365 + Width = 741 + Height = 320 ExplicitWidth = 666 - ExplicitHeight = 365 + ExplicitHeight = 302 end inherited TBXDock1: TTBXDock - Width = 666 - ExplicitWidth = 624 + Width = 741 + ExplicitWidth = 741 inherited TBXToolbar1: TTBXToolbar ExplicitWidth = 548 end @@ -240,11 +243,13 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente object pagInicidencias: TTabSheet Caption = 'Incidencias' ImageIndex = 2 + ExplicitWidth = 666 + ExplicitHeight = 374 inline frViewIncidenciasCli: TfrViewIncidencias Left = 0 Top = 0 - Width = 666 - Height = 437 + Width = 741 + Height = 392 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -255,24 +260,24 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitHeight = 374 inherited pnlSup: TPanel - Width = 666 - ExplicitWidth = 624 + Width = 741 + ExplicitWidth = 741 inherited eIncidenciaActiva: TcxDBCheckBox ExplicitHeight = 21 end end inherited GroupBox1: TGroupBox - Width = 666 - Height = 409 - ExplicitWidth = 666 - ExplicitHeight = 409 + Width = 741 + Height = 364 + ExplicitWidth = 741 + ExplicitHeight = 393 inherited eIncidencias: TcxDBMemo - ExplicitWidth = 643 - ExplicitHeight = 376 - Height = 376 - Width = 643 + ExplicitWidth = 718 + ExplicitHeight = 360 + Height = 331 + Width = 718 end end end @@ -280,55 +285,456 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente object pagPortada: TTabSheet Caption = 'Portada' ImageIndex = 3 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 - object edtPortada: TcxDBRichEdit + ExplicitWidth = 666 + ExplicitHeight = 374 + object Panel1: TPanel Left = 0 Top = 0 - Align = alClient - DataBinding.DataField = 'PORTADA' - DataBinding.DataSource = dsDataTable + Width = 145 + Height = 392 + Align = alLeft TabOrder = 0 - Height = 437 - Width = 666 + ExplicitHeight = 421 + object Image2: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D6167651C0900004749463839617300AA00C400008E8E8E + CFD3CF8C8C8CFF0000BDD6C697A997ABB9AB8997897888786874688689865763 + 574950493944393539355F5F5F8A8C8A898B89878B87868A86888B88B7CCB7DA + EADADEEFE7FBFEFB0000000000000000000000000000000000000000002C0000 + 00007300AA000005FFE0238C64699E68AAAE6CEBBEE90360746DDF78AEEF7CEF + FF401D60162C1A8FC8646EA86C3A9F4E26744AADE2A4D6AC5689DD1A2FB48BC5 + 1B25928104CB187309D002E973B12BBFA9DDB4CADA8227D8EB3C74806F703501 + 6B62346A35177E834B668F6169783C6018049717979282646A9C95407B996B8F + 9E5E171518A649019B8EA7917516993B7C04B9048739B59C83A856AD3A1615C6 + C7C8C6C38CB675C154B515B13701C9D6C9C36A71CEB35B63CBAAD7E2C7BF62AB + 80CF55CBC5E3EDC39BC0DD80ECC9BB8770E2CBB2928AC8DBC4048E4DE38721DD + 168160E088C221465F27796702EAA121D11841230685496394ECD7C51E19AB6C + AC51D198C78F3B42FF4E6974C31A4A202AA1BCB241CFD8C230B572CDFC18F3C9 + B06AC84E9644C61322A0A137C2E5BBD8D34A3D1BE178D5C85914653251BB3055 + B859F523364663C20D44D9B44A49536B803A245896CA591C125FDE683BA5E6CD + B8726BD085A274A40DBC790B1A05E40F07BBC034F6FE68C3B5DF3186167BC03A + 9945B1E47F3A902D0BB8F6CDAECE532CFB149823F20E31F0CE887E12D4F0D6C0 + AB2F77260D1934BAC1753148D5A1D4A18593BFF7D5C19C4329E5E2718E57C6BD + 328844E57626DE96947A0750E850853F6AC6A39A6D7EB1D154974C99FBC34789 + 182551357EFAC55ADF15D1C4BE25BC9134F4498E05CFDCCB34969CA481565664 + F597CA54BF99220DFF5A79D9D74400BB65720E620E22569F8116BE546186566C + C821151E7E084588229651A288249E98448AC5BDE2E26F2EB621231EBC3416CF + 45066060C00539F2A8A38E3CAA42C88F055EE446056DC028648C48B202E13D5D + A968618A09B66198298CEDC1871850BAF8061BC1A98661125A426881014F9A89 + 871A88F0718F9569C6999F896754E9E22B5CDEB1C96FF0BCC2279B6C38790897 + DC1034E7872C32F224186C26740F8CC1F1B1C8185E9EF7889E6CE099259F8BCA + C8A86E7CF047DD266090CA28A98AA4875AA0AB5A2AC94EEA95CA6918F06C02AB + AB83C0896AA56EBAC198AC36CA9128549B18C0272B3252DA68A7A03035A69485 + 5E945E526069A29EFFB38040F8AB998E429A66318CA509AAB637D631289BDCEA + 36E821BD6AABEDA6E9BA57E2A1F242DBE0B3F692316CBE20E1CBAF16FBFE2B84 + BF02571170C173118CF0880A2F4CA7C3B8425CAFC4D1523CB1C5FA368CF11C1A + 6F0C53C71EFB7030C4233B5CF2C20635C4E6CA2CB7ECF2CB30C72CF3CC31D397 + 4EB021B3D2AF2539FB00DD335A4A0A69927B32A69B1871F0122ABB1F76164C7A + AB2893861FECAAA1C7677A540306928446DDB4724F5FB2553102FAB1891EC5A4 + 8D41D64D0A7DE4DA1FB66743D8F2E93CF4224A2BE286D2BE7EB3088772EB6554 + E03D139BD2E009B5A3F8E28C37EEF8E2B41E7E1ABD18132ED8E4855B0236E299 + 633EB0E79D33B439FFE83A534E6BA9C85A8E92E5741B220D3EBA4843602F4BDB + 1A2AE0A3F3F6CB6F2519E0FB613ABCB9EEB416B2CE7916A68F2AB9EEA11797BB + F3D44EF5051B9C6019A85CC693FE5982C6866989A48BC2F8E4ECAB3F2FFA5FF4 + AC6D80693C24780FBB6D50823320D9337F6D58A6FA8CAAACFB5FFF52FDD06B5E + 52CC37C0E26C21795A00E0F9A6720863F10F3B59A144A8D6E72624ED4D52A0BA + 839BD8648F1AED4D5BDBABDA1B2865B8CFD98F229B2840019261ACF6A96147C6 + 3AC4D8140207D4ECC849C56A081CD0B4153F7DC600014952350695883BCC4E81 + 05ACD6F6D0059D49C187524CE3459226D510D4A16A68994A88BA6C072818212B + 72260CA0001941C0FF128E118C90205D1206C0C636BAF18D708CA31CE748473A + A2F10AC76BC200F2B547EA2D4F8C4A1880A90649C8421AF290884C24A9FA8844 + 3306F2022A24640114A9C84952F2928C2C23199F20480454E00007300002CE84 + 8050FA6E01A034400110A0C20310E000AC2C80010E508054AE7047974C6426FF + B8403D5E2096A15C00016A09CC06B49296A13C40058889CC55264095B0CCA52E + EF983035224190D2A46410B349C95D86B1978F648FA9F8D40870719390E43CA7 + 37D378C247568095BE83E62DE37900DEC952952AFCA431F019CA02B0E302B454 + A5EF4CE9CF6E52736E797C642D17504B5082B2A10F5DDF2C59998002240096A0 + 4CC0026659CB65EEFFA8000DA8A80A1180CA02644291EBC4A3358F20C89509C8 + 02FE64591A9451CE5A1CA09C2FFD8D25B5C1A67AFAC2A07EFC66127DD988429E + D454472DAA528D3A4E7226B5A8494D6A4AABD9CE353602013B2A060C55F8BBF5 + AD301304C02A24D1764F597A9447AA34C92CB35A01510ED3586D95E5220F2AB8 + 951A4190B57CE6442D5A4B675A80A1B48424031000D05AFE7585B2BC68011670 + 818A5614920B18A549159B00563294A1279D2A42ED5A04410604882F8429017C + 578000A0094D6055651B4C220D202ED3B4A38DAD848669B5AF8E16A640C4E505 + 345BD7AA5EB368874C6721854B2A7212979BBC4D4C42AD6A0157A266A6A44200 + 67B6A7329F9E366DFFA3AC8525CF39D7A0B21390565DE84091A9530420A0A2A0 + 0C08614BE90056821298C90C2C77BBDBC84D3A4190CB34E999D617CA46047499 + 6D6DAE2AD62AD17D7E92B45C9BEF6EE9AA5CCE06019B97D41428141CDCE326F7 + 72BE65298FD296861D6DA59E60F524402B3BD2551E200122150368D5CA80775A + F4C4154880031AEA580B50D49F176E9D2F69B95863A890C4A504E86055B14A7F + 0E53BAAB9C2591CDEB5E022480000DA84003D24B52596E94C9FE64C02473BCDC + DF2200B6AAA8A749E130C9D14E52BB6D15686BEFA9CFDCFAB8111C9D24478D15 + C9D17AD5025C7630105A4AE13E6392C11806EF6F555862589256A48FC5EA682B + 7AE459D212C07E36A1559E337CD7304FD201B965684819806220A2D8A2327631 + 8A09CB0048469ABE9A04F48379244BB946A3AD000DEB0A893CC99BD6D2581515 + 6D82FD7C61087459C3A70E76212F2C81C1C48707754CB6B297CDECBAE9C0D7ED + 3BA3F478D90B6983C620DECB1CF184CA1B9A79FBDBE00E77CD7E70328495BB60 + E71658BAFFB56E7EB53B5FEFB617004400837ADBFBDE2788C00414C0EF7EFBFB + DF0AA000BE47F0801000003B} + end + end + inline frViewRichEditor1: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 596 + Height = 392 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 521 + ExplicitHeight = 374 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 517 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'PORTADA' + DataBinding.DataSource = dsDataTable + ExplicitWidth = 596 + ExplicitHeight = 395 + Height = 366 + Width = 596 + end end end object pagMemoria: TTabSheet Caption = 'Memoria' ImageIndex = 4 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 - object cxDBMemo1: TcxDBMemo + ExplicitWidth = 666 + ExplicitHeight = 374 + object Panel2: TPanel Left = 0 Top = 0 - Align = alClient - DataBinding.DataField = 'MEMORIA' - DataBinding.DataSource = dsDataTable + Width = 145 + Height = 392 + Align = alLeft TabOrder = 0 - Height = 437 - Width = 666 + ExplicitHeight = 374 + object Image3: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D616765821E00004749463839617300AA00F70000DEE6DE + E0E8E09C9C9CCDD5CDDAE2DAB1B1B1E4ECE4CDCDCDECF1ECE2EAE2D2DDC79FBB + 9FD2D3D2EAF2EAC4CBC4F2F5F2DCE4DCF7FCF7E5EEE5606160ADADADD4D9D4C4 + D5C4D0D8D0939593D8E0D8A4AAA4CCD2CCD1D5D1E6EFE6D6DED6E2EDE2C2D0B3 + E9EEE9C1C1C1BDBDBDE4EAE4D0D0D0CAD1CAD8E1CEB2C5A1DCE2DC979B97D3DA + D3E8F0E8B5B5B5ABC4ABD6E2D6F8FAF8CACACAFBFEFBC6C6C6D4DCD4F0FAF0EC + F4ECA5BB90BCC3BC868986C8C8C8EAF0EAA6A6A6D4D6D4B0C39EC4C4C4ACB2AC + E1E6E18A8E8AB8B8B8DBE0DBDFE4DFE9F4E9D1D3D1F5F8F5D0DED0888A88D8DE + D8E0EAE0DBE4D3DFE0DFA0A5A0EBF6EBE3E7E3DEE7DAF4F7F4DCE0DCCCDBCCC5 + D3B8F6F9F6B5CBB5A3A3A3E0E5E0E6ECE6E1E9E1797D79D7E3D7A8AEA8EEF3EE + E5E7E5D7DCD7B9CAA9E1E2E1D2D7D2CBD8BFC9D6BCB7C9A78E8E8EF2FFF2F1FF + F18C8C8CEEF7EEFCFCFCFDFDFDFBFBFBFAFAFAFEFFFEF9F9F9F5F5F5F8F8F8EF + F7EFF6F6F6F3F3F3F7F7F7EFEFEFEEF8EEF1F1F1E5E5E5FDFEFDE3E3E3EEEEEE + F2F2F2EBEBEBF4F4F4E9E9E9F0F0F0E2E2E2DBDBDBE7E7E7E4E4E4EDEDEDEAEA + EAE6E6E6DDDDDDECECECE1E1E1E8E8E8F0F8F0DEDEDEE0E0E0D4D4D4F0FCF0F1 + FDF1DADADAF0FDF0DFDFDFF2FBF2F4FAF4ECEBECDCDCDCEFFBEFF2F9F2D7D7D7 + F1F9F1D8D8D8FCFEFCFAFDFAF6FBF6F5FBF5D9D9D9F1FEF1D6D7D6F8FCF8EDF8 + EDF9FDF9F2FEF2F3FAF3F7FBF7EEFAEEFBFDFBEAF3EAEBF4EBF3F9F3F1F8F1EC + F7ECEBF5EBE9F2E9F9FCF9E8F2E8E6F0E6E7F1E7EDF9EDD5D5D5EFFAEFFCFDFC + D6D6D6F5FAF5EEF9EEEAF5EAE7F0E7F0F9F0E8F3E8EDF6EDECF8ECFAFCFAECF6 + ECEFFCEFF8FDF8EAF4EADBE3DBF4FBF4FBFCFBDFE7DFEDF7EDF1FCF1F2FAF2EF + F9EFDDDEDDE4E5E4CEDAC2E9EAE9F6FAF6E7F2E7F2FDF2FDFFFDD8D9D8E3E4E3 + 8D928DB1B3B1F4F5F4F5F4F5C8CFC8F2F3F2F0F4F0BFD2BFB1B8B1F0F1F0E2E3 + E2F7FAF8EAECEAE8E9E8E6E7E6EDEEED838683D1D9D1E8EEE8D5DDD5BBCFBBEE + FBEEBFCFB2AAAAAADFE3DFF3FBF3F3F6F3FEFEFEEFF8EFFF0000FFFFFF2C0000 + 00007300AA000008FF0027B01948B0A0C18308132A5CC8B0A1C3870927A4F947 + B1A2C58B18336ADCC8B1A3C78F2035A69918B2A4C9932853661CA9915F2E2453 + A6F0B378274F9D3973EAD0B1C90F8E9B372A4BBA7192AAA8D1A348932A5DFA6D + D045961891EC98F7601F821DE72A3A8244E80E224384202DE2A7884FA099413D + D229630413264B6EE1BE8D2BB76E5CB773F3D6B5E42903368B502DEE9B87C400 + 3A2C1642EC4040710E9E42780229AA2399CFA0418EF2A4F5D803D51A356B3E83 + E65B0953255895520FAB64A95725359E2A7942C52CF6306B9652F3C5E4698D3C + 381503578C0623890B0B168EBF414231CF1D3A6F0205CA4387CE1D3C7CDC6CF6 + 282F3468D16B8C10FF10F3C10000004B123C83E00C420654093248B8C5C54006 + 6901022C799680C0870E6B30734870245D8480175854C18F1B6EA0F5CF1C79FC + 54C78470C411471E11F2A3E186FF70B89D3C6A8016A277B648B00B14BA24B0CA + 07C57041CC325C1C838901BAEC328C2C461C634932B2F062C48F46F0A2062603 + 52245C45485CB140005BA0530F0C15E581131E71D491071F70BC31481C6E4486 + C71D730C42591D786CF74F779F7927E29ADEA9B9C631B874B08B2C0068210131 + 1DE82201149518E04907A01149A046FB2C8000005500E32085D439F7251C135E + 78474D6E8449251D66A2F9DD889C6EEA2617120010807A19A46000171D182001 + 33104800412F6B08FF6A64811581F10F302E6CB1C30B149D03CC3F79C4810783 + 77D471C720C50E02C74E6E5C3887991681C8669A9FCDC61A2AA8CCE6C96C9674 + 63092AB2A566CD2FA8FC62095FDDA0326491FF1CF9CF14FBFCE385056F78110D + 3008FC0A07753F15AB93855B4E1A071C60425B91A66E8688CA2EBCEC22C12F25 + CA72CB07BAF0520C2FC9AC620431B7C8224B321D48204B071D58122BBBEEE672 + 0E0C7EBC10801FC0EC632BB003BF01661C81D0E1061D37DDA1A1C117210C9EC2 + 9530630F6ABCC5068B27C9C0C2CC30B9A5E6492BDB9ABBADC9B2B64B6B455320 + 8084324982C11845C242B7D31CC77699AC834053242D78D4760AF7A66AF4E20C + 2EDC3823712F124CFF03C52DB7F4B2EEA019C1C0CEA9F05AB4614F6FBCA16196 + 3E35CE8FE39303FDF68871B38939DD9E2CF32214BC2CE3092EB0AC720B31B00C + 3E2B471E5614C8757AE0314720783C163B1D7AF0C1C7B1AF5BDEE6D0D3D20DF7 + 34B6FCBDCA30B610F3B72DC72CF3CBC9849744B9E48D579F65F58E3B6EB9DC99 + 03FF7B88B354BC8B2D9EE0C98B2C293A638BEA5A5BE40B25F0C72FFFFCF4D76F + 3F25DAA575396BAD284C748896E89F35FA1722354CA312ADB0C4305AC1C06178 + 822F0C649F701647C10A5AF08218DC4C19BC83895DAC82179ED8450270A18B8A + C9A21706E8C02F02601E26F0E73CD2480100B8C0055E188005A24A4002D6E009 + 946D2D0E9C08A210FF8748C4221AB188803013254664895F5462159858852D96 + B68A5E30E389ABF004C66E0105092C8317B6E8D82DF406B86570D116AB504319 + F2D73ED71D21050420400AE0384739C2D18E78AC631DF348C71464007F9BB9C3 + 063AA089421AF290884CA42217698C0AAC0330B4E280E63CE5BDEE716F5335F8 + C676DC2089233080019E04652847F9C95082B294A814652A7B408EA7D0AA023C + EC00FA48808B5540A103683400C348D0014F042F61D3AA40DB86B911E154400D + C9D0A134A44100092400541D1055312490424BFE5234C224A63621699163628B + 2FD370E20353B307A835D133C2BBA49AB2B9CD6D1AF333B961A03C19882D0656 + A25CDB8A4D25C805FF4CB8B1B39DC43426686C71A20F10037D1238460778D18B + 1EA11002D200C031B8F08C345E3344FF0468DB04BA86D454A217C980022C6C31 + 8C55AC42367C59853358B08555C08217D350273635AACD77AA0116A8C1296B24 + 80CB63F054630630002F704149E1512BA33485D63BD710D25D1443A8B0508F34 + B8A10500E8491A44606668B6CAD5AE8606A949DD0E47CFE5096A50E35BD4A841 + 6C3C610DD93C30ADDEDBDC3AC3BAD1577EC616BCE0852E8861005804A917BB38 + 463A8B3AC9AFD21568C6B4841A52A3314FC84236BC99C52C06FBBD49AA41164E + 38ACC18433070E6CE0B3A00DAD68474B5AD25E836D9A4D8BBB52CBDA93ACB6B5 + B0FDC86B634B5B91FF6CADB6B85DC96D73CBDBD561C41FC00DAE70874BDCE21A + F7B8C84DAE72977B5C8CACD61F14E1D0E23A5411D462E467D48DAE83AC7B11EE + 5E37BB8A0B0A745D9991F1766212238084284A3082479C62048E98011C18C087 + 12F0036D7198541D06F1BA42CC010E5F82D0630AC1B3C9C0212737A9501DB234 + 999C70E90D7A98D44E60978742C0C111C822D322ACE386053F2B24E3E5E66F29 + C208465060129DF0050F1621890224A2058A388021860088AFF061128798C425 + 1E010A5F64621093C84420503C0944640214C1304421FAD08844FC41107D48C4 + 230A7189433C22118458C49019D1883FFC21C79710C5250AC188415CB9CB97E8 + 83200CD108449424FFC4D1B3C8783148E73E14E0CE78CEB39EF7CCE73EFBF9CE + 83A03376410267DF5EA4D02019F445805211467BC4BB1B51F47610FD5C8AF041 + 0F83E00324F080E9400C623252CA0320F4C0083D4CA7108AC0031D1441084014 + 820F74280464F800884CF357117A18F520E8100742142277778803AEF150162C + 717A1080B0892376470738B8BA1081885D1D4E42E9DD8E97108FE803930FC188 + 3F8005118270041C08D107423819128280042020C108AE983B1382D0C3220C71 + 09733F82109930C424B44D883F00421284D0C324BAF2874CF4E11108E7C39517 + D1874538C2DF8A484420FA60883F2022DB8C80B446AA5DDEF066841F71E08866 + CCB45DED7A1CBC51FF020EB59D6BEDDEA696E32376F961617E6899CF9CE51DB7 + 7958692E678AA83A0E93D350F53434B00635EE1F0D0A3A3F7CB6F40A4AEEBE4A + AF125022B46090E7E16714A49CCFDE7075A04CCF7152D77845783E768A0C4214 + 92B844230E710A4628E2108D78049B3BE1884C48C2BDA7F0F1214051023D1CDC + 11A09004BDF3DD0847D43D116ADFFB244E510724EBE1125F3944261AF1864474 + 821292100524324188BE23A204A2F8B22FE82D8A465C22C8A020C447C84E91F1 + BEA1427328BA4F642F7B38544810033BF01CDC607B45708952161A56202A64A1 + E2DF77F7737843EEAD64FBFF6A7A60C93F30EC0766A1FFFE7760ABC779CC754E + 53D6FFC3F50C2258FFB3DF50870569C80D816010EFF9016B30F1830EFF65D082 + DEE00629D19FF7AF577FE3F870FF37C43EF971001D3EC17BE1871375807F0DA2 + 7F70C00F81B06007887F1BA77D35F70F7AC00092D009A2000A8D60777FD0085A + 76088740098F200987E0159D500892A0083D667A99700755760A97D00980D009 + 24780A69C76486B0088D500887700986D00797700A8BF0070C508189100CA000 + 0A7D100C9770090C700AA030828EE0838840837AE00B9DD008A7B081A0500811 + 485E31777FBC677BF4477F3A337C0C528669D82003786079907EFAA77E0AD838 + 3F9186FDB77EE1B7867958870BA27E0B388072E86813286283D868D9F30F82C8 + 7D69E17DE3450790FF806B89D0707DE008E556268AB88812D873FF8007D8D607 + 935071FAF6088BB0086C748928C188A60850A8988ADBB48AAC484CAEF88A6D13 + 8BDAA57183365D64738BADC33A92A68A995876FFD00999100382700AA2100399 + 700931E00825F00F8DC00025A08307000925D008345865815002A0C0004E3603 + 80700062168383700878500207C000811003A2F0083B66088790088C4057ABF8 + 078990059D000A0720008870083CF00714900833400114D008253003A0500023 + A0033FF0033340073A500222C00088100307C003A030030C9907220007053004 + F0350323100318A903EB1503F2F88BAD47118DC325BC1707F4C725F157218068 + 7B75C886CDF27AF4FF4793F2F7870F46800B887F89E88B603881BD9868DFA512 + 6C2376D0B28AC83607BC06213A91134B8707792008D6012115126139A10711F2 + 188E21257560217AE094569207CA1296B16725846019D3E60871107B0213086F + 591DF0F7967300080473070DF87E6199251CB18A7A7008E7657A7DC000A5D709 + 70000A7A708159980999C007832909806008A7B098BEC08E87F007A080088B40 + 8377678C93F007A2B0085C368293608D8F900788B0856AD7099080085E060A3D + 28097CD00799D0839DA0768F197782D0087AF09728F97DD545398B1669A8855D + 82189416A1252AD96821D721DCA57CCDB911CA598886A689E7373949B7219473 + 7EAFD713D029740BFFD8138FF31382365D4F677E146474DD295D20B738DB898B + 9A48889AF870DE168989509B178708885008AED608B699088640077F50647FC0 + 08864089997925DC069B35466E78C008E4F607ECD60777200825C608892016B9 + D30707AA6D88C06E4A666EEDC60F84400892108970F0087EB7A11AFA077C805A + 4C59088ED06A7AF06A8C100880B0A374403B8B906E84E00875E0083BCA078A20 + 088010167C40259726083973695C190890000998366A61826A80106F99460780 + A0088510A43B9A6B833089F29669A6060867010877F06BD211088BA0082A078C + F429A7D7A594695194268116787A94F31967C07807E3494157C70FE5B7387D79 + 9E42C7741EB22185FF4AA8BB878B19549E174468C1395E9E6808FF9607535A70 + 93C0071D4807882009A27A0888609B1407081AFA088C300993706586908CD8D6 + 0893000975206F9DE06D93E0088B300917A86D8FA0088AF0070E07A058260951 + 866A8F9009BC2A7817C7A5A479071EC194D371077C1007C84260BC0619CB026D + D0066BAA762974300879801D5639087AA007E14A3B3D83083D5A3BC66216C782 + 3B68036B9B560780E018BBF6967CD0ADB4731D36E1181F069C43D9A7D465A7B2 + D811AB08217980AE80007407AB12AB6808A2D00930780A99508A0FFB66959AB1 + 40438BAF2807201BB2220BB21A3BB0746A8A72E007A3200311500A9BF0B2B460 + 0A2F6B0A11C00A06FF2B9C269B928A28071A2203AA1001D5600776D006445BB4 + 46DB0676B009369B7D398BB33697B2AC1001AE100942DB067BB007FD90B55ABB + B5FDB0076DD00FAAA094AB480850E6888290088B00097D800790F00F82106E7D + A0339080136B59668810A18970B683F083A00A084BBA8974A0A18AF0087C3021 + 88A0086576A46180004B601F4175B55C1BB95CDB0691A00A7280B01BFB0F3F98 + 052418032AD099592008148007943003EC25026F30903140018640010C300407 + 80073170081860BA2320020570008230046F70BB7870007FD0023360083A5000 + C12000DA30025FF00419A0010E80012B8003923BBD5BDB06A1300A98DBB4E335 + 087860083A0A0889FF300885F0077AF008D8816B5CEA0693F0B690F0704E8607 + 493A087F106D5C8A086E2A087050086FDA158010AE8280088E602ACC741F2B60 + 002B90001D40BD0ADC0F7610011AE7B1A9C50F7EF00AA130B45FBBC018BCB576 + F0090F9CB973C007D079604107601A8207DA632142179E33D19E41A77542777E + D1F000AE40B41EF3B5BC800CC5D00612800CFD50B45A4BB4597BC13ADCC335DC + 0F0D300E92039D04DB461368088B5965A040098E60798A8063A0700A7B370763 + 26091BB87689000A89E0068690827FF00894700A88200A856008ABAA08929009 + A2700D62E00003E00117200F17300010600226F00C34300019300003B001B270 + 0126B0022B000007FF3C001770C7805C0E2B90C70460006A7B0882F007C68A29 + 3A3BA73AEB7F398160CDC2256FF9AFE5F75F6E8933D4875FB95725C817CA0038 + 075360030D800BB220591E230B36800B0D6003B3800BB3E0310D800C00E0CBB5 + 2C31C5200DBF2C590D70CBB260073000290C62218E06C18A76B32121C1A5D0C3 + 19BCCD0ACCC102CBC9387B0737FA6A347A078EE094397A168E701D8570198A00 + 08E7EB5FB33329B486AE7C90071746950F4002D2204B09404D12C005FF6C0023 + 032AB3F00C06300B0630C9CF104D3AFC543A6400C5201F290401BC200DE7D0C1 + DA4B11A4160CDE067753BC6688109A7C406E8B8070BDE98EDC36096C9BA598CC + AA3FAA08812009EFFF10058A0CC8CC440F1B9001047001CF201F1910D4D26002 + 06F0D317B00282BC0201200FEE71D419400319B002F23000E50000414006D90B + CE88C611A5C85D58A711721001D5ABB53BFCC341ACC0C870C13D8C0B921B09A4 + 10AD994B9E2D8C88953313DB65D76CC368DCE507628DB592FBB56A2DB97630B9 + DAACB583ADCD76F00A779D735A4D1185C09991486E889B0789A00782A03B8200 + AC7D20D3642B0879E0A54E3C088BE09F6E90D982E00E3B202AB8800B09302AE7 + 0101140500100000D250435C304300A02A1ED001CFE02A10150019D00114250D + 1EF00C0130C90FA00E5FEA6BC7B67D7EAAB36E6A085056C6AD7A6334AA6E88C0 + 081727DD7F40088CFF10B889E081962D167320A089900FF6F10CCF0000F4400F + EC4D001900011E4000F4B002F07D0BF2ED1E0170DB450DDFCF104344A02B5A50 + 015AA00554E004D8400769EB64F6EB088AE0DCD779B21FA1947A4A116E900B91 + F0C3B7C0C3DCECC3A1E00A11400A32E0071B02B27020B225DBD816BE38B18788 + 4E0114EF973DE8F920D49A256FF90F72A00CB510D8197CB5401C0AA5C00AC040 + E2B398B953080A97100C6E4C0943D807A1C7078210780C000A5F160C793BC668 + 979B93200AA2A00832B0E3DC1CC4941B09A6400A247EB9B098B990C23307682C + FEA77BB283211862802E8936A48C213CB3093CBEC05E6B07A630E4D60CB1994B + 4CFC100187BDCD48FFFB09618BE61A05C1662207B110097B2EB97D4E0B361BE8 + 9BE1E8DBE107339CC15F1B0A11E0072F37E840C30FA570E8D40BC4A540E4A3BE + D188983FDCA911DD69E1D7F50A5D9BD6918BEB485B0BB9B08B18C1465D8D7D16 + AE9C95831129EB0FAC1EE13ABB845BC1078E00AA8370A20ED76A7880A17CB008 + E60A6EFD9BB661110501200DF1DD0FEA510CB24D03060001101002F0F0078AC0 + 15E7EAD9D37D0A89F079161708D3C86AB67900B9FA648FD00886503BCF4EA4FC + F9A38EC00FA4F00AA5600AAEE00F9F200C367BB995F60FC9E608A8C60864266F + AFB9667D90A493A09A492AA57ECB0886F707EBED011E60EE0100001210511E90 + 0044E004593A098BFFC099E966BFAFFA07C100098F200AEEB808944008EDAEA1 + B22A9A87F0AA7217088850957C600888800DEB1005A1C0C045EB0F406C0A3311 + F11FE192137EEA635DBDA1400A982E3DD5E507ACB009190EC45BEB0F411C09D8 + 1BF1ED19A81504F7EED921A490D693DEC36ECDB3189474404767B6B721D00174 + 7DDFB36060035F3B0B92ABF6599BD84CAC89AC9608851003675C8D9770073170 + 0AE7B58D93000AB9D9097480078320088F9D02ED6D001E304310B0025C400FCF + 400451B0086B1A052140054510045A000EF1E6768CF0038D00BEBE20021B187A + A28008BEC0E5A439038E89C505070E1C400338E00004500E783C00BC90F63FFC + 0A8D0F8C5C3A6AC1FFE0A14516B794B0D9E0DBDD795B62171A6B7A4008B70D01 + 2C900029D4DACE4402DA406BED800001D000CF1454195004EA00108AF82C9AC4 + 480FA147A7FE2842B4E811A43E841205D2F3E78F4347DA9C2420106045066919 + 00702190A0DFC97EFE50F653F52F4D9A7F3165FEF337F31FBF373671DAD4C92F + 263F552B85B6F9344A0E3F52B5DAEC19DAA6962A9F3CA54A95E3479552A15951 + FADBB3A74D283F2E61F2AC39D5EC593FB4DA68FD1A4BCEBF58A1D66AEDB79655 + D4B353FD98B233376BD73681DBD8F167C74E24A862A596CDDB38A61C6576B432 + 55F596DF36C9744F120DEB5867AEBA6C07F7AB456B53A966FE22348B15F5E562 + CF8EF9BD9A6CA754FFD45891986A3E6927D7DBD8379545F27BD26B9B489B7291 + F2C3CF393F7FCE812B261B3C2F3F5A9957B6D9D4F95F50DE28F798C2EBD9CFA7 + E2750F9B6A0DDBE6EBEAD6CD8EAAB51BA59D4F32666ED2CEBB0DADF2F23A6A9B + E2BC8AA41419F899CE26C664828F41F9CCA26DA848DC9AC995F0C4033036A084 + F2EA935C028C6FA607676A304299E428A5BFBA220890BF0CFBB16343CF46210E + A5C13631AAB113A98310459D4CB1AFAE4FBC9389AF186714D12CF036B34398E6 + 9E3BABC71265EA11453F3014CF8E08168CC994184FDA6449AA84F1EB493F72D9 + 64135364F0D2449EAA8CE9CA086DDCAE3BA93609B39F311D9363945098F20ACA + 08EA0AACA837E78CFF73AC1F81948914EDF640542A2D335452B615FBF1AA3B52 + 42DB6C9344695AD43D47632AF4BE6DC8443243498D348B9F5A24FB6F147EC014 + AAC2A9A86414CE52FF91E354944831AB993D43D1AF313F02DDA316A3F8D15328 + 3B5A22D5C15DADECD5D74D769394CC7F3A0D3312611B6305A5CA6E7A76A56813 + D5755A20E5F864256542ED76CF7E72698C9F526474A5337E5C61718F2ED9F591 + D752DDDD8CC6A9720BB38D72D1AA662D69CDD5AA1475471DD151834F8A20AF2C + 87E4ADCFB3F88186B451647296C57EA05972DD8B81F42694932229F92C1551A6 + 0B2C8EF569E315BCF0D50AE79607B6B6D7973555B9B1096394594068704DB149 + A18011584E9AFCB1FFFA6AACB3D67A6BAEBBF6FA6BB0C3E6DAE26B7992434B65 + 6483394961E4F5D51461021C05BDAC4CF18CEAB2E5D0339499AF73C563BA5AA5 + B91456BCF419DA221DC3FB5A39A0B9B4313972B199AE70A792E315A979EA74C8 + 3D7C733BA6C57B9503CCBB3C8B45D330793E8B15577FA27B3B57B8A5B66CAA4A + 59DABC8763FCAAF5999CA36A5C0FFB21E5F3D00B56E5763F0B059CAE80E53B2F + 3D3E6517DA51DF7FE267947D834B167AADF0E3B7FA9B681E97F37A652F3EB626 + 4E00E10614501803847BD0F0211B1F3C9BCD8EE53DB4A374054E18E3867BDC00 + 0456F0011AC660053304A92F2BD983B1E4753ECF48E1046700810F4E70023364 + C30A2750C0186243FF9FC90D2576FFE81F08E8D7040564C3841354004FFC00A3 + EDD0A26F64A3DD4CE4F039AAAC2A3C7B00178AFEF43A1CD18277D3AB219064A0 + 1BDDE12942FC88051051678AE6D0B088D4D3216F3AD7BC0891E24638E28E8820 + 3845C8B10289AC4A1C8A90E28AC088A71FC2481089AA054633662A75D2A3991F + 68B314E37C25027E00CE17E1C831276A06399533E32B42B140279982143EF1E3 + 1FCD220731722F2B6DC81EF546510AA5CC25309188C0281AE9C8A9E00B7FAC8A + 161D1D23834D44C2505EB14328D8F046505AA72A68D45D2D4224BAEB91E215D5 + E84B609400CB5806470EC008E46490533AC6F1C30FA460052954F1CA60968A1F + A0B18F3162668C48FF182314C668032F3E110B9399524037E4C727A73284028C + E00092D0410C78400149FCC317824004F584B14013A84005E9D08000C2F1040C + 7CE10B40C001070A2000431460080260280F664081188C40051132A7540E5100 + 0A9420064A98810E04808F42B4600605B884A3FC90AF3638400542D0800A9E90 + 03210801084F8887061C00D0446060083C10C42918AA84110C211C1405A675E2 + C0074838020F8A28441D0CD1073AE8210F845884345F21196C66139BA108C500 + 8A0080010CC004E2B80603245102DA55349A52F119F4243081814EE0095D8847 + 17C491862CC0A16C6A5D2B4FF851A8F434A0010648802C0C908172B0A00CE6A8 + E75E8BDA57EBF0A367195BB4225194C1C76BF115B23691C364F1181EE4EC519C + 67D1EC667BD70CB948723B078AA2A34A6B5A93C5C214C4C91F8EECB089458E56 + 8AB0A55E2EB09221E4B047B7249A001B8C7B5CE42657B9CB656E739DFBDCE52A + 2107D3A56E75AD3B5D2540B7B9130808003B} + end + end + inline frViewRichEditor2: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 596 + Height = 392 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 521 + ExplicitHeight = 374 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 521 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 517 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'MEMORIA' + DataBinding.DataSource = dsDataTable + ExplicitWidth = 521 + ExplicitHeight = 348 + Height = 366 + Width = 596 + end end end end inherited StatusBar: TJvStatusBar - Top = 612 - Width = 674 + Top = 596 + Width = 749 Panels = < item Width = 200 end> - ExplicitTop = 612 + ExplicitTop = 549 ExplicitWidth = 674 end inline frViewTotales1: TfrViewTotales [4] Left = 0 - Top = 541 - Width = 674 - Height = 71 + Top = 496 + Width = 749 + Height = 100 Align = alBottom Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -338,11 +744,11 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 4 ReadOnly = False - ExplicitTop = 541 - ExplicitWidth = 674 - ExplicitHeight = 71 + ExplicitTop = 496 + ExplicitWidth = 749 + ExplicitHeight = 100 inherited dxLayoutControl1: TdxLayoutControl - Width = 674 + Width = 749 Height = 171 LookAndFeel = dxLayoutOfficeLookAndFeel1 ExplicitWidth = 674 @@ -356,20 +762,20 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitWidth = 73 end inherited Bevel3: TBevel - Left = 333 + Left = 368 Top = 11 Width = 8 Height = 54 - ExplicitLeft = 333 + ExplicitLeft = 368 ExplicitTop = 11 ExplicitWidth = 8 ExplicitHeight = 54 end inherited Bevel4: TBevel - Left = 450 + Left = 485 Top = 92 Width = 21 - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 92 ExplicitWidth = 21 end @@ -383,19 +789,19 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Width = 93 end inherited ImporteIVA: TcxDBCurrencyEdit - Left = 521 + Left = 556 Top = 38 Style.IsFontAssigned = True - ExplicitLeft = 521 + ExplicitLeft = 556 ExplicitTop = 38 ExplicitWidth = 137 Width = 137 end inherited ImporteTotal: TcxDBCurrencyEdit - Left = 451 + Left = 486 Top = 112 Style.IsFontAssigned = True - ExplicitLeft = 451 + ExplicitLeft = 486 ExplicitTop = 112 ExplicitWidth = 137 Width = 137 @@ -408,37 +814,37 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitTop = 112 end inherited edtIVA: TcxDBSpinEdit - Left = 450 + Left = 485 Top = 38 Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 38 end inherited ImporteBase: TcxDBCurrencyEdit - Left = 450 + Left = 485 Top = 11 Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 11 ExplicitWidth = 92 Width = 92 end inherited edtRE: TcxDBSpinEdit - Left = 450 + Left = 485 Top = 65 DataBinding.DataField = '' DataBinding.DataSource = nil Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 65 end inherited ImporteRE: TcxDBCurrencyEdit - Left = 521 + Left = 556 Top = 65 DataBinding.DataField = '' DataBinding.DataSource = nil Style.IsFontAssigned = True - ExplicitLeft = 521 + ExplicitLeft = 556 ExplicitTop = 65 ExplicitWidth = 56 Width = 56 @@ -473,9 +879,9 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Width = 81 end inherited bTiposIVA: TButton - Left = 185 + Left = 220 Top = 38 - ExplicitLeft = 185 + ExplicitLeft = 220 ExplicitTop = 38 end inherited cbRecargoEquivalencia: TcxDBCheckBox @@ -501,9 +907,6 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited dxLayoutControl1Item10: TdxLayoutItem Visible = False end - inherited dxLayoutControl1Group7: TdxLayoutGroup - Visible = False - end end inherited dxLayoutControl1Group5: TdxLayoutGroup inherited dxLayoutControl1Group3: TdxLayoutGroup @@ -528,8 +931,11 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited EditorActionList: TActionList [5] end inherited SmallImages: TPngImageList [6] + Top = 72 end inherited LargeImages: TPngImageList [7] + Left = 435 + Top = 72 end inherited JvFormStorage: TJvFormStorage [8] end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas index eafb6154..1767272d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas @@ -16,7 +16,7 @@ uses dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, uIEditorPresupuestoCliente, uBizPresupuestosCliente, uViewPresupuestoCliente, uViewDetallesDTO, uViewDetallesArticulos, uViewDetallesPresupuestoCliente, - uDAInterfaces, cxRichEdit, cxDBRichEdit; + uDAInterfaces, cxRichEdit, cxDBRichEdit, JvGIF, uViewRichEditor; type TfEditorPresupuestoCliente = class(TfEditorDBItem, IEditorPresupuestoCliente) @@ -29,8 +29,12 @@ type frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente; pagPortada: TTabSheet; pagMemoria: TTabSheet; - cxDBMemo1: TcxDBMemo; - edtPortada: TcxDBRichEdit; + Panel1: TPanel; + Image2: TImage; + Panel2: TPanel; + Image3: TImage; + frViewRichEditor1: TfrViewRichEditor; + frViewRichEditor2: TfrViewRichEditor; procedure FormShow(Sender: TObject); procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); @@ -201,12 +205,9 @@ end; procedure TfEditorPresupuestoCliente.ImprimirInterno; begin -AppFactuGES.ShowCapado; -{ inherited; if not Modified then FController.Print(FPresupuesto); -} end; procedure TfEditorPresupuestoCliente.OnClienteChanged(Sender: TObject); @@ -220,13 +221,14 @@ begin AClientesController := TClientesController.Create; try - if not AClientesController.TieneDatosBancarios(FPresupuesto.Cliente) then - MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + { // Esto podría ser configurable en el programa + if not AClientesController.TieneDatosBancarios(FPresupuesto.Cliente) then + MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atención', MB_ICONWARNING or MB_OK);} case FPresupuesto.Cliente.Direcciones.RecordCount of 0 : begin FController.QuitarDireccionEnvio(FPresupuesto); - MessageBox(0, '¡Atención! Este cliente no tiene ' + #10#13 + 'ninguna dirección de envío en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + MessageBox(0, '¡Atención! Este cliente no tiene ' + #10#13 + 'ninguna dirección en su ficha', 'Atención', MB_ICONWARNING or MB_OK); FPresupuesto.Edit; FPresupuesto.IMPORTE_PORTE := 0; end; @@ -290,12 +292,9 @@ end; procedure TfEditorPresupuestoCliente.PrevisualizarInterno; begin -AppFactuGES.ShowCapado; -{ inherited; if not Modified then FController.Preview(FPresupuesto); -} end; procedure TfEditorPresupuestoCliente.RecalcularPortePorUnidad; diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas index 824097fa..7abe7244 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -192,8 +192,6 @@ procedure TfEditorPresupuestosCliente.DuplicarInterno; var APresupuesto : IBizPresupuestoCliente; begin -AppFactuGES.ShowCapado; -{ inherited; APresupuesto := FController.Duplicar(Presupuestos); try @@ -201,7 +199,6 @@ AppFactuGES.ShowCapado; finally actRefrescar.Execute; end; -} end; procedure TfEditorPresupuestosCliente.EliminarInterno; @@ -283,8 +280,6 @@ var APresupuestos: IBizPresupuestoCliente; AllItems: Boolean; begin -AppFactuGES.ShowCapado; -{ APresupuestos := Nil; AllItems := False; @@ -318,7 +313,6 @@ AppFactuGES.ShowCapado; end; end; end; -} end; procedure TfEditorPresupuestosCliente.ModificarInterno; @@ -348,8 +342,6 @@ var APresupuestos: IBizPresupuestoCliente; AllItems: Boolean; begin -AppFactuGES.ShowCapado; -{ APresupuestos := Nil; AllItems := False; @@ -384,7 +376,6 @@ AppFactuGES.ShowCapado; end; end; APresupuestos := Nil; -} end; procedure TfEditorPresupuestosCliente.SetController(const Value: IPresupuestosClienteController); diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm index 1c0902c9..e9cf6034 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm @@ -14,8 +14,6 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente ParentBackground = True TabOrder = 0 AutoContentSizes = [acsWidth, acsHeight] - ExplicitWidth = 740 - ExplicitHeight = 465 DesignSize = ( 766 513) @@ -52,9 +50,13 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True TabOrder = 9 Height = 253 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm index 6feab4fd..4dab1a1d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm @@ -71,6 +71,11 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente BestFitMaxWidth = 25 Width = 68 end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + Width = 69 + end object cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn Caption = 'Fecha presupuesto' DataBinding.FieldName = 'FECHA_PRESUPUESTO' @@ -79,10 +84,6 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente SortOrder = soDescending Width = 45 end - object cxGridViewSITUACION: TcxGridDBColumn - DataBinding.FieldName = 'SITUACION' - Width = 69 - end object cxGridViewFECHA_DECISION: TcxGridDBColumn Caption = 'Fecha decisi'#243'n' DataBinding.FieldName = 'FECHA_DECISION' @@ -101,7 +102,6 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente object cxGridViewCLIENTE_FINAL: TcxGridDBColumn Caption = 'Cliente final' DataBinding.FieldName = 'CLIENTE_FINAL' - Visible = False end object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn Caption = 'Importe total' diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 8e57f238..48e36e7f 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -313,7 +313,6 @@ - diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index e31af9c3..855655ef 100644 Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index eb57d714..dff89894 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -95,7 +95,8 @@ uses schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas', schHistoricoMovimientosClient_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas', - schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas'; + schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas', + uRptFacturasCliente_Server in '..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas' {RptFacturasCliente: TDataModule}; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 4cf5427f..9e182051 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,206 +1,214 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - - - Delphi.Personality - - - FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58 - RemObjects Pascal Script - RemObjects SDK 3.0 Integration - FactuGES_Server.dpr - - - - - MainSource - - - - -
srvEmpresas
- TDARemoteService -
- - - - - - - - -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - - - - - - - -
srvContactos
- TDARemoteService -
- - - - -
srvFacturasCliente
- TDataAbstractService -
- - - - -
srvFacturasProveedor
- TDataAbstractService -
- - - - - - - - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
-
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - -
srvRecibosCliente
- TDataAbstractService -
- - - -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvRemesasCliente
- TDataAbstractService -
- - - -
srvRemesasProveedor
- TDataAbstractService -
- - - - - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + + + Delphi.Personality + + +FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58 + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + FactuGES_Server.dpr + + + + + MainSource + + + + +
srvEmpresas
+ TDARemoteService +
+ + + + + + + + +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + + + + + + + +
srvContactos
+ TDARemoteService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
srvFacturasProveedor
+ TDataAbstractService +
+ + + + + + + + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + +
srvRecibosCliente
+ TDataAbstractService +
+ + + +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + + + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + +