Muchos cambios y módulo de Medicaciones.

git-svn-id: https://192.168.0.254/svn/Proyectos.FarmaciaPH_Etiquetas/trunk@11 7b0b1a58-4aa1-b946-8089-8453ede31e50
This commit is contained in:
roberto 2011-11-25 17:35:23 +00:00
parent f8d2253dfd
commit 756d19948d
170 changed files with 16769 additions and 15222 deletions

Binary file not shown.

View File

@ -14,8 +14,8 @@
<Notes>
<![CDATA[]]>
</Notes>
<LastBuildRun>00:00:04</LastBuildRun>
<LastBuildStart>14/11/2011 20:46:39</LastBuildStart>
<LastBuildRun>00:00:01</LastBuildRun>
<LastBuildStart>22/11/2011 10:50:47</LastBuildStart>
<LastBuildState>False</LastBuildState>
</properties>
</project>

Binary file not shown.

Binary file not shown.

View File

@ -95,15 +95,6 @@ VARCHAR(30);
/**** Generators ****/
/******************************************************************************/
CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID;
SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 933;
CREATE GENERATOR GEN_ALBARANES_CLI_ID;
SET GENERATOR GEN_ALBARANES_CLI_ID TO 511;
CREATE GENERATOR GEN_ARTICULOS_ID;
SET GENERATOR GEN_ARTICULOS_ID TO 3547;
CREATE GENERATOR GEN_CATEGORIAS_ID;
SET GENERATOR GEN_CATEGORIAS_ID TO 4;

View File

@ -45,8 +45,6 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">Libreria base</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">Base.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
@ -56,58 +54,58 @@
<DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Servicios\adortl.dcp" />
<DCCReference Include="..\Servicios\cxDataD11.dcp" />
<DCCReference Include="..\Servicios\cxEditorsD11.dcp" />
<DCCReference Include="..\Servicios\cxExportD11.dcp" />
<DCCReference Include="..\Servicios\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Servicios\cxGridD11.dcp" />
<DCCReference Include="..\Servicios\cxIntl6D11.dcp" />
<DCCReference Include="..\Servicios\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Servicios\cxLibraryD11.dcp" />
<DCCReference Include="..\Servicios\cxPageControlD11.dcp" />
<DCCReference Include="..\Servicios\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Servicios\dbrtl.dcp" />
<DCCReference Include="..\Servicios\dclIndyCore.dcp" />
<DCCReference Include="..\Servicios\designide.dcp" />
<DCCReference Include="..\Servicios\dsnap.dcp" />
<DCCReference Include="..\Servicios\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Servicios\dxPSCoreD11.dcp" />
<DCCReference Include="..\Servicios\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\adortl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxDataD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxExportD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxGridD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxPageControlD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\designide.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dsnap.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\GUISDK_D11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\Jcl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\rtl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcldb.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vclx.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\Etiquetas_Intf.pas" />
<DCCReference Include="..\Servicios\GUISDK_D11R.dcp" />
<DCCReference Include="..\Servicios\IndyCore.dcp" />
<DCCReference Include="..\Servicios\IndyProtocols.dcp" />
<DCCReference Include="..\Servicios\IndySystem.dcp" />
<DCCReference Include="..\Servicios\Jcl.dcp" />
<DCCReference Include="..\Servicios\JclVcl.dcp" />
<DCCReference Include="..\Servicios\JSDialog100.dcp" />
<DCCReference Include="..\Servicios\JvCmpD11R.dcp" />
<DCCReference Include="..\Servicios\JvCoreD11R.dcp" />
<DCCReference Include="..\Servicios\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Servicios\JvDlgsD11R.dcp" />
<DCCReference Include="..\Servicios\JvMMD11R.dcp" />
<DCCReference Include="..\Servicios\JvNetD11R.dcp" />
<DCCReference Include="..\Servicios\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Servicios\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Servicios\JvSystemD11R.dcp" />
<DCCReference Include="..\Servicios\pckMD5.dcp" />
<DCCReference Include="..\Servicios\pckUCDataConnector.dcp" />
<DCCReference Include="..\Servicios\pckUserControl_RT.dcp" />
<DCCReference Include="..\Servicios\PngComponentsD10.dcp" />
<DCCReference Include="..\Servicios\PNG_D10.dcp" />
<DCCReference Include="..\Servicios\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Servicios\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Servicios\rtl.dcp" />
<DCCReference Include="..\Servicios\TB2k_D10.dcp" />
<DCCReference Include="..\Servicios\tbx_d10.dcp" />
<DCCReference Include="..\Servicios\vcl.dcp" />
<DCCReference Include="..\Servicios\vclactnband.dcp" />
<DCCReference Include="..\Servicios\vcldb.dcp" />
<DCCReference Include="..\Servicios\vcljpg.dcp" />
<DCCReference Include="..\Servicios\VclSmp.dcp" />
<DCCReference Include="..\Servicios\vclx.dcp" />
<DCCReference Include="..\Servicios\xmlrtl.dcp" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
<DesignClass>TForm</DesignClass>

Binary file not shown.

Binary file not shown.

View File

@ -26,10 +26,8 @@ begin
//LoadModule('Familias_plugin.bpl');
//LoadModule('Fabricantes_plugin.bpl');
LoadModule('UnidadesMedida_plugin.bpl');
LoadModule('Contactos_plugin.bpl');
//LoadModule('Articulos_plugin.bpl');
LoadModule('Medicaciones_plugin.bpl');
//LoadModule(MODULENAME_ALBARANES_CLIENTE);
end;

View File

@ -59,30 +59,30 @@
<DelphiCompile Include="GUIBase.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Cliente\Base.dcp" />
<DCCReference Include="..\Cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Cliente\cxTreeListD11.dcp" />
<DCCReference Include="..\Cliente\dbrtl.dcp" />
<DCCReference Include="..\Cliente\dxBarD11.dcp" />
<DCCReference Include="..\Cliente\dxBarExtItemsD11.dcp" />
<DCCReference Include="..\Cliente\dxComnD11.dcp" />
<DCCReference Include="..\Cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Cliente\dxLayoutControlD11.dcp" />
<DCCReference Include="..\Cliente\dxPSCoreD11.dcp" />
<DCCReference Include="..\Cliente\dxPScxCommonD11.dcp" />
<DCCReference Include="..\Cliente\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\Cliente\dxPsPrVwAdvD11.dcp" />
<DCCReference Include="..\Cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Cliente\frx11.dcp" />
<DCCReference Include="..\Cliente\frxe11.dcp" />
<DCCReference Include="..\Cliente\fs11.dcp" />
<DCCReference Include="..\Cliente\JvAppFrmD11R.dcp" />
<DCCReference Include="..\Cliente\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Cliente\rtl.dcp" />
<DCCReference Include="..\Cliente\vcl.dcp" />
<DCCReference Include="..\Cliente\vcldb.dcp" />
<DCCReference Include="..\Cliente\vcljpg.dcp" />
<DCCReference Include="..\Cliente\vclx.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\Base.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\cxTreeListD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxBarD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxBarExtItemsD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxComnD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxLayoutControlD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxPScxCommonD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxPsPrVwAdvD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\frx11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\frxe11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\fs11.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvAppFrmD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\rtl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcl.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcldb.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Medicaciones\vclx.dcp" />
<DCCReference Include="uDialogBase.pas">
<Form>fDialogBase</Form>
</DCCReference>

Binary file not shown.

Binary file not shown.

View File

@ -6,18 +6,12 @@
<ItemGroup>
<Projects Include="..\..\ApplicationBase\ApplicationBase.dproj" />
<Projects Include="..\..\Base\Base.dproj" />
<Projects Include="..\..\Cliente\FactuGES.dproj" />
<Projects Include="..\..\Cliente\Etiquetas.dproj" />
<Projects Include="..\..\GUIBase\GUIBase.dproj" />
<Projects Include="..\..\Servidor\FactuGES_Server.dproj" />
<Projects Include="..\Contactos\Views\Contactos_view.dproj" />
<Projects Include="..\Facturas de cliente\Model\FacturasCliente_model.dproj" />
<Projects Include="..\Facturas de cliente\Views\FacturasCliente_view.dproj" />
<Projects Include="..\Inventario\Views\Inventario_view.dproj" />
<Projects Include="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" />
<Projects Include="..\..\Servidor\Etiquetas_Server.dproj" />
<Projects Include="Controller\Articulos_controller.dproj" />
<Projects Include="Data\Articulos_data.dproj" />
<Projects Include="Model\Articulos_model.dproj" />
<Projects Include="Plugin\Articulos_plugin.dproj" />
<Projects Include="Views\Articulos_view.dproj" />
</ItemGroup>
<ProjectExtensions>
@ -53,15 +47,6 @@
<Target Name="ApplicationBase:Make">
<MSBuild Projects="..\..\ApplicationBase\ApplicationBase.dproj" Targets="Make" />
</Target>
<Target Name="Contactos_view">
<MSBuild Projects="..\Contactos\Views\Contactos_view.dproj" Targets="" />
</Target>
<Target Name="Contactos_view:Clean">
<MSBuild Projects="..\Contactos\Views\Contactos_view.dproj" Targets="Clean" />
</Target>
<Target Name="Contactos_view:Make">
<MSBuild Projects="..\Contactos\Views\Contactos_view.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_model">
<MSBuild Projects="Model\Articulos_model.dproj" Targets="" />
</Target>
@ -98,77 +83,32 @@
<Target Name="Articulos_view:Make">
<MSBuild Projects="Views\Articulos_view.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_plugin">
<MSBuild Projects="Plugin\Articulos_plugin.dproj" Targets="" />
<Target Name="Etiquetas">
<MSBuild Projects="..\..\Cliente\Etiquetas.dproj" Targets="" />
</Target>
<Target Name="Articulos_plugin:Clean">
<MSBuild Projects="Plugin\Articulos_plugin.dproj" Targets="Clean" />
<Target Name="Etiquetas:Clean">
<MSBuild Projects="..\..\Cliente\Etiquetas.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_plugin:Make">
<MSBuild Projects="Plugin\Articulos_plugin.dproj" Targets="Make" />
<Target Name="Etiquetas:Make">
<MSBuild Projects="..\..\Cliente\Etiquetas.dproj" Targets="Make" />
</Target>
<Target Name="FactuGES">
<MSBuild Projects="..\..\Cliente\FactuGES.dproj" Targets="" />
<Target Name="Etiquetas_Server">
<MSBuild Projects="..\..\Servidor\Etiquetas_Server.dproj" Targets="" />
</Target>
<Target Name="FactuGES:Clean">
<MSBuild Projects="..\..\Cliente\FactuGES.dproj" Targets="Clean" />
<Target Name="Etiquetas_Server:Clean">
<MSBuild Projects="..\..\Servidor\Etiquetas_Server.dproj" Targets="Clean" />
</Target>
<Target Name="FactuGES:Make">
<MSBuild Projects="..\..\Cliente\FactuGES.dproj" Targets="Make" />
</Target>
<Target Name="FactuGES_Server">
<MSBuild Projects="..\..\Servidor\FactuGES_Server.dproj" Targets="" />
</Target>
<Target Name="FactuGES_Server:Clean">
<MSBuild Projects="..\..\Servidor\FactuGES_Server.dproj" Targets="Clean" />
</Target>
<Target Name="FactuGES_Server:Make">
<MSBuild Projects="..\..\Servidor\FactuGES_Server.dproj" Targets="Make" />
</Target>
<Target Name="FacturasCliente_view">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="" />
</Target>
<Target Name="FacturasCliente_view:Clean">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="Clean" />
</Target>
<Target Name="FacturasCliente_view:Make">
<MSBuild Projects="..\Facturas de cliente\Views\FacturasCliente_view.dproj" Targets="Make" />
</Target>
<Target Name="FacturasCliente_model">
<MSBuild Projects="..\Facturas de cliente\Model\FacturasCliente_model.dproj" Targets="" />
</Target>
<Target Name="FacturasCliente_model:Clean">
<MSBuild Projects="..\Facturas de cliente\Model\FacturasCliente_model.dproj" Targets="Clean" />
</Target>
<Target Name="FacturasCliente_model:Make">
<MSBuild Projects="..\Facturas de cliente\Model\FacturasCliente_model.dproj" Targets="Make" />
</Target>
<Target Name="Inventario_view">
<MSBuild Projects="..\Inventario\Views\Inventario_view.dproj" Targets="" />
</Target>
<Target Name="Inventario_view:Clean">
<MSBuild Projects="..\Inventario\Views\Inventario_view.dproj" Targets="Clean" />
</Target>
<Target Name="Inventario_view:Make">
<MSBuild Projects="..\Inventario\Views\Inventario_view.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_view">
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_view:Clean">
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_view:Make">
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Make" />
<Target Name="Etiquetas_Server:Make">
<MSBuild Projects="..\..\Servidor\Etiquetas_Server.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_view;Articulos_model;Articulos_data;Articulos_controller;Articulos_view;Articulos_plugin;FactuGES;FactuGES_Server;FacturasCliente_view;FacturasCliente_model;Inventario_view;PresupuestosCliente_view" />
<CallTarget Targets="Base;GUIBase;ApplicationBase;Articulos_model;Articulos_data;Articulos_controller;Articulos_view;Etiquetas;Etiquetas_Server" />
</Target>
<Target Name="Clean">
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_view:Clean;Articulos_model:Clean;Articulos_data:Clean;Articulos_controller:Clean;Articulos_view:Clean;Articulos_plugin:Clean;FactuGES:Clean;FactuGES_Server:Clean;FacturasCliente_view:Clean;FacturasCliente_model:Clean;Inventario_view:Clean;PresupuestosCliente_view:Clean" />
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Articulos_model:Clean;Articulos_data:Clean;Articulos_controller:Clean;Articulos_view:Clean;Etiquetas:Clean;Etiquetas_Server:Clean" />
</Target>
<Target Name="Make">
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_view:Make;Articulos_model:Make;Articulos_data:Make;Articulos_controller:Make;Articulos_view:Make;Articulos_plugin:Make;FactuGES:Make;FactuGES_Server:Make;FacturasCliente_view:Make;FacturasCliente_model:Make;Inventario_view:Make;PresupuestosCliente_view:Make" />
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Articulos_model:Make;Articulos_data:Make;Articulos_controller:Make;Articulos_view:Make;Etiquetas:Make;Etiquetas_Server:Make" />
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>

View File

@ -55,22 +55,22 @@
<DelphiCompile Include="Articulos_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\adortl.dcp" />
<DCCReference Include="..\Articulos_data.dcp" />
<DCCReference Include="..\Articulos_model.dcp" />
<DCCReference Include="..\Contactos_controller.dcp" />
<DCCReference Include="..\Contactos_model.dcp" />
<DCCReference Include="..\cxLibraryD11.dcp" />
<DCCReference Include="..\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\dbrtl.dcp" />
<DCCReference Include="..\dsnap.dcp" />
<DCCReference Include="..\dxGDIPlusD11.dcp" />
<DCCReference Include="..\dxThemeD11.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\adortl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Articulos_data.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Articulos_model.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Contactos_controller.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Contactos_model.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dsnap.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxGDIPlusD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUIBase.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="uArticulosController.pas" />
<DCCReference Include="uControllerDetallesArticulos.pas" />
<DCCReference Include="View\uIEditorArticulo.pas" />

View File

@ -5,101 +5,55 @@ interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uIDataModuleArticulos, uBizArticulos, uProveedoresController,
uIDataModuleArticulos, uBizArticulos,
uBizContactos;
type
TEnumReferencia = (tReferenciaParaVentas, tRefProveedorParaVentas, tReferenciaParaCompras, tRefProveedorParaCompras);
IArticulosController = interface(IControllerBase)
['{C7EA6486-7BE4-468E-A27A-621E1BA13430}']
function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; overload;
function BuscarInventariables: IBizArticulo;
function BuscarTodos: IBizArticulo; overload;
function BuscarTodosPorProveedor: IBizArticulo; overload;
function BuscarTodos(ACliente: IBizCliente): IBizArticulo; overload;
function BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; overload;
function BuscarReferencia(const TipoReferencia: TEnumReferencia; const Ref: String; ACliProvID: Integer): IBizArticulo;
// function BuscarReferenciaProveedor(const Ref: String; ACliProvID: Integer): IBizArticulo;
['{814B8A9D-E87F-4BDD-A96F-CEE04F2B348F}']
function Buscar(const ID: Integer): IBizArticulo;
function BuscarTodos: IBizArticulo;
function BuscarReferencia(const Ref: String): IBizArticulo;
procedure Ver(AArticulo : IBizArticulo);
procedure VerTodos;
function Nuevo : IBizArticulo;
procedure Anadir(AArticulo : IBizArticulo);
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AArticulo : IBizArticulo): Boolean; overload;
function Guardar(AArticulo : IBizArticulo): Boolean;
procedure DescartarCambios(AArticulo : IBizArticulo);
function Existe(const ID: Integer) : Boolean;
function Duplicar(AArticulo: IBizArticulo): IBizArticulo;
procedure Preview(AArticulo : IBizArticulo);
procedure Print(AArticulo : IBizArticulo);
procedure ElegirProveedor(AArticulo : IBizArticulo);
procedure AnadirProveedor(AArticulo : IBizArticulo);
procedure VerProveedor(AArticulo : IBizArticulo);
function DarListaProveedoresConArticulos: TStringList;
//procedure Preview(AArticulo : IBizArticulo);
//procedure Print(AArticulo : IBizArticulo);
function ExtraerSeleccionados(AArticulos: IBizArticulo) : IBizArticulo;
function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo;
procedure CalcularPrecioNeto(AArticulos: IBizArticulo);
function GetProveedoresController: IProveedoresController;
property ProveedoresController: IProveedoresController read GetProveedoresController;
function DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
end;
TArticulosController = class(TControllerBase, IArticulosController)
private
protected
FDataModule : IDataModuleArticulos;
FProveedoresController: IProveedoresController;
function GetProveedoresController: IProveedoresController;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
function _Vacio : IBizArticulo;
procedure FiltrarEmpresa(AArticulo: IBizArticulo);
function ValidarArticulo(AArticulo: IBizArticulo): Boolean; virtual;
procedure RecuperarObjetos(AArticulo: IBizArticulo); virtual;
procedure AsignarDataModule; virtual;
public
property ProveedoresController: IProveedoresController read GetProveedoresController;
constructor Create; override;
destructor Destroy; override;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AArticulo : IBizArticulo): Boolean; overload;
function Guardar(AArticulo : IBizArticulo): Boolean;
procedure DescartarCambios(AArticulo : IBizArticulo); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
procedure Anadir(AArticulo : IBizArticulo); virtual;
function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; virtual;
function Buscar(const ID: Integer): IBizArticulo;
function BuscarTodos: IBizArticulo; overload;
function BuscarTodosPorProveedor: IBizArticulo; overload;
function BuscarInventariables: IBizArticulo;
function BuscarTodos(ACliente: IBizCliente): IBizArticulo; overload;
function BuscarTodos(ACliente: Integer): IBizArticulo; overload;
function BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; overload;
function BuscarReferencia(const TipoReferencia: TEnumReferencia; const Ref: String; ACliProvID: Integer = -1): IBizArticulo; virtual;
function BuscarReferencia(const Ref: String): IBizArticulo;
function Nuevo : IBizArticulo; virtual;
procedure Ver(AArticulo : IBizArticulo); virtual;
procedure VerTodos; virtual;
function Duplicar(AArticulo: IBizArticulo): IBizArticulo; virtual;
procedure Preview(AArticulo : IBizArticulo); virtual;
procedure Print(AArticulo : IBizArticulo); virtual;
function ExtraerSeleccionados(AArticulos: IBizArticulo) : IBizArticulo; virtual;
function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; virtual;
procedure CalcularPrecioNeto(AArticulos: IBizArticulo);
procedure ElegirProveedor(AArticulo : IBizArticulo);
procedure AnadirProveedor(AArticulo : IBizArticulo);
procedure VerProveedor(AArticulo : IBizArticulo);
function DarListaProveedoresConArticulos: TStringList;
function DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
end;
implementation
@ -112,267 +66,39 @@ uses
{ TArticulosController }
procedure TArticulosController.Anadir(AArticulo: IBizArticulo);
begin
AArticulo.Insert;
end;
procedure TArticulosController.AnadirProveedor(AArticulo: IBizArticulo);
var
AProveedor : IBizContacto;
begin
inherited;
{ AProveedor := (FProveedoresController.Nuevo as IBizProveedor);
FProveedoresController.Ver(AProveedor);
if Assigned(AProveedor) then
begin
if not AArticulo.DataTable.Editing then
AArticulo.Edit;
AArticulo.ID_PROVEEDOR := AProveedor.ID;
AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE;
end;
AProveedor := Nil;
}
end;
procedure TArticulosController.AsignarDataModule;
begin
FDataModule := TDataModuleArticulos.Create(Nil);
FProveedoresController := TProveedoresController.Create;
end;
function TArticulosController.Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo;
function TArticulosController.Buscar(const ID: Integer): IBizArticulo;
begin
//Quitamos la funcionalidad de poder dar una lista de articulos particular de los clientes
// if (AClienteID = -1) then
Result := (FDataModule as IDataModuleArticulos).GetItem(ID);
// else
// Result := (FDataModule as IDataModuleArticulos).GetItem(ID, AClienteID);
//Los articulos serán comunes para todas las empresas.
// FiltrarEmpresa(Result);
end;
function TArticulosController.BuscarInventariables: IBizArticulo;
function TArticulosController.BuscarReferencia(const Ref: String): IBizArticulo;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := BuscarTodos;
// Filtrar los articulos inventariables
with Result.DataTable.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_ArticulosINVENTARIABLE), NewConstant(1, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
with Result.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewMacro('UpperCase('+fld_ArticulosREFERENCIA+')'),
NewConstant(UpperCase(Ref), datString),dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
finally
HideHourglassCursor;
end;
end;
function TArticulosController.BuscarReferencia(const TipoReferencia: TEnumReferencia; const Ref: String; ACliProvID: Integer = -1): IBizArticulo;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
case TipoReferencia of
//Siempre que sea para ventas consultaremos la lista de articulos para ventas (BuscarTodos), en el caso hipotetico de que la lista de ventas
//sea propia para cada cliente se podria filtrar por cliente (ACliProvID)
tReferenciaParaVentas, tRefProveedorParaVentas: Result := BuscarTodos;
//Siempre que sea para compras consultaremos la lista de articulos para compras (BuscarTodosPorProveedor), en el caso hipotetico de que la lista de compras
//sea propia para cada proveedor se podria filtrar por proveedor (ACliProvID)
tReferenciaParaCompras, tRefProveedorParaCompras: Result := BuscarTodosPorProveedor;
end;
//FILTRO DE LOS CAMPOS REFERENCIA Y REFERENCIA_PROV
case TipoReferencia of
tReferenciaParaVentas, tReferenciaParaCompras: begin
// Filtrar por referencia, se cambia por el where anterior porque luego no nos reconoce bien la cadena, al contener UPPER
with Result.DataTable.DynamicWhere do
begin
if TipoReferencia = TipoReferencia then
Condicion := NewBinaryExpression(NewMacro('UpperCase('+fld_ArticulosREFERENCIA+')'),
NewConstant(UpperCase(Ref), datString),dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
tRefProveedorParaVentas, tRefProveedorParaCompras: begin
// Filtrar por referencia, se cambia por el where anterior porque luego no nos reconoce bien la cadena, al contener UPPER
with Result.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewMacro('UpperCase('+fld_ArticulosREFERENCIA_PROV+')'),
NewConstant(UpperCase(Ref), datString),dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
end;
//FILTRO DE LOS CAMPOS CLIENTE Y PROVEEDOR
case TipoReferencia of
tReferenciaParaVentas, tRefProveedorParaVentas: begin
//NO SE IMPLEMENTA EN TECSITEL
end;
tReferenciaParaCompras, tRefProveedorParaCompras: begin
// Filtrar por proveedor
with Result.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewField('', fld_Articulos_ProveedoresID_PROVEEDOR),
NewConstant(ACliProvID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
end;
finally
HideHourglassCursor;
end;
end;
{function TArticulosController.BuscarReferenciaProveedor(const Ref: String; ACliProvID: Integer): IBizArticulo;
{var
Condicion: TDAWhereExpression;}
{begin
ShowHourglassCursor;
try
//En tecsitel se desactiva el sacar una lista de articulos personalizada por cliente
// if (AClienteID = -1) then
Result := BuscarTodosPorProveedor;
// else
// Result := BuscarTodos(AClienteID);
// Filtrar por referencia, se cambia por el where anterior porque luego no nos reconoce bien la cadena, al contener UPPER
with Result.DataTable.Where do
begin
AddText(Format('UPPER(%s) = ''%s''', [fld_ArticulosREFERENCIA_PROV, UpperCase(Ref)]));
end;
{with Result.DataTable.DynamicWhere do
begin
// (REFERENCIA >= Ref)
Condicion := NewBinaryExpression(NewField('', fld_ArticulosREFERENCIA_PROV), NewConstant(UpperCase(Ref), datString), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;}
{ finally
HideHourglassCursor;
end;
end;
}
function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo;
begin
Result := FDataModule.GetItems(txArticulo); //ACliente);
//Los articulos serán comunes para todas las empresas.
// FiltrarEmpresa(Result);
end;
function TArticulosController.BuscarTodos(ACliente: IBizCliente): IBizArticulo;
begin
//En tecsitel se desactiva el sacar una lista de articulos personalizada por cliente
// if not Assigned(ACliente) then
// raise Exception.Create('Falta ACliente: BuscarTodos');
Result := BuscarTodos; //(ACliente.ID);
end;
function TArticulosController.BuscarTodos(AProveedor: IBizProveedor): IBizArticulo;
var
Condicion: TDAWhereExpression;
begin
if Assigned(AProveedor) then
begin
ShowHourglassCursor;
try
Result := BuscarTodosPorProveedor;
// Filtrar los articulos del proveedor
with Result.DataTable.DynamicWhere do
begin
// (ID_PROVEEDOR = ID)
Condicion := NewBinaryExpression(NewField('', fld_ArticulosParaCompraID_PROVEEDOR), NewConstant(AProveedor.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
finally
HideHourglassCursor;
end;
end;
end;
function TArticulosController.BuscarTodosPorProveedor: IBizArticulo;
begin
Result := FDataModule.GetItems(txProveedor);
//Los articulos serán comunes para todas las empresas.
// FiltrarEmpresa(Result);
end;
function TArticulosController.BuscarTodos: IBizArticulo;
begin
Result := FDataModule.GetItems(txArticulo);
//Los articulos serán comunes para todas las empresas.
// FiltrarEmpresa(Result);
end;
procedure TArticulosController.CalcularPrecioNeto(AArticulos: IBizArticulo);
var
lPrecioNeto: Double;
begin
{
if Assigned(AArticulos) then
begin
with AArticulos do
begin
try
ShowHourglassCursor;
DataTable.DisableControls;
if not DataTable.Active then
DataTable.Active := True;
//Calcular precio neto
lPrecioNeto := PRECIO_COSTE - ((PRECIO_COSTE * DESCUENTO)/100);
if (PRECIO_NETO <> lPrecioNeto) then
begin
if not DataTable.Editing then
DataTable.Edit;
PRECIO_NETO := lPrecioNeto;
end;
finally
DataTable.EnableControls;
HideHourglassCursor;
end;
end;
end;
}
Result := FDataModule.GetItems;
end;
constructor TArticulosController.Create;
@ -387,101 +113,12 @@ begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
function TArticulosController.DarListaProveedoresConArticulos: TStringList;
begin
Result := (FDataModule as IDataModuleArticulos).DarListaProveedoresConArticulos(AppFactuGES.EmpresaActiva.ID);
end;
function TArticulosController.DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
var
AArticulo: IBizArticulo;
begin
AArticulo := Buscar(IdArticulo);
AArticulo.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
Add(CurrToStr(AArticulo.PRECIO_PVP_TOTAL));
Add(CurrToStr(AArticulo.PRECIO_PVP_VENTA));
end;
finally
AArticulo := NIL;
end;
end;
procedure TArticulosController.DescartarCambios(AArticulo: IBizArticulo);
begin
if not Assigned(AArticulo) then
raise Exception.Create ('Articulo no asignado');
ShowHourglassCursor;
try
if (AArticulo.State in dsEditModes) then
AArticulo.Cancel;
AArticulo.DataTable.CancelUpdates;
finally
HideHourglassCursor;
end;
end;
destructor TArticulosController.Destroy;
begin
FDataModule := Nil;
FProveedoresController := Nil;
inherited;
end;
function TArticulosController.Duplicar(AArticulo: IBizArticulo): IBizArticulo;
begin
Result := Self._Vacio;
ShowHourglassCursor;
try
DuplicarRegistros(AArticulo.DataTable, Result.DataTable, mdrActual);
// Hay que dejar algunos campos como si fuera un artículo nuevo
Result.Edit;
with Result do
begin
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
REFERENCIA := '';
end;
Result.Post;
finally
HideHourglassCursor;
end;
end;
function TArticulosController.ValidarArticulo(AArticulo: IBizArticulo): Boolean;
begin
Result := False;
if not Assigned(AArticulo) then
raise Exception.Create ('Artículo no asignado');
if (AArticulo.DataTable.State in dsEditModes) then
AArticulo.DataTable.Post;
//Tambien hacemos post de sus tablas hija
if (AArticulo.Proveedores.DataTable.State in dsEditModes) then
AArticulo.Proveedores.DataTable.Post;
if Length(AArticulo.DESCRIPCION) = 0 then
raise Exception.Create('Debe indicar al menos la descripción de este artículo.');
// Asegurarse de valores en campos "automáticos"
AArticulo.Edit;
try
AArticulo.USUARIO := AppFactuGES.UsuarioActivo.UserName;
Result := True;
finally
AArticulo.Post;
end;
end;
procedure TArticulosController.Ver(AArticulo: IBizArticulo);
var
AEditor : IEditorArticulo;
@ -502,24 +139,6 @@ begin
end;
end;
procedure TArticulosController.VerProveedor(AArticulo: IBizArticulo);
var
AProveedor : IBizContacto;
begin
{
AProveedor := FProveedoresController.Buscar(AArticulo.ID_PROVEEDOR);
FProveedoresController.Ver(AProveedor);
if Assigned(AProveedor) then
begin
if not AArticulo.DataTable.Editing then
AArticulo.Edit;
AArticulo.ID_PROVEEDOR := AProveedor.ID;
AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE;
end;
AProveedor := Nil;
}
end;
procedure TArticulosController.VerTodos;
var
AEditor : IEditorArticulos;
@ -540,20 +159,6 @@ begin
Result := Buscar(ID_NULO);
end;
function TArticulosController.Eliminar(const ID: Integer): Boolean;
var
AArticulo : IBizArticulo;
begin
AArticulo := Buscar(ID);
if not Assigned(AArticulo) then
raise Exception.Create(Format('No se ha encontrado el artículo con ID = %d', [ID]));
AArticulo.DataTable.Active := True;
Result := Eliminar(AArticulo);
AArticulo := NIL;
end;
function TArticulosController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo;
var
AEditor : IEditorElegirArticulos;
@ -575,51 +180,6 @@ begin
end;
end;
procedure TArticulosController.ElegirProveedor(AArticulo: IBizArticulo);
var
AProveedor : IBizContacto;
begin
inherited;
{
AProveedor := (FProveedoresController.ElegirContacto(FProveedoresController.BuscarTodos, '', False) as IBizProveedor);
if Assigned(AProveedor) then
begin
if not AArticulo.DataTable.Editing then
AArticulo.Edit;
AArticulo.ID_PROVEEDOR := AProveedor.ID;
AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE;
end;
AProveedor := Nil;
}
end;
function TArticulosController.Eliminar(AArticulo: IBizArticulo): Boolean;
begin
Result := False;
if not Assigned(AArticulo) then
raise Exception.Create ('Articulo no asignada');
ShowHourglassCursor;
try
if (AArticulo.State in dsEditModes) then
AArticulo.Cancel;
AArticulo.Delete;
AArticulo.DataTable.ApplyUpdates;
HideHourglassCursor;
Result := True;
except
on E: Exception do
begin
AArticulo.DataTable.CancelUpdates;
HideHourglassCursor;
if (Pos('FOREIGN KEY', E.Message) > 0) then
MessageBox(0, 'No se puede borrar este artículo porque tiene artículos', 'Atención', MB_ICONWARNING or MB_OK);
end;
end;
end;
procedure TArticulosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
@ -652,72 +212,6 @@ begin
Result := ASeleccionados;
end;
procedure TArticulosController.FiltrarEmpresa(AArticulo: IBizArticulo);
var
Condicion: TDAWhereExpression;
begin
if AArticulo.DataTable.Active then
AArticulo.DataTable.Active := False;
// Filtrar los Articulos actuales por empresa
with AArticulo.DataTable.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_ArticulosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
function TArticulosController.GetProveedoresController: IProveedoresController;
begin
Result := FProveedoresController;
end;
function TArticulosController.Guardar(AArticulo: IBizArticulo): Boolean;
begin
Result := False;
if ValidarArticulo(AArticulo) then
begin
ShowHourglassCursor;
try
//Para que no salten los eventos de calculo de PVP que daría un pete importante
AArticulo.DataTable.DisableControls;
AArticulo.Proveedores.DataTable.DisableControls;
AArticulo.DataTable.DisableEventHandlers;
AArticulo.Proveedores.DataTable.DisableEventHandlers;
AArticulo.DataTable.ApplyUpdates;
Result := True;
finally
//Para que no salten los eventos de calculo de PVP que daría un pete importante
AArticulo.DataTable.EnableControls;
AArticulo.DataTable.EnableEventHandlers;
AArticulo.Proveedores.Datatable.EnableControls;
AArticulo.Proveedores.Datatable.EnableEventHandlers;
HideHourglassCursor;
end;
end;
end;
function TArticulosController.Nuevo: IBizArticulo;
var
AArticulo : IBizArticulo;
begin
AArticulo := FDataModule.NewItem;
//Los articulos serán comunes para todas las empresas.
// FiltrarEmpresa(AArticulo);
AArticulo.DataTable.Active := True;
AArticulo.Insert;
Result := AArticulo;
end;
procedure TArticulosController.Preview(AArticulo: IBizArticulo);
//var
// AReportController : IArticulosReportController;

View File

@ -13,12 +13,11 @@ type
IControllerDetallesArticulos = interface(IControllerDetallesBase)
['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}']
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True);
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; ACliProvID: Integer = -1; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; const ACantidad: Float = 1): Boolean; overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
function DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
end;
TControllerDetallesArticulos = class (TControllerDetallesBase, IControllerDetallesArticulos)
@ -32,18 +31,15 @@ type
procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual;
procedure RellenarCantidad(ADetalles: IDAStronglyTypedDataTable; const ACantidad: Float); virtual;
procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float = 1); virtual;
procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float = 1); overload;
procedure AsignarController; virtual;
procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo; const ACantidad: Float = 1); overload;
public
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; ACliProvID: Integer = -1; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; const ACantidad: Float = 1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; const ACantidad: Float = 1): Boolean; overload;
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True); virtual;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
function DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
constructor Create; override;
destructor Destroy; override;
@ -134,20 +130,19 @@ begin
end;
end;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo, AClienteID: Integer;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer;
const ACantidad: Float): Boolean;
var
AArticulo: IBizArticulo;
begin
{
Añade el artículo con la referencia pasada por parametro a los detalles pasados por parametro
En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente
}
Result := False;
BeginUpdate(ADetalles);
ShowHourglassCursor;
try
AArticulo := FArticulosController.Buscar(IDArticulo, AClienteID);
AArticulo := FArticulosController.Buscar(IDArticulo);
if Assigned(AArticulo) then
begin
@ -271,11 +266,6 @@ begin
AsignarController;
end;
function TControllerDetallesArticulos.DarPrecioPVPVenta(IdArticulo: Integer): TStringList;
begin
Result := FArticulosController.DarPrecioPVPVenta(IdArticulo);
end;
destructor TControllerDetallesArticulos.Destroy;
begin
FArticulosController := Nil;
@ -298,7 +288,7 @@ begin
end;
end;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; ACliProvID: Integer = -1; const ACantidad: Float = 1): Boolean;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; const ACantidad: Float = 1): Boolean;
var
AArticulo: IBizArticulo;
begin
@ -310,7 +300,7 @@ begin
BeginUpdate(ADetalles);
ShowHourglassCursor;
try
AArticulo := FArticulosController.BuscarReferencia(TipoReferencia, Referencia, ACliProvID);
AArticulo := FArticulosController.BuscarReferencia(Referencia);
if Assigned(AArticulo) then
begin
AArticulo.DataTable.Active := True;
@ -367,9 +357,7 @@ begin
begin
ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsVariant := AArticulos.ID;
ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA).AsVariant := AArticulos.REFERENCIA;
ADetalles.DataTable.FieldByName(CAMPO_REFERENCIA_PROVEEDOR).AsVariant := AArticulos.REFERENCIA_PROV;
ADetalles.DataTable.FieldByName(CAMPO_CONCEPTO).AsVariant := AArticulos.DESCRIPCION;
ADetalles.DataTable.FieldByName(CAMPO_UNIDADMEDIDA).AsVariant := AArticulos.UNIDAD_MEDIDA;
end;
end;

View File

@ -26,172 +26,23 @@ inherited DataModuleArticulos: TDataModuleArticulos
object tbl_Articulos: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_ARTICULOS_ID'
Required = True
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_ID'
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
DictionaryEntry = 'Articulos_ID_EMPRESA'
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
LogChanges = False
DisplayLabel = 'Referencia'
ReadOnly = True
DictionaryEntry = 'Articulos_REFERENCIA'
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
LogChanges = False
DisplayLabel = 'Descripci'#243'n'
ReadOnly = True
DictionaryEntry = 'Articulos_DESCRIPCION'
end
item
Name = 'UNIDAD_MEDIDA'
DataType = datString
Size = 255
DisplayLabel = 'Unidad de medida'
DictionaryEntry = 'Articulos_UNIDAD_MEDIDA'
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
DisplayLabel = 'Familia'
DictionaryEntry = 'Articulos_FAMILIA'
end
item
Name = 'IMAGEN'
DataType = datBlob
DisplayLabel = 'Foto'
DictionaryEntry = 'Articulos_IMAGEN'
end
item
Name = 'COMISIONABLE'
DataType = datInteger
DisplayLabel = 'Comisionable'
DictionaryEntry = 'Articulos_COMISIONABLE'
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
DictionaryEntry = 'Articulos_FECHA_ALTA'
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
DictionaryEntry = 'Articulos_FECHA_MODIFICACION'
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
DictionaryEntry = 'Articulos_USUARIO'
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
DisplayLabel = 'Ref. proveedor'
DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR'
end
item
Name = 'PRECIO_COSTE'
DataType = datCurrency
DisplayLabel = 'Importe'
DictionaryEntry = 'Articulos_PRECIO_COSTE'
end
item
Name = 'PRECIO_PORTE'
DataType = datCurrency
DisplayLabel = 'Precio porte'
DictionaryEntry = 'Articulos_PRECIO_PORTE'
end
item
Name = 'DESCUENTO'
DataType = datFloat
DisplayLabel = 'Descuento'
DictionaryEntry = 'Articulos_DESCUENTO'
end
item
Name = 'PRECIO_NETO'
DataType = datCurrency
DecimalPrecision = 2
DecimalScale = 2
DisplayLabel = 'Precio neto'
DictionaryEntry = 'Articulos_PRECIO_NETO'
end
item
Name = 'INVENTARIABLE'
DataType = datSmallInt
DisplayLabel = 'Inventariable'
DictionaryEntry = 'Articulos_INVENTARIABLE'
end
item
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
DictionaryEntry = 'Articulos_ELIMINADO'
end
item
Name = 'FABRICANTE'
DataType = datString
Size = 255
DisplayLabel = 'Fabricante'
DictionaryEntry = 'Articulos_FABRICANTE'
end
item
Name = 'REFERENCIA_FABR'
DataType = datString
Size = 255
DisplayLabel = 'Ref. fabricante'
DictionaryEntry = 'Articulos_REFERENCIA_FABR'
end
item
Name = 'PARAM_MARGEN'
DataType = datFloat
end
item
Name = 'PRECIO_PVP_VENTA'
DataType = datCurrency
DisplayLabel = 'Precio PVP (Solo suministro)'
Alignment = taRightJustify
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA'
end
item
Name = 'TIEMPO'
DataType = datInteger
end
item
Name = 'PARAM_TIEMPO'
DataType = datFloat
DisplayLabel = 'Precio min'
Alignment = taRightJustify
DictionaryEntry = 'Articulos_PARAM_TIEMPO'
end
item
Name = 'MANO_OBRA'
DataType = datCurrency
DisplayLabel = 'Mano de obra'
Alignment = taRightJustify
DictionaryEntry = 'Articulos_MANO_OBRA'
end
item
Name = 'PRECIO_PVP_TOTAL'
DataType = datCurrency
DisplayLabel = 'Precio P.V.P (Total)'
Alignment = taRightJustify
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL'
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
@ -207,318 +58,4 @@ inherited DataModuleArticulos: TDataModuleArticulos
Left = 232
Top = 32
end
object tbl_ProveedoresConArticulos: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE'
DataType = datString
Size = 255
end>
Params = <
item
Name = 'ID_EMPRESA'
Value = ''
ParamType = daptInput
end>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Articulos
LogicalName = 'ProveedoresConArticulos'
IndexDefs = <>
Left = 232
Top = 248
end
object ds_ProveedoresConArticulos: TDADataSource
DataSet = tbl_ProveedoresConArticulos.Dataset
DataTable = tbl_ProveedoresConArticulos
Left = 232
Top = 192
end
object tbl_Articulos_Proveedores: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_ARTICULOS_PROVEEDORES_ID'
Required = True
InPrimaryKey = True
end
item
Name = 'ID_ARTICULO'
DataType = datInteger
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
DisplayLabel = 'Ref. proveedor'
DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR'
end
item
Name = 'PRECIO_COSTE'
DataType = datCurrency
DisplayLabel = 'Importe'
DictionaryEntry = 'Articulos_PRECIO_COSTE'
end
item
Name = 'DESCUENTO'
DataType = datFloat
DisplayLabel = 'Descuento'
DictionaryEntry = 'Articulos_DESCUENTO'
end
item
Name = 'PRECIO_NETO'
DataType = datCurrency
DecimalPrecision = 2
DecimalScale = 2
DisplayLabel = 'Precio neto'
DictionaryEntry = 'Articulos_PRECIO_NETO'
end
item
Name = 'PRECIO_PORTE'
DataType = datCurrency
DisplayLabel = 'Precio porte'
DictionaryEntry = 'Articulos_PRECIO_PORTE'
end
item
Name = 'PRECIO_PVP_VENTA'
DataType = datCurrency
DisplayLabel = 'Precio PVP (Solo suministro)'
Alignment = taRightJustify
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA'
end
item
Name = 'PRECIO_PVP_TOTAL'
DataType = datCurrency
ServerAutoRefresh = True
end
item
Name = 'FECHA_ACTUALIZACION'
DataType = datDateTime
end>
Params = <>
MasterMappingMode = mmWhere
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Articulos
MasterSource = ds_Articulos
MasterFields = 'ID'
DetailFields = 'ID_ARTICULO'
LogicalName = 'Articulos_Proveedores'
IndexDefs = <>
Left = 368
Top = 88
end
object ds_Articulos_Proveedores: TDADataSource
DataSet = tbl_Articulos_Proveedores.Dataset
DataTable = tbl_Articulos_Proveedores
Left = 368
Top = 32
end
object tbl_ArticulosParaCompra: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_ARTICULOS_ID'
Required = True
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_ID'
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
DictionaryEntry = 'Articulos_ID_EMPRESA'
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
DisplayLabel = 'Referencia'
DictionaryEntry = 'Articulos_REFERENCIA'
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
DisplayLabel = 'Descripci'#243'n'
DictionaryEntry = 'Articulos_DESCRIPCION'
end
item
Name = 'UNIDAD_MEDIDA'
DataType = datString
Size = 255
DisplayLabel = 'Unidad de medida'
DictionaryEntry = 'Articulos_UNIDAD_MEDIDA'
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
DisplayLabel = 'Familia'
DictionaryEntry = 'Articulos_FAMILIA'
end
item
Name = 'IMAGEN'
DataType = datBlob
DisplayLabel = 'Foto'
DictionaryEntry = 'Articulos_IMAGEN'
end
item
Name = 'COMISIONABLE'
DataType = datInteger
DisplayLabel = 'Comisionable'
DictionaryEntry = 'Articulos_COMISIONABLE'
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
DictionaryEntry = 'Articulos_FECHA_ALTA'
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
DictionaryEntry = 'Articulos_FECHA_MODIFICACION'
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
DictionaryEntry = 'Articulos_USUARIO'
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
DisplayLabel = 'Ref. proveedor'
DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR'
end
item
Name = 'PRECIO_COSTE'
DataType = datCurrency
DisplayLabel = 'Importe'
DictionaryEntry = 'Articulos_PRECIO_COSTE'
end
item
Name = 'PRECIO_PORTE'
DataType = datCurrency
DisplayLabel = 'Precio porte'
DictionaryEntry = 'Articulos_PRECIO_PORTE'
end
item
Name = 'DESCUENTO'
DataType = datFloat
DisplayLabel = 'Descuento'
DictionaryEntry = 'Articulos_DESCUENTO'
end
item
Name = 'PRECIO_NETO'
DataType = datCurrency
DecimalPrecision = 2
DecimalScale = 2
DisplayLabel = 'Precio neto'
DictionaryEntry = 'Articulos_PRECIO_NETO'
end
item
Name = 'INVENTARIABLE'
DataType = datSmallInt
DisplayLabel = 'Inventariable'
DictionaryEntry = 'Articulos_INVENTARIABLE'
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
DictionaryEntry = 'Articulos_ELIMINADO'
end
item
Name = 'FABRICANTE'
DataType = datString
Size = 255
DisplayLabel = 'Fabricante'
DictionaryEntry = 'Articulos_FABRICANTE'
end
item
Name = 'REFERENCIA_FABR'
DataType = datString
Size = 255
DisplayLabel = 'Ref. fabricante'
DictionaryEntry = 'Articulos_REFERENCIA_FABR'
end
item
Name = 'PARAM_MARGEN'
DataType = datFloat
end
item
Name = 'PRECIO_PVP_VENTA'
DataType = datCurrency
DisplayLabel = 'Precio PVP (Solo suministro)'
Alignment = taRightJustify
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_PRECIO_PVP_VENTA'
end
item
Name = 'TIEMPO'
DataType = datInteger
end
item
Name = 'PARAM_TIEMPO'
DataType = datFloat
DisplayLabel = 'Precio min'
Alignment = taRightJustify
DictionaryEntry = 'Articulos_PARAM_TIEMPO'
end
item
Name = 'MANO_OBRA'
DataType = datCurrency
DisplayLabel = 'Mano de obra'
Alignment = taRightJustify
DictionaryEntry = 'Articulos_MANO_OBRA'
end
item
Name = 'PRECIO_PVP_TOTAL'
DataType = datCurrency
DisplayLabel = 'Precio P.V.P (Total)'
Alignment = taRightJustify
ServerAutoRefresh = True
DictionaryEntry = 'Articulos_PRECIO_PVP_TOTAL'
end
item
Name = 'ID_ARTICULO'
DataType = datInteger
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Articulos
LogicalName = 'ArticulosParaCompra'
IndexDefs = <>
Left = 416
Top = 240
end
object ds_ArticulosParaCompra: TDADataSource
DataSet = tbl_ArticulosParaCompra.Dataset
DataTable = tbl_ArticulosParaCompra
Left = 416
Top = 192
end
end

View File

@ -8,8 +8,7 @@ uses
uRORemoteService, uROClient, uROBinMessage,
uDADesigntimeCall,
uIDataModuleArticulos, uBizArticulos, uDataModuleBase, uDARemoteDataAdapter,
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable,
uBizArticulosProveedores;
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable;
type
TDataModuleArticulos = class(TDataModuleBase, IDataModuleArticulos)
@ -18,24 +17,15 @@ type
rda_Articulos: TDARemoteDataAdapter;
tbl_Articulos: TDAMemDataTable;
ds_Articulos: TDADataSource;
tbl_ProveedoresConArticulos: TDAMemDataTable;
ds_ProveedoresConArticulos: TDADataSource;
tbl_Articulos_Proveedores: TDAMemDataTable;
ds_Articulos_Proveedores: TDADataSource;
tbl_ArticulosParaCompra: TDAMemDataTable;
ds_ArticulosParaCompra: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
function _GetProveedores : IBizArticulosProveedores;
protected
procedure AsignarClaseNegocio(AArticulo: TDADataTable); virtual;
public
function GetItems (const Tipo: TEnumArticulos) : IBizArticulo;
function GetItems : IBizArticulo;
function GetItem(const ID : Integer) : IBizArticulo;
function NewItem : IBizArticulo;
function DarListaProveedoresConArticulos(const IDEmpresa: Integer) : TStringList;
end;
implementation
@ -59,43 +49,18 @@ begin
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleArticulos.DarListaProveedoresConArticulos(const IDEmpresa: Integer): TStringList;
begin
Result := TStringList.Create;
Result.LoadFromStream((RORemoteService as IsrvArticulos).DarListaProveedoresConArticulos(IDEmpresa));
end;
function TDataModuleArticulos.NewItem: IBizArticulo;
begin
Result := GetItem(ID_NULO)
end;
function TDataModuleArticulos._GetProveedores: IBizArticulosProveedores;
var
AProveedores : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AProveedores := CloneDataTable(tbl_Articulos_Proveedores);
with AProveedores do
begin
BusinessRulesID := BIZ_CLIENT_ARTICULOS_PROVEEDORES;
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (AProveedores as IBizArticulosProveedores);
finally
HideHourglassCursor;
end;
end;
function TDataModuleArticulos.GetItem(const ID: Integer): IBizArticulo;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := Self.GetItems(txArticulo);
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
@ -113,25 +78,15 @@ begin
end;
end;
function TDataModuleArticulos.GetItems(const Tipo: TEnumArticulos): IBizArticulo;
function TDataModuleArticulos.GetItems: IBizArticulo;
var
AArticulo : TDAMemDataTable;
begin
ShowHourglassCursor;
try
case Tipo of
txArticulo: AArticulo := CloneDataTable(tbl_Articulos);
txProveedor: AArticulo := CloneDataTable(tbl_ArticulosParaCompra);
end;
AArticulo := CloneDataTable(tbl_Articulos);
AsignarClaseNegocio(AArticulo);
case Tipo of
txArticulo: TBizArticulo(AArticulo.BusinessEventsObj).Proveedores := _GetProveedores;
end;
Result := (AArticulo as IBizArticulo);
finally
HideHourglassCursor;
end;

View File

@ -55,21 +55,20 @@
<DelphiCompile Include="Articulos_model.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="adortl.dcp" />
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Medicacion\Model\adortl.dcp" />
<DCCReference Include="..\..\Medicacion\Model\ApplicationBase.dcp" />
<DCCReference Include="..\..\Medicacion\Model\Base.dcp" />
<DCCReference Include="..\..\Medicacion\Model\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Medicacion\Model\dbrtl.dcp" />
<DCCReference Include="..\..\Medicacion\Model\dsnap.dcp" />
<DCCReference Include="..\..\Medicacion\Model\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Medicacion\Model\rtl.dcp" />
<DCCReference Include="..\..\Medicacion\Model\vcl.dcp" />
<DCCReference Include="..\..\Medicacion\Model\vcldb.dcp" />
<DCCReference Include="Data\uIDataModuleArticulos.pas" />
<DCCReference Include="dbrtl.dcp" />
<DCCReference Include="dsnap.dcp" />
<DCCReference Include="RemObjects_Core_D11.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="schArticulosClient_Intf.pas" />
<DCCReference Include="schArticulosServer_Intf.pas" />
<DCCReference Include="uBizArticulos.pas" />
<DCCReference Include="uBizArticulosProveedores.pas" />
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vcldb.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -6,14 +6,10 @@ uses
uBizArticulos, Classes;
type
TEnumArticulos = (txArticulo, txProveedor);
IDataModuleArticulos = interface
['{9047C468-78DE-404E-9047-1125B382FE3B}']
function GetItems (const Tipo: TEnumArticulos) : IBizArticulo;
['{282D95BD-92DC-4B2B-AF91-D00777A16E4A}']
function GetItems : IBizArticulo;
function GetItem(const ID : Integer) : IBizArticulo;
function NewItem : IBizArticulo;
function DarListaProveedoresConArticulos(const IDEmpresa: Integer) : TStringList;
end;
implementation

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,48 +3,24 @@ unit uBizArticulos;
interface
uses
uDAInterfaces, uDADataTable, schArticulosClient_Intf, uDBSelectionListUtils,
uBizArticulosProveedores;
uDAInterfaces, uDADataTable, schArticulosClient_Intf, uDBSelectionListUtils;
const
BIZ_CLIENT_ARTICULO = 'Client.Articulo';
type
IBizArticulo = interface(IArticulos)
['{06AB61B1-C225-4791-9F5E-00A60DBA7FFD}']
function EsNuevo : Boolean;
function HayImagen: Boolean;
procedure SalvarImagen(const AFileName: String);
procedure CargarImagen(const AFileName: String);
procedure QuitarImagen;
function GetProveedores: IBizArticulosProveedores;
procedure SetProveedores(Value: IBizArticulosProveedores);
property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores;
['{647CC4D1-D018-41E1-8273-7E4759873A62}']
end;
TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable)
protected
FProveedores : IBizArticulosProveedores;
FProveedoresLink : TDADataSource;
FSeleccionableInterface : ISeleccionable;
procedure OnNewRecord(Sender: TDADataTable); override;
procedure PARAMETROSPRECIOOnChange(Sender: TDACustomField);
function GetProveedores: IBizArticulosProveedores;
procedure SetProveedores(Value: IBizArticulosProveedores);
public
procedure IniciarValoresArticuloNuevo; virtual;
function HayImagen: Boolean;
procedure SalvarImagen(const AFileName: String);
procedure CargarImagen(const AFileName: String);
procedure QuitarImagen;
function EsNuevo : Boolean;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
write FSeleccionableInterface implements ISeleccionable;
property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores;
end;
implementation
@ -54,114 +30,19 @@ uses
{ TBizArticulo }
procedure TBizArticulo.CargarImagen(const AFileName: String);
begin
{ inherited;
DataTable.Edit;
DataTable.FieldByName(fld_ArticulosIMAGEN).LoadFromFile(AFileName);
DataTable.Post;}
end;
constructor TBizArticulo.Create(aDataTable: TDADataTable);
begin
inherited;
with aDataTable do
begin
FieldByName(fld_ArticulosTIEMPO).OnChange := PARAMETROSPRECIOOnChange;
FieldByName(fld_ArticulosPARAM_TIEMPO).OnChange := PARAMETROSPRECIOOnChange;
FieldByName(fld_ArticulosPARAM_MARGEN).OnChange := PARAMETROSPRECIOOnChange;
end;
FProveedoresLink := TDADataSource.Create(NIL);
FProveedoresLink.DataTable := aDataTable;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizArticulo.Destroy;
begin
FProveedores := NIL;
FProveedoresLink.Free;
FSeleccionableInterface := NIL;
inherited;
end;
function TBizArticulo.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
function TBizArticulo.GetProveedores: IBizArticulosProveedores;
begin
Result := FProveedores;
end;
function TBizArticulo.HayImagen: Boolean;
{var
AStream : TMemoryStream;
AROStream : IROStream;}
begin
{ AStream := TMemoryStream.Create;
AROStream := TROStream.Create(AStream, False);
try
DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToStream(AROStream);
Result := (AROStream.Size > 0);
finally
AROStream := NIL;
FreeAndNIL(AStream);
end;}
end;
procedure TBizArticulo.IniciarValoresArticuloNuevo;
begin
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
PARAM_TIEMPO := AppFactuGES.EmpresaActiva.PARAM_TIEMPO;
PARAM_MARGEN := AppFactuGES.EmpresaActiva.PARAM_MARGEN;
INVENTARIABLE := 1;
COMISIONABLE := 1;
ELIMINADO := 0;
end;
procedure TBizArticulo.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresArticuloNuevo;
end;
procedure TBizArticulo.PARAMETROSPRECIOOnChange(Sender: TDACustomField);
begin
if not Self.DataTable.Editing then
Edit;
MANO_OBRA := TIEMPO * PARAM_TIEMPO;
if Assigned(Self.Proveedores) then
begin
Self.Proveedores.RecalcularImportes;
end;
end;
procedure TBizArticulo.QuitarImagen;
begin
{ DataTable.Edit;
DataTable.Fields[idx_ArticulosIMAGEN].Clear;
DataTable.Post;}
end;
procedure TBizArticulo.SalvarImagen(const AFileName: String);
begin
// DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(AFileName);
end;
procedure TBizArticulo.SetProveedores(Value: IBizArticulosProveedores);
begin
FProveedores := Value;
EnlazarMaestroDetalle(FProveedoresLink, FProveedores);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_ARTICULO, TBizArticulo);

View File

@ -1,126 +0,0 @@
unit uBizArticulosProveedores;
interface
uses
uDAInterfaces, uDADataTable,
schArticulosClient_Intf;
const
BIZ_CLIENT_ARTICULOS_PROVEEDORES = 'Client.ArticulosProveedores';
type
IBizArticulosProveedores = interface(IArticulos_Proveedores)
['{C5F703CB-5400-435C-81E5-9E716104D1C7}']
function EsNuevo : Boolean;
procedure RecalcularImportes;
end;
TBizArticulosProveedores = class(TArticulos_ProveedoresDataTableRules, IBizArticulosProveedores)
private
procedure RecalcularImporte;
protected
procedure BeforeInsert(Sender: TDADataTable); override;
procedure OnNewRecord(Sender: TDADataTable); override;
procedure PARAMETROSPRECIOOnChange(Sender: TDACustomField);
public
procedure RecalcularImportes;
function EsNuevo : Boolean;
constructor Create(aDataTable: TDADataTable); override;
end;
implementation
uses
Dialogs,uDataTableUtils, DB;
{ TBizArticulosProveedores }
procedure TBizArticulosProveedores.BeforeInsert(Sender: TDADataTable);
var
AMasterTable : TDADataTable;
begin
inherited;
AMasterTable := DataTable.GetMasterDataTable;
if Assigned(AMasterTable) and (AMasterTable.State in dsEditModes) then
AMasterTable.Post;
end;
constructor TBizArticulosProveedores.Create(aDataTable: TDADataTable);
begin
inherited;
with aDataTable do
begin
FieldByName(fld_Articulos_ProveedoresPRECIO_COSTE).OnChange := PARAMETROSPRECIOOnChange;
FieldByName(fld_Articulos_ProveedoresDESCUENTO).OnChange := PARAMETROSPRECIOOnChange;
FieldByName(fld_Articulos_ProveedoresPRECIO_PORTE).OnChange := PARAMETROSPRECIOOnChange;
end;
end;
function TBizArticulosProveedores.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
procedure TBizArticulosProveedores.OnNewRecord(Sender: TDADataTable);
begin
inherited;
PRECIO_PORTE := 0;
PRECIO_COSTE := 0;
DESCUENTO := 0;
PRECIO_NETO := 0;
end;
procedure TBizArticulosProveedores.PARAMETROSPRECIOOnChange(Sender: TDACustomField);
begin
RecalcularImporte;
end;
procedure TBizArticulosProveedores.RecalcularImporte;
begin
with Self.DataTable do
begin
if not Editing then
Edit;
//OJO SI ALGUNA VEZ ESTO CAMBIA TAMBIEN HAY QUE CAMBIAR EL PROCEDIMIENTO ALMACENADO PRO_ART_RECALCULAR_PVP
Self.PRECIO_NETO := Self.PRECIO_COSTE - (Self.PRECIO_COSTE * (Self.DESCUENTO / 100));
Self.PRECIO_PVP_VENTA := (Self.PRECIO_NETO + Self.PRECIO_PORTE) * ((MasterSource.DataTable.FieldByName(fld_ArticulosPARAM_MARGEN).AsFloat / 100) + 1);
Self.PRECIO_PVP_TOTAL := Self.PRECIO_PVP_VENTA + MasterSource.DataTable.FieldByName(fld_ArticulosMANO_OBRA).AsFloat;
end;
end;
procedure TBizArticulosProveedores.RecalcularImportes;
var
AIdAux: Integer;
begin
AIdAux := Self.ID;
with Self.DataTable do
begin
DisableControls;
try
First;
while not EOF do
begin
RecalcularImporte;
Post;
Next;
end;
First;
Locate(fld_Articulos_ProveedoresID, AIdAux, []);
finally
EnableControls;
end;
end;
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_ARTICULOS_PROVEEDORES, TBizArticulosProveedores);
end.

File diff suppressed because it is too large Load Diff

View File

@ -21,9 +21,7 @@ uses
type
{ TsrvArticulos }
TsrvArticulos = class(TDataAbstractService, IsrvArticulos)
bpArticulos: TDABusinessProcessor;
Bin2DataStreamer: TDABin2DataStreamer;
bpArticulos_Proveedores: TDABusinessProcessor;
schArticulos: TDASchema;
DataDictionary: TDADataDictionary;
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset;
@ -31,8 +29,6 @@ type
procedure DARemoteServiceCreate(Sender: TObject);
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
function DarListaProveedoresConArticulos(Const IDEmpresa: Integer): Binary;
end;
implementation
@ -40,8 +36,7 @@ implementation
{$R *.dfm}
uses
{Generated:} Etiquetas_Invk, uDataModuleServer, Variants, uStringsUtils,
uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils, dialogs,
uBizArticulosServer;
uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils;
procedure Create_srvArticulos(out anInstance : IUnknown);
begin
@ -53,56 +48,33 @@ procedure TsrvArticulos.DARemoteServiceBeforeGetDatasetData(
const Dataset: IDADataset; const IncludeSchema: Boolean;
const MaxRecords: Integer);
begin
if (DataSet.Name = nme_Articulos) then
begin
{ if (DataSet.Name = nme_Articulos) then
begin}
{ Aquí se asegura que el usuario sólo accede a los Articulos
de las empresas a las que tiene permiso para acceder
filtrando DataSet por ID_EMPRESA. }
FiltrarAccesoUsuario(Session, Connection, schArticulos, DataSet, fld_ArticulosID_EMPRESA);
end;
{FiltrarAccesoUsuario(Session, Connection, schArticulos, DataSet, fld_ArticulosID_EMPRESA);
end;}
end;
procedure TsrvArticulos.DARemoteServiceCreate(Sender: TObject);
begin
//SessionManager := dmServer.SessionManager;
bpArticulos.BusinessRulesID := BIZ_SERVER_ARTICULOS;
end;
function TsrvArticulos.DarListaProveedoresConArticulos(Const IDEmpresa: Integer): Binary;
var
dsProveedores : IDADataset;
Aux : TStringList;
begin
Result := Binary.Create;
Aux := TStringList.Create;
dsProveedores := schArticulos.NewDataset(Connection, 'ProveedoresConArticulos', ['ID_EMPRESA'], [IDEmpresa], True);
try
while not dsProveedores.EOF do
begin
if not VarIsNull(dsProveedores.Fields[0].AsVariant) then
Aux.Add(Format('%s=%d', [dsProveedores.Fields[1].AsString, dsProveedores.Fields[0].AsInteger]));
dsProveedores.Next;
end;
Aux.SaveToStream(Result);
finally
dsProveedores.Close;
dsProveedores := NIL;
FreeAndNil(Aux);
end;
end;
procedure TsrvArticulos.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin
ConnectionName := dmServer.ConnectionName;
ConnectionName := 'FARMATIC'
end;
var
fClassFactory: IROClassFactory;
initialization
TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker);
fClassFactory := TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker);
finalization
UnRegisterClassFactory(fClassFactory);
fClassFactory := nil;
end.

View File

@ -28,22 +28,57 @@ requires
GUIBase,
Articulos_model,
Articulos_controller,
Familias_controller,
UnidadesMedida_controller,
Contactos_view,
Fabricantes_controller,
GUISDK_D11R;
GUISDK_D11R,
rtl,
vcl,
dbrtl,
PngComponentsD10,
PNG_D10,
vclactnband,
vclx,
tb2k_d10,
tbx_d10,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
cxGridD11,
cxPageControlD11,
cxExtEditorsD11,
cxDataD11,
cxEditorsD11,
vcljpg,
vcldb,
cxExportD11,
cxIntlPrintSys3D11,
designide,
xmlrtl,
dxComnD11,
dxPSCoreD11,
DataAbstract_Core_D11,
dsnap,
adortl,
RemObjects_Core_D11,
JvCoreD11R,
JclVcl,
Jcl,
JvAppFrmD11R,
JvCtrlsD11R,
JvSystemD11R,
JvStdCtrlsD11R,
dxPScxCommonD11,
dxPSLnksD11,
vclshlctrls,
dxPScxGrid6LnkD11,
dclcxLibraryD11;
contains
uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame},
uArticulosViewRegister in 'uArticulosViewRegister.pas',
uEditorArticulo in 'uEditorArticulo.pas' {fEditorArticulo: TfEditorArticulo},
uEditorElegirArticulos in 'uEditorElegirArticulos.pas' {fEditorElegirArticulos: TfEditorElegirArticulos},
uViewArticulo in 'uViewArticulo.pas' {frViewArticulo: TFrame},
uViewDetallesArticulos in 'uViewDetallesArticulos.pas' {frViewDetallesArticulos: TFrame},
uViewArticulosProveedores in 'uViewArticulosProveedores.pas' {frViewArticulosProveedores: TFrame},
uViewArticulosPorProveedor in 'uViewArticulosPorProveedor.pas' {frViewArticulosPorProveedor: TFrame},
uViewDetallesArticulosParaVenta in 'uViewDetallesArticulosParaVenta.pas' {frViewDetallesArticulosParaVenta: TCustomView},
uEditorArticulos in 'uEditorArticulos.pas' {fEditorArticulos: TfEditorArticulo};
uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame};
end.

View File

@ -55,43 +55,60 @@
<DelphiCompile Include="Articulos_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\..\Servidor\Articulos_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\Articulos_model.dcp" />
<DCCReference Include="..\..\..\Servidor\Contactos_view.dcp" />
<DCCReference Include="..\..\..\Servidor\Fabricantes_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\Familias_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\GUIBase.dcp" />
<DCCReference Include="..\..\..\Servidor\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\..\Servidor\UnidadesMedida_controller.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\adortl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\Articulos_controller.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\Articulos_model.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\Contactos_view.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxDataD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxEditorsD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxExportD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxExtEditorsD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxGridD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxLibraryD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\cxPageControlD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dbrtl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dclcxLibraryD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\designide.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dsnap.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxComnD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxCoreD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxPSCoreD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxPScxCommonD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxPSLnksD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\dxThemeD11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\GUIBase.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\Jcl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JclVcl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JvAppFrmD11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JvCoreD11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JvCtrlsD11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\JvSystemD11R.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\PngComponentsD10.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\PNG_D10.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\rtl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\tb2k_d10.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\tbx_d10.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\UnidadesMedida_controller.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vcl.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vclactnband.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vcldb.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vcljpg.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vclshlctrls.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\vclx.dcp" />
<DCCReference Include="..\..\Medicaciones\Views\xmlrtl.dcp" />
<DCCReference Include="uArticulosViewRegister.pas" />
<DCCReference Include="uEditorArticulo.pas">
<Form>fEditorArticulo</Form>
<DesignClass>TfEditorArticulo</DesignClass>
</DCCReference>
<DCCReference Include="uEditorArticulos.pas">
<Form>fEditorArticulos</Form>
<DesignClass>TfEditorArticulo</DesignClass>
</DCCReference>
<DCCReference Include="uEditorElegirArticulos.pas">
<Form>fEditorElegirArticulos</Form>
<DesignClass>TfEditorElegirArticulos</DesignClass>
</DCCReference>
<DCCReference Include="uViewArticulo.pas">
<Form>frViewArticulo</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewArticulos.pas">
<Form>frViewArticulos</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewArticulosPorProveedor.pas">
<Form>frViewArticulosPorProveedor</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewArticulosProveedores.pas">
<Form>frViewArticulosProveedores</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewArticulos.pas" />
<DCCReference Include="uViewDetallesArticulos.pas">
<Form>frViewDetallesArticulos</Form>
<DesignClass>TFrame</DesignClass>

View File

@ -8,19 +8,15 @@ procedure UnregisterViews;
implementation
uses
uEditorRegistryUtils, uEditorArticulos, uEditorArticulo, uEditorElegirArticulos;
uEditorRegistryUtils, uEditorElegirArticulos;
procedure RegisterViews;
begin
EditorRegistry.RegisterClass(TfEditorArticulo, 'EditorArticulo');
EditorRegistry.RegisterClass(TfEditorArticulos, 'EditorArticulos');
EditorRegistry.RegisterClass(TfEditorElegirArticulos, 'EditorElegirArticulos');
end;
procedure UnregisterViews;
begin
EditorRegistry.UnRegisterClass(TfEditorArticulo);
EditorRegistry.UnRegisterClass(TfEditorArticulos);
EditorRegistry.UnRegisterClass(TfEditorElegirArticulos);
end;

View File

@ -1,898 +0,0 @@
inherited fEditorArticulo: TfEditorArticulo
Left = 374
Top = 273
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
Caption = 'Ficha de art'#237'culo'
ClientHeight = 505
ClientWidth = 905
Scaled = False
OnClose = CustomEditorClose
ExplicitWidth = 913
ExplicitHeight = 539
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 905
Caption = 'Art'#237'culo'
ExplicitWidth = 905
inherited Image1: TImage
Left = 878
Picture.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
00001C0806000000720DDF940000000970485973000017120000171201679FD2
520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F
033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC
EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F
1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB
1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590
60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01
5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010
7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233
3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9
CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685
4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082}
ExplicitLeft = 607
end
end
inherited TBXDock: TTBXDock
Width = 905
ExplicitWidth = 905
inherited tbxMain: TTBXToolbar
ExplicitWidth = 400
inherited TBXItem2: TTBXItem
Visible = False
end
inherited TBXItem5: TTBXItem
Visible = False
end
inherited TBXItem23: TTBXItem
Visible = False
end
inherited TBXItem3: TTBXItem
Visible = False
end
object TBXSeparatorItem6: TTBXSeparatorItem [11]
end
object TBXItem33: TTBXItem [12]
Action = actFamilias
DisplayMode = nbdmImageAndText
end
end
inherited tbxMenu: TTBXToolbar
DockPos = 0
ExplicitWidth = 905
inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem8: TTBXItem
Visible = False
end
inherited TBXSeparatorItem5: TTBXSeparatorItem
Visible = False
end
inherited TBXItem10: TTBXItem
Visible = False
end
inherited TBXItem21: TTBXItem
Visible = False
end
inherited TBXItem22: TTBXItem
Visible = False
end
inherited TBXItem9: TTBXItem
Visible = False
end
end
inherited TBXSubmenuItem1: TTBXSubmenuItem
inherited TBXItem32: TTBXItem
Visible = False
end
inherited TBXItem31: TTBXItem
Visible = False
end
inherited TBXSeparatorItem13: TTBXSeparatorItem
Visible = False
end
end
end
end
inherited pgPaginas: TPageControl
Width = 899
Height = 404
ActivePage = TabSheet1
ExplicitWidth = 899
ExplicitHeight = 404
inherited pagGeneral: TTabSheet
ExplicitLeft = 4
ExplicitTop = 24
ExplicitWidth = 891
ExplicitHeight = 376
end
object TabSheet1: TTabSheet
Caption = 'Precios'
ImageIndex = 1
inline frViewArticulosProveedores1: TfrViewArticulosProveedores
Left = 0
Top = 97
Width = 891
Height = 279
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
ReadOnly = False
ExplicitTop = 97
ExplicitWidth = 891
ExplicitHeight = 279
inherited cxGrid: TcxGrid
Width = 891
Height = 254
ExplicitWidth = 891
ExplicitHeight = 254
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewPRECIO_COSTE: TcxGridDBColumn
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
inherited cxGridViewDESCUENTO: TcxGridDBColumn
Properties.Alignment.Horz = taRightJustify
GroupSummaryAlignment = taRightJustify
end
inherited cxGridViewPRECIO_NETO: TcxGridDBColumn
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
inherited cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
inherited cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
end
end
inherited ToolBar1: TToolBar
Width = 891
ExplicitWidth = 891
end
end
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 891
Height = 97
Align = alTop
TabOrder = 1
TabStop = False
AutoContentSizes = [acsWidth, acsHeight]
LookAndFeel = dxLayoutOfficeLookAndFeel1
object eParamMargen: TcxDBSpinEdit
Left = 118
Top = 30
DataBinding.DataField = 'PARAM_MARGEN'
DataBinding.DataSource = dsDataTable
Properties.Alignment.Horz = taRightJustify
Properties.AssignedValues.EditFormat = True
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 0
Width = 100
end
object eTiempo: TcxDBSpinEdit
Left = 118
Top = 57
DataBinding.DataField = 'TIEMPO'
DataBinding.DataSource = dsDataTable
Properties.Alignment.Horz = taRightJustify
Properties.ImmediatePost = True
Properties.MaxValue = 100000.000000000000000000
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 1
Width = 100
end
object eParamTiempo: TcxDBCurrencyEdit
Left = 300
Top = 57
DataBinding.DataField = 'PARAM_TIEMPO'
DataBinding.DataSource = dsDataTable
Properties.Alignment.Horz = taRightJustify
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 2
Width = 150
end
object eManoObra: TcxDBSpinEdit
Left = 545
Top = 57
DataBinding.DataField = 'MANO_OBRA'
DataBinding.DataSource = dsDataTable
Enabled = False
Properties.Alignment.Horz = taRightJustify
Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Properties.SpinButtons.Visible = False
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 3
Width = 200
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
Caption = 'Par'#225'metros de precio'
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Margen coste (%):'
Control = eParamMargen
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group3: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item2: TdxLayoutItem
Caption = 'Tiempo min.:'
Control = eTiempo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
Caption = ' Precio min.:'
Control = eParamTiempo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item4: TdxLayoutItem
Caption = ' Mano de obra'
Control = eManoObra
ControlOptions.ShowBorder = False
end
end
end
end
end
end
end
inherited StatusBar: TJvStatusBar
Top = 486
Width = 905
Panels = <
item
Width = 200
end>
ExplicitTop = 486
ExplicitWidth = 905
end
inherited EditorActionList: TActionList
Left = 64
Top = 136
object actFamilias: TAction
Category = 'Acciones'
Caption = 'Familias'
Hint = 'Acceder a la gesti'#243'n de familias de art'#237'culos'
ImageIndex = 21
OnExecute = actFamiliasExecute
end
end
inherited SmallImages: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000774494D45000000000000000973942E000000097048597300001712
0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9
2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD
3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E
E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290
60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF
FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232
E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043
C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF
194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4
67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A
91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA
9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583
000005100EB8572466A60000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001074944415478DA
63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A
C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211
AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643
0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601
C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4
CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346
B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501
4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08
0029AC32F01825AACD0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001514944415478DA
635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319
CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000
9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802
238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D
F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4
C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18
58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801
7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB
FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E
92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED
12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082}
Name = 'PngImage3'
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 = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA
A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304
451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994
9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F
9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546
031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8
1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA
9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E
9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8
E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0
3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8
5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37
60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB
7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932
75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04
E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148
D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2
45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56
A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E
AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13
7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058
5538F0EAB25B380000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001934944415478DA
6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98
5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6
3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F
FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F
B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9
0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491
85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC
02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5
100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF
3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E
C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506
172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4
32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260
82}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000774494D45000000000000000973942E000000097048597300001712
0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD
D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958
410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF
DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C
0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B
B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD
D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6
AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895
68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608
DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1
94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9
D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252
4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29
1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4
F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A
A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F
AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537
19FE00839434866373C4BA0000000049454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000774494D45000000000000000973942E000000097048597300001712
0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20
E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9
0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1
CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098
D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4
AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609
23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3
D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD
17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8
C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D
E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770
03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F
16FA1194E3DBC30000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000774494D45000000000000000973942E000000097048597300001712
0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5
8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA
20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8
5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B
A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78
B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE
9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58
4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E
0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D
73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE
F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744
E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000016A4944415478DA
63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA
61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA
0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30
F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911
FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD
D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5
6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C
E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3
FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B
CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907
BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4
0090010087546EF0ACB0C7920000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001024944415478DA
63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3
C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999
FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8
004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7
770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5
B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719
20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B
164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1
CDA578040000000049454E44AE426082}
Name = 'PngImage11'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001C04944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F
3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8
7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF
117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E
3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F
80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB
7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1
CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1
8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4
F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C
81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0
F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78
8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C
80060000000049454E44AE426082}
Name = 'PngImage12'
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 = 'PngImage13'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA
8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414
A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D
739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF
425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008
EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5
6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050
910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85
CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15
205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7
F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D
B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D
09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02
161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE
4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0
7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D
02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747
2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7
FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386
01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790
E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6
9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74
2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD
BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03
503A4EA60D6AAC070000000049454E44AE426082}
Name = 'PngImage14'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA
8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251
82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E
C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC
5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910
082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537
BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0
81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB
B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048
5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5
E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676
3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8
8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002
29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29
5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF
077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF
0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5
1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF
AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632
83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4
E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384
8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72
CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD
DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8
3FA68502A9830000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA
6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD
0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4
7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383
E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF
4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6
9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5
EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77
EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7
379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF
4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813
BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902
06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636
EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4
65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022
078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212
09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9
951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160
FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300
D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05
7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB
EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F
A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE
CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3
D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF
EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265
EA71FE0D330BBCF031BDB9A60000000049454E44AE426082}
Name = 'PngImage15'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA
6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B
8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB
079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720
F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED
AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F
8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB
C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF
A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C
67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C
CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A
387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A
3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF
8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5
FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43
19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020
26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807
F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB
49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C
B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631
24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83
F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C
E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F
CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E
82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548
995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000
000049454E44AE426082}
Name = 'PngImage16'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000019E4944415478DA
63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F
FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA
1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01
D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3
0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9
9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40
DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C
86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9
7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9
ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44
18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34
87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1
387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA
0000000049454E44AE426082}
Name = 'PngImage17'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000015D4944415478DA
63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0
3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060
24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298
E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0
60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161
10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319
1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5
BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068
06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2
E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41
00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500
00000049454E44AE426082}
Name = 'PngImage18'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001B04944415478DA
63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3
C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999
FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7
481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E
7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840
96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3
CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657
318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28
6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34
782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9
F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296
D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801
6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A
98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082}
Name = 'PngImage19'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001034944415478DA
636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520
91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D
1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A
7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60
9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800
0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE
B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3
F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A
7A68BA98860000000049454E44AE426082}
Name = 'PngImage20'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6
B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77
EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5
E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D
6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D
C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6
4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141
4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15
F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334
2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524
15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256
20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4
3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F
E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082}
Name = 'PngImage21'
Background = clWindow
end>
Top = 112
Bitmap = {}
end
inherited dsDataTable: TDADataSource [6]
Left = 8
Top = 128
end
inherited LargeImages: TPngImageList [7]
Top = 112
end
inherited JvFormStorage: TJvFormStorage [8]
Left = 400
Top = 152
end
inherited JvAppRegistryStorage: TJvAppRegistryStorage
Left = 432
Top = 152
end
object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
Left = 240
Top = 136
object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel
GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET
GroupOptions.CaptionOptions.Font.Color = clWindowText
GroupOptions.CaptionOptions.Font.Height = -11
GroupOptions.CaptionOptions.Font.Name = 'Tahoma'
GroupOptions.CaptionOptions.Font.Style = [fsBold]
GroupOptions.CaptionOptions.TextColor = clHighlight
GroupOptions.CaptionOptions.UseDefaultFont = False
end
end
end

View File

@ -1,240 +0,0 @@
unit uEditorArticulo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
uViewArticulo, uBizArticulos, JvNavigationPane, ActnList,
uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase,
uViewArticulos, uIEditorArticulo, uArticulosController, JvExComCtrls,
JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces, Grids, DBGrids, cxStyles,
cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, uViewDetallesGenerico,
uViewArticulosProveedores, dxLayoutControl, cxContainer,
cxTextEdit, cxMaskEdit, cxSpinEdit, cxDBEdit, cxCurrencyEdit;
type
TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
TBXItem33: TTBXItem;
actFamilias: TAction;
TBXSeparatorItem6: TTBXSeparatorItem;
TabSheet1: TTabSheet;
frViewArticulosProveedores1: TfrViewArticulosProveedores;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
eParamMargen: TcxDBSpinEdit;
dxLayoutControl1Item2: TdxLayoutItem;
eTiempo: TcxDBSpinEdit;
dxLayoutControl1Item3: TdxLayoutItem;
eParamTiempo: TcxDBCurrencyEdit;
dxLayoutControl1Item4: TdxLayoutItem;
eManoObra: TcxDBSpinEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
procedure FormShow(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
procedure actFamiliasExecute(Sender: TObject);
protected
FController : IArticulosController;
FArticulo: IBizArticulo;
FViewArticulo : IViewArticulo;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController); virtual;
function GetArticulo: IBizArticulo; virtual;
procedure SetArticulo(const Value: IBizArticulo); virtual;
function GetViewArticulo: IViewArticulo;
procedure SetViewArticulo(const Value: IViewArticulo);
property ViewArticulo: IViewArticulo read GetViewArticulo write SetViewArticulo;
procedure GuardarInterno; override;
procedure EliminarInterno; override;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
procedure PonerTitulos(const ATitulo: string = ''); override;
public
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uCustomEditor, uDataModuleArticulos, uDataModuleBase,
uBizFamilias, uFamiliasController;
{
******************************* TfEditorArticulo *******************************
}
function TfEditorArticulo.GetArticulo: IBizArticulo;
begin
Result := FArticulo;
end;
function TfEditorArticulo.GetController: IArticulosController;
begin
Result := FController;
end;
function TfEditorArticulo.GetViewArticulo: IViewArticulo;
begin
Result := FViewArticulo;
end;
procedure TfEditorArticulo.GuardarInterno;
begin
inherited;
FController.Guardar(FArticulo);
Modified := False;
end;
procedure TfEditorArticulo.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
if Assigned(Articulo) then
begin
if Articulo.EsNuevo then
FTitulo := 'Nuevo artículo'
else
FTitulo := 'Artículo';
if Length(Articulo.DESCRIPCION) > 0 then
FTitulo := FTitulo + ' - ' + Articulo.DESCRIPCION;
end;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorArticulo.SetArticulo(const Value: IBizArticulo);
begin
FArticulo := Value;
dsDataTable.DataTable := FArticulo.DataTable;
if Assigned(FViewArticulo) and Assigned(Articulo) then
begin
FViewArticulo.Articulo := Articulo;
frViewArticulosProveedores1.Articulo := Articulo;
end;
end;
procedure TfEditorArticulo.SetController(const Value: IArticulosController);
begin
FController := Value;
if Assigned(FController) then
begin
(ViewArticulo as IViewArticulo).Controller := (FController as IArticulosController);
frViewArticulosProveedores1.Controller := FController;
end;
end;
procedure TfEditorArticulo.SetViewArticulo(const Value: IViewArticulo);
begin
FViewArticulo := Value;
if Assigned(FViewArticulo) and Assigned(Articulo) then
FViewArticulo.Articulo := Articulo;
end;
procedure TfEditorArticulo.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(FViewArticulo) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Articulo) then
raise Exception.Create('No hay ningún almacén asignado');
Articulo.DataTable.Active := True;
end;
destructor TfEditorArticulo.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorArticulo.actFamiliasExecute(Sender: TObject);
var
AFamiliasController : IFamiliasController;
AFamilias : IBizFamilia;
begin
AFamiliasController := TFamiliasController.Create;
try
AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia);
AFamiliasController.VerTodos(AFamilias);
finally
AFamilias := NIL;
AFamiliasController := NIL;
end;
end;
procedure TfEditorArticulo.AsignarVista;
var
AViewArticulo: TfrViewArticulo;
begin
AViewArticulo := TfrViewArticulo.create(Self);
with AViewArticulo do
begin
Parent := pagGeneral;
Align := alClient;
dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1;
end;
ViewArticulo := AViewArticulo;
end;
constructor TfEditorArticulo.Create(AOwner: TComponent);
begin
inherited;
pgPaginas.ActivePageIndex := 0;
AsignarVista;
end;
procedure TfEditorArticulo.CustomEditorClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
dsDataTable.DataTable := NIL;
FViewArticulo := NIL;
FArticulo := NIL;
end;
procedure TfEditorArticulo.dsDataTableDataChange(Sender: TObject;
Field: TField);
begin
inherited;
if Assigned(FArticulo) and (not (FArticulo.DataTable.Fetching) or
not (FArticulo.DataTable.Opening) or not (FArticulo.DataTable.Closing)) then
PonerTitulos;
end;
procedure TfEditorArticulo.EliminarInterno;
begin
if (Application.MessageBox('¿Desea borrar este articulo?', 'Atención', MB_YESNO) = IDYES) then
begin
inherited;
if not FController.Eliminar(FArticulo) then
actRefrescar.Execute;
end;
end;
end.

View File

@ -1,339 +0,0 @@
unit uEditorArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewArticulos, uBizArticulos, ActnList, DBActns, uViewGrid,
Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
uViewBarraSeleccion, pngimage, uIEditorArticulos, uEditorGridBase,
JvComponentBase, uViewGridBase, uArticulosController, JvExComCtrls,
JvStatusBar, uDAInterfaces, cxGrid, cxGridLevel, uViewArticulosPorProveedor;
type
TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos)
actFamilias: TAction;
pgPaginas: TPageControl;
pagArticulos: TTabSheet;
pagArticulosPorProveedor: TTabSheet;
frViewArticulos1: TfrViewArticulos;
frViewArticulosPorProveedor1: TfrViewArticulosPorProveedor;
procedure FormShow(Sender: TObject);
procedure actFamiliasExecute(Sender: TObject);
procedure pgPaginasChange(Sender: TObject);
private
FArticulos: IBizArticulo;
FArticulosPorProveedor: IBizArticulo;
FController : IArticulosController;
protected
procedure SetViewGrid(const Value : IViewGridBase); override;
function GetArticulos: IBizArticulo;
procedure SetArticulos(const Value: IBizArticulo);
function GetArticulosPorProveedor: IBizArticulo;
procedure SetArticulosPorProveedor(const Value: IBizArticulo);
function GetController : IArticulosController; virtual;
procedure SetController (const Value : IArticulosController); virtual;
procedure NuevoInterno; override;
procedure EliminarInterno; override;
procedure ModificarInterno; override;
procedure ImprimirInterno; override;
procedure PrevisualizarInterno; override;
procedure DuplicarInterno; override;
procedure RefrescarInterno; override;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
property ArticulosPorProveedor: IBizArticulo read GetArticulosPorProveedor write SetArticulosPorProveedor;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
cxControls, uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, uFactuGES_App,
uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController,
cxGridCustomTableView; //, uListaArticulos;
{$R *.dfm}
{
****************************** TfEditorArticulos *******************************
}
procedure TfEditorArticulos.FormShow(Sender: TObject);
begin
inherited;
ViewGrid := frViewArticulos1;
end;
function TfEditorArticulos.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
function TfEditorArticulos.GetArticulosPorProveedor: IBizArticulo;
begin
Result := FArticulosPorProveedor;
end;
function TfEditorArticulos.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfEditorArticulos.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorArticulos.ModificarInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
case pgPaginas.ActivePage.TabIndex of
0: begin
AArticulo := Articulos;
FController.Ver(AArticulo);
end;
1: begin
AArticulo := FController.Buscar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger);
FController.Ver(AArticulo);
RefrescarInterno;
end;
end;
end;
procedure TfEditorArticulos.NuevoInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
if (FViewGrid._Grid.ActiveLevel.Tag = 1) then
AArticulo := FController.Nuevo
else
begin
AArticulo := Articulos;
FController.Anadir(AArticulo);
end;
if not AArticulo.DataTable.Active then
AArticulo.DataTable.Active := True;
FController.Ver(AArticulo);
if (FViewGrid._Grid.ActiveLevel.Tag = 1) then
Articulos.DataTable.Refresh;
end;
procedure TfEditorArticulos.pgPaginasChange(Sender: TObject);
begin
inherited;
if pgPaginas.ActivePage.TabIndex = 0 then
ViewGrid := frViewArticulos1
else
ViewGrid := frViewArticulosPorProveedor1;
end;
procedure TfEditorArticulos.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de artículos - ' + AppFactuGES.EmpresaActiva.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorArticulos.PrevisualizarInterno;
begin
inherited;
end;
procedure TfEditorArticulos.RefrescarInterno;
begin
// inherited;
if Assigned(FArticulos) then
begin
frViewArticulos1.SaveGridStatus;
try
frViewArticulos1.dsDataSource.DataTable.Refresh;
finally
frViewArticulos1.RestoreGridStatus;
end;
end;
if Assigned(FArticulosPorProveedor) then
begin
frViewArticulosPorProveedor1.SaveGridStatus;
try
frViewArticulosPorProveedor1.dsDataSource.DataTable.Refresh;
finally
frViewArticulosPorProveedor1.RestoreGridStatus;
end;
end;
end;
procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
dsDataTable.DataTable := FArticulos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := FArticulos;
end;
procedure TfEditorArticulos.SetArticulosPorProveedor(const Value: IBizArticulo);
begin
FArticulosPorProveedor := Value;
dsDataTable.DataTable := FArticulosPorProveedor.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := FArticulosPorProveedor;
end;
procedure TfEditorArticulos.SetController(const Value: IArticulosController);
begin
FController := Value;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Controller := FController;
end;
procedure TfEditorArticulos.SetViewGrid(const Value: IViewGridBase);
var
APosicionarAlprincipio: Boolean;
begin
inherited;
APosicionarAlprincipio := False;
case pgPaginas.ActivePage.TabIndex of
0: begin
if not Assigned(Articulos) then
begin
APosicionarAlprincipio := True;
Articulos := FController.BuscarTodos;
end;
Articulos.DataTable.Active := True;
if actFiltrar.Checked then
begin
if not frViewArticulos1.ViewFiltros.VerFiltros then
begin
actFiltrar.Execute;
frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto;
end
else
frViewArticulos1.ViewFiltros.Texto := frViewArticulosPorProveedor1.ViewFiltros.Texto;
end
else
begin
if frViewArticulos1.ViewFiltros.VerFiltros then
actFiltrar.Execute;
ViewGrid.Filter := tbxEditFiltro.Text;
end;
end;
1: begin
if not Assigned(ArticulosPorProveedor) then
begin
APosicionarAlprincipio := True;
ArticulosPorProveedor := FController.BuscarTodosPorProveedor;
end;
ArticulosPorProveedor.DataTable.Active := True;
if actFiltrar.Checked then
begin
if not frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then
begin
actFiltrar.Execute;
frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto;
end
else
frViewArticulosPorProveedor1.ViewFiltros.Texto := frViewArticulos1.ViewFiltros.Texto;
end
else
begin
if frViewArticulosPorProveedor1.ViewFiltros.VerFiltros then
actFiltrar.Execute;
ViewGrid.Filter := tbxEditFiltro.Text;
end;
end;
end;
if APosicionarAlprincipio then
ViewGrid._FocusedView.DataController.GotoFirst;
end;
destructor TfEditorArticulos.Destroy;
begin
FArticulos := NIL;
FArticulosPorProveedor := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorArticulos.DuplicarInterno;
var
AArticulo : IBizArticulo;
begin
inherited;
AArticulo := FController.Duplicar(Articulos);
try
FController.Ver(AArticulo);
finally
actRefrescar.Execute;
end;
end;
procedure TfEditorArticulos.EliminarInterno;
begin
if (Application.MessageBox('¿Desea borrar este artículo?', 'Atención', MB_YESNO) = IDYES) then
begin
inherited;
//Para que en el caso de no poderse realizar la operación se refresquen
//los datos y no nos permita eliminar un registro a la segunda
case pgPaginas.ActivePage.TabIndex of
0: begin
if not FController.Eliminar(Articulos.ID) then
actRefrescar.Execute;
end;
1: begin
if not FController.Eliminar(ArticulosPorProveedor.DataTable.FieldByName('ID_ARTICULO').AsInteger) then
actRefrescar.Execute;
end;
end;
RefrescarInterno;
end;
end;
procedure TfEditorArticulos.actFamiliasExecute(Sender: TObject);
var
AFamiliasController : IFamiliasController;
AFamilias : IBizFamilia;
begin
AFamiliasController := TFamiliasController.Create;
try
AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia);
AFamiliasController.VerTodos(AFamilias);
finally
AFamilias := NIL;
AFamiliasController := NIL;
end;
end;
constructor TfEditorArticulos.Create(AOwner: TComponent);
begin
inherited;
end;
end.

View File

@ -2,6 +2,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos
Caption = 'Seleccionar art'#237'culos'
ClientWidth = 656
ExplicitWidth = 664
ExplicitHeight = 240
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@ -82,7 +83,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos
AlignWithMargins = True
Left = 25
Top = 8
Width = 606
Width = 131
Height = 13
Margins.Left = 0
Margins.Top = 0
@ -96,20 +97,17 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
ExplicitWidth = 131
end
object lblComments: TLabel
AlignWithMargins = True
Left = 50
Top = 29
Width = 581
Height = 24
Width = 3
Height = 13
Margins.Left = 25
Margins.Top = 0
Margins.Right = 0
Align = alClient
ExplicitWidth = 3
ExplicitHeight = 13
end
end
inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4]

View File

@ -10,7 +10,7 @@ uses
uViewArticulos, ComCtrls, TB2ExtItems, TBXExtItems, TBX,
TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewBarraSeleccion, StdCtrls,
uEditorArticulos, uBizArticulos, uIEditorElegirArticulos,
uBizArticulos, uIEditorElegirArticulos,
JvExComCtrls, JvStatusBar, uDAInterfaces, uEditorGridBase, uArticulosController;
type
@ -168,17 +168,8 @@ begin
end;
procedure TfEditorElegirArticulos.NuevoInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
AArticulo := FController.Nuevo;
if not AArticulo.DataTable.Active then
AArticulo.DataTable.Active := True;
FController.Ver(AArticulo);
RefrescarInterno;
end;
procedure TfEditorElegirArticulos.SetArticulos(const Value: IBizArticulo);

View File

@ -1,506 +0,0 @@
inherited frViewArticulo: TfrViewArticulo
Width = 614
Height = 376
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
ExplicitWidth = 451
ExplicitHeight = 304
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
Width = 614
Height = 376
Align = alClient
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth]
ExplicitWidth = 451
ExplicitHeight = 304
DesignSize = (
614
376)
object PngSpeedButton2: TPngSpeedButton
Left = 552
Top = 304
Width = 23
Height = 22
Action = actAnadir
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001EB4944415478DA
A5D34B68135114C6F1FF746692462D24D5A8F5B52B81B448501475E142D4EAA2
3420E8C68A0A45345BC19DE24A74D50AE2424A11041105DD28A8881411174A70
E58BA4149A1A0D8D1D9B669E997B9D14B1A44491E6C2D9DDF3BB1F877B94DB8F
5E4B5A384A1D3831B06759CDDB0E9D5B04865FD9CD6F49C95A374B4ADC20AAE4
9936B6F244CF70299DFA3F40F5AB1C74CEB225FE1C654E4796DA7963A6D977F2
FABF81E061EAC3D1EC0247C531A27A017E846026CC844890CC3CFE3B506F1641
D9025CCFA4DF384FD27F419BA1231C9D67917ED267AE3507A414E4BF8DD3B1AA
07A97562F92A31EB037B8D313658137CD292DC5D719A7B83C9E640AEF892F1DC
454A5FABEC4E5D21BEBE0FD397411217E15599911D547C8DEC60A411B8FC34C7
C3F7C71710BD73927CB686E785D87FE01D22483267FDC45156620A0DAB069F4F
B53702A9ABBB08AF2E20DB7C1CB386517698FE52A56BE31136272EF0F16D1F44
7610EF7D802554A68696003B6F6D42517DAC6A0D3B006CCB67B6686356248944
0F8635C9F7A90A91F800E1EE51CA99D81260B40B27C8F607307DECF91AF38687
A6AB74A7A2940A26E5A28B164FE38CDC67FBE1CC22D03BB226007E2708202700
5CAB5E62E14344D785084734664B0EBE8CE18D951A81967661F8E69DE56FA394
2D6D33BF00C89C2C72EBA3BC190000000049454E44AE426082}
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object PngSpeedButton1: TPngSpeedButton
Left = 552
Top = 332
Width = 23
Height = 22
Action = actEliminar
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object eReferencia: TcxDBTextEdit
Left = 122
Top = 28
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA'
DataBinding.DataSource = dsViewArticulo
Enabled = False
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = clWindow
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 0
Width = 290
end
object eDescripcion: TcxDBTextEdit
Left = 122
Top = 55
DataBinding.DataField = 'DESCRIPCION'
DataBinding.DataSource = dsViewArticulo
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = 14745599
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 1
Width = 290
end
object eNoComisionable: TcxDBCheckBox
Left = 122
Top = 163
Caption = 'Art'#237'culo no comisionable'
DataBinding.DataField = 'COMISIONABLE'
DataBinding.DataSource = dsViewArticulo
Properties.ImmediatePost = True
Properties.NullStyle = nssUnchecked
Properties.ValueChecked = 0
Properties.ValueUnchecked = 1
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 5
Width = 290
end
object eImagen: TcxImage
Left = 28
Top = 304
Properties.GraphicClassName = 'TJPEGImage'
Properties.ImmediatePost = True
Properties.PopupMenuLayout.MenuItems = []
Properties.Stretch = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 8
Height = 98
Width = 355
end
object cbFamilia: TcxDBComboBox
Left = 122
Top = 82
DataBinding.DataField = 'FAMILIA'
DataBinding.DataSource = dsViewArticulo
Properties.DropDownRows = 16
Properties.ImmediatePost = True
Properties.OnInitPopup = cbFamiliaPropertiesInitPopup
Properties.OnValidate = cbFamiliaPropertiesValidate
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 2
Width = 290
end
object cbNoInventariable: TcxDBCheckBox
Left = 122
Top = 136
Caption = 'Art'#237'culo no inventariable'
DataBinding.DataField = 'INVENTARIABLE'
DataBinding.DataSource = dsViewArticulo
Properties.ImmediatePost = True
Properties.NullStyle = nssUnchecked
Properties.ValueChecked = 0
Properties.ValueUnchecked = 1
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 4
Width = 290
end
object cbUnidadMedida: TcxDBComboBox
Left = 122
Top = 109
DataBinding.DataField = 'UNIDAD_MEDIDA'
DataBinding.DataSource = dsViewArticulo
Properties.DropDownRows = 16
Properties.ImmediatePost = True
Properties.OnInitPopup = cbUnidadMedidaPropertiesInitPopup
Properties.OnValidate = cbUnidadMedidaPropertiesValidate
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 3
Width = 290
end
object cbFabricante: TcxDBComboBox
Left = 122
Top = 220
DataBinding.DataField = 'FABRICANTE'
DataBinding.DataSource = dsViewArticulo
Properties.DropDownRows = 16
Properties.ImmediatePost = True
Properties.OnInitPopup = cbFabricantePropertiesInitPopup
Properties.OnValidate = cbFabricantePropertiesValidate
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 6
Width = 290
end
object eReferenciaFabr: TcxDBTextEdit
Left = 122
Top = 247
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA_FABR'
DataBinding.DataSource = dsViewArticulo
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = clWindow
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.Color = clWindow
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.SkinName = ''
TabOrder = 7
Width = 171
end
object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloGroup3: TdxLayoutGroup
Caption = 'New Group'
ShowCaption = False
LayoutDirection = ldHorizontal
ShowBorder = False
end
object dxLayoutControlArticuloGroup14: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
Caption = 'New Group'
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloGroup1: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
Caption = 'Datos del art'#237'culo'
object dxLayoutControlArticuloItem3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Referencia:'
Control = eReferencia
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem8: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Descripci'#243'n:'
Control = eDescripcion
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup4: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloItem4: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Familia:'
Control = cbFamilia
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem9: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Unidad de medida:'
Control = cbUnidadMedida
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup6: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloItem7: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = ' '
Control = cbNoInventariable
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem1: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = ' '
Visible = False
Control = eNoComisionable
ControlOptions.ShowBorder = False
end
end
end
end
object dxLayoutControlArticuloGroup10: TdxLayoutGroup
Caption = 'Datos del fabricante'
object dxLayoutControlArticuloItem10: TdxLayoutItem
Caption = 'Fabricante:'
Control = cbFabricante
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem11: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Referencia:'
Control = eReferenciaFabr
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloGroup2: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
Caption = 'Imagen'
Visible = False
LayoutDirection = ldHorizontal
object dxLayoutControlArticuloItem6: TdxLayoutItem
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
Control = eImagen
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup5: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahRight
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloItem2: TdxLayoutItem
ShowCaption = False
Control = PngSpeedButton2
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem5: TdxLayoutItem
ShowCaption = False
Control = PngSpeedButton1
ControlOptions.ShowBorder = False
end
end
end
end
end
end
object dsViewArticulo: TDADataSource
Left = 64
Top = 32
end
object OpenDialog1: TOpenDialog
Left = 24
Top = 32
end
object SmallImages: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001EB4944415478DA
A5D34B68135114C6F1FF746692462D24D5A8F5B52B81B448501475E142D4EAA2
3420E8C68A0A45345BC19DE24A74D50AE2424A11041105DD28A8881411174A70
E58BA4149A1A0D8D1D9B669E997B9D14B1A44491E6C2D9DDF3BB1F877B94DB8F
5E4B5A384A1D3831B06759CDDB0E9D5B04865FD9CD6F49C95A374B4ADC20AAE4
9936B6F244CF70299DFA3F40F5AB1C74CEB225FE1C654E4796DA7963A6D977F2
FABF81E061EAC3D1EC0247C531A27A017E846026CC844890CC3CFE3B506F1641
D9025CCFA4DF384FD27F419BA1231C9D67917ED267AE3507A414E4BF8DD3B1AA
07A97562F92A31EB037B8D313658137CD292DC5D719A7B83C9E640AEF892F1DC
454A5FABEC4E5D21BEBE0FD397411217E15599911D547C8DEC60A411B8FC34C7
C3F7C71710BD73927CB686E785D87FE01D22483267FDC45156620A0DAB069F4F
B53702A9ABBB08AF2E20DB7C1CB386517698FE52A56BE31136272EF0F16D1F44
7610EF7D802554A68696003B6F6D42517DAC6A0D3B006CCB67B6686356248944
0F8635C9F7A90A91F800E1EE51CA99D81260B40B27C8F607307DECF91AF38687
A6AB74A7A2940A26E5A28B164FE38CDC67FBE1CC22D03BB226007E2708202700
5CAB5E62E14344D785084734664B0EBE8CE18D951A81967661F8E69DE56FA394
2D6D33BF00C89C2C72EBA3BC190000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA
A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304
451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994
9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F
9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546
031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8
1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA
9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E
9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8
E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0
3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8
5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37
60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB
7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932
75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04
E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148
D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2
45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56
A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E
AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13
7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058
5538F0EAB25B380000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 27
Top = 64
Bitmap = {}
end
object ActionList1: TActionList
Images = SmallImages
Left = 56
Top = 64
object actAnadir: TAction
Hint = 'Cambiar la imagen del producto'
ImageIndex = 0
OnExecute = actAnadirExecute
end
object actEliminar: TAction
Hint = 'Quitar la imagen del producto'
ImageIndex = 1
OnExecute = actEliminarExecute
end
end
end

View File

@ -1,383 +0,0 @@
unit uViewArticulo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
DBCtrls, Grids, DBGrids, uBizArticulos, Mask, ComCtrls, uCustomView,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList,
ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit,
uFamiliasController, uViewDatosYSeleccionProveedor, cxSpinEdit, cxCurrencyEdit,
uArticulosController, uUnidadesMedidaController, uFabricantesController, uDAInterfaces;
type
IViewArticulo = interface(IViewBase)
['{65206152-786D-47AE-A037-5EF480BC056C}']
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
property Controller : IArticulosController read GetController write SetController;
end;
TfrViewArticulo = class(TfrViewBase, IViewArticulo)
dsViewArticulo: TDADataSource;
dxLayoutControlArticuloGroup_Root: TdxLayoutGroup;
dxLayoutControlArticulo: TdxLayoutControl;
dxLayoutControlArticuloGroup1: TdxLayoutGroup;
dxLayoutControlArticuloItem3: TdxLayoutItem;
eReferencia: TcxDBTextEdit;
dxLayoutControlArticuloItem8: TdxLayoutItem;
eDescripcion: TcxDBTextEdit;
dxLayoutControlArticuloGroup2: TdxLayoutGroup;
dxLayoutControlArticuloItem1: TdxLayoutItem;
eNoComisionable: TcxDBCheckBox;
dxLayoutControlArticuloGroup4: TdxLayoutGroup;
OpenDialog1: TOpenDialog;
SmallImages: TPngImageList;
ActionList1: TActionList;
actAnadir: TAction;
actEliminar: TAction;
dxLayoutControlArticuloItem2: TdxLayoutItem;
PngSpeedButton2: TPngSpeedButton;
dxLayoutControlArticuloItem5: TdxLayoutItem;
PngSpeedButton1: TPngSpeedButton;
dxLayoutControlArticuloGroup3: TdxLayoutGroup;
eImagen: TcxImage;
dxLayoutControlArticuloItem6: TdxLayoutItem;
dxLayoutControlArticuloGroup5: TdxLayoutGroup;
dxLayoutControlArticuloItem4: TdxLayoutItem;
cbFamilia: TcxDBComboBox;
dxLayoutControlArticuloGroup6: TdxLayoutGroup;
dxLayoutControlArticuloItem7: TdxLayoutItem;
cbNoInventariable: TcxDBCheckBox;
dxLayoutControlArticuloItem9: TdxLayoutItem;
cbUnidadMedida: TcxDBComboBox;
dxLayoutControlArticuloItem10: TdxLayoutItem;
cbFabricante: TcxDBComboBox;
dxLayoutControlArticuloItem11: TdxLayoutItem;
eReferenciaFabr: TcxDBTextEdit;
dxLayoutControlArticuloGroup10: TdxLayoutGroup;
dxLayoutControlArticuloGroup14: TdxLayoutGroup;
procedure actEliminarExecute(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure cbFamiliaPropertiesInitPopup(Sender: TObject);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure cbFamiliaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure PrecioNetoChanged(Sender: TObject);
procedure cbUnidadMedidaPropertiesInitPopup(Sender: TObject);
procedure cbUnidadMedidaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure cbFabricantePropertiesInitPopup(Sender: TObject);
procedure cbFabricantePropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
private
procedure CargarImagen;
procedure SalvarImagen;
protected
FFamiliasController: IFamiliasController;
FUnidadesController: IUnidadesMedidaController;
FFabricantesController: IFabricantesController;
FController: IArticulosController;
FArticulo: IBizArticulo;
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo); virtual;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
procedure OnProveedorChanged(Sender: TObject);
public
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
property Controller : IArticulosController read GetController write SetController;
end;
implementation
uses
uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos,
uBizUnidadesMedida, uBizFabricantes;
{$R *.dfm}
{ TfrViewArticulos }
{
******************************* TfrViewArticulos ********************************
}
procedure TfrViewArticulo.actAnadirExecute(Sender: TObject);
begin
{ eImagen.LoadFromFile;
if Assigned(eImagen.Picture) then
SalvarImagen;}
end;
procedure TfrViewArticulo.actEliminarExecute(Sender: TObject);
begin
{ inherited;
eImagen.Clear;
FArticulo.QuitarImagen;}
end;
procedure TfrViewArticulo.CargarImagen;
{var
aAux : String;}
begin
{ if FArticulo.HayImagen then
begin
ShowHourglassCursor;
try
aAux := DarFicheroJPGTemporal;
FArticulo.SalvarImagen(aAux);
try
eImagen.Picture.LoadFromFile(aAux);
except
on EInvalidGraphic do
ShowMessage('error');
end;
finally
DeleteFile(aAux);
HideHourglassCursor;
end;
end;}
end;
procedure TfrViewArticulo.cbFabricantePropertiesInitPopup(Sender: TObject);
begin
inherited;
with cbFabricante.Properties.Items do
begin
if (Count = 0) then
begin
ShowHourglassCursor;
BeginUpdate;
try
Clear;
AddStrings(FFabricantesController.DarListaFabricantes);
finally
EndUpdate;
HideHourglassCursor;
end;
end;
end;
end;
procedure TfrViewArticulo.cbFabricantePropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
AFabricantes : IBizFabricante;
begin
inherited;
with (Sender as TcxDBComboBox) do
begin
if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then
if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
begin
ShowHourglassCursor;
Properties.LookupItems.BeginUpdate;
AFabricantes := FFabricantesController.BuscarTodos;
AFabricantes.DataTable.Active := True;
try
FFabricantesController.Anadir(AFabricantes);
AFabricantes.DESCRIPCION := DisplayValue;
FFabricantesController.Guardar(AFabricantes);
Properties.LookupItems.Add(DisplayValue);
finally
Properties.LookupItems.EndUpdate;
HideHourglassCursor;
AFabricantes := NIL;
end;
end;
end;
end;
procedure TfrViewArticulo.cbFamiliaPropertiesInitPopup(Sender: TObject);
begin
inherited;
with cbFamilia.Properties.Items do
begin
if (Count = 0) then
begin
ShowHourglassCursor;
BeginUpdate;
try
Clear;
AddStrings(FFamiliasController.DarListaFamilias);
finally
EndUpdate;
HideHourglassCursor;
end;
end;
end;
end;
procedure TfrViewArticulo.cbFamiliaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
AFamilias : IBizFamilia;
begin
inherited;
with (Sender as TcxDBComboBox) do
begin
if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then
if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
begin
ShowHourglassCursor;
Properties.LookupItems.BeginUpdate;
AFamilias := FFamiliasController.BuscarTodos;
AFamilias.DataTable.Active := True;
try
FFamiliasController.Anadir(AFamilias);
AFamilias.DESCRIPCION := DisplayValue;
FFamiliasController.Guardar(AFamilias);
Properties.LookupItems.Add(DisplayValue);
finally
Properties.LookupItems.EndUpdate;
HideHourglassCursor;
AFamilias := NIL;
end;
end;
end;
end;
procedure TfrViewArticulo.cbUnidadMedidaPropertiesInitPopup(Sender: TObject);
begin
inherited;
with cbUnidadMedida.Properties.Items do
begin
if (Count = 0) then
begin
ShowHourglassCursor;
BeginUpdate;
try
Clear;
AddStrings(FUnidadesController.DarListaUnidadesMedida);
finally
EndUpdate;
HideHourglassCursor;
end;
end;
end;
end;
procedure TfrViewArticulo.cbUnidadMedidaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
AUnidades : IBizUnidadMedida;
begin
inherited;
with (Sender as TcxDBComboBox) do
begin
if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then
if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
begin
ShowHourglassCursor;
Properties.LookupItems.BeginUpdate;
AUnidades := FUnidadesController.BuscarTodos;
AUnidades.DataTable.Active := True;
try
FUnidadesController.Anadir(AUnidades);
AUnidades.DESCRIPCION := DisplayValue;
FUnidadesController.Guardar(AUnidades);
Properties.LookupItems.Add(DisplayValue);
finally
Properties.LookupItems.EndUpdate;
HideHourglassCursor;
AUnidades := NIL;
end;
end;
end;
end;
procedure TfrViewArticulo.CustomViewCreate(Sender: TObject);
begin
inherited;
FFamiliasController := TFamiliasController.Create;
FUnidadesController := TUnidadesMedidaController.Create;
FFabricantesController := TFabricantesController.Create;
end;
procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject);
begin
FFamiliasController := Nil;
FUnidadesController := NIL;
FFabricantesController := NIL;
inherited;
end;
function TfrViewArticulo.GetArticulo: IBizArticulo;
begin
Result := FArticulo;
end;
function TfrViewArticulo.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfrViewArticulo.OnProveedorChanged(Sender: TObject);
begin
if Assigned(FArticulo) then
begin
FArticulo.Edit;
// FArticulo.ID_PROVEEDOR := frViewDatosYSeleccionProveedor1.Proveedor.ID;
// FArticulo.DESCUENTO := frViewDatosYSeleccionProveedor1.Proveedor.DESCUENTO;
end;
end;
procedure TfrViewArticulo.PrecioNetoChanged(Sender: TObject);
begin
if Assigned(FController) then
FController.CalcularPrecioNeto(FArticulo);
end;
procedure TfrViewArticulo.SalvarImagen;
var
aAux : String;
begin
{ ShowHourglassCursor;
try
aAux := DarFicheroJPGTemporal;
eImagen.Picture.SaveToFile(aAux);
FArticulo.CargarImagen(aAux);
Self.Modified := True;
finally
DeleteFile(aAux);
HideHourglassCursor;
end;}
end;
procedure TfrViewArticulo.SetArticulo(const Value: IBizArticulo);
begin
FArticulo := Value;
// frViewDatosYSeleccionProveedor1.OnProveedorChanged := NIL;
if Assigned(FArticulo) then
begin
dsViewArticulo.DataTable := FArticulo.DataTable;
// frViewDatosYSeleccionProveedor1.Controller := FController.ProveedoresController;
// frViewDatosYSeleccionProveedor1.Proveedor := (FController.ProveedoresController.Buscar(FArticulo.ID_PROVEEDOR) as IBizProveedor);
// frViewDatosYSeleccionProveedor1.OnProveedorChanged := OnProveedorChanged;
// CargarImagen;
end
else begin
dsViewArticulo.DataTable := NIL;
FArticulo := NIL;
eImagen.Clear;
end;
end;
procedure TfrViewArticulo.SetController(const Value: IArticulosController);
begin
FController := Value;
end;
end.

View File

@ -15,7 +15,7 @@ uses
cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox,
cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels,
TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces,
uArticulosController;
uArticulosController, uCustomView, uViewBase;
type
IViewArticulos = interface(IViewGrid)

View File

@ -1,492 +0,0 @@
inherited frViewArticulosPorProveedor: TfrViewArticulosPorProveedor
Width = 715
Height = 462
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
OnShow = CustomViewShow
ExplicitWidth = 715
ExplicitHeight = 462
inherited cxGrid: TcxGrid
Width = 715
Height = 334
ExplicitWidth = 715
ExplicitHeight = 334
inherited cxGridView: TcxGridDBTableView
DataController.KeyFieldNames = 'RecID'
DataController.Summary.FooterSummaryItems = <
item
Format = '0 Art'#237'culos por proveedor'
Kind = skCount
Column = cxGridViewDESCRIPCION
end>
DataController.OnCompare = cxGridViewDataControllerCompare
OptionsBehavior.PullFocusing = True
OptionsCustomize.ColumnHidingOnGrouping = False
OptionsView.GroupFooters = gfAlwaysVisible
object cxGridViewINVENTARIABLE: TcxGridDBColumn
Caption = #191'Inventariable?'
DataBinding.FieldName = 'INVENTARIABLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.Images = GridPNGImageList
Properties.Items = <
item
Value = 0
end
item
ImageIndex = 3
Tag = 1
Value = 1
end>
Visible = False
BestFitMaxWidth = 22
MinWidth = 22
Options.HorzSizing = False
VisibleForCustomization = False
Width = 22
end
object cxGridViewCOMISIONABLE: TcxGridDBColumn
Caption = #191'Comisionable?'
DataBinding.FieldName = 'COMISIONABLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.DefaultDescription = 'S'#237
Properties.DefaultImageIndex = 1
Properties.ImmediatePost = True
Properties.ImmediateUpdateText = True
Properties.Items = <
item
Description = 'S'#237
ImageIndex = 1
Tag = 1
Value = 1
end
item
Description = 'No'
Value = 0
end
item
Description = 'S'#237
ImageIndex = 1
Tag = 1
end>
Properties.PostPopupValueOnTab = True
Properties.ShowDescriptions = False
Visible = False
BestFitMaxWidth = 22
MinWidth = 22
Options.HorzSizing = False
VisibleForCustomization = False
Width = 22
end
object cxGridViewREFERENCIA: TcxGridDBColumn
Caption = 'Referencia'
DataBinding.FieldName = 'REFERENCIA'
BestFitMaxWidth = 60
SortIndex = 0
SortOrder = soAscending
Width = 60
end
object cxGridViewFABRICANTE: TcxGridDBColumn
Caption = 'Fabricante'
DataBinding.FieldName = 'FABRICANTE'
BestFitMaxWidth = 60
end
object cxGridViewREFERENCIA_FABR: TcxGridDBColumn
Caption = 'Ref. fabricante'
DataBinding.FieldName = 'REFERENCIA_FABR'
BestFitMaxWidth = 60
Width = 60
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
Caption = 'Descripci'#243'n'
DataBinding.FieldName = 'DESCRIPCION'
Width = 120
end
object cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn
Caption = 'Unid. medida'
DataBinding.FieldName = 'UNIDAD_MEDIDA'
BestFitMaxWidth = 45
Width = 60
end
object cxGridViewFAMILIA: TcxGridDBColumn
Caption = 'Familia'
DataBinding.FieldName = 'FAMILIA'
BestFitMaxWidth = 60
Width = 60
end
object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn
Caption = 'Proveedor'
DataBinding.FieldName = 'NOMBRE_PROVEEDOR'
BestFitMaxWidth = 120
Width = 120
end
object cxGridViewREFERENCIA_PROV: TcxGridDBColumn
Caption = 'Ref. proveedor'
DataBinding.FieldName = 'REFERENCIA_PROV'
BestFitMaxWidth = 60
Width = 60
end
object cxGridViewPRECIO_COSTE: TcxGridDBColumn
Caption = 'Precio material'
DataBinding.FieldName = 'PRECIO_COSTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 60
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewDESCUENTO: TcxGridDBColumn
Caption = 'Descuento'
DataBinding.FieldName = 'DESCUENTO'
PropertiesClassName = 'TcxSpinEditProperties'
Properties.Alignment.Horz = taRightJustify
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
BestFitMaxWidth = 60
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_NETO: TcxGridDBColumn
Caption = 'Precio coste'
DataBinding.FieldName = 'PRECIO_NETO'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 60
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_PORTE: TcxGridDBColumn
Caption = 'Precio porte'
DataBinding.FieldName = 'PRECIO_PORTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
Visible = False
BestFitMaxWidth = 60
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
VisibleForCustomization = False
end
object cxGridViewMARGEN: TcxGridDBColumn
Caption = 'Margen'
DataBinding.FieldName = 'PARAM_MARGEN'
PropertiesClassName = 'TcxSpinEditProperties'
Properties.Alignment.Horz = taRightJustify
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Visible = False
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn
Caption = 'Precio P.V.P (solo suministro)'
DataBinding.FieldName = 'PRECIO_PVP_VENTA'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
GroupSummaryAlignment = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewID_PROVEEDOR: TcxGridDBColumn
DataBinding.FieldName = 'ID_PROVEEDOR'
Visible = False
VisibleForCustomization = False
end
object cxGridViewTIEMPO: TcxGridDBColumn
Caption = 'Tiempo min'
DataBinding.FieldName = 'TIEMPO'
PropertiesClassName = 'TcxSpinEditProperties'
Properties.Alignment.Horz = taRightJustify
Visible = False
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPARAM_TIEMPO: TcxGridDBColumn
DataBinding.FieldName = 'PARAM_TIEMPO'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
Visible = False
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewMANO_OBRA: TcxGridDBColumn
DataBinding.FieldName = 'MANO_OBRA'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
Visible = False
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn
DataBinding.FieldName = 'PRECIO_PVP_TOTAL'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
end
inherited cxGridLevel: TcxGridLevel
Caption = 'Todos los art'#237'culos'
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
Width = 715
ExplicitWidth = 715
inherited TBXDockablePanel1: TTBXDockablePanel
ExplicitWidth = 715
inherited dxLayoutControl1: TdxLayoutControl
Width = 715
ExplicitWidth = 715
inherited txtFiltroTodo: TcxTextEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 618
Width = 618
end
inherited edtFechaIniFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
end
inherited edtFechaFinFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
end
inherited eLista: TcxComboBox
Properties.DropDownRows = 20
Properties.OnChange = nil
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 71
Width = 71
end
inherited dxLayoutControl1Group_Root: TdxLayoutGroup
inherited dxLayoutControl1Group1: TdxLayoutGroup
inherited dxLayoutControl1Item2: TdxLayoutItem
Visible = False
end
inherited dxLayoutControl1Item3: TdxLayoutItem
Visible = False
end
inherited dxLayoutControl1Item4: TdxLayoutItem
Visible = True
end
end
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 715
ExplicitWidth = 715
inherited tbxBotones: TTBXToolbar
Width = 705
ExplicitWidth = 705
end
end
end
inherited ActionList1: TActionList
inherited actQuitarFiltro: TAction
OnExecute = frViewFiltroBase1actQuitarFiltroExecute
end
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
Top = 436
Visible = True
ExplicitTop = 436
ExplicitWidth = 715
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 715
ExplicitWidth = 715
inherited TBXToolbar1: TTBXToolbar
Width = 705
ExplicitWidth = 705
object TBXSeparatorItem1: TTBXSeparatorItem
end
object TBXItem3: TTBXItem
Action = actFamilia
end
object TBXSeparatorItem2: TTBXSeparatorItem
end
object TBXItem2: TTBXItem
Action = actProveedor
end
object TBXSeparatorItem3: TTBXSeparatorItem
end
object TBXItem4: TTBXItem
Action = actFabricante
end
end
end
end
inherited dxComponentPrinter: TdxComponentPrinter
inherited dxComponentPrinterLink: TdxGridReportLink
ReportDocument.CreationDate = 38673.842406053240000000
BuiltInReportLink = True
end
end
inherited ActionList1: TActionList
Left = 360
Top = 280
object actFamilia: TAction
Caption = 'Familia'
OnExecute = actFamiliaExecute
OnUpdate = actFamiliaUpdate
end
object actProveedor: TAction
Caption = 'Proveedor'
OnExecute = actProveedorExecute
OnUpdate = actProveedorUpdate
end
object actFabricante: TAction
Caption = 'Fabricante'
OnExecute = actFabricanteExecute
OnUpdate = actFabricanteUpdate
end
end
inherited GridPNGImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000B1300000B1301009A9C1800000A4F694343505068
6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7
DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1
114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1
7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E
11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0
07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08
801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027
7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A
450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00
305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078
99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279
99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA
BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225
EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5
E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D
814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9
582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35
00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380
6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000
44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64
801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E
3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8
21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C
46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064
74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4
6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704
128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384
51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4
37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9
DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853
E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1
B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11
DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867
197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA
0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353
E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659
C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD
D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C
744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48
AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7
53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E
4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5
35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F
8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B
4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8
6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711
A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217
67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A
DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767
1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5
9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5
D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761
EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43
7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65
F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69
0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577
D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F
C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B
17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816
8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC
91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD
31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507
C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E
2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39
B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D
6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D
1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF
66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97
CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5
61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49
FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D
D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9
F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B
625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367
F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B
E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB
9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D
DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41
D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43
058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB
AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6
1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553
D0A7FB93199393FF040398F3FC63332DDB000000434944415478DA63FCFFFF3F
03258011D900464646ACA601D530126D00BA6298A1B80C21CA0090183639925C
80CB3B040DC0E69A510306BD010C04005E03C801036F00008D248BE16F9028BA
0000000049454E44AE426082}
Name = 'Icono_header'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000022E4944415478DA
8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000B64944415478DA6364A010300E2A031C80B800CA9E00C407408C008F
00850F3F3E2C3870E080032103E09A900D031AD0B061C70607A8185E03FE03B1
2094FD1E24E7E0E12070E1C2850D1F5E7C4800F21F90EC0207078702A0D30370
D94E300C0404040E7CF8F0A101C960BC06A000A0ED0140DB0BA006630D604206
00F51F0029DE802B80711A000C798703270E34009D0FF33B4600E335C0C0C0E0
0028F4A136630D60425E00290685FE075C014C300C8805036F00007263471179
E402210000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000E54944415478DADD902172C3301045BF4F10C3320B9645B0ACEE0D7C
83F806F5110C0BD51B6C99A160E1C2C085850B0D372C655965DCA28C3D9DB27C
CD8E44FEDBFF55E19FAAEE104013B77EF53ED100B3595967637A1B7813B098C7
F8149E435DC3CE807C29F2943FD48C784ABC0520371FF64D83D377597FF201F8
28C899DE39D3B005D0AE8B0DB0FB3597143A2B98195EA3DA0248DBC67D79FF98
B100682278857540224EF131BCD64BFF62363FE215540594C675C098728BB3F5
2184031C72DDAE1EFFC89EC85EE493D63FB1A81F526BA65D7808BDA8EE1C0611
B969BE09F8ABEE007001C1D97F1131BF40440000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end>
Bitmap = {}
end
end

View File

@ -1,306 +0,0 @@
unit uViewArticulosPorProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, uBizArticulos, ActnList, Menus,
cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk,
cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox,
cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels,
TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces,
uArticulosController, uViewArticulos;
type
TfrViewArticulosPorProveedor = class(TfrViewGrid, IViewArticulos)
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewFAMILIA: TcxGridDBColumn;
cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn;
actFamilia: TAction;
actProveedor: TAction;
TBXItem2: TTBXItem;
TBXItem3: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXSeparatorItem2: TTBXSeparatorItem;
cxGridViewINVENTARIABLE: TcxGridDBColumn;
cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn;
cxGridViewFABRICANTE: TcxGridDBColumn;
TBXItem4: TTBXItem;
TBXSeparatorItem3: TTBXSeparatorItem;
actFabricante: TAction;
cxGridViewREFERENCIA_FABR: TcxGridDBColumn;
cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn;
cxGridViewID_PROVEEDOR: TcxGridDBColumn;
cxGridViewMARGEN: TcxGridDBColumn;
cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn;
cxGridViewTIEMPO: TcxGridDBColumn;
cxGridViewPARAM_TIEMPO: TcxGridDBColumn;
cxGridViewMANO_OBRA: TcxGridDBColumn;
procedure actProveedorExecute(Sender: TObject);
procedure actProveedorUpdate(Sender: TObject);
procedure actFamiliaExecute(Sender: TObject);
procedure actFamiliaUpdate(Sender: TObject);
procedure actFabricanteExecute(Sender: TObject);
procedure actFabricanteUpdate(Sender: TObject);
procedure cxGridView2DataControllerCompare(ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
procedure OnFiltroBaseListaPropertiesChange(Sender: TObject);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
procedure cxGridViewDataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
private
FListaProveedores: TStringList;
//Filtros relativos a la vista
procedure AnadirFiltroProveedores;
protected
FArticulos: IBizArticulo;
FController: IArticulosController;
function GetArticulos: IBizArticulo; virtual;
procedure SetArticulos(const Value: IBizArticulo); virtual;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
public
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
property Controller : IArticulosController read GetController write SetController;
procedure AnadirOtrosFiltros; override;
end;
implementation
{$R *.dfm}
uses
schArticulosClient_Intf, uReferenciasUtils, cxVariants;
{ TfrViewArticulos }
{
******************************* TfrViewArticulos *******************************
}
function TfrViewArticulosPorProveedor.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
function TfrViewArticulosPorProveedor.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfrViewArticulosPorProveedor.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
if Assigned(FArticulos) then
dsDataSource.DataTable := FArticulos.DataTable;
end;
procedure TfrViewArticulosPorProveedor.SetController(const Value: IArticulosController);
var
i: Integer;
begin
FController := Value;
//Rellenamos la lista de proveedores con articulos
if Assigned(FController) then
begin
FListaProveedores := FController.DarListaProveedoresConArticulos;
with frViewFiltroBase1.eLista.Properties.Items do
begin
BeginUpdate;
try
Clear;
Add('Todos');
for i := 0 to FListaProveedores.Count - 1 do
Add(FListaProveedores.Names[i]);
frViewFiltroBase1.eLista.ItemIndex := 0;
finally
EndUpdate;
end;
end;
end;
end;
procedure TfrViewArticulosPorProveedor.actFabricanteExecute(Sender: TObject);
begin
if (cxGridViewFABRICANTE.GroupIndex < 0) then
begin
cxGridViewFABRICANTE.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewFABRICANTE.Visible := False;
end
else
begin
cxGridViewFABRICANTE.GroupIndex := -1;
cxGridViewFABRICANTE.Visible := True;
end;
end;
procedure TfrViewArticulosPorProveedor.actFabricanteUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewFABRICANTE.GroupIndex < 0);
end;
procedure TfrViewArticulosPorProveedor.actFamiliaExecute(Sender: TObject);
begin
if (cxGridViewFAMILIA.GroupIndex < 0) then
begin
cxGridViewFAMILIA.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewFAMILIA.Visible := False;
end
else
begin
cxGridViewFAMILIA.GroupIndex := -1;
cxGridViewFAMILIA.Visible := True;
end;
end;
procedure TfrViewArticulosPorProveedor.actFamiliaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewFAMILIA.GroupIndex < 0);
end;
procedure TfrViewArticulosPorProveedor.actProveedorExecute(Sender: TObject);
begin
inherited;
if (cxGrid.ActiveLevel.Tag = 1) then
if (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0) then
begin
cxGridViewNOMBRE_PROVEEDOR.GroupIndex := cxGridView.GroupedColumnCount;
cxGridViewNOMBRE_PROVEEDOR.Visible := False;
end
else
begin
cxGridViewNOMBRE_PROVEEDOR.GroupIndex := -1;
cxGridViewNOMBRE_PROVEEDOR.Visible := True;
end;
end;
procedure TfrViewArticulosPorProveedor.actProveedorUpdate(Sender: TObject);
begin
inherited;
if (cxGrid.ActiveLevel.Tag = 1) then
begin
(Sender as TAction).Enabled := True;
(Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0);
end
else
(Sender as TAction).Enabled := False;
end;
procedure TfrViewArticulosPorProveedor.AnadirFiltroProveedores;
var
FFiltro : TcxFilterCriteriaItemList;
CodigoProveedor: Variant;
Index: Integer;
begin
//Solo se aplica este filtro en el caso de tener activo el panel de detalle de filtro
//y sobre la lista de articulos detallada por proveedor
if frViewFiltroBase1.Visible then
begin
if VarIsNull(frViewFiltroBase1.eLista.EditValue) then
CodigoProveedor := frViewFiltroBase1.eLista.EditValue
else
CodigoProveedor := FListaProveedores.Values[frViewFiltroBase1.eLista.EditValue];
if not VarIsNull(CodigoProveedor)
and (VarToStr(CodigoProveedor) <> '') then
begin
FFiltro := AddFilterGrid(fboAnd);
FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, CodigoProveedor, CodigoProveedor);
cxGridViewNOMBRE_PROVEEDOR.Visible := False;
end
else
cxGridViewNOMBRE_PROVEEDOR.Visible := True;
end;
end;
procedure TfrViewArticulosPorProveedor.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroProveedores;
//Finalmente activamos el filtro si tenemos algo
if cxGridView.DataController.Filter.IsEmpty
then cxGridView.DataController.Filter.Active := False
else cxGridView.DataController.Filter.Active := True;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewArticulosPorProveedor.CustomViewCreate(Sender: TObject);
begin
inherited;
FListaProveedores := Nil;
Controller := TArticulosController.Create;
end;
procedure TfrViewArticulosPorProveedor.CustomViewDestroy(Sender: TObject);
begin
inherited;
frViewFiltroBase1.eLista.Properties.OnChange := Nil;
FreeAndNil(FListaProveedores);
end;
procedure TfrViewArticulosPorProveedor.CustomViewShow(Sender: TObject);
begin
inherited;
AjustarAncho;
frViewFiltroBase1.eLista.Properties.OnChange := OnFiltroBaseListaPropertiesChange;
end;
procedure TfrViewArticulosPorProveedor.cxGridView2DataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
inherited;
if ((AItemIndex = cxGridViewREFERENCIA.Index)) and
(VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then
Compare := CompararReferencias(V1, V2)
else
Compare := VarCompare(V1, V2);
end;
procedure TfrViewArticulosPorProveedor.cxGridViewDataControllerCompare(
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
inherited;
if (AItemIndex = cxGridViewREFERENCIA.Index) and
(VarType(V1) = VarType(V2)) and (VarType(V1) = varString) then
Compare := CompararReferencias(V1, V2)
else
Compare := VarCompare(V1, V2);
end;
procedure TfrViewArticulosPorProveedor.frViewFiltroBase1actQuitarFiltroExecute(Sender: TObject);
begin
frViewFiltroBase1.txtFiltroTodo.Clear;
frViewFiltroBase1.eLista.Clear;
end;
procedure TfrViewArticulosPorProveedor.OnFiltroBaseListaPropertiesChange(Sender: TObject);
begin
inherited;
RefrescarFiltro;
end;
end.

View File

@ -1,114 +0,0 @@
inherited frViewArticulosProveedores: TfrViewArticulosProveedores
Width = 774
Height = 513
OnShow = CustomViewShow
ExplicitWidth = 774
ExplicitHeight = 513
inherited cxGrid: TcxGrid
Width = 774
Height = 488
ExplicitWidth = 774
ExplicitHeight = 488
inherited cxGridView: TcxGridDBTableView
DataController.KeyFieldNames = 'RecID'
object cxGridViewID_PROVEEDOR: TcxGridDBColumn
DataBinding.FieldName = 'ID_PROVEEDOR'
PropertiesClassName = 'TcxTextEditProperties'
Visible = False
VisibleForCustomization = False
end
object cxGridViewPROVEEDOR: TcxGridDBColumn
Caption = 'Proveedor'
DataBinding.FieldName = 'ID_PROVEEDOR'
PropertiesClassName = 'TcxLookupComboBoxProperties'
Properties.ImmediatePost = True
Properties.KeyFieldNames = 'ID'
Properties.ListColumns = <
item
SortOrder = soAscending
FieldName = 'NOMBRE'
end>
Properties.ListOptions.GridLines = glNone
Properties.ListOptions.ShowHeader = False
Properties.ListOptions.SyncMode = True
Properties.ListSource = dsProveedores
Properties.OnEditValueChanged = cxGridViewPROVEEDORPropertiesEditValueChanged
end
object cxGridViewREFERENCIA_PROV: TcxGridDBColumn
Caption = 'Ref. proveedor'
DataBinding.FieldName = 'REFERENCIA_PROV'
end
object cxGridViewFECHA_ACTUALIZACION: TcxGridDBColumn
Caption = 'Fecha '#250'ltima actualizaci'#243'n'
DataBinding.FieldName = 'FECHA_ACTUALIZACION'
PropertiesClassName = 'TcxDateEditProperties'
end
object cxGridViewPRECIO_COSTE: TcxGridDBColumn
Caption = 'Precio material'
DataBinding.FieldName = 'PRECIO_COSTE'
end
object cxGridViewDESCUENTO: TcxGridDBColumn
Caption = 'Descuento'
DataBinding.FieldName = 'DESCUENTO'
PropertiesClassName = 'TcxSpinEditProperties'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
BestFitMaxWidth = 30
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
Width = 30
end
object cxGridViewPRECIO_NETO: TcxGridDBColumn
Caption = 'Precio coste'
DataBinding.FieldName = 'PRECIO_NETO'
Options.Editing = False
end
object cxGridViewPRECIO_PORTE: TcxGridDBColumn
Caption = 'Porte'
DataBinding.FieldName = 'PRECIO_PORTE'
Visible = False
VisibleForCustomization = False
end
object cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn
Caption = 'Precio P.V.P (Suministro)'
DataBinding.FieldName = 'PRECIO_PVP_VENTA'
Options.Editing = False
end
object cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn
Caption = 'Precio P.V.P (Total)'
DataBinding.FieldName = 'PRECIO_PVP_TOTAL'
Options.Editing = False
end
object cxGridViewID_ARTICULO: TcxGridDBColumn
DataBinding.FieldName = 'ID_ARTICULO'
Visible = False
VisibleForCustomization = False
end
end
end
inherited ToolBar1: TToolBar
Width = 774
ExplicitWidth = 774
inherited ToolButton1: TToolButton
ExplicitWidth = 62
end
inherited ToolButton4: TToolButton
ExplicitWidth = 74
end
inherited ToolButton2: TToolButton
ExplicitWidth = 67
end
inherited ToolButton7: TToolButton
ExplicitWidth = 117
end
end
inherited ActionListContenido: TActionList
inherited actModificar: TAction
Visible = False
end
end
object dsProveedores: TDADataSource
Left = 72
Top = 144
end
end

View File

@ -1,132 +0,0 @@
unit uViewArticulosProveedores;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList,
PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxDBLookupComboBox, cxSpinEdit,
uBizContactos, uProveedoresController, uDAInterfaces,
uBizArticulos, uArticulosController,
cxTextEdit, cxCalendar;
type
IViewArticulosProveedores = interface(IViewBase)
['{65206152-786D-47AE-A037-5EF480BC056C}']
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
property Controller : IArticulosController read GetController write SetController;
end;
TfrViewArticulosProveedores = class(TfrViewDetallesGenerico, IViewArticulosProveedores)
dsProveedores: TDADataSource;
cxGridViewPROVEEDOR: TcxGridDBColumn;
cxGridViewDESCUENTO: TcxGridDBColumn;
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
cxGridViewPRECIO_COSTE: TcxGridDBColumn;
cxGridViewPRECIO_NETO: TcxGridDBColumn;
cxGridViewPRECIO_PORTE: TcxGridDBColumn;
cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn;
cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn;
cxGridViewID_PROVEEDOR: TcxGridDBColumn;
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxGridViewFECHA_ACTUALIZACION: TcxGridDBColumn;
procedure cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
protected
FArticulo: IBizArticulo;
FController: IArticulosController;
FProvController : IProveedoresController;
FProveedores : IBizProveedor;
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
procedure AnadirInterno; override;
public
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
procedure TfrViewArticulosProveedores.AnadirInterno;
begin
dsDetalles.DataTable.Append;
end;
constructor TfrViewArticulosProveedores.Create(AOwner: TComponent);
begin
inherited;
FProvController := TProveedoresController.Create;
FProveedores := (FProvController.BuscarTodos as IBizProveedor);
dsProveedores.DataTable := FProveedores.DataTable;
if not dsProveedores.DataTable.Active then
dsProveedores.DataTable.Active := True;
end;
procedure TfrViewArticulosProveedores.CustomViewShow(Sender: TObject);
begin
inherited;
cxGridView.ApplyBestFit;
end;
procedure TfrViewArticulosProveedores.cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject);
begin
inherited;
//Signamos el descuento del proveedor seleccionado
if not Articulo.Proveedores.DataTable.Editing then
Articulo.Proveedores.DataTable.Edit;
Articulo.Proveedores.DESCUENTO := FProveedores.DESCUENTO;
end;
destructor TfrViewArticulosProveedores.Destroy;
begin
if dsProveedores.DataTable.Active then
dsProveedores.DataTable.Active := False;
FProveedores := NIL;
FProvController := NIL;
inherited;
end;
function TfrViewArticulosProveedores.GetArticulo: IBizArticulo;
begin
Result := FArticulo;
end;
function TfrViewArticulosProveedores.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfrViewArticulosProveedores.SetArticulo(const Value: IBizArticulo);
begin
FArticulo := Value;
dsDetalles.DataTable := FArticulo.Proveedores.DataTable;
end;
procedure TfrViewArticulosProveedores.SetController(const Value: IArticulosController);
begin
FController := Value;
end;
end.

View File

@ -32,11 +32,8 @@ type
cxEditRepository1: TcxEditRepository;
cxEditRepositoryComboBox_IMPORTEUNIDAD: TcxEditRepositoryComboBoxItem;
cxEditRepositoryCurrencyItem_IMPORTEUNIDAD: TcxEditRepositoryCurrencyItem;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure actAnadirArticulosExecute(Sender: TObject);
procedure actAnadirArticulosUpdate(Sender: TObject);
procedure OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); virtual;
procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); virtual;
procedure CustomViewShow(Sender: TObject);
procedure cxGridViewREFERENCIAPropertiesButtonClick(Sender: TObject;
@ -55,7 +52,6 @@ type
protected
procedure AnadirArticulosInterno; virtual;
procedure RellenarArticulosInterno; virtual;
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; virtual;
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; override;
end;
@ -85,20 +81,6 @@ begin
(Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles);
end;
procedure TfrViewDetallesArticulos.CustomViewCreate(Sender: TObject);
begin
inherited;
cxGridViewREFERENCIA.Properties.OnValidate := OnValidateReferencia;
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := OnValidateReferenciaProveedor;
end;
procedure TfrViewDetallesArticulos.CustomViewDestroy(Sender: TObject);
begin
inherited;
cxGridViewREFERENCIA.Properties.OnValidate := Nil;
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := Nil;
end;
procedure TfrViewDetallesArticulos.CustomViewShow(Sender: TObject);
begin
inherited;
@ -182,26 +164,6 @@ begin
Result := inherited EsTipoEditable(AItem);
end;
procedure TfrViewDetallesArticulos.OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
lsReferencia : String;
begin
//En el caso de cadena vacia no validamos
if (VarIsNull(DisplayValue)) then
Exit;
lsReferencia := VarToStr(DisplayValue);
if (length(trim(lsReferencia)) = 0) then
Exit;
if not AnadirArticulo(lsReferencia, tReferenciaParaVentas) then
begin
ErrorText := 'La referencia introducida no exite en el catálogo';
Error := True;
end;
end;
procedure TfrViewDetallesArticulos.OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
lsReferencia : String;
@ -213,12 +175,6 @@ begin
lsReferencia := VarToStr(DisplayValue);
if (length(trim(lsReferencia)) = 0) then
Exit;
if not AnadirArticulo(lsReferencia, tRefProveedorParaVentas) then
begin
ErrorText := 'La referencia introducida no exite en el catálogo';
Error := True;
end;
end;
procedure TfrViewDetallesArticulos.RecuperarListaUnidadesMedida;
@ -295,9 +251,5 @@ begin
//
end;
function TfrViewDetallesArticulos.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
Result := (Controller as IControllerDetallesArticulos).AnadirArticulo(Detalles, pReferencia, TipoReferencia);
end;
end.

View File

@ -2,100 +2,85 @@ inherited frViewDetallesArticulosParaVenta: TfrViewDetallesArticulosParaVenta
inherited ToolBar1: TToolBar
Height = 95
ExplicitHeight = 95
inherited ToolButton14: TToolButton [1]
Left = 0
inherited FontName: TJvFontComboBox [4]
Left = 56
Top = 22
Wrap = False
ExplicitLeft = 0
ExplicitLeft = 56
ExplicitTop = 22
end
inherited ToolButton12: TToolButton [2]
Left = 65
inherited ToolButton14: TToolButton [5]
Left = 201
Wrap = False
ExplicitLeft = 65
ExplicitHeight = 22
ExplicitLeft = 201
end
inherited ToolButton13: TToolButton [3]
inherited FontSize: TEdit
Left = 266
Top = 22
ExplicitLeft = 266
ExplicitTop = 22
end
inherited UpDown1: TUpDown
Left = 308
Top = 22
ExplicitLeft = 308
ExplicitTop = 22
end
inherited ToolButton13: TToolButton
Left = 325
Top = 22
ExplicitLeft = 325
ExplicitTop = 22
end
inherited ToolButton11: TToolButton [9]
Left = 333
Top = 22
ExplicitLeft = 333
ExplicitTop = 22
end
inherited ToolButton12: TToolButton [10]
Left = 0
Top = 22
Wrap = True
ExplicitLeft = 0
ExplicitTop = 22
ExplicitHeight = 27
end
inherited ToolButton2: TToolButton [4]
inherited ToolButton9: TToolButton [11]
Left = 0
Top = 49
ExplicitLeft = 0
ExplicitTop = 49
end
inherited ToolButton3: TToolButton [5]
Left = 114
inherited ToolButton10: TToolButton [12]
Left = 145
Top = 49
ExplicitLeft = 114
ExplicitLeft = 145
ExplicitTop = 49
end
inherited ToolButton4: TToolButton [6]
Left = 169
Top = 49
ExplicitLeft = 169
ExplicitTop = 49
end
inherited ToolButton7: TToolButton [7]
Left = 225
Top = 49
ExplicitLeft = 225
ExplicitTop = 49
end
inherited FontName: TJvFontComboBox [8]
Left = 292
Top = 49
ExplicitLeft = 292
ExplicitTop = 49
end
inherited ToolButton9: TToolButton [9]
Left = 437
ExplicitLeft = 437
end
inherited ToolButton8: TToolButton [10]
Left = 582
Top = 49
Wrap = True
ExplicitLeft = 582
ExplicitTop = 49
end
inherited FontSize: TEdit [11]
Left = 0
Top = 71
ExplicitLeft = 0
ExplicitTop = 71
end
inherited UpDown1: TUpDown [12]
Left = 42
Top = 71
ExplicitLeft = 42
ExplicitTop = 71
end
inherited ToolButton6: TToolButton [13]
Left = 59
Top = 71
ExplicitLeft = 59
ExplicitTop = 71
Left = 270
Top = 49
ExplicitLeft = 270
ExplicitTop = 49
end
inherited ToolButton10: TToolButton
Left = 125
Top = 71
ExplicitLeft = 125
ExplicitTop = 71
inherited ToolButton7: TToolButton [14]
Left = 336
Top = 49
Wrap = True
ExplicitLeft = 336
ExplicitTop = 49
end
inherited ToolButton11: TToolButton
Left = 250
inherited ToolButton8: TToolButton [15]
Left = 0
Top = 71
ExplicitLeft = 250
ExplicitLeft = 0
ExplicitTop = 71
end
end
inherited cxGrid: TcxGrid
Top = 121
Height = 183
ExplicitHeight = 210
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn
Visible = False
@ -109,5 +94,6 @@ inherited frViewDetallesArticulosParaVenta: TfrViewDetallesArticulosParaVenta
end
inherited TBXDock1: TTBXDock
Top = 95
ExplicitTop = 68
end
end

View File

@ -16,10 +16,6 @@ uses
type
TfrViewDetallesArticulosParaVenta = class(TfrViewDetallesArticulos)
procedure OnIMPORTEUNIDADGetProperties(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
procedure CustomViewDestroy(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
private
{ Private declarations }
@ -32,62 +28,4 @@ implementation
uses uControllerDetallesArticulos;
{ TfrViewDetallesArticulosParaVenta }
procedure TfrViewDetallesArticulosParaVenta.CustomViewDestroy(Sender: TObject);
begin
inherited;
cxGridViewIMPORTEUNIDAD.OnGetPropertiesForEdit := Nil;
end;
procedure TfrViewDetallesArticulosParaVenta.CustomViewShow(Sender: TObject);
begin
inherited;
with DADataSource.DataTable do
begin
cxGridView.BeginUpdate;
try
cxGridViewIMPORTEUNIDAD.OnGetPropertiesForEdit := OnIMPORTEUNIDADGetProperties;
finally
cxGridView.EndUpdate;
end;
end;
end;
procedure TfrViewDetallesArticulosParaVenta.OnIMPORTEUNIDADGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
var
Aux_IDArticulo: Variant;
begin
Aux_IDArticulo := Null;
cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties.Items.Clear;
if (_FocusedView.DataController.RecordCount > 0) then
begin
Aux_IDArticulo := ARecord.Values[cxGridViewID_ARTICULO.Index];
if not VarIsNull(Aux_IDArticulo) and (Aux_IDArticulo > 0) then
begin
with cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties do
begin
ShowHourglassCursor;
Items.BeginUpdate;
try
Items.Clear;
Items.AddStrings((Controller as IControllerDetallesArticulos).DarPrecioPVPVenta(Aux_IDArticulo));
finally
Items.EndUpdate;
HideHourglassCursor;
end;
end;
AProperties := cxEditRepositoryComboBox_IMPORTEUNIDAD.Properties;
end
else begin
AProperties := cxEditRepositoryCurrencyItem_IMPORTEUNIDAD.Properties;
end;
end;
end;
end.

View File

@ -8,7 +8,6 @@
<Projects Include="..\..\Base\Base.dproj" />
<Projects Include="..\..\Cliente\Etiquetas.dproj" />
<Projects Include="..\..\GUIBase\GUIBase.dproj" />
<Projects Include="..\Albaranes de cliente\Views\AlbaranesCliente_view.dproj" />
<Projects Include="Controller\Contactos_controller.dproj" />
<Projects Include="Data\Contactos_data.dproj" />
<Projects Include="Model\Contactos_model.dproj" />
@ -93,15 +92,6 @@
<Target Name="Contactos_plugin:Make">
<MSBuild Projects="Plugin\Contactos_plugin.dproj" Targets="Make" />
</Target>
<Target Name="AlbaranesCliente_view">
<MSBuild Projects="..\Albaranes de cliente\Views\AlbaranesCliente_view.dproj" Targets="" />
</Target>
<Target Name="AlbaranesCliente_view:Clean">
<MSBuild Projects="..\Albaranes de cliente\Views\AlbaranesCliente_view.dproj" Targets="Clean" />
</Target>
<Target Name="AlbaranesCliente_view:Make">
<MSBuild Projects="..\Albaranes de cliente\Views\AlbaranesCliente_view.dproj" Targets="Make" />
</Target>
<Target Name="Etiquetas">
<MSBuild Projects="..\..\Cliente\Etiquetas.dproj" Targets="" />
</Target>
@ -112,13 +102,13 @@
<MSBuild Projects="..\..\Cliente\Etiquetas.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Contactos_plugin;AlbaranesCliente_view;Etiquetas" />
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Contactos_plugin;Etiquetas" />
</Target>
<Target Name="Clean">
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;AlbaranesCliente_view:Clean;Etiquetas:Clean" />
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;Etiquetas:Clean" />
</Target>
<Target Name="Make">
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;AlbaranesCliente_view:Make;Etiquetas:Make" />
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;Etiquetas:Make" />
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>

View File

@ -49,17 +49,12 @@ contains
uPacientesController in 'uPacientesController.pas',
uIEditorElegirPacientes in 'View\uIEditorElegirPacientes.pas',
uIEditorElegirContactos in 'View\uIEditorElegirContactos.pas',
uIEditorDireccionContacto in 'View\uIEditorDireccionContacto.pas',
uDireccionesContactoController in 'uDireccionesContactoController.pas',
uIEditorElegirDireccionEntrega in 'View\uIEditorElegirDireccionEntrega.pas',
uFichasPacienteReportController in 'uFichasPacienteReportController.pas',
uIEditorFichasPacientePreview in 'View\uIEditorFichasPacientePreview.pas',
uEtiquetasContactosReportController in 'uEtiquetasContactosReportController.pas',
uIEditorEtiquetasContactosPreview in 'View\uIEditorEtiquetasContactosPreview.pas',
uDatosBancariosContactoController in 'uDatosBancariosContactoController.pas',
uIEditorDatoBancarioContacto in 'View\uIEditorDatoBancarioContacto.pas',
uPersonalContactoController in 'uPersonalContactoController.pas',
uIEditorPersonalContacto in 'View\uIEditorPersonalContacto.pas',
uIEditorElegirPersonaContacto in 'View\uIEditorElegirPersonaContacto.pas';
uPersonalContactoController in 'uPersonalContactoController.pas';
end.

View File

@ -46,6 +46,21 @@
@ -62,20 +77,20 @@
<DelphiCompile Include="Contactos_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Data\ApplicationBase.dcp" />
<DCCReference Include="..\Data\Base.dcp" />
<DCCReference Include="..\Data\ccpackD11.dcp" />
<DCCReference Include="..\Data\cfpack_d11.dcp" />
<DCCReference Include="..\Data\Contactos_data.dcp" />
<DCCReference Include="..\Data\Contactos_model.dcp" />
<DCCReference Include="..\Data\designide.dcp" />
<DCCReference Include="..\Data\GUIBase.dcp" />
<DCCReference Include="..\Data\GUISDK_D11R.dcp" />
<DCCReference Include="..\Data\rtl.dcp" />
<DCCReference Include="..\Data\vcl.dcp" />
<DCCReference Include="..\Data\vclactnband.dcp" />
<DCCReference Include="..\Data\vclx.dcp" />
<DCCReference Include="..\Data\xmlrtl.dcp" />
<DCCReference Include="..\ApplicationBase.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\ccpackD11.dcp" />
<DCCReference Include="..\cfpack_d11.dcp" />
<DCCReference Include="..\Contactos_data.dcp" />
<DCCReference Include="..\Contactos_model.dcp" />
<DCCReference Include="..\designide.dcp" />
<DCCReference Include="..\GUIBase.dcp" />
<DCCReference Include="..\GUISDK_D11R.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vclactnband.dcp" />
<DCCReference Include="..\vclx.dcp" />
<DCCReference Include="..\xmlrtl.dcp" />
<DCCReference Include="uContactosController.pas" />
<DCCReference Include="uDatosBancariosContactoController.pas" />
<DCCReference Include="uDireccionesContactoController.pas" />
@ -85,17 +100,12 @@
<DCCReference Include="uPersonalContactoController.pas" />
<DCCReference Include="View\uIEditorContacto.pas" />
<DCCReference Include="View\uIEditorContactos.pas" />
<DCCReference Include="View\uIEditorDatoBancarioContacto.pas" />
<DCCReference Include="View\uIEditorDireccionContacto.pas" />
<DCCReference Include="View\uIEditorElegirContactos.pas" />
<DCCReference Include="View\uIEditorElegirDireccionEntrega.pas" />
<DCCReference Include="View\uIEditorElegirPacientes.pas" />
<DCCReference Include="View\uIEditorElegirPersonaContacto.pas" />
<DCCReference Include="View\uIEditorEtiquetasContactosPreview.pas" />
<DCCReference Include="View\uIEditorFichasPacientePreview.pas" />
<DCCReference Include="View\uIEditorPaciente.pas" />
<DCCReference Include="View\uIEditorPacientes.pas" />
<DCCReference Include="View\uIEditorPersonalContacto.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -1,28 +0,0 @@
unit uIEditorDatoBancarioContacto;
interface
uses
uBizContactosDatosBancarios, uDatosBancariosContactoController;
type
IEditorDatoBancarioContacto = interface
['{BDFD97C4-7054-40E5-A7DA-1A3AD1E13673}']
function GetController : IDatosBancariosContactoController;
procedure SetController (const Value : IDatosBancariosContactoController);
property Controller : IDatosBancariosContactoController read GetController
write SetController;
function GetDatoBancario: IBizContactosDatosBancarios;
procedure SetDatoBancario(const Value: IBizContactosDatosBancarios);
property DatoBancario: IBizContactosDatosBancarios read GetDatoBancario write SetDatoBancario;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -1,28 +0,0 @@
unit uIEditorDireccionContacto;
interface
uses
uBizDireccionesContacto, uDireccionesContactoController;
type
IEditorEditorDireccion = interface
['{B684971A-1673-4315-BDF5-EFF511B6F04E}']
function GetController : IDireccionesContactoController;
procedure SetController (const Value : IDireccionesContactoController);
property Controller : IDireccionesContactoController read GetController
write SetController;
function GetDireccion: IBizDireccionesContacto;
procedure SetDireccion(const Value: IBizDireccionesContacto);
property Direccion: IBizDireccionesContacto read GetDireccion write SetDireccion;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -1,30 +0,0 @@
unit uIEditorElegirDireccionEntrega;
interface
uses
uBizContactos, uBizDireccionesContacto, uGUIBase;
type
IEditorElegirDireccionEntrega = interface
['{AB909782-25E1-4715-B98A-EA62FB9DC03C}']
function GetContacto: IBizContacto;
procedure SetContacto(const Value: IBizContacto);
property Contacto : IBizContacto read GetContacto write SetContacto;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
property Mensaje : String read GetMensaje write SetMensaje;
function GetDireccionSeleccionada: IBizDireccionesContacto;
property DireccionSeleccionada: IBizDireccionesContacto read GetDireccionSeleccionada;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -7,7 +7,7 @@ uses
type
IEditorElegirPacientes = interface(IEditorElegirContactos)
['{76DD3E9F-86EE-4EE1-B5E2-EB69C14605B3}']
['{3327CC51-713B-4CE5-8313-9B3EA9AB1CAA}']
end;

View File

@ -1,29 +0,0 @@
unit uIEditorElegirPersonaContacto;
interface
uses
uBizContactosPersonal, uGUIBase;
type
IEditorElegirPersonaContacto = interface
['{B069A079-BC05-4027-BC1D-D78849F173D0}']
function GetPersonas: IBizContactoPersonal;
procedure SetPersonas(const Value: IBizContactoPersonal);
property Personas: IBizContactoPersonal read GetPersonas write SetPersonas;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
property Mensaje : String read GetMensaje write SetMensaje;
function GetPersonaSeleccionada: IBizContactoPersonal;
property PersonaSeleccionada: IBizContactoPersonal read GetPersonaSeleccionada;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -1,28 +0,0 @@
unit uIEditorPersonalContacto;
interface
uses
uBizContactosPersonal, uPersonalContactoController;
type
IEditorPersonalContacto = interface
['{2221A124-2ECF-426A-A462-24CC87AC26EC}']
function GetController : IPersonalContactoController;
procedure SetController (const Value : IPersonalContactoController);
property Controller : IPersonalContactoController read GetController
write SetController;
function GetPersonal: IBizContactoPersonal;
procedure SetPersonal(const Value: IBizContactoPersonal);
property Personal: IBizContactoPersonal read GetPersonal write SetPersonal;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -36,6 +36,9 @@ type
procedure Preview(APaciente : IBizPaciente; AllItems: Boolean = false);
procedure Print(APaciente : IBizPaciente; AllItems: Boolean = false);
function ElegirContacto(AContactos : IBizContacto;
AMensaje: String; AMultiSelect: Boolean): IBizContacto; override;
end;
implementation
@ -43,7 +46,9 @@ implementation
uses
Windows, SysUtils, cxControls, Dialogs, uDataModulePacientes, uEditorRegistryUtils,
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uFichasPacienteReportController,
uEditorGridBase, uIntegerListUtils;
uEditorGridBase, uIntegerListUtils, uIEditorElegirPacientes, Controls,
Forms, uDialogUtils, uModuleController, uFactuGES_App,
uPlugins_Intf;
{ TPacienteController }
@ -70,6 +75,31 @@ begin
Result := inherited Duplicar(AContacto);
end;
function TPacientesController.ElegirContacto(AContactos: IBizContacto;
AMensaje: String; AMultiSelect: Boolean): IBizContacto;
var
AEditor : IEditorElegirPacientes;
begin
Result := NIL;
CreateEditor('EditorElegirPacientes', IEditorElegirPacientes, AEditor);
if Assigned(AEditor) then
begin
try
AEditor.Contactos := AContactos;
AEditor.Controller := Self;
AEditor.MultiSelect := AMultiSelect;
AEditor.Mensaje := AMensaje;
if IsPositiveResult(AEditor.ShowModal) then
Result := AEditor.ContactosSeleccionados;
finally
AEditor.Release;
AEditor := NIL;
Application.ProcessMessages;
end;
end;
end;
function TPacientesController.Eliminar(APaciente: IBizContacto; AllItems: Boolean = false): Boolean;
//En el caso de eliminar almenos un elemento del conjunto se devuelve true
var

View File

@ -110,9 +110,13 @@ begin
end;
end;
var
fClassFactory: IROClassFactory;
initialization
TROClassFactory.Create('srvContactos', Create_srvContactos, TsrvContactos_Invoker);
fClassFactory := TROClassFactory.Create('srvContactos', Create_srvContactos, TsrvContactos_Invoker);
finalization
UnRegisterClassFactory(fClassFactory);
fClassFactory := nil;
end.

View File

@ -31,7 +31,30 @@ requires
GUIBase,
ApplicationBase,
Contactos_model,
Contactos_controller;
Contactos_controller,
dbrtl,
vcldb,
PngComponentsD10,
PNG_D10,
vclactnband,
vclx,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
cxGridD11,
cxPageControlD11,
cxExtEditorsD11,
cxDataD11,
cxEditorsD11,
vcljpg,
cxExportD11,
DataAbstract_Core_D11,
dsnap,
adortl,
RemObjects_Core_D11,
dxLayoutControlD11,
dxComnD11;
contains
uContactosViewRegister in 'uContactosViewRegister.pas',
@ -39,25 +62,17 @@ contains
uEditorContactos in 'uEditorContactos.pas' {fEditorContactos: TCustomEditor},
uViewContacto in 'uViewContacto.pas' {frViewContacto: TCustomView},
uEditorContacto in 'uEditorContacto.pas' {fEditorContacto: TCustomEditor},
uViewContactoListaDatosBancarios in 'uViewContactoListaDatosBancarios.pas' {frViewListaDatosBancarios: TFrame},
uViewDireccionesEntrega in 'uViewDireccionesEntrega.pas' {frViewDireccionesEntrega: TFrame},
uEditorDatoBancario in 'uEditorDatoBancario.pas' {fEditorDatoBancario},
uEditorElegirPersonaContacto in 'uEditorElegirPersonaContacto.pas' {fEditorElegirPersonaContacto: TfEditorElegirDireccionEntrega},
uViewContactoDatosBancarios in 'uViewContactoDatosBancarios.pas' {frViewClienteDatosBancarios: TFrame},
uEditorEtiquetasContactosReport in 'uEditorEtiquetasContactosReport.pas' {fEditorEtiquetasContactosReport: TCustomEditor},
uEditorDireccion in 'uEditorDireccion.pas' {fEditorDireccion: TCustomEditor},
uEditorPersonal in 'uEditorPersonal.pas' {fEditorPersonal: TCustomEditor},
uViewPersonalContacto in 'uViewPersonalContacto.pas' {frViewPersonalContacto: TFrame},
uViewTelefonos in 'uViewTelefonos.pas' {frViewTelefonos: TCustomView},
uEditorElegirPacientes in 'uEditorElegirPacientes.pas' {fEditorElegirPacientes: TCustomEditor},
uEditorFichasPacienteReport in 'uEditorFichasPacienteReport.pas' {fEditorFichasPacienteReport: TCustomEditor},
uEditorPaciente in 'uEditorPaciente.pas' {fEditorPaciente: TCustomEditor},
uEditorPacientes in 'uEditorPacientes.pas' {fEditorPacientes: TCustomEditor},
uViewCategorias in 'uViewCategorias.pas' {frViewCategorias: TCustomView},
uViewDatosYSeleccionPaciente in 'uViewDatosYSeleccionPaciente.pas' {frViewDatosYSeleccionPaciente: TCustomView},
uViewDireccion in 'uViewDireccion.pas' {frViewDireccion: TCustomView},
uViewInternet in 'uViewInternet.pas' {frViewInternet: TCustomView},
uViewPaciente in 'uViewPaciente.pas' {frViewPaciente: TCustomView},
uViewPacientes in 'uViewPacientes.pas' {frViewPacientes: TCustomView};
uViewPacientes in 'uViewPacientes.pas' {frViewPacientes: TCustomView},
uViewPersonalContacto in 'uViewPersonalContacto.pas',
uViewContactoDatosBancarios in 'uViewContactoDatosBancarios.pas',
uViewContactoListaDatosBancarios in 'uViewContactoListaDatosBancarios.pas';
end.

View File

@ -49,13 +49,31 @@
<DelphiCompile Include="Contactos_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\..\ApplicationBase.dcp" />
<DCCReference Include="..\..\..\Base.dcp" />
<DCCReference Include="..\..\..\Contactos_controller.dcp" />
<DCCReference Include="..\..\..\Contactos_model.dcp" />
<DCCReference Include="..\..\..\GUIBase.dcp" />
<DCCReference Include="..\..\..\rtl.dcp" />
<DCCReference Include="..\..\..\vcl.dcp" />
<DCCReference Include="adortl.dcp" />
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="Contactos_controller.dcp" />
<DCCReference Include="Contactos_model.dcp" />
<DCCReference Include="cxDataD11.dcp" />
<DCCReference Include="cxEditorsD11.dcp" />
<DCCReference Include="cxExportD11.dcp" />
<DCCReference Include="cxExtEditorsD11.dcp" />
<DCCReference Include="cxGridD11.dcp" />
<DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="cxPageControlD11.dcp" />
<DCCReference Include="DataAbstract_Core_D11.dcp" />
<DCCReference Include="dbrtl.dcp" />
<DCCReference Include="dsnap.dcp" />
<DCCReference Include="dxComnD11.dcp" />
<DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxLayoutControlD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="GUIBase.dcp" />
<DCCReference Include="PngComponentsD10.dcp" />
<DCCReference Include="PNG_D10.dcp" />
<DCCReference Include="RemObjects_Core_D11.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="uContactosViewRegister.pas" />
<DCCReference Include="uEditorContacto.pas">
<Form>fEditorContacto</Form>
@ -65,21 +83,10 @@
<Form>fEditorContactos</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uEditorDatoBancario.pas">
<Form>fEditorDatoBancario</Form>
</DCCReference>
<DCCReference Include="uEditorDireccion.pas">
<Form>fEditorDireccion</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uEditorElegirPacientes.pas">
<Form>fEditorElegirPacientes</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uEditorElegirPersonaContacto.pas">
<Form>fEditorElegirPersonaContacto</Form>
<DesignClass>TfEditorElegirDireccionEntrega</DesignClass>
</DCCReference>
<DCCReference Include="uEditorEtiquetasContactosReport.pas">
<Form>fEditorEtiquetasContactosReport</Form>
<DesignClass>TCustomEditor</DesignClass>
@ -96,10 +103,6 @@
<Form>fEditorPacientes</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uEditorPersonal.pas">
<Form>fEditorPersonal</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uViewCategorias.pas">
<Form>frViewCategorias</Form>
<DesignClass>TCustomView</DesignClass>
@ -108,14 +111,8 @@
<Form>frViewContacto</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewContactoDatosBancarios.pas">
<Form>frViewClienteDatosBancarios</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewContactoListaDatosBancarios.pas">
<Form>frViewListaDatosBancarios</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewContactoDatosBancarios.pas" />
<DCCReference Include="uViewContactoListaDatosBancarios.pas" />
<DCCReference Include="uViewContactos.pas">
<Form>frViewContactos</Form>
<DesignClass>TCustomView</DesignClass>
@ -124,18 +121,6 @@
<Form>frViewDatosYSeleccionPaciente</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewDireccion.pas">
<Form>frViewDireccion</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewDireccionesEntrega.pas">
<Form>frViewDireccionesEntrega</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewInternet.pas">
<Form>frViewInternet</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewPaciente.pas">
<Form>frViewPaciente</Form>
<DesignClass>TCustomView</DesignClass>
@ -144,14 +129,12 @@
<Form>frViewPacientes</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewPersonalContacto.pas">
<Form>frViewPersonalContacto</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="uViewTelefonos.pas">
<Form>frViewTelefonos</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference>
<DCCReference Include="uViewPersonalContacto.pas" />
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclactnband.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -10,9 +10,8 @@ implementation
uses
uEditorRegistryUtils,
uEditorPacientes,
uEditorPaciente, uEditorElegirPacientes, uEditorDireccion,
uEditorFichasPacienteReport, uEditorEtiquetasContactosReport,
uEditorDatoBancario, uEditorPersonal, uEditorElegirPersonaContacto;
uEditorPaciente, uEditorElegirPacientes,
uEditorFichasPacienteReport, uEditorEtiquetasContactosReport;
procedure RegisterViews;
begin
@ -22,16 +21,8 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirPacientes, 'EditorElegirPacientes');
EditorRegistry.RegisterClass(TfEditorDireccion, 'EditorDireccion');
EditorRegistry.RegisterClass(TfEditorPersonal, 'EditorPersonalContacto');
EditorRegistry.RegisterClass(TfEditorDatoBancario, 'EditorDatoBancarioContacto');
EditorRegistry.RegisterClass(TfEditorFichasPacientePreview, 'EditorFichasPacientePreview');
EditorRegistry.RegisterClass(TfEditorEtiquetasContactosPreview, 'EditorEtiquetasContactosPreview');
EditorRegistry.RegisterClass(TfEditorElegirPersonaContacto, 'EditorElegirPersonaContacto');
end;
procedure UnregisterViews;
@ -42,16 +33,8 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirPacientes);
EditorRegistry.UnRegisterClass(TfEditorDireccion);
EditorRegistry.UnRegisterClass(TfEditorPersonal);
EditorRegistry.UnRegisterClass(TfEditorDatoBancario);
EditorRegistry.UnRegisterClass(TfEditorFichasPacientePreview);
EditorRegistry.UnRegisterClass(TfEditorEtiquetasContactosPreview);
EditorRegistry.UnRegisterClass(TfEditorElegirPersonaContacto);
end;
end.

View File

@ -1,5 +1,5 @@
inherited fEditorElegirPacientes: TfEditorElegirPacientes
Caption = 'Seleccionar el proveedor'
Caption = 'Seleccionar el paciente'
ClientHeight = 480
ClientWidth = 656
ExplicitWidth = 664
@ -25,17 +25,17 @@ inherited fEditorElegirPacientes: TfEditorElegirPacientes
ExplicitWidth = 656
ExplicitHeight = 49
inherited tbxMain: TTBXToolbar
ExplicitWidth = 351
ExplicitWidth = 126
inherited TBXItem36: TTBXItem
Action = actAnchoAuto2
end
end
inherited tbxFiltro: TTBXToolbar
Left = 351
Left = 126
Top = 23
DockPos = 108
DockRow = 1
ExplicitLeft = 351
ExplicitLeft = 126
ExplicitTop = 23
inherited TBXItem34: TTBXItem
Action = actQuitarFiltro2
@ -130,14 +130,14 @@ inherited fEditorElegirPacientes: TfEditorElegirPacientes
Margins.Right = 0
Margins.Bottom = 8
Align = alTop
Caption = 'Seleccione el proveedor'
Caption = 'Seleccione el paciente'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
ExplicitWidth = 135
ExplicitWidth = 125
end
object lblComments: TLabel
AlignWithMargins = True
@ -230,6 +230,8 @@ inherited fEditorElegirPacientes: TfEditorElegirPacientes
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
ExplicitLeft = 462
ExplicitWidth = 215
Width = 215
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
@ -293,9 +295,6 @@ inherited fEditorElegirPacientes: TfEditorElegirPacientes
inherited actEliminar: TAction
Visible = False
end
inherited actConfPagina: TAction
Visible = False
end
inherited actDeshacer: TEditUndo
Visible = False
end

View File

@ -1,262 +0,0 @@
object fEditorElegirPersonaContacto: TfEditorElegirPersonaContacto
Left = 227
Top = 108
BorderStyle = bsDialog
Caption = 'Elegir una direcciones de cliente'
ClientHeight = 383
ClientWidth = 599
Color = clBtnFace
ParentFont = True
OldCreateOrder = True
Position = poOwnerFormCenter
PixelsPerInch = 96
TextHeight = 13
object pnlHeader: TPanel
Left = 0
Top = 0
Width = 656
Height = 64
Align = alTop
BevelOuter = bvNone
Color = clWhite
Padding.Left = 25
Padding.Top = 8
Padding.Right = 25
Padding.Bottom = 8
ParentBackground = False
TabOrder = 5
object lblTitle: TLabel
AlignWithMargins = True
Left = 25
Top = 8
Width = 606
Height = 13
Margins.Left = 0
Margins.Top = 0
Margins.Right = 0
Margins.Bottom = 8
Align = alTop
Caption = 'Seleccione una persona de contacto'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
ExplicitWidth = 135
end
object lblComments: TLabel
AlignWithMargins = True
Left = 50
Top = 29
Width = 581
Height = 27
Margins.Left = 25
Margins.Top = 0
Margins.Right = 0
Align = alClient
ExplicitWidth = 3
ExplicitHeight = 13
Caption = 'El cliente dispone de personas de contacto dadas de alta en su f' +
'icha. Seleccione la que quiere utilizar.'
end
end
inline frViewBarraSeleccion1: TfrViewBarraSeleccion
Left = 0
Top = 334
Width = 599
Height = 49
Align = alBottom
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
ReadOnly = False
ExplicitTop = 334
ExplicitWidth = 599
inherited JvFooter1: TJvFooter
Width = 599
ExplicitWidth = 599
inherited bSeleccionar: TJvFooterBtn
Left = 387
ExplicitLeft = 387
end
inherited bCancelar: TJvFooterBtn
Left = 491
ExplicitLeft = 491
end
end
inherited BarraSeleccionActionList: TActionList
Top = 11
inherited actSeleccionar: TAction
OnExecute = frViewBarraSeleccion1actSeleccionarExecute
end
inherited actCancelar: TAction
OnExecute = frViewBarraSeleccion1actCancelarExecute
end
end
end
object DBCtrlGrid1: TDBCtrlGrid
Left = 8
Top = 66
Width = 583
Height = 261
Margins.Left = 10
Margins.Top = 10
Margins.Right = 10
Margins.Bottom = 0
AllowDelete = False
AllowInsert = False
Color = clBtnFace
DataSource = dsPersonas
PanelHeight = 87
PanelWidth = 566
ParentColor = False
TabOrder = 1
SelectedColor = clHighlight
OnDblClick = DBCtrlGrid1DblClick
object ePuesto: TDBText
Left = 58
Top = 28
Width = 502
Height = 17
DataField = 'PUESTO'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
object eTelefono: TDBText
Left = 70
Top = 47
Width = 187
Height = 17
DataField = 'TELEFONO'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
object eNombre: TDBText
Left = 8
Top = 7
Width = 537
Height = 17
DataField = 'NOMBRE'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
object Label1: TLabel
Left = 15
Top = 28
Width = 37
Height = 13
Caption = 'Puesto:'
OnDblClick = ComponenteDblClick
end
object Label2: TLabel
Left = 15
Top = 47
Width = 46
Height = 13
Caption = 'Tel'#233'fono:'
OnDblClick = ComponenteDblClick
end
object Label3: TLabel
Left = 281
Top = 47
Width = 47
Height = 13
Caption = 'Tlf. m'#243'vil:'
OnDblClick = ComponenteDblClick
end
object eMovil: TDBText
Left = 334
Top = 47
Width = 187
Height = 17
DataField = 'MOVIL'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
object Label4: TLabel
Left = 16
Top = 66
Width = 48
Height = 13
Caption = 'N'#250'm. fax:'
OnDblClick = ComponenteDblClick
end
object eFax: TDBText
Left = 70
Top = 66
Width = 187
Height = 17
DataField = 'FAX'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
object Label5: TLabel
Left = 281
Top = 66
Width = 32
Height = 13
Caption = 'E-mail:'
OnDblClick = ComponenteDblClick
end
object eEMail: TDBText
Left = 334
Top = 66
Width = 187
Height = 17
DataField = 'EMAIL'
DataSource = dsPersonas
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
OnDblClick = ComponenteDblClick
end
end
object dsPersonas: TDADataSource
Left = 24
Top = 286
end
end

View File

@ -1,111 +0,0 @@
unit uEditorElegirPersonaContacto;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable,
cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit,
uIEditorElegirPersonaContacto, uCustomView,
uViewBase, uViewBarraSeleccion, JvExControls, JvComponent,
DBCGrids, uBizContactosPersonal, uDAInterfaces;
type
TfEditorElegirPersonaContacto = class(TForm, IEditorElegirPersonaContacto)
dsPersonas: TDADataSource;
frViewBarraSeleccion1: TfrViewBarraSeleccion;
lblTitle: TLabel;
lblComments: TLabel;
DBCtrlGrid1: TDBCtrlGrid;
ePuesto: TDBText;
eTelefono: TDBText;
eNombre: TDBText;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
eMovil: TDBText;
Label4: TLabel;
eFax: TDBText;
Label5: TLabel;
eEMail: TDBText;
procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
procedure DBCtrlGrid1DblClick(Sender: TObject);
procedure ComponenteDblClick(Sender: TObject);
protected
FPersonas: IBizContactoPersonal;
function GetPersonas: IBizContactoPersonal;
procedure SetPersonas(const Value: IBizContactoPersonal);
function GetPersonaSeleccionada: IBizContactoPersonal;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
public
property Mensaje : String read GetMensaje write SetMensaje;
property Personas: IBizContactoPersonal read GetPersonas write SetPersonas;
property PersonaSeleccionada: IBizContactoPersonal read GetPersonaSeleccionada;
end;
implementation
{$R *.dfm}
uses
uDireccionesContactoController;
{ TfEditorDireccionEntrega }
procedure TfEditorElegirPersonaContacto.DBCtrlGrid1DblClick(Sender: TObject);
begin
frViewBarraSeleccion1.actSeleccionar.Execute;
end;
procedure TfEditorElegirPersonaContacto.ComponenteDblClick(Sender: TObject);
begin
DBCtrlGrid1DblClick(Sender);
end;
procedure TfEditorElegirPersonaContacto.frViewBarraSeleccion1actCancelarExecute(
Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TfEditorElegirPersonaContacto.frViewBarraSeleccion1actSeleccionarExecute(
Sender: TObject);
begin
ModalResult := mrOk;
end;
function TfEditorElegirPersonaContacto.GetPersonas: IBizContactoPersonal;
begin
Result := FPersonas;
end;
function TfEditorElegirPersonaContacto.GetPersonaSeleccionada: IBizContactoPersonal;
begin
// Devuelvo el mismo objeto que recibo pero con el punto de lectura
// posicionado en la dirección elegida.
Result := FPersonas;
end;
function TfEditorElegirPersonaContacto.GetMensaje: String;
begin
Result := lblComments.Caption;
end;
procedure TfEditorElegirPersonaContacto.SetPersonas(const Value: IBizContactoPersonal);
begin
FPersonas := Value;
if Assigned(FPersonas) then
dsPersonas.DataTable := FPersonas.DataTable
else
dsPersonas.DataTable := NIL;
end;
procedure TfEditorElegirPersonaContacto.SetMensaje(const AValue: String);
begin
lblComments.Caption := AValue;
end;
end.

View File

@ -1,121 +0,0 @@
inherited frViewDireccion: TfrViewDireccion
Width = 384
Height = 152
ExplicitWidth = 384
ExplicitHeight = 152
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 384
Height = 152
Align = alTop
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth, acsHeight]
DesignSize = (
384
152)
object eCalle: TcxDBTextEdit
Left = 96
Top = 28
DataBinding.DataField = 'CALLE'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 656
end
object ePoblacion: TcxDBTextEdit
Left = 96
Top = 55
DataBinding.DataField = 'POBLACION'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 405
end
object eCodigoPostal: TcxDBTextEdit
Left = 96
Top = 82
DataBinding.DataField = 'CODIGO_POSTAL'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 66
end
object eProvincia: TcxDBTextEdit
Left = 96
Top = 109
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'PROVINCIA'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Width = 585
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
Caption = 'Direcci'#243'n'
object dxLayoutControl1Item1: TdxLayoutItem
Caption = 'Direcci'#243'n:'
Control = eCalle
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group2: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Poblaci'#243'n:'
Control = ePoblacion
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
Caption = 'C'#243'digo postal:'
Control = eCodigoPostal
ControlOptions.MinWidth = 5
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'Provincia:'
Control = eProvincia
ControlOptions.ShowBorder = False
end
end
end
end
end
object DADataSource: TDADataSource
Left = 24
Top = 32
end
end

View File

@ -1,39 +0,0 @@
unit uViewDireccion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, Mask, DBCtrls, DB, uDADataTable, ExtCtrls,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl, uDAInterfaces;
type
TfrViewDireccion = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
eProvincia: TcxDBTextEdit;
eCalle: TcxDBTextEdit;
ePoblacion: TcxDBTextEdit;
eCodigoPostal: TcxDBTextEdit;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Item4: TdxLayoutItem;
protected
end;
implementation
{$R *.dfm}
{initialization
RegisterClass(TfrViewDireccion);
finalization
UnRegisterClass(TfrViewDireccion);}
end.

View File

@ -1,91 +0,0 @@
inherited frViewDireccionesEntrega: TfrViewDireccionesEntrega
Width = 583
Height = 464
ExplicitWidth = 583
ExplicitHeight = 464
inherited cxGrid: TcxGrid
Width = 583
Height = 439
ExplicitWidth = 583
ExplicitHeight = 439
inherited cxGridView: TcxGridDBTableView
OnDblClick = cxGridViewDblClick
OptionsData.Appending = False
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Editing = False
OptionsData.Inserting = False
object cxGridViewNOMBRE: TcxGridDBColumn
Caption = 'Nombre'
DataBinding.FieldName = 'NOMBRE'
Width = 88
end
object cxGridViewDIRECCION: TcxGridDBColumn
Caption = 'Direcci'#243'n'
DataBinding.FieldName = 'CALLE'
PropertiesClassName = 'TcxTextEditProperties'
Width = 128
end
object cxGridViewPOBLACION: TcxGridDBColumn
Caption = 'Poblaci'#243'n'
DataBinding.FieldName = 'POBLACION'
PropertiesClassName = 'TcxTextEditProperties'
BestFitMaxWidth = 64
Width = 103
end
object cxGridViewCP: TcxGridDBColumn
Caption = 'Cod. postal'
DataBinding.FieldName = 'CODIGO_POSTAL'
PropertiesClassName = 'TcxTextEditProperties'
Visible = False
Width = 76
end
object cxGridViewPROVINCIA: TcxGridDBColumn
Caption = 'Provincia'
DataBinding.FieldName = 'PROVINCIA'
PropertiesClassName = 'TcxTextEditProperties'
Visible = False
BestFitMaxWidth = 64
Width = 213
end
object cxGridViewPERSONA_CONTACTO: TcxGridDBColumn
Caption = 'Persona de contacto'
DataBinding.FieldName = 'PERSONA_CONTACTO'
PropertiesClassName = 'TcxTextEditProperties'
Width = 92
end
object cxGridViewTELEFONO: TcxGridDBColumn
DataBinding.FieldName = 'TELEFONO'
Width = 54
end
object cxGridViewEMAIL: TcxGridDBColumn
DataBinding.FieldName = 'EMAIL'
Width = 50
end
object cxGridViewPORTE: TcxGridDBColumn
DataBinding.FieldName = 'PORTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
Width = 54
end
end
end
inherited ToolBar1: TToolBar
Width = 583
ExplicitWidth = 583
inherited ToolButton1: TToolButton
ExplicitWidth = 62
end
inherited ToolButton4: TToolButton
ExplicitWidth = 74
end
inherited ToolButton2: TToolButton
ExplicitWidth = 67
end
inherited ToolButton7: TToolButton
ExplicitWidth = 117
end
end
end

View File

@ -1,73 +0,0 @@
unit uViewDireccionesEntrega;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
uDADataTable, Grids, DBGrids, ActnList, ImgList, PngImageList, ComCtrls,
ToolWin, cxGridDBTableView, uViewDetallesGenerico, cxCurrencyEdit,
uDAInterfaces;
type
TfrViewDireccionesEntrega = class(TfrViewDetallesGenerico)
cxGridViewDIRECCION: TcxGridDBColumn;
cxGridViewPOBLACION: TcxGridDBColumn;
cxGridViewCP: TcxGridDBColumn;
cxGridViewPROVINCIA: TcxGridDBColumn;
cxGridViewPERSONA_CONTACTO: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewTELEFONO: TcxGridDBColumn;
cxGridViewEMAIL: TcxGridDBColumn;
cxGridViewPORTE: TcxGridDBColumn;
procedure cxGridViewDblClick(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
protected
procedure AnadirInterno; override;
procedure ModificarInterno; override;
public
{ Public declarations }
end;
implementation
{$R *.dfm}
uses
uDialogUtils, uDireccionesContactoController, uBizDireccionesContacto;
procedure TfrViewDireccionesEntrega.actEliminarExecute(Sender: TObject);
begin
if (ShowConfirmMessage('Eliminar una dirección', '¿Desea eliminar esta dirección?') = IDYES) then
inherited;
end;
procedure TfrViewDireccionesEntrega.AnadirInterno;
begin
inherited;
try
with TDireccionesContactoController.Create do
Ver((dsDetalles.DataTable) as IBizDireccionesContacto);
finally
if (dsDetalles.DataTable.State in dsEditModes) then
dsDetalles.DataTable.Post;
end;
end;
procedure TfrViewDireccionesEntrega.cxGridViewDblClick(Sender: TObject);
begin
inherited;
actModificar.Execute;
end;
procedure TfrViewDireccionesEntrega.ModificarInterno;
begin
inherited;
with TDireccionesContactoController.Create do
Ver((dsDetalles.DataTable) as IBizDireccionesContacto);
end;
end.

View File

@ -1,89 +0,0 @@
inherited frViewInternet: TfrViewInternet
Width = 247
Height = 125
ExplicitWidth = 247
ExplicitHeight = 125
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 247
Height = 125
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
ExplicitWidth = 630
object eMailParticular: TcxDBTextEdit
Left = 86
Top = 55
DataBinding.DataField = 'EMAIL_2'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 165
end
object eMailTrabajo: TcxDBTextEdit
Left = 86
Top = 28
DataBinding.DataField = 'EMAIL_1'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 165
end
object ePaginaWeb: TcxDBTextEdit
Left = 86
Top = 82
DataBinding.DataField = 'PAGINA_WEB'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 165
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
Caption = 'Internet'
object dxLayoutControl1Item2: TdxLayoutItem
Caption = 'Trabajo:'
Control = eMailTrabajo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item1: TdxLayoutItem
Caption = 'Particular:'
Control = eMailParticular
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
Caption = 'P'#225'gina web:'
Control = ePaginaWeb
ControlOptions.ShowBorder = False
end
end
end
end
object DADataSource: TDADataSource
Left = 152
Top = 8
end
end

View File

@ -1,37 +0,0 @@
unit uViewInternet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl;
type
TfrViewInternet = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
eMailParticular: TcxDBTextEdit;
dxLayoutControl1Item2: TdxLayoutItem;
eMailTrabajo: TcxDBTextEdit;
dxLayoutControl1Item3: TdxLayoutItem;
ePaginaWeb: TcxDBTextEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
end;
implementation
{$R *.dfm}
{initialization
RegisterClass(TfrViewInternet);
finalization
UnRegisterClass(TfrViewInternet);}
end.

View File

@ -1,118 +0,0 @@
inherited frViewTelefonos: TfrViewTelefonos
Width = 261
Height = 152
ExplicitWidth = 261
ExplicitHeight = 152
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 261
Height = 152
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
ExplicitWidth = 693
DesignSize = (
261
152)
object eTlfParticular: TcxDBTextEdit
Left = 76
Top = 55
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'TELEFONO_2'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 566
end
object eTlfTrabajo: TcxDBTextEdit
Left = 76
Top = 28
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'TELEFONO_1'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 566
end
object eTlfMovil: TcxDBTextEdit
Left = 76
Top = 82
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'MOVIL_1'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 566
end
object eFax: TcxDBTextEdit
Left = 76
Top = 109
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'FAX'
DataBinding.DataSource = DADataSource
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Width = 566
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
AutoAligns = [aaHorizontal]
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = [aaHorizontal]
Caption = 'Tel'#233'fonos'
object dxLayoutControl1Item2: TdxLayoutItem
Caption = 'Trabajo:'
Control = eTlfTrabajo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item1: TdxLayoutItem
Caption = 'Particular:'
Control = eTlfParticular
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
Caption = 'M'#243'vil:'
Control = eTlfMovil
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'Fax:'
Control = eFax
ControlOptions.ShowBorder = False
end
end
end
end
object DADataSource: TDADataSource
Left = 16
Top = 32
end
end

View File

@ -1,39 +0,0 @@
unit uViewTelefonos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl;
type
TfrViewTelefonos = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
eTlfParticular: TcxDBTextEdit;
dxLayoutControl1Item2: TdxLayoutItem;
eTlfTrabajo: TcxDBTextEdit;
dxLayoutControl1Item3: TdxLayoutItem;
eTlfMovil: TcxDBTextEdit;
dxLayoutControl1Item4: TdxLayoutItem;
eFax: TcxDBTextEdit;
end;
implementation
{$R *.dfm}
{initialization
RegisterClass(TfrViewTelefonos);
finalization
UnRegisterClass(TfrViewTelefonos);}
end.

View File

@ -0,0 +1,65 @@
package Medicaciones_controller;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}
requires
GUIBase,
Articulos_model,
Contactos_model,
Contactos_controller,
Articulos_data,
vcl,
rtl,
dbrtl,
DataAbstract_Core_D11,
vcldb,
dsnap,
adortl,
RemObjects_Core_D11,
cxLibraryD11,
dxThemeD11,
dxGDIPlusD11,
dxCoreD11,
vclx,
GUISDK_D11R,
designide,
xmlrtl,
vclactnband,
Medicaciones_model,
Medicaciones_data,
Articulos_controller;
contains
uMedicacionReportController in 'uMedicacionReportController.pas',
uDetallesMedicacionController in 'uDetallesMedicacionController.pas',
uMedicacionesController in 'uMedicacionesController.pas',
uIEditorMedicacionesPreview in 'View\uIEditorMedicacionesPreview.pas',
uIEditorMedicacion in 'View\uIEditorMedicacion.pas',
uIEditorMedicaciones in 'View\uIEditorMedicaciones.pas',
uArticulosMedicacionController in 'uArticulosMedicacionController.pas',
uIEditorElegirArticulosMedicaciones in 'View\uIEditorElegirArticulosMedicaciones.pas',
uIEditorElegirMedicacion in 'View\uIEditorElegirMedicacion.pas';
end.

View File

@ -0,0 +1,576 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{ff8e8509-28f4-4aa9-88e5-13f60fe956a6}</ProjectGuid>
<MainSource>Medicaciones_controller.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\..\..\Output\Debug\Cliente\Medicaciones_controller.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_Optimize>False</DCC_Optimize>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\..\..\Lib;..\..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\..\Lib;..\..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\..\..\Lib;..\..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\..\..\Lib;..\..\Lib</DCC_IncludePath>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_Optimize>False</DCC_Optimize>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\..\..\Lib;..\..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\..\Lib;..\..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\..\..\Lib;..\..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\..\..\Lib;..\..\Lib</DCC_IncludePath>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Medicaciones_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="Medicaciones_controller.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Views\adortl.dcp" />
<DCCReference Include="..\Views\Articulos_controller.dcp" />
<DCCReference Include="..\Views\Articulos_data.dcp" />
<DCCReference Include="..\Views\Articulos_model.dcp" />
<DCCReference Include="..\Views\Contactos_controller.dcp" />
<DCCReference Include="..\Views\Contactos_model.dcp" />
<DCCReference Include="..\Views\cxLibraryD11.dcp" />
<DCCReference Include="..\Views\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Views\dbrtl.dcp" />
<DCCReference Include="..\Views\designide.dcp" />
<DCCReference Include="..\Views\dsnap.dcp" />
<DCCReference Include="..\Views\dxCoreD11.dcp" />
<DCCReference Include="..\Views\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Views\dxThemeD11.dcp" />
<DCCReference Include="..\Views\GUIBase.dcp" />
<DCCReference Include="..\Views\GUISDK_D11R.dcp" />
<DCCReference Include="..\Views\Medicaciones_data.dcp" />
<DCCReference Include="..\Views\Medicaciones_model.dcp" />
<DCCReference Include="..\Views\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Views\rtl.dcp" />
<DCCReference Include="..\Views\vcl.dcp" />
<DCCReference Include="..\Views\vclactnband.dcp" />
<DCCReference Include="..\Views\vcldb.dcp" />
<DCCReference Include="..\Views\vclx.dcp" />
<DCCReference Include="..\Views\xmlrtl.dcp" />
<DCCReference Include="uArticulosMedicacionController.pas" />
<DCCReference Include="uDetallesMedicacionController.pas" />
<DCCReference Include="uMedicacionesController.pas" />
<DCCReference Include="uMedicacionReportController.pas" />
<DCCReference Include="View\uIEditorElegirArticulosMedicaciones.pas" />
<DCCReference Include="View\uIEditorElegirMedicacion.pas" />
<DCCReference Include="View\uIEditorMedicacion.pas" />
<DCCReference Include="View\uIEditorMedicaciones.pas" />
<DCCReference Include="View\uIEditorMedicacionesPreview.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6011
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soAppUpTime=1
soExcDate=1
soExcAddress=1
soExcModuleName=1
soExcModuleVersion=1
soExcType=1
soExcMessage=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soOSCharset=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
soCustomData=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoDoNotStoreProcNames=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happended (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line -->

View File

@ -0,0 +1,22 @@
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0C0A, 1252
END
END

View File

@ -0,0 +1,16 @@
unit uIEditorElegirArticulosMedicaciones;
interface
uses
uIEditorElegirArticulos;
type
IEditorElegirArticulosMedicaciones = interface(IEditorElegirArticulos)
['{87C1F6FB-B7A7-4ABC-83CE-E0722CC4B5F5}']
end;
implementation
end.

View File

@ -0,0 +1,22 @@
unit uIEditorElegirMedicacion;
interface
uses
uIEditorMedicaciones, uBizMedicaciones, uGUIBase;
type
IEditorElegirMedicacion = interface(IEditorMedicaciones)
['{CC89BE98-7ACB-47C5-9E18-8A882160D59C}']
function GetMedicacionesSeleccionadas: IBizMedicacion;
property MedicacionesSeleccionadas: IBizMedicacion read GetMedicacionesSeleccionadas;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
property Mensaje : String read GetMensaje write SetMensaje;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorMedicacion;
interface
uses
uEditorDBItem, uBizMedicaciones, uMedicacionesController;
type
IEditorMedicacion = interface(IEditorDBItem)
['{C93FCE02-23B3-4EAA-8579-681992208020}']
function GetController : IMedicacionesController;
procedure SetController (const Value : IMedicacionesController);
property Controller : IMedicacionesController read GetController
write SetController;
function GetMedicacion: IBizMedicacion;
procedure SetMedicacion(const Value: IBizMedicacion);
property Medicacion: IBizMedicacion read GetMedicacion write SetMedicacion;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorMedicaciones;
interface
uses
uEditorGridBase, uBizMedicaciones, uMedicacionesController;
type
IEditorMedicaciones = interface(IEditorGridBase)
['{83A76815-FBD8-4E27-BF87-3E83C55F697B}']
function GetMedicaciones: IBizMedicacion;
procedure SetMedicaciones(const Value: IBizMedicacion);
property Medicaciones: IBizMedicacion read GetMedicaciones write SetMedicaciones;
function GetController : IMedicacionesController;
procedure SetController (const Value : IMedicacionesController);
property Controller : IMedicacionesController read GetController write SetController;
end;
implementation
end.

View File

@ -0,0 +1,16 @@
unit uIEditorMedicacionesPreview;
interface
uses
uEditorPreview;
type
IEditorMedicacionesPreview = interface(IEditorPreview)
['{0F6DB309-50CC-4715-B6E8-2E35FEA96B67}']
end;
implementation
end.

View File

@ -0,0 +1,46 @@
unit uArticulosMedicacionController;
interface
uses
uDADataTable, cxControls, uArticulosController, uBizArticulos;
type
IArticulosMedicacionController = interface(IArticulosController)
['{364399D6-0D30-4FBD-BD69-864DF882AC07}']
end;
TArticulosMedicacionController = class(TArticulosController, IArticulosMedicacionController)
public
function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override;
end;
implementation
{ TArticulosMedicacionController }
uses
Controls, uIEditorElegirArticulosMedicaciones, uIEditorElegirArticulos;
function TArticulosMedicacionController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String;
AMultiSelect: Boolean): IBizArticulo;
var
AEditor : IEditorElegirArticulosMedicaciones;
begin
Result := NIL;
CreateEditor('EditorElegirArticulosMedicaciones', IEditorElegirArticulosMedicaciones, AEditor);
if Assigned(AEditor) then
try
AEditor.Controller := Self;
AEditor.Articulos := AArticulos;
AEditor.MultiSelect := AMultiSelect;
AEditor.Mensaje := AMensaje;
if IsPositiveResult(AEditor.ShowModal) then
Result := AEditor.ArticulosSeleccionados;
finally
AEditor.Release;
AEditor := NIL;
end;
end;
end.

View File

@ -0,0 +1,124 @@
unit uDetallesMedicacionController;
interface
uses
uDADataTable, uBizDetallesMedicacion, uIDataModuleMedicacion, uControllerDetallesArticulos,
uBizArticulos, uBizContactos;
type
IDetallesMedicacionController = interface(IControllerDetallesArticulos)
['{38B4EE57-A247-4A41-A62C-CC18B8793FB3}']
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable); overload;
end;
TDetallesMedicacionController = class(TControllerDetallesArticulos, IDetallesMedicacionController)
private
FDataModule : IDataModuleMedicacion;
protected
procedure AsignarController; override;
//Si sobreescribimos este método podremos tener en cuenta otras columnas para el calculo del importe total de un concepto
function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override;
procedure ValidarCampos(DataTable: TDADataTable); override;
public
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True; const ACantidad: Integer = 1); overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable); overload;
constructor Create; override;
destructor Destroy; override;
end;
implementation
uses
Dialogs, uDialogUtils, Variants, uControllerDetallesBase,
uCalculosUtils, uDataModuleMedicaciones, uArticulosMedicacionController;
{ TDetallesMedicacionController }
procedure TDetallesMedicacionController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable);
var
AArticulos : IBizArticulo;
begin
if Assigned(ADetalles) then
begin
try
AArticulos := (FArticulosController.BuscarTodos as IBizArticulo);
ActualizarDetalles(ADetalles, AArticulos);
// ShowInfoMessage('Se ha actualizado el descuento para el cliente seleccionado'); Esta desactivado el descuento general para los albaranes de cliente
finally
AArticulos := Nil;
end;
end;
end;
procedure TDetallesMedicacionController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean; const ACantidad: Integer);
var
AArticulos: IBizArticulo;
begin
if Assigned(ADetalles) then
begin
try
AArticulos := (FArticulosController.BuscarTodos as IBizArticulo);
//Si nueva fila es false, quiere decir que se sustituye un determinado artículo, por ello la lista a seleccionar no debe ser multiselect
if ANuevaFila then
begin
AArticulos := (FArticulosController as IArticulosMedicacionController).ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir a este albarán de cliente', True);
Add(ADetalles, AArticulos, ACantidad)
end
else
begin
AArticulos := (FArticulosController as IArticulosMedicacionController).ElegirArticulos(AArticulos, 'Elija el artículo que desea añadir a este albarán de cliente', False);
RellenarDetalle(ADetalles, AArticulos, ACantidad);
end;
finally
AArticulos := Nil;
end;
end;
end;
procedure TDetallesMedicacionController.AsignarController;
begin
FArticulosController := TArticulosMedicacionController.Create;
end;
{procedure TDetallesMedicacionController.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer);
begin
inherited;
with (ADetalles as IBizDetallesMedicacion) do
begin
Edit;
// ID := FDataModule.GetNextID(DataTable.LogicalName);
ID_ALBARAN := IDCabecera;
Post
end;
end;}
function TDetallesMedicacionController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double;
begin
Result := CalcularLineaConcepto(DataTable);
end;
constructor TDetallesMedicacionController.Create;
begin
inherited;
FDataModule := TDataModuleMedicacion.Create(Nil);
end;
destructor TDetallesMedicacionController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
procedure TDetallesMedicacionController.ValidarCampos(DataTable: TDADataTable);
begin
inherited;
ValidarCamposLineaConcepto(DataTable);
end;
end.

View File

@ -0,0 +1,185 @@
unit uMedicacionReportController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleMedicacionReport,
uPacientesController, uMedicacionesController, uDetallesMedicacionController,
uBizMedicaciones, uIntegerListUtils;
type
IMedicacionReportController = interface(IControllerBase)
['{9DD34D7A-C396-4DBF-9A16-C060DE111AA8}']
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
end;
TMedicacionReportController = class(TControllerBase, IMedicacionReportController)
private
FDataModule : IDataModuleMedicacionReport;
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
public
constructor Create; override;
destructor Destroy; override;
procedure Preview(const AListaID : TIntegerList);
procedure Print(const AListaID : TIntegerList);
procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean);
procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean);
end;
implementation
uses
uROTypes, uEditorRegistryUtils, uIEditorMedicacionesPreview,
uEditorPreview, uDataModuleMedicaciones, uEditorBase, cxControls,
uStringsUtils, uSistemaFunc, uFactuGES_App;
{ TMedicacionReportController }
constructor TMedicacionReportController.Create;
begin
inherited;
FDataModule := TDataModuleMedicacion.Create(Nil);
end;
function TMedicacionReportController.CreateEditor(const AName: String;
const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
destructor TMedicacionReportController.Destroy;
begin
FDataModule := NIL;
inherited;
end;
procedure TMedicacionReportController.EtiquetasPreview(const AID: integer; const withRefCliente: Boolean);
var
AStream: Binary;
AEditor : IEditorMedicacionesPreview;
begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetEtiquetas(AID, withRefCliente);
try
CreateEditor('EditorMedicacionesPreview', IEditorMedicacionesPreview, AEditor);
if Assigned(AEditor) then
try
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
finally
FreeAndNil(AStream);
AEditor := Nil;
end;
finally
HideHourglassCursor;
end;
end;
procedure TMedicacionReportController.EtiquetasPrint(const AID: integer; const withRefCliente: Boolean);
var
AStream: Binary;
AEditor : IEditorMedicacionesPreview;
begin
AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetEtiquetas(AID, withRefCliente);
try
CreateEditor('EditorMedicacionesPreview', IEditorMedicacionesPreview, AEditor);
if Assigned(AEditor) then
try
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
finally
FreeAndNil(AStream);
AEditor := Nil;
end;
finally
HideHourglassCursor;
end;
end;
procedure TMedicacionReportController.Preview(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorMedicacionesPreview;
begin
{ AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetEtiquetas(AListaID);
try
CreateEditor('EditorMedicacionPreview', IEditorMedicacionPreview, AEditor);
if Assigned(AEditor) then
begin
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Preview;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);
AEditor := Nil;
end;
finally
HideHourglassCursor;
end; }
end;
procedure TMedicacionReportController.Print(const AListaID : TIntegerList);
var
AStream: Binary;
AEditor : IEditorMedicacionesPreview;
begin
{ AEditor := NIL;
ShowHourglassCursor;
try
AStream := FDataModule.GetRptAlbaranes(AListaID);
try
CreateEditor('EditorMedicacionPreview', IEditorMedicacionPreview, AEditor);
if Assigned(AEditor) then
begin
try
AEditor.Controller := Self;
AEditor.ListaID := AListaID;
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
AEditor.LoadFromStream(AStream);
AEditor.Print;
finally
AEditor.Release;
end;
end;
finally
FreeAndNil(AStream);
AEditor := Nil;
end;
finally
HideHourglassCursor;
end; }
end;
end.

View File

@ -0,0 +1,688 @@
unit uMedicacionesController;
interface
uses
Classes, SysUtils, uDADataTable, uEditorDBItem,
uControllerBase, uIDataModuleMedicacion, uPacientesController,
uDetallesMedicacionController, uBizMedicaciones;
type
IMedicacionesController = interface(IControllerBase)
['{351B9280-F927-427D-9042-11EDED8067EF}']
function GetPacienteController: IPacientesController;
procedure SetPacienteController(const Value: IPacientesController);
property PacienteController: IPacientesController read GetPacienteController write SetPacienteController;
function GetDetallesController: IDetallesMedicacionController;
procedure SetDetallesController(const Value: IDetallesMedicacionController);
property DetallesController: IDetallesMedicacionController read GetDetallesController write SetDetallesController;
function Buscar(const ID: Integer): IBizMedicacion;
function BuscarTodos: IBizMedicacion; overload;
function BuscarTodos(const ID_Paciente: Integer): IBizMedicacion; overload;
procedure Ver(AMedicacion : IBizMedicacion);
procedure VerTodos(AMedicaciones: IBizMedicacion;
const AVerModal : Boolean = False; const AWindowCaption: String = '';
const AHeaderText: String = '');
function Nuevo(withInsert: Boolean = True): IBizMedicacion;
function Anadir(AMedicacion : IBizMedicacion): Boolean; overload;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AMedicacion : IBizMedicacion; AllItems: Boolean = false): Boolean; overload;
function Guardar(AMedicacion : IBizMedicacion): Boolean;
procedure DescartarCambios(AMedicacion : IBizMedicacion);
function Existe(const ID: Integer) : Boolean;
function Duplicar(AMedicacion: IBizMedicacion): IBizMedicacion;
function ExtraerSeleccionados(AMedicacion: IBizMedicacion) : IBizMedicacion;
function ElegirMedicacion(AMedicacion: IBizMedicacion; AMensaje: String; AMultiSelect: Boolean): IBizMedicacion;
procedure Preview(AMedicacion : IBizMedicacion; AllItems: Boolean = false);
procedure Print(AMedicacion : IBizMedicacion; AllItems: Boolean = false);
procedure EtiquetasPreview(AMedicacion : IBizMedicacion; Const withRefPaciente: Boolean);
procedure EtiquetasPrint(AMedicacion : IBizMedicacion; Const withRefPaciente: Boolean);
function EsModificable(AMedicacion: IBizMedicacion): Boolean;
function EsEliminable(AMedicacion: IBizMedicacion): Boolean;
procedure RecuperarPaciente(AMedicacion: IBizMedicacion);
{function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AMedicacion: IBizMedicacion; ADynWhereDataTable: WideString; const Ano: String);}
end;
TMedicacionesController = class(TControllerBase, IMedicacionesController)
protected
FDataModule : IDataModuleMedicacion;
FPacienteController : IPacientesController;
FDetallesController : IDetallesMedicacionController;
function GetPacienteController: IPacientesController;
procedure SetPacienteController(const Value: IPacientesController);
function GetDetallesController: IDetallesMedicacionController;
procedure SetDetallesController(const Value: IDetallesMedicacionController);
//Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de
//este controller
procedure AsignarDataModule; virtual;
procedure RecuperarObjetos(AMedicacion: IBizMedicacion); virtual;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
function _Vacio : IBizMedicacion;
function ValidarMedicacion(AMedicacion: IBizMedicacion): Boolean;
public
property PacienteController: IPacientesController read GetPacienteController write SetPacienteController;
property DetallesController: IDetallesMedicacionController read GetDetallesController write SetDetallesController;
constructor Create; override;
destructor Destroy; override;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AMedicacion : IBizMedicacion; AllItems: Boolean = false): Boolean; overload;
function Guardar(AMedicacion : IBizMedicacion): Boolean;
procedure DescartarCambios(AMedicacion : IBizMedicacion); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
function Anadir(AMedicacion : IBizMedicacion): Boolean; overload;
function Buscar(const ID: Integer): IBizMedicacion;
function BuscarTodos: IBizMedicacion; overload;
function BuscarTodos(const ID_Paciente: Integer): IBizMedicacion; overload;
function Nuevo (withInsert: Boolean = True) : IBizMedicacion;
procedure Ver(AMedicacion : IBizMedicacion);
procedure VerTodos(AMedicaciones: IBizMedicacion;
const AVerModal : Boolean = False; const AWindowCaption: String = '';
const AHeaderText: String = '');
function Duplicar(AMedicacion: IBizMedicacion): IBizMedicacion;
function ExtraerSeleccionados(AMedicacion: IBizMedicacion) : IBizMedicacion;
function ElegirMedicacion(AMedicacion: IBizMedicacion; AMensaje: String; AMultiSelect: Boolean): IBizMedicacion;
procedure RecuperarPaciente(AMedicacion : IBizMedicacion);
function EsModificable(AMedicacion: IBizMedicacion): Boolean;
function EsEliminable(AMedicacion: IBizMedicacion): Boolean;
procedure Preview(AMedicacion : IBizMedicacion; AllItems: Boolean = false);
procedure Print(AMedicacion : IBizMedicacion; AllItems: Boolean = false);
procedure EtiquetasPreview(AMedicacion : IBizMedicacion; Const withRefPaciente: Boolean);
procedure EtiquetasPrint(AMedicacion : IBizMedicacion; Const withRefPaciente: Boolean);
{function DarListaAnosAlbaranes: TStringList;
procedure FiltrarAno(AMedicacion: IBizMedicacion; ADynWhereDataTable: WideString; const Ano: String);}
end;
implementation
uses
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorMedicacion, uIEditorElegirMedicacion,
uDataModuleMedicaciones, Variants, uBizDetallesMedicacion,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
schMedicacionClient_Intf, uDAInterfaces, uDateUtils, uIEditorMedicaciones,
schContactosClient_Intf, uMedicacionReportController, uControllerDetallesBase,
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, uStringsUtils;
{ TMedicacionesController }
function TMedicacionesController.Anadir(AMedicacion: IBizMedicacion): Boolean;
begin
if not Assigned(AMedicacion) then
raise Exception.Create ('Albarán no asignado (Anadir)');
if not AMedicacion.DataTable.Active then
AMedicacion.DataTable.Active := True;
AMedicacion.Insert;
Result := True;
end;
procedure TMedicacionesController.AsignarDataModule;
begin
FDataModule := TDataModuleMedicacion.Create(Nil);
end;
function TMedicacionesController.Buscar(const ID: Integer): IBizMedicacion;
begin
Result := FDataModule.GetItem(ID);
end;
function TMedicacionesController.BuscarTodos: IBizMedicacion;
begin
Result := FDataModule.GetItems;
end;
function TMedicacionesController.BuscarTodos(
const ID_Paciente: Integer): IBizMedicacion;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := BuscarTodos;
with Result.DataTable.DynamicWhere do
begin
// ID_PACIENTE
Condicion := NewBinaryExpression(NewField('', fld_MedicacionID_PACIENTE), NewConstant(ID_Paciente, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
finally
HideHourglassCursor;
end;
end;
constructor TMedicacionesController.Create;
begin
inherited;
AsignarDataModule;
FPacienteController := TPacientesController.Create;
FDetallesController := TDetallesMedicacionController.Create;
FDetallesController.addObservador(Self);
end;
function TMedicacionesController.CreateEditor(const AName: String;
const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
{function TMedicacionesController.DarListaAnosAlbaranes: TStringList;
begin
Result := FDataModule.GetAnosItems;
end;}
procedure TMedicacionesController.DescartarCambios(AMedicacion: IBizMedicacion);
begin
if not Assigned(AMedicacion) then
raise Exception.Create ('Albarán no asignado');
ShowHourglassCursor;
try
if (AMedicacion.State in dsEditModes) then
AMedicacion.Cancel;
AMedicacion.DataTable.CancelUpdates;
finally
HideHourglassCursor;
end;
end;
destructor TMedicacionesController.Destroy;
begin
FDataModule := Nil;
FPacienteController := Nil;
FDetallesController := Nil;
inherited;
end;
function TMedicacionesController.Duplicar(AMedicacion: IBizMedicacion): IBizMedicacion;
begin
Result := Self._Vacio;
ShowHourglassCursor;
try
DuplicarRegistros(AMedicacion.DataTable, Result.DataTable, mdrActual);
DuplicarRegistros(AMedicacion.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos);
// Hay que dejar algunos campos como si fuera un presupuesto nuevo
Result.Edit;
with Result do
begin
FECHA_DESDE := DateOf(Now);
FECHA_HASTA := DateOf(Now) + 6;
REFERENCIA := '';
end;
Result.Post;
finally
HideHourglassCursor;
end;
end;
function TMedicacionesController.ValidarMedicacion(
AMedicacion: IBizMedicacion): Boolean;
begin
if not Assigned(AMedicacion) then
raise Exception.Create ('Medicacion no asignada');
if (AMedicacion.DataTable.State in dsEditModes) then
AMedicacion.DataTable.Post;
//Tambien hacemos post de sus tablas hija
if (AMedicacion.Detalles.DataTable.State in dsEditModes) then
AMedicacion.Detalles.DataTable.Post;
if (AMedicacion.ID_PACIENTE <= 0) then
// Si hay altas automáticas no hay objeto Paciente pero hay ID_PACIENTE
{ (not Assigned(AMedicacion.Paciente)) or
(AMedicacion.Paciente.IsEmpty) then}
raise Exception.Create('Debe indicar el paciente de esta medicación');
if (EsFechaVacia(AMedicacion.FECHA_DESDE)) then
raise Exception.Create('Debe indicar la fecha inicial de esta medicación');
if (EsFechaVacia(AMedicacion.FECHA_HASTA)) then
raise Exception.Create('Debe indicar la fecha final de esta medicación');
if (AMedicacion.Detalles.DataTable.RecordCount = 0) then
raise Exception.Create('La medicación debe tener en su contenido al menos un concepto');
//Validamos las fechas del albarán
// if not (EsFechaVacia(AMedicacion.FECHA_ENVIO)) then
// if AMedicacion.FECHA_ENVIO < AMedicacion.FECHA_PREVISTA_ENVIO then
// raise Exception.Create('La fecha de envio debe ser posterior a la fecha prevista de envio');
if AMedicacion.FECHA_HASTA < AMedicacion.FECHA_DESDE then
raise Exception.Create('La fecha final debe ser posterior a la fecha inicial');
{ Asegurarse de valores en campos "automáticos" tanto
en MODIFICACIÓN como en INSERCIÓN. }
AMedicacion.Edit;
try
Result := True;
finally
AMedicacion.Post;
end;
end;
procedure TMedicacionesController.Ver(AMedicacion: IBizMedicacion);
var
AEditor : IEditorMedicacion;
begin
AEditor := NIL;
RecuperarObjetos(AMedicacion);
CreateEditor('EditorMedicacion', IEditorMedicacion, AEditor);
if Assigned(AEditor) then
try
//MODO CONSULTAR
AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE
AEditor.Medicacion := AMedicacion;
if not EsModificable(AMedicacion) then
begin
SetDataTableReadOnly(AMedicacion.DataTable, True);
AEditor.ReadOnly := True;
end;
AEditor.ShowModal;
//MODO CONSULTAR (Se deja la tabla como estaba)
if AEditor.ReadOnly then
SetDataTableReadOnly(AMedicacion.DataTable, False);
finally
AEditor.Release;
AEditor := NIL;
end;
end;
procedure TMedicacionesController.VerTodos(AMedicaciones: IBizMedicacion;
const AVerModal : Boolean = False; const AWindowCaption: String = '';
const AHeaderText: String = '');
var
AEditor : IEditorMedicaciones;
begin
AEditor := NIL;
CreateEditor('EditorMedicaciones', IEditorMedicaciones, AEditor);
if Assigned(AEditor) then
try
if not EsCadenaVacia(AWindowCaption) then
AEditor.WindowCaption := AWindowCaption;
if not EsCadenaVacia(AHeaderText) then
AEditor.HeaderText := AHeaderText;
AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE
AEditor.Medicaciones := AMedicaciones;
AEditor.MultiSelect := True;
if AVerModal then
AEditor.ShowModal
else
AEditor.ShowEmbedded;
finally
if AVerModal then
AEditor.Release;
AEditor := NIL;
end;
end;
function TMedicacionesController._Vacio: IBizMedicacion;
begin
Result := Buscar(ID_NULO);
end;
function TMedicacionesController.Eliminar(const ID: Integer): Boolean;
var
AMedicacion : IBizMedicacion;
begin
AMedicacion := Buscar(ID);
if not Assigned(AMedicacion) then
raise Exception.Create(Format('No se ha encontrado el albarán con ID = %d', [ID]));
Result := Eliminar(AMedicacion);
AMedicacion := NIL;
end;
function TMedicacionesController.ElegirMedicacion(AMedicacion: IBizMedicacion; AMensaje: String; AMultiSelect: Boolean): IBizMedicacion;
var
AEditor : IEditorElegirMedicacion;
begin
Result := NIL;
CreateEditor('EditorElegirMedicacion', IEditorElegirMedicacion, AEditor);
if Assigned(AEditor) then
try
AEditor.Controller := Self;
AEditor.Medicaciones := AMedicacion;
AEditor.MultiSelect := AMultiSelect;
AEditor.Mensaje := AMensaje;
if IsPositiveResult(AEditor.ShowModal) then
Result := AEditor.MedicacionesSeleccionadas;
finally
AEditor.Release;
AEditor := NIL;
end;
end;
function TMedicacionesController.Eliminar(AMedicacion: IBizMedicacion; AllItems: Boolean = false): Boolean;
//En el caso de eliminar almenos un elemento del conjunto se devuelve true
var
bEliminado: Boolean;
begin
bEliminado := False;
if not Assigned(AMedicacion) then
raise Exception.Create ('Albarán no asignada');
ShowHourglassCursor;
try
if (AMedicacion.State in dsEditModes) then
AMedicacion.Cancel;
//Siempre eliminaremos el seleccionado
if EsEliminable(AMedicacion) then
begin
AMedicacion.Delete;
bEliminado := True;
end;
//En el caso de querer eliminar todos los items del objeto AMedicacion
if AllItems then
begin
with AMedicacion.DataTable do
begin
First;
while not EOF do
begin
if EsEliminable(AMedicacion) then
begin
AMedicacion.Delete;
bEliminado := True
end
else Next;
end;
end;
end;
if bEliminado then
begin
AMedicacion.DataTable.ApplyUpdates;
Result := True;
end
else
Result := False;
finally
HideHourglassCursor;
end;
end;
function TMedicacionesController.EsEliminable(AMedicacion: IBizMedicacion): Boolean;
begin
if not Assigned(AMedicacion) then
raise Exception.Create ('Albarán no asignado: EsModificable');
Result := EsModificable(AMedicacion);
end;
function TMedicacionesController.EsModificable(AMedicacion: IBizMedicacion): Boolean;
begin
Result := True;
end;
procedure TMedicacionesController.EtiquetasPreview(AMedicacion: IBizMedicacion; Const withRefPaciente: Boolean);
var
AReportController : IMedicacionReportController;
begin
AReportController := TMedicacionReportController.Create;
try
AReportController.EtiquetasPreview(AMedicacion.ID, withRefPaciente);
finally
AReportController := NIL;
end;
end;
procedure TMedicacionesController.EtiquetasPrint(AMedicacion: IBizMedicacion; Const withRefPaciente: Boolean);
var
AReportController : IMedicacionReportController;
begin
AReportController := TMedicacionReportController.Create;
try
AReportController.EtiquetasPrint(AMedicacion.ID, withRefPaciente);
finally
AReportController := NIL;
end;
end;
procedure TMedicacionesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
var
AMedicacion : IBizMedicacion;
ADetalles : IBizDetallesMedicacion;
begin
inherited;
if Supports(ADataTable, IBizDetallesMedicacion, ADetalles) and
Supports(ADetalles.DataTable.MasterSource.DataTable, IBizMedicacion, AMedicacion) then
begin
//RecalcularImportes(AMedicacion);
end;
end;
procedure TMedicacionesController.RecuperarObjetos(AMedicacion: IBizMedicacion);
begin
RecuperarPaciente(AMedicacion);
end;
procedure TMedicacionesController.RecuperarPaciente(
AMedicacion: IBizMedicacion);
begin
AMedicacion._Paciente := (FPacienteController.Buscar(AMedicacion.ID_Paciente) as IBizPaciente);
end;
function TMedicacionesController.Existe(const ID: Integer): Boolean;
var
AMedicacion : IBizMedicacion;
begin
try
AMedicacion := Buscar(ID);
Result := Assigned(AMedicacion) and (AMedicacion.ID = ID);
finally
AMedicacion := NIL;
end;
end;
function TMedicacionesController.ExtraerSeleccionados(AMedicacion: IBizMedicacion): IBizMedicacion;
var
ASeleccionados : IBizMedicacion;
begin
ASeleccionados := (Self.Buscar(ID_NULO) as IBizMedicacion);
CopyDataTableDA5(AMedicacion.DataTable, ASeleccionados.DataTable, True);
Result := ASeleccionados;
end;
{procedure TMedicacionesController.FiltrarAno(AMedicacion: IBizMedicacion; ADynWhereDataTable: WideString; const Ano: String);
var
Condicion: TDAWhereExpression;
FechaIni: String;
FechaFin: String;
begin
AMedicacion.DataTable.DynamicWhere.Clear;
AMedicacion.DataTable.DynamicWhere.Xml := ADynWhereDataTable;
if (Ano <> 'Todos') then
begin
// Filtrar las facturas actuales por empresa
FechaIni := '01/01/' + Ano;
FechaFin := '31/12/' + Ano;
with AMedicacion.DataTable.DynamicWhere do
begin
// (FECHA_INICIO between FECHA_FIN)
Condicion := NewBinaryExpression(NewField('', fld_MedicacionFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual);
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_MedicacionFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Condicion, Expression, dboAnd);
end;
end;
end; }
procedure TMedicacionesController.SetPacienteController(const Value: IPacientesController);
begin
FPacienteController := Value;
end;
procedure TMedicacionesController.SetDetallesController(const Value: IDetallesMedicacionController);
begin
FDetallesController := Value;
end;
function TMedicacionesController.Guardar(AMedicacion: IBizMedicacion): Boolean;
begin
Result := False;
if not Assigned(AMedicacion) then
raise Exception.Create ('Albarán no asignada');
if not Assigned(FDetallesController) then
raise Exception.Create ('Controller detalles no asignado');
if ValidarMedicacion(AMedicacion) then
begin
ShowHourglassCursor;
try
AMedicacion.DataTable.ApplyUpdates;
Result := True;
finally
HideHourglassCursor;
end;
end;
end;
function TMedicacionesController.Nuevo(withInsert: Boolean = True): IBizMedicacion;
var
AMedicacion : IBizMedicacion;
begin
AMedicacion := FDataModule.NewItem;
AMedicacion.DataTable.Active := True;
if WithInsert then
AMedicacion.Insert;
Result := AMedicacion;
end;
procedure TMedicacionesController.Preview(AMedicacion: IBizMedicacion; AllItems: Boolean = false);
var
AReportController : IMedicacionReportController;
ID_Albaranes: TIntegerList;
begin
AReportController := TMedicacionReportController.Create;
ID_Albaranes := TIntegerList.Create;
try
//Si deseamos previsualizar todos los items del objeto albaran
if AllItems then
begin
with AMedicacion.DataTable do
begin
First;
while not EOF do
begin
ID_Albaranes.Add(AMedicacion.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
else
ID_Albaranes.Add(AMedicacion.ID);
AReportController.Preview(ID_Albaranes);
finally
AReportController := NIL;
FreeANDNIL(ID_Albaranes);
end;
end;
procedure TMedicacionesController.Print(AMedicacion: IBizMedicacion; AllItems: Boolean = false);
var
AReportController : IMedicacionReportController;
ID_Albaranes: TIntegerList;
begin
AReportController := TMedicacionReportController.Create;
ID_Albaranes := TIntegerList.Create;
try
//Si deseamos previsualizar todos los items del objeto albaran
if AllItems then
begin
with AMedicacion.DataTable do
begin
First;
while not EOF do
begin
ID_Albaranes.Add(AMedicacion.ID);
Next;
end;
end;
end
//Solo previsualizamos el item seleccionado
else
ID_Albaranes.Add(AMedicacion.ID);
AReportController.Print(ID_Albaranes);
finally
AReportController := NIL;
FreeANDNIL(ID_Albaranes);
end;
end;
function TMedicacionesController.GetPacienteController: IPacientesController;
begin
Result := FPacienteController;
end;
function TMedicacionesController.GetDetallesController: IDetallesMedicacionController;
begin
Result := FDetallesController;
end;
end.

View File

@ -0,0 +1,492 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{38EEF566-1895-4BDD-8007-F92F5E32CCE6}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Medicaciones_data.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">1</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">0</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">False</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\..\..\Output\Debug\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\..\Lib</Directories>
<Directories Name="SearchPath">..\..\..\Lib;..\..\Lib</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<Language>
<Language Name="ActiveLang"></Language>
<Language Name="ProjectLang">$00000000</Language>
<Language Name="RootDir"></Language>
</Language>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=519
Activate=1
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=0
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=1
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."
EurekaLog Last Line -->
</BorlandProject>

View File

@ -0,0 +1,22 @@
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0C0A, 1252
END
END

View File

@ -0,0 +1,44 @@
package Medicaciones_data;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}
requires
rtl,
dbrtl,
cxLibraryD11,
dxThemeD11,
vcl,
dsnap,
vcldb,
adortl,
Base,
ApplicationBase,
Medicaciones_model;
contains
uDataModuleMedicaciones in 'uDataModuleMedicaciones.pas' {DataModuleMedicacion};
end.

View File

@ -0,0 +1,550 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{38eef566-1895-4bdd-8007-f92f5e32cce6}</ProjectGuid>
<MainSource>Medicaciones_data.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\..\..\Output\Debug\Cliente\Medicaciones_data.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\..\..\Lib;..\..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\..\Lib;..\..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\..\..\Lib;..\..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\..\..\Lib;..\..\Lib</DCC_IncludePath>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\..\..\Lib;..\..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\..\..\Lib;..\..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\..\..\Lib;..\..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\..\..\Lib;..\..\Lib</DCC_IncludePath>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Medicaciones_data.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="Medicaciones_data.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\adortl.dcp" />
<DCCReference Include="..\ApplicationBase.dcp" />
<DCCReference Include="..\Base.dcp" />
<DCCReference Include="..\cxLibraryD11.dcp" />
<DCCReference Include="..\dbrtl.dcp" />
<DCCReference Include="..\dsnap.dcp" />
<DCCReference Include="..\dxThemeD11.dcp" />
<DCCReference Include="..\Medicaciones_model.dcp" />
<DCCReference Include="..\rtl.dcp" />
<DCCReference Include="..\vcl.dcp" />
<DCCReference Include="..\vcldb.dcp" />
<DCCReference Include="uDataModuleMedicaciones.pas">
<Form>DataModuleMedicacion</Form>
</DCCReference>
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6011
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
TerminateBtn Operation=2
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=2
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soAppUpTime=1
soExcDate=1
soExcAddress=1
soExcModuleName=1
soExcModuleVersion=1
soExcType=1
soExcMessage=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soOSCharset=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
soCustomData=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoDoNotStoreProcNames=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_Caption=1
mtDialog_Caption0="Error occurred"
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happened (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line -->

View File

@ -0,0 +1,22 @@
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0C0A, 1252
END
END

Binary file not shown.

View File

@ -0,0 +1,167 @@
inherited DataModuleMedicacion: TDataModuleMedicacion
OnCreate = DAClientDataModuleCreate
Height = 394
Width = 512
object RORemoteService: TRORemoteService
Message = dmConexion.ROMessage
Channel = dmConexion.ROChannel
ServiceName = 'srvMedicacion'
Left = 40
Top = 16
end
object rda_Medicacion: TDARemoteDataAdapter
DataStreamer = Bin2DataStreamer
GetSchemaCall.RemoteService = RORemoteService
GetDataCall.RemoteService = RORemoteService
UpdateDataCall.RemoteService = RORemoteService
GetScriptsCall.RemoteService = RORemoteService
RemoteService = RORemoteService
Left = 43
Top = 151
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 40
Top = 84
end
object tbl_Medicacion: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_MEDICACION_ID'
Required = True
DictionaryEntry = 'Medicacion_ID'
InPrimaryKey = True
end
item
Name = 'ID_PACIENTE'
DataType = datInteger
DictionaryEntry = 'Medicacion_ID_PACIENTE'
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
DisplayLabel = 'Referencia'
DictionaryEntry = 'Medicacion_REFERENCIA'
end
item
Name = 'NOMBRE'
DataType = datString
Size = 255
DisplayLabel = 'Nombre del paciente'
DictionaryEntry = 'Medicacion_NOMBRE'
end
item
Name = 'FECHA_DESDE'
DataType = datDateTime
DisplayLabel = 'Desde'
DictionaryEntry = 'Medicacion_FECHA_DESDE'
end
item
Name = 'FECHA_HASTA'
DataType = datDateTime
DisplayLabel = 'Hasta'
DictionaryEntry = 'Medicacion_FECHA_HASTA'
end
item
Name = 'TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
DictionaryEntry = 'Medicacion_TIPO'
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Medicacion
LogicalName = 'Medicacion'
IndexDefs = <>
Left = 232
Top = 128
end
object ds_Medicacion: TDADataSource
DataSet = tbl_Medicacion.Dataset
DataTable = tbl_Medicacion
Left = 232
Top = 56
end
object tbl_Medicacion_Detalles: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datInteger
Required = True
InPrimaryKey = True
end
item
Name = 'ID_MEDICACION'
DataType = datInteger
Required = True
end
item
Name = 'POSICION'
DataType = datInteger
end
item
Name = 'TIPO_DETALLE'
DataType = datString
Size = 25
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 = datCurrency
end
item
Name = 'POSOLOGIA'
DataType = datString
Size = 255
end
item
Name = 'FORMA_COLOR'
DataType = datString
Size = 255
end
item
Name = 'LOTE'
DataType = datString
Size = 255
end
item
Name = 'VISIBLE'
DataType = datSmallInt
end>
Params = <>
MasterMappingMode = mmWhere
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Medicacion
MasterSource = ds_Medicacion
MasterFields = 'ID'
DetailFields = 'ID_MEDICACION'
LogicalName = 'Medicacion_Detalles'
IndexDefs = <>
Left = 384
Top = 128
end
object ds_Medicacion_Detalles: TDADataSource
DataSet = tbl_Medicacion_Detalles.Dataset
DataTable = tbl_Medicacion_Detalles
Left = 384
Top = 56
end
end

Some files were not shown because too many files have changed in this diff Show More