This commit is contained in:
roberto 2007-10-26 18:07:10 +00:00
parent f891f12f87
commit 3854ac2d6a
81 changed files with 14350 additions and 266 deletions

View File

@ -44,13 +44,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 de FactuGES</Package_Options><Package_Options Name="ImplicitBuild">True</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\dclintraweb_90_100.bpl">VCL for the Web Design Package for CodeGear RAD Studio</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclwebsnap100.bpl">CodeGear WebSnap Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclsoap100.bpl">CodeGear SOAP Components</Excluded_Packages>
@ -65,8 +58,56 @@
<DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Modulos\Articulos\adortl.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxDataD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxEditorsD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxExportD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxExtEditorsD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxGridD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxIntl5D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxIntlPrintSys3D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxLibraryD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\cxPageControlD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\DataAbstract_Core_D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Articulos\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Articulos\designide.dcp" />
<DCCReference Include="..\Modulos\Articulos\dsnap.dcp" />
<DCCReference Include="..\Modulos\Articulos\dxPSCoreD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\dxThemeD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Articulos\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Articulos\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Articulos\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Articulos\Jcl.dcp" />
<DCCReference Include="..\Modulos\Articulos\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Articulos\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Articulos\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Articulos\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Articulos\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Articulos\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Articulos\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\RemObjects_Core_D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\rtl.dcp" />
<DCCReference Include="..\Modulos\Articulos\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Articulos\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Articulos\vcl.dcp" />
<DCCReference Include="..\Modulos\Articulos\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Articulos\vcldb.dcp" />
<DCCReference Include="..\Modulos\Articulos\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Articulos\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Articulos\vclx.dcp" />
<DCCReference Include="..\Modulos\Articulos\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="adortl.dcp" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
</DCCReference>
@ -78,50 +119,9 @@
</DCCReference>
<DCCReference Include="Controladores\uControllerBase.pas" />
<DCCReference Include="Controladores\uControllerDetallesBase.pas" />
<DCCReference Include="cxDataD10.dcp" />
<DCCReference Include="cxEditorsD10.dcp" />
<DCCReference Include="cxExportD10.dcp" />
<DCCReference Include="cxExtEditorsD10.dcp" />
<DCCReference Include="cxGridD10.dcp" />
<DCCReference Include="cxIntl5D10.dcp" />
<DCCReference Include="cxIntlPrintSys3D10.dcp" />
<DCCReference Include="cxLibraryD10.dcp" />
<DCCReference Include="cxPageControlD10.dcp" />
<DCCReference Include="DataAbstract_Core_D10.dcp" />
<DCCReference Include="dbrtl.dcp" />
<DCCReference Include="dclIndyCore.dcp" />
<DCCReference Include="designide.dcp" />
<DCCReference Include="dsnap.dcp" />
<DCCReference Include="dxPSCoreD10.dcp" />
<DCCReference Include="dxThemeD10.dcp" />
<DCCReference Include="GUISDK_D11.dcp" />
<DCCReference Include="IndyCore.dcp" />
<DCCReference Include="IndyProtocols.dcp" />
<DCCReference Include="IndySystem.dcp" />
<DCCReference Include="Jcl.dcp" />
<DCCReference Include="JclVcl.dcp" />
<DCCReference Include="JSDialog100.dcp" />
<DCCReference Include="JvCmpD11R.dcp" />
<DCCReference Include="JvCoreD11R.dcp" />
<DCCReference Include="JvCtrlsD11R.dcp" />
<DCCReference Include="JvDlgsD11R.dcp" />
<DCCReference Include="JvMMD11R.dcp" />
<DCCReference Include="JvNetD11R.dcp" />
<DCCReference Include="JvPageCompsD11R.dcp" />
<DCCReference Include="JvStdCtrlsD11R.dcp" />
<DCCReference Include="JvSystemD11R.dcp" />
<DCCReference Include="pckMD5.dcp" />
<DCCReference Include="pckUCDataConnector.dcp" />
<DCCReference Include="pckUserControl_RT.dcp" />
<DCCReference Include="PngComponentsD10.dcp" />
<DCCReference Include="PNG_D10.dcp" />
<DCCReference Include="RemObjects_Core_D10.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="schBase_Intf.pas" />
<DCCReference Include="TB2k_D10.dcp" />
<DCCReference Include="tbx_d10.dcp" />
<DCCReference Include="uDataModuleBase.pas">
<Form>DataModulBase</Form>
<Form>DataModuleBase</Form>
</DCCReference>
<DCCReference Include="uDMBase.pas">
<Form>dmBase</Form>
@ -142,13 +142,6 @@
<DCCReference Include="Utiles\uNumUtils.pas" />
<DCCReference Include="Utiles\uPasswordUtils.pas" />
<DCCReference Include="Utiles\uSistemaFunc.pas" />
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vclactnband.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="VclSmp.dcp" />
<DCCReference Include="vclx.dcp" />
<DCCReference Include="xmlrtl.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -55,7 +55,7 @@ implementation
uses
Classes, DB, uDAClasses, SysUtils, uDABINAdapter, uROTypes, cxControls,
Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer;
Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer;
procedure CopyDataTable(ASource : TDADataTable;
@ -459,6 +459,7 @@ begin
DABin := Binary.Create;
DAAdapter := TDABINAdapter.Create(nil);
try
ATarget.LogicalName := ASource.LogicalName; // We need to specify new dataset LogicalName
ATarget.RemoteFetchEnabled := False; // "Desconectamos" la tabla destino del servidor
@ -467,12 +468,11 @@ begin
ASource.Open;
ASource.First;
DAAdapter.Initialize(DABin, aiWrite);
DAAdapter.WriteDataset(DABin, ASource, [woRows]);
DAAdapter.Initialize(DABin, aiReadFromBeginning);
DAAdapter.ReadDataset(DABin, ATarget);
DAAdapter.Finalize;
ATarget.RemoteFetchEnabled := True; // "Conectamos" la tabla del servidor otra vez
// Dejar el filtro de la tabla origen como estaba

View File

@ -54,6 +54,28 @@
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="DebugSourceDirs">T:\Codigo (Luis Leon)\Source\Modulos\Pedidos de cliente\Controller\</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">2</VersionInfo><VersionInfo Name="Release">2</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">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.2.2.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.1.4</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\vclhie100.bpl">Internet Explorer Hosting Support Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\applet100.bpl">CodeGear Control Panel Applet Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclwebsnap100.bpl">CodeGear WebSnap Components</Excluded_Packages>

Binary file not shown.

View File

@ -24,6 +24,9 @@ begin
LoadModule('TiposIVA_plugin.bpl');
LoadModule('Familias_plugin.bpl');
LoadModule('Contactos_plugin.bpl');
LoadModule('Articulos_plugin.bpl');
LoadModule('PresupuestosCliente_plugin.bpl');
end;
end;

View File

@ -8,6 +8,11 @@
<Projects Include="Base\Base.dproj" />
<Projects Include="Cliente\FactuGES.dproj" />
<Projects Include="GUIBase\GUIBase.dproj" />
<Projects Include="Modulos\Articulos\Controller\Articulos_controller.dproj" />
<Projects Include="Modulos\Articulos\Data\Articulos_data.dproj" />
<Projects Include="Modulos\Articulos\Model\Articulos_model.dproj" />
<Projects Include="Modulos\Articulos\Plugin\Articulos_plugin.dproj" />
<Projects Include="Modulos\Articulos\Views\Articulos_view.dproj" />
<Projects Include="Modulos\Contactos\Controller\Contactos_controller.dproj" />
<Projects Include="Modulos\Contactos\Data\Contactos_data.dproj" />
<Projects Include="Modulos\Contactos\Model\Contactos_model.dproj" />
@ -23,6 +28,11 @@
<Projects Include="Modulos\Formas de pago\Model\FormasPago_model.dproj" />
<Projects Include="Modulos\Formas de pago\Plugin\FormasPago_plugin.dproj" />
<Projects Include="Modulos\Formas de pago\Views\FormasPago_view.dproj" />
<Projects Include="Modulos\Presupuestos de cliente\Controller\PresupuestosCliente_controller.dproj" />
<Projects Include="Modulos\Presupuestos de cliente\Data\PresupuestosCliente_data.dproj" />
<Projects Include="Modulos\Presupuestos de cliente\Model\PresupuestosCliente_model.dproj" />
<Projects Include="Modulos\Presupuestos de cliente\Plugin\PresupuestosCliente_plugin.dproj" />
<Projects Include="Modulos\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" />
<Projects Include="Modulos\Tipos de IVA\Controller\TiposIVA_controller.dproj" />
<Projects Include="Modulos\Tipos de IVA\Data\TiposIVA_data.dproj" />
<Projects Include="Modulos\Tipos de IVA\Model\TiposIVA_model.dproj" />
@ -252,6 +262,51 @@
<Target Name="Contactos_plugin:Make">
<MSBuild Projects="Modulos\Contactos\Plugin\Contactos_plugin.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_model">
<MSBuild Projects="Modulos\Articulos\Model\Articulos_model.dproj" Targets="" />
</Target>
<Target Name="Articulos_model:Clean">
<MSBuild Projects="Modulos\Articulos\Model\Articulos_model.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_model:Make">
<MSBuild Projects="Modulos\Articulos\Model\Articulos_model.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_data">
<MSBuild Projects="Modulos\Articulos\Data\Articulos_data.dproj" Targets="" />
</Target>
<Target Name="Articulos_data:Clean">
<MSBuild Projects="Modulos\Articulos\Data\Articulos_data.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_data:Make">
<MSBuild Projects="Modulos\Articulos\Data\Articulos_data.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_controller">
<MSBuild Projects="Modulos\Articulos\Controller\Articulos_controller.dproj" Targets="" />
</Target>
<Target Name="Articulos_controller:Clean">
<MSBuild Projects="Modulos\Articulos\Controller\Articulos_controller.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_controller:Make">
<MSBuild Projects="Modulos\Articulos\Controller\Articulos_controller.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_view">
<MSBuild Projects="Modulos\Articulos\Views\Articulos_view.dproj" Targets="" />
</Target>
<Target Name="Articulos_view:Clean">
<MSBuild Projects="Modulos\Articulos\Views\Articulos_view.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_view:Make">
<MSBuild Projects="Modulos\Articulos\Views\Articulos_view.dproj" Targets="Make" />
</Target>
<Target Name="Articulos_plugin">
<MSBuild Projects="Modulos\Articulos\Plugin\Articulos_plugin.dproj" Targets="" />
</Target>
<Target Name="Articulos_plugin:Clean">
<MSBuild Projects="Modulos\Articulos\Plugin\Articulos_plugin.dproj" Targets="Clean" />
</Target>
<Target Name="Articulos_plugin:Make">
<MSBuild Projects="Modulos\Articulos\Plugin\Articulos_plugin.dproj" Targets="Make" />
</Target>
<Target Name="FactuGES">
<MSBuild Projects="Cliente\FactuGES.dproj" Targets="" />
</Target>
@ -261,14 +316,59 @@
<Target Name="FactuGES:Make">
<MSBuild Projects="Cliente\FactuGES.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_model">
<MSBuild Projects="Modulos\Presupuestos de cliente\Model\PresupuestosCliente_model.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_model:Clean">
<MSBuild Projects="Modulos\Presupuestos de cliente\Model\PresupuestosCliente_model.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_model:Make">
<MSBuild Projects="Modulos\Presupuestos de cliente\Model\PresupuestosCliente_model.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_data">
<MSBuild Projects="Modulos\Presupuestos de cliente\Data\PresupuestosCliente_data.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_data:Clean">
<MSBuild Projects="Modulos\Presupuestos de cliente\Data\PresupuestosCliente_data.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_data:Make">
<MSBuild Projects="Modulos\Presupuestos de cliente\Data\PresupuestosCliente_data.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_controller">
<MSBuild Projects="Modulos\Presupuestos de cliente\Controller\PresupuestosCliente_controller.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_controller:Clean">
<MSBuild Projects="Modulos\Presupuestos de cliente\Controller\PresupuestosCliente_controller.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_controller:Make">
<MSBuild Projects="Modulos\Presupuestos de cliente\Controller\PresupuestosCliente_controller.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_view">
<MSBuild Projects="Modulos\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_view:Clean">
<MSBuild Projects="Modulos\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_view:Make">
<MSBuild Projects="Modulos\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Make" />
</Target>
<Target Name="PresupuestosCliente_plugin">
<MSBuild Projects="Modulos\Presupuestos de cliente\Plugin\PresupuestosCliente_plugin.dproj" Targets="" />
</Target>
<Target Name="PresupuestosCliente_plugin:Clean">
<MSBuild Projects="Modulos\Presupuestos de cliente\Plugin\PresupuestosCliente_plugin.dproj" Targets="Clean" />
</Target>
<Target Name="PresupuestosCliente_plugin:Make">
<MSBuild Projects="Modulos\Presupuestos de cliente\Plugin\PresupuestosCliente_plugin.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="FactuGES_Server;Base;GUIBase;ApplicationBase;FormasPago_model;FormasPago_data;FormasPago_controller;FormasPago_view;FormasPago_plugin;TiposIVA_model;TiposIVA_data;TiposIVA_controller;TiposIVA_view;TiposIVA_plugin;Familias_model;Familias_data;Familias_controller;Familias_view;Familias_plugin;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Contactos_plugin;FactuGES" />
<CallTarget Targets="FactuGES_Server;Base;GUIBase;ApplicationBase;FormasPago_model;FormasPago_data;FormasPago_controller;FormasPago_view;FormasPago_plugin;TiposIVA_model;TiposIVA_data;TiposIVA_controller;TiposIVA_view;TiposIVA_plugin;Familias_model;Familias_data;Familias_controller;Familias_view;Familias_plugin;Contactos_model;Contactos_data;Contactos_controller;Contactos_view;Contactos_plugin;Articulos_model;Articulos_data;Articulos_controller;Articulos_view;Articulos_plugin;FactuGES;PresupuestosCliente_model;PresupuestosCliente_data;PresupuestosCliente_controller;PresupuestosCliente_view;PresupuestosCliente_plugin" />
</Target>
<Target Name="Clean">
<CallTarget Targets="FactuGES_Server:Clean;Base:Clean;GUIBase:Clean;ApplicationBase:Clean;FormasPago_model:Clean;FormasPago_data:Clean;FormasPago_controller:Clean;FormasPago_view:Clean;FormasPago_plugin:Clean;TiposIVA_model:Clean;TiposIVA_data:Clean;TiposIVA_controller:Clean;TiposIVA_view:Clean;TiposIVA_plugin:Clean;Familias_model:Clean;Familias_data:Clean;Familias_controller:Clean;Familias_view:Clean;Familias_plugin:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;FactuGES:Clean" />
<CallTarget Targets="FactuGES_Server:Clean;Base:Clean;GUIBase:Clean;ApplicationBase:Clean;FormasPago_model:Clean;FormasPago_data:Clean;FormasPago_controller:Clean;FormasPago_view:Clean;FormasPago_plugin:Clean;TiposIVA_model:Clean;TiposIVA_data:Clean;TiposIVA_controller:Clean;TiposIVA_view:Clean;TiposIVA_plugin:Clean;Familias_model:Clean;Familias_data:Clean;Familias_controller:Clean;Familias_view:Clean;Familias_plugin:Clean;Contactos_model:Clean;Contactos_data:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;Articulos_model:Clean;Articulos_data:Clean;Articulos_controller:Clean;Articulos_view:Clean;Articulos_plugin:Clean;FactuGES:Clean;PresupuestosCliente_model:Clean;PresupuestosCliente_data:Clean;PresupuestosCliente_controller:Clean;PresupuestosCliente_view:Clean;PresupuestosCliente_plugin:Clean" />
</Target>
<Target Name="Make">
<CallTarget Targets="FactuGES_Server:Make;Base:Make;GUIBase:Make;ApplicationBase:Make;FormasPago_model:Make;FormasPago_data:Make;FormasPago_controller:Make;FormasPago_view:Make;FormasPago_plugin:Make;TiposIVA_model:Make;TiposIVA_data:Make;TiposIVA_controller:Make;TiposIVA_view:Make;TiposIVA_plugin:Make;Familias_model:Make;Familias_data:Make;Familias_controller:Make;Familias_view:Make;Familias_plugin:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;FactuGES:Make" />
<CallTarget Targets="FactuGES_Server:Make;Base:Make;GUIBase:Make;ApplicationBase:Make;FormasPago_model:Make;FormasPago_data:Make;FormasPago_controller:Make;FormasPago_view:Make;FormasPago_plugin:Make;TiposIVA_model:Make;TiposIVA_data:Make;TiposIVA_controller:Make;TiposIVA_view:Make;TiposIVA_plugin:Make;Familias_model:Make;Familias_data:Make;Familias_controller:Make;Familias_view:Make;Familias_plugin:Make;Contactos_model:Make;Contactos_data:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;Articulos_model:Make;Articulos_data:Make;Articulos_controller:Make;Articulos_view:Make;Articulos_plugin:Make;FactuGES:Make;PresupuestosCliente_model:Make;PresupuestosCliente_data:Make;PresupuestosCliente_controller:Make;PresupuestosCliente_view:Make;PresupuestosCliente_plugin:Make" />
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>

View File

@ -57,22 +57,22 @@
<DelphiCompile Include="GUIBase.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\Base.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dbrtl.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxBarD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxBarExtItemsD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxLayoutControlD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxPScxCommonD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxPScxGridLnkD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\dxPsPrVwAdvD10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\frx10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\frxe10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\fs10.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\JvAppFrmD11R.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\JvCtrlsD11R.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\rtl.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\vcl.dcp" />
<DCCReference Include="C:\Archivos de programa\Automated QA\AQtime 5\Bin\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Base.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarExtItemsD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxLayoutControlD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxCommonD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxGridLnkD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPsPrVwAdvD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frx10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frxe10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\fs10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvAppFrmD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD11R.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="uDialogBase.pas">
<Form>fDialogBase</Form>
</DCCReference>

Binary file not shown.

View File

@ -10,7 +10,7 @@ uses
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin;
JvCombobox, JvColorCombo, ToolWin, uDAInterfaces;
type
IViewDetallesDTO = interface(IViewDetallesBase)

View File

@ -7,7 +7,7 @@ uses
Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
cxCheckBox, cxMemo;
cxCheckBox, cxMemo, uDAInterfaces;
type
TfrViewIncidencias = class(TfrViewBase)

View File

@ -8,7 +8,7 @@ uses
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
ComCtrls, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, cxCheckBox;
cxDBLookupComboBox, cxCheckBox, uDAInterfaces;
type
TfrViewTotales = class(TfrViewBase)

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Default.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{33C85702-BFCB-4807-9F41-DF59018FCA46}</Option>
</Option>
</PersonalityInfo>
<Default.Personality> <Projects>
<Projects Name="Base.bpl">..\..\Base\Base.bdsproj</Projects>
<Projects Name="GUIBase.bpl">..\..\Base\GUIBase\GUIBase.bdsproj</Projects>
<Projects Name="Usuarios.bpl">..\..\Base\Usuarios\Usuarios.bdsproj</Projects>
<Projects Name="Articulos_model.bpl">Model\Articulos_model.bdsproj</Projects>
<Projects Name="Articulos_data.bpl">Data\Articulos_data.bdsproj</Projects>
<Projects Name="Articulos_controller.bpl">Controller\Articulos_controller.bdsproj</Projects>
<Projects Name="Articulos_view.bpl">Views\Articulos_view.bdsproj</Projects>
<Projects Name="Articulos_plugin.bpl">Plugin\Articulos_plugin.bdsproj</Projects>
<Projects Name="Targets">Base.bpl GUIBase.bpl Usuarios.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl Articulos_plugin.bpl</Projects>
</Projects>
<Dependencies/>
</Default.Personality>
</BorlandProject>

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">{FF8E8509-28F4-4AA9-88E5-13F60FE956A6}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Articulos_controller.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">0</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">1</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">0</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">True</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=5111
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
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=1
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=0
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,41 @@
package Articulos_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 ON}
requires
GUIBase,
Articulos_model,
Contactos_model,
Contactos_controller,
Articulos_data;
contains
uIEditorArticulos in 'View\uIEditorArticulos.pas',
uIEditorArticulo in 'View\uIEditorArticulo.pas',
uArticulosController in 'uArticulosController.pas',
uIEditorElegirArticulos in 'View\uIEditorElegirArticulos.pas',
uControllerDetallesArticulos in 'uControllerDetallesArticulos.pas';
end.

View File

@ -0,0 +1,22 @@
unit uIEditorArticulo;
interface
uses
uEditorDBItem, uBizArticulos, uArticulosController;
type
IEditorArticulo = interface(IEditorDBItem)
['{3260C102-192B-4797-A390-30C818ECBEA5}']
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
property Controller : IArticulosController read GetController write SetController;
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorArticulos;
interface
uses
uEditorGridBase, uBizArticulos, uArticulosController;
type
IEditorArticulos = interface(IEditorGridBase)
['{997019B7-6663-4EA0-AC5E-EEB126A62808}']
function GetArticulos: IBizArticulo;
procedure SetArticulos(const Value: IBizArticulo);
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
property Controller : IArticulosController read GetController write SetController;
end;
implementation
end.

View File

@ -0,0 +1,27 @@
unit uIEditorElegirArticulos;
interface
uses
uIEditorArticulos, uBizArticulos, uGUIBase;
type
IEditorElegirArticulos = interface(IEditorArticulos)
['{549F3B97-46E2-4D40-8080-566065735FA0}']
function GetArticulosSeleccionados: IBizArticulo;
property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados;
procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
property Mensaje : String read GetMensaje write SetMensaje;
end;
implementation
end.

View File

@ -0,0 +1,634 @@
unit uArticulosController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uIDataModuleArticulos, uBizArticulos, uProveedoresController,
uBizContactos;
type
IArticulosController = interface(IObservador)
['{C7EA6486-7BE4-468E-A27A-621E1BA13430}']
function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo;
function BuscarInventariables: IBizArticulo;
function BuscarTodos: IBizArticulo; overload;
function BuscarTodos(ACliente: IBizCliente): IBizArticulo; overload;
function BuscarTodos(AProveedor: IBizProveedor): IBizArticulo; overload;
function BuscarReferencia(const Ref: String; AClienteID: Integer): IBizArticulo;
function BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer): IBizArticulo;
procedure Ver(AArticulo : IBizArticulo);
procedure VerTodos(AArticulos: IBizArticulo);
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 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;
end;
TArticulosController = class(TObservador, IArticulosController)
protected
FDataModule : IDataModuleArticulos;
FProveedoresController: IProveedoresController;
function GetProveedoresController: IProveedoresController;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
procedure AsignarID(AArticulo: IBizArticulo; const IDNuevo: Integer); virtual;
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; virtual;
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 BuscarTodos: 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 Ref: String; AClienteID: Integer = -1): IBizArticulo; virtual;
function BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer = -1): IBizArticulo; virtual;
function Nuevo : IBizArticulo; virtual;
procedure Ver(AArticulo : IBizArticulo); virtual;
procedure VerTodos(AArticulos: IBizArticulo); 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);
end;
implementation
uses
cxControls, DB, uEditorRegistryUtils, schArticulosClient_Intf,
uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos,
uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces,
uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows;
{ 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;
procedure TArticulosController.AsignarID(AArticulo: IBizArticulo; const IDNuevo: Integer);
begin
if not Assigned(AArticulo) then
raise Exception.Create ('Articulo no asignado');
AArticulo.Edit;
AArticulo.ID := IDNuevo;
AArticulo.Post;
end;
function TArticulosController.Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo;
begin
if (AClienteID = -1) then
Result := (FDataModule as IDataModuleArticulos).GetItem(ID)
else
Result := (FDataModule as IDataModuleArticulos).GetItem(ID, AClienteID);
FiltrarEmpresa(Result);
end;
function TArticulosController.BuscarInventariables: IBizArticulo;
begin
ShowHourglassCursor;
try
Result := BuscarTodos;
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText('V_ARTICULOS.' + fld_ArticulosINVENTARIABLE + ' = 1');
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TArticulosController.BuscarReferencia(const Ref: String; AClienteID: Integer = -1): IBizArticulo;
begin
ShowHourglassCursor;
try
if (AClienteID = -1) then
Result := BuscarTodos
else
Result := BuscarTodos(AClienteID);
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText('UPPER(V_ARTICULOS.' + fld_ArticulosREFERENCIA + ') = UPPER(''' + Ref + ''')');
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TArticulosController.BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer = -1): IBizArticulo;
begin
ShowHourglassCursor;
try
if (AClienteID = -1) then
Result := BuscarTodos
else
Result := BuscarTodos(AClienteID);
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText('UPPER(V_ARTICULOS.' + fld_ArticulosREFERENCIA_PROV + ') = UPPER(''' + Ref + ''')');
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo;
begin
Result := FDataModule.GetItems(ACliente);
FiltrarEmpresa(Result);
end;
function TArticulosController.BuscarTodos(ACliente: IBizCliente): IBizArticulo;
begin
if not Assigned(ACliente) then
raise Exception.Create('Falta ACliente: BuscarTodos');
Result := BuscarTodos(ACliente.ID);
end;
function TArticulosController.BuscarTodos(AProveedor: IBizProveedor): IBizArticulo;
begin
if Assigned(AProveedor) then
begin
ShowHourglassCursor;
try
Result := BuscarTodos;
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText('V_ARTICULOS.' + fld_ArticulosID_PROVEEDOR + ' = ' + IntToStr(AProveedor.ID));
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
end;
function TArticulosController.BuscarTodos: IBizArticulo;
begin
Result := FDataModule.GetItems;
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;
end;
constructor TArticulosController.Create;
begin
AsignarDataModule;
end;
function TArticulosController.CreateEditor(const AName: String;
const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
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 := dmUsuarios.IDEmpresaActual;
// USUARIO := dmUsuarios.LoginInfo.Usuario;
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;
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 := dmUsuarios.LoginInfo.Usuario;
Result := True;
finally
AArticulo.Post;
end;
end;
procedure TArticulosController.Ver(AArticulo: IBizArticulo);
var
AEditor : IEditorArticulo;
begin
AEditor := NIL;
ShowHourglassCursor;
try
RecuperarObjetos(AArticulo);
CreateEditor('EditorArticulo', IEditorArticulo, AEditor);
with (AEditor as IEditorArticulo) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Articulo := AArticulo;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
try
AEditor.ShowModal;
AEditor.Release;
finally
AEditor := NIL;
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(AArticulos: IBizArticulo);
var
AEditor : IEditorArticulos;
begin
AEditor := NIL;
ShowHourglassCursor;
try
RecuperarObjetos(AArticulos);
CreateEditor('EditorArticulos', IEditorArticulos, AEditor);
with (AEditor as IEditorArticulos) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Articulos := AArticulos;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
AEditor.ShowEmbedded;
end;
function TArticulosController._Vacio: IBizArticulo;
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]));
Result := Eliminar(AArticulo);
AArticulo := NIL;
end;
function TArticulosController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo;
var
AEditor : IEditorElegirArticulos;
begin
Result := NIL;
CreateEditor('EditorElegirArticulos', IEditorElegirArticulos, AEditor);
try
with AEditor do
begin
Controller := Self;
Articulos := AArticulos;
MultiSelect := AMultiSelect;
Mensaje := AMensaje;
if IsPositiveResult(ShowModal) then
Result := ArticulosSeleccionados;
Release;
end;
finally
AEditor := NIL;
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;
//
end;
procedure TArticulosController.RecuperarObjetos(AArticulo: IBizArticulo);
begin
//
end;
function TArticulosController.Existe(const ID: Integer): Boolean;
var
AArticulo : IBizArticulo;
begin
try
AArticulo := Buscar(ID);
Result := Assigned(AArticulo) and (AArticulo.ID = ID);
finally
AArticulo := NIL;
end;
end;
function TArticulosController.ExtraerSeleccionados(AArticulos: IBizArticulo): IBizArticulo;
var
ASeleccionados : IBizArticulo;
begin
ASeleccionados := (Self.Buscar(ID_NULO) as IBizArticulo);
CopyDataTable(AArticulos.DataTable, ASeleccionados.DataTable, True);
Result := ASeleccionados;
end;
procedure TArticulosController.FiltrarEmpresa(AArticulo: IBizArticulo);
begin
if AArticulo.DataTable.Active then
AArticulo.DataTable.Active := False;
// Filtrar los Articulos actuales por empresa
{ with AArticulo.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
// AddText('V_ARTICULOS.' + fld_ArticulosID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual));
CloseBraket;
end;
}
end;
function TArticulosController.GetProveedoresController: IProveedoresController;
begin
Result := FProveedoresController;
end;
function TArticulosController.Guardar(AArticulo: IBizArticulo): Boolean;
var
NuevoID: Integer;
begin
Result := False;
if ValidarArticulo(AArticulo) then
begin
ShowHourglassCursor;
try
if (AArticulo.EsNuevo) then
NuevoID := FDataModule.GetNextID(AArticulo.DataTable.LogicalName)
else
NuevoID := AArticulo.ID;
AsignarID(AArticulo, NuevoID);
AArticulo.DataTable.ApplyUpdates;
Result := True;
finally
HideHourglassCursor;
end;
end;
end;
function TArticulosController.Nuevo: IBizArticulo;
var
AArticulo : IBizArticulo;
begin
AArticulo := FDataModule.NewItem;
FiltrarEmpresa(AArticulo);
AArticulo.DataTable.Active := True;
AArticulo.Insert;
Result := AArticulo;
end;
procedure TArticulosController.Preview(AArticulo: IBizArticulo);
//var
// AReportController : IArticulosReportController;
begin
{ AReportController := TArticulosReportController.Create;
try
AReportController.Preview(AArticulo.ID);
finally
AReportController := NIL;
end;
}
end;
procedure TArticulosController.Print(AArticulo: IBizArticulo);
//var
// AReportController : IArticulosReportController;
begin
{ AReportController := TArticulosReportController.Create;
try
AReportController.Print(AArticulo.ID);
finally
AReportController := NIL;
end;
}
end;
end.

View File

@ -0,0 +1,395 @@
unit uControllerDetallesArticulos;
interface
uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerDetallesBase,
uBizArticulos, uArticulosController;
const
CAMPO_REFERENCIA = 'REFERENCIA'; //Campo ficticio
CAMPO_REFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; //Campo ficticio
type
TEnumReferencia = (tCliente, tProveedor);
IControllerDetallesArticulos = interface(IControllerDetallesBase)
['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}']
procedure AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo:Boolean);
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable);
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
end;
TControllerDetallesArticulos = class (TControllerDetallesBase, IControllerDetallesArticulos)
protected
FArticulosController: IArticulosController;
procedure EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable);
procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); virtual;
procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual;
procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual;
procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual;
procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual;
procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload;
procedure AsignarController; virtual;
public
procedure AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo:Boolean);
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): Boolean; overload;
function AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): Boolean; overload;
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); virtual;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
constructor Create; override;
destructor Destroy; override;
end;
implementation
{ TControllerDetallesArticulos }
uses DB, Dialogs, cxControls, SysUtils, uDAInterfaces, uCalculosUtils, schArticulosClient_Intf;
{ TControllerDetallesArticulos }
procedure TControllerDetallesArticulos.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
if (Assigned(ADetalles) and Assigned(AArticulos)) then
begin
if not AArticulos.DataTable.Active then
AArticulos.DataTable.Active := True;
BeginUpdate(ADetalles);
try
ADetalles.DataTable.First;
with ADetalles.DataTable do
begin
while not Eof do
begin
Edit;
AArticulos.DataTable.First;
try
if AArticulos.DataTable.Locate(CAMPO_ID, FieldByName(CAMPO_ID_ARTICULOS).AsVariant, []) then
RellenarDetalle(ADetalles, AArticulos)
else
RellenarDetalle(ADetalles, Nil);
except
on E: Exception do
ShowMessage(E.Message);
end;
Next;
end;
//Volvemos a dejarlo al principio
ADetalles.DataTable.First;
end;
finally
EndUpdate(ADetalles);
end;
end;
end;
procedure TControllerDetallesArticulos.Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
if Assigned(ADetalles) and Assigned(AArticulos) then
begin
try
ShowHourglassCursor;
BeginUpdate(ADetalles);
if not ADetalles.DataTable.Active then
ADetalles.DataTable.Active := True;
if not AArticulos.DataTable.Active then
AArticulos.DataTable.Active := True;
with AArticulos.DataTable do
begin
First;
while not EOF do
begin
Self.Add(ADetalles, TIPO_DETALLE_CONCEPTO);
RellenarDetalle(ADetalles, AArticulos);
Next;
end;
end;
finally
EndUpdate(ADetalles);
HideHourglassCursor;
end;
end;
end;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; IDArticulo: Integer; AClienteID: Integer = -1): 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);
if Assigned(AArticulo) then
begin
AArticulo.DataTable.Active := True;
if (AArticulo.RecordCount > 0) then
begin
RellenarDetalle(ADetalles, AArticulo);
Result := True;
end;
end;
finally
EndUpdate(ADetalles);
HideHourglassCursor;
end;
end;
procedure TControllerDetallesArticulos.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable);
var
AArticulos: IBizArticulo;
begin
if Assigned(ADetalles) then
begin
try
AArticulos := (FArticulosController.BuscarTodos as IBizArticulo);
AArticulos := FArticulosController.ElegirArticulos(AArticulos, 'Elija los artículos que desea añadir', True);
Add(ADetalles, AArticulos);
finally
AArticulos := Nil;
end;
end;
end;
procedure TControllerDetallesArticulos.AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
begin
if Assigned(ADetalles) then
begin
With ADetalles.DataTable do
begin
First;
Add(ADetalles, TIPO_DETALLE_TITULO);
Edit;
FieldByName(CAMPO_CONCEPTO).AsString := AConcepto;
Post;
//Subimos la linea insertada al inicio de los detalles
Self.Mover(ADetalles.DataTable, 1, -1);
//Añadimos linea en blanco
Add(ADetalles, TIPO_DETALLE_CONCEPTO);
Edit;
FieldByName(CAMPO_CONCEPTO).AsString := '';
Post;
// First;
end;
end;
end;
procedure TControllerDetallesArticulos.AsignarController;
begin
FArticulosController := TArticulosController.Create;
end;
procedure TControllerDetallesArticulos.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer);
begin
//
end;
procedure TControllerDetallesArticulos.AsignarID(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer; AEsNuevo: Boolean);
begin
with ADetalles do
begin
DataTable.DisableControls;
try
begin
if not DataTable.Active then
DataTable.Active := True;
{ ¡¡¡¡ OJO !!!!
Para asignar el ID en los detalles hay
que tener en cuenta una cosa:
Si se cambia el ID, ese detalle ya no
pertenece a esa cabecera porque ya no se
cumple la condición de la relacion:
Master.ID = Detail.ID_PRESUPUESTO.
Por esa razón no sirve hacer un recorrido
desde el principio hasta el final porque
las detalles van desapareciendo según asignamos
el valor al campo ID y nos mueve aleatoriamente
la posición del registro actual.
Es mejor hacer un bucle sencillo hasta que
"se gasten" todos los detalles. Cuando el
RecordCount llegue a 0 quiere decir que hemos
tratado todos los detalles.
El bucle cambia en el caso de ser llamada esta funcion desde modificar
un presupuesto ya que en ese caso si que hay que hacer un recorrido
total de las tuplas de detalle.
}
if AEsNuevo then
begin
while RecordCount > 0 do
begin
DataTable.First;
AsignarDatos(ADetalles, IDCabecera);
end
end
else
begin
DataTable.First;
while not DataTable.EOF do
begin
if DataTable.FieldByName('ID').AsInteger < 0 then
AsignarDatos(ADetalles, IDCabecera);
DataTable.Next
end;
end;
end;
finally
DataTable.EnableControls;
end;
end;
end;
procedure TControllerDetallesArticulos.CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable);
begin
//Cambia de signo los detalles de la pasados por parámetro
if Assigned(ADetalles) then
begin
try
BeginUpdate(ADetalles);
if not ADetalles.DataTable.Active then
ADetalles.DataTable.Active := True;
with ADetalles.DataTable do
begin
First;
while not EOF do
begin
if (FieldByName(CAMPO_CANTIDAD).AsInteger <> 0) then
begin
Edit;
FieldByName(CAMPO_CANTIDAD).AsInteger := -1;
end;
Next;
end;
end;
finally
EndUpdate(ADetalles);
end;
end;
end;
constructor TControllerDetallesArticulos.Create;
begin
inherited;
AsignarController;
end;
destructor TControllerDetallesArticulos.Destroy;
begin
FArticulosController := Nil;
inherited;
end;
procedure TControllerDetallesArticulos.EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable);
begin
if Assigned(ADetalles) then
begin
with ADetalles.DataTable do
begin
First;
while not Eof do
if not FieldByName(CAMPO_ID_ARTICULOS).IsNull then
Delete
else
Next;
end;
end;
end;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1): 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
case TipoReferencia of
tCliente: AArticulo := FArticulosController.BuscarReferencia(Referencia, AClienteID);
tProveedor: AArticulo := FArticulosController.BuscarReferenciaProveedor(Referencia, AClienteID)
end;
if Assigned(AArticulo) then
begin
AArticulo.DataTable.Active := True;
if (AArticulo.RecordCount > 0) then
begin
RellenarDetalle(ADetalles, AArticulo);
Result := True;
end;
end;
finally
EndUpdate(ADetalles);
HideHourglassCursor;
end;
end;
procedure TControllerDetallesArticulos.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
// Procedimiento que en los hijos se sobreescribirá para rellenar otros campos según necesidades
end;
procedure TControllerDetallesArticulos.RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
if Assigned(ADetalles) then
begin
if not ADetalles.DataTable.Editing then
ADetalles.DataTable.Edit;
RellenarGenerales(ADetalles, AArticulos);
RellenarImportes(ADetalles, AArticulos);
RellenarOtros(ADetalles, AArticulos);
ADetalles.DataTable.Post;
end;
end;
procedure TControllerDetallesArticulos.RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
if Assigned(AArticulos) then
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_CANTIDAD).AsInteger := 1;
end;
end;
procedure TControllerDetallesArticulos.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo);
begin
// Procedimiento que en los hijos se sobreescribirá para rellenar el campo importe según necesidades
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">{568778B1-E82D-41E9-B198-B7C58140E81B}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Articulos_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">0</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">1</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">0</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">True</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=5111
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
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=1
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=0
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,33 @@
package Articulos_data;
{$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 ON}
requires
Articulos_model;
contains
uDataModuleArticulos in 'uDataModuleArticulos.pas' {DataModuleArticulos};
end.

Binary file not shown.

View File

@ -0,0 +1,235 @@
inherited DataModuleArticulos: TDataModuleArticulos
OnCreate = DAClientDataModuleCreate
Height = 414
Width = 518
object RORemoteService: TRORemoteService
Message = dmConexion.ROMessage
Channel = dmConexion.ROChannel
ServiceName = 'srvArticulos'
Left = 48
Top = 24
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 84
end
object rda_Articulos: TDARemoteDataAdapter
GetSchemaCall.RemoteService = RORemoteService
GetDataCall.RemoteService = RORemoteService
UpdateDataCall.RemoteService = RORemoteService
GetScriptsCall.RemoteService = RORemoteService
RemoteService = RORemoteService
DataStreamer = Bin2DataStreamer
Left = 51
Top = 151
end
object tbl_Articulos: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
end
item
Name = 'IMAGEN'
DataType = datBlob
end
item
Name = 'COMISIONABLE'
DataType = datInteger
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
end
item
Name = 'DESCUENTO'
DataType = datFloat
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'ELIMINADO'
DataType = datInteger
DisplayLabel = 'Eliminado'
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Articulos
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'Articulos'
Left = 232
Top = 112
end
object ds_Articulos: TDADataSource
DataSet = tbl_Articulos.Dataset
DataTable = tbl_Articulos
Left = 232
Top = 32
end
object tbl_ArticulosParaCliente: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
end
item
Name = 'IMAGEN'
DataType = datBlob
end
item
Name = 'COMISIONABLE'
DataType = datInteger
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
end
item
Name = 'DESCUENTO'
DataType = datFloat
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'ELIMINADO'
DataType = datInteger
DisplayLabel = 'Eliminado'
end>
Params = <
item
Name = 'ID_CLIENTE'
Value = ''
ParamType = daptInput
end>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Articulos
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ArticulosParaCliente'
Left = 400
Top = 112
end
object ds_ArticulosParaCliente: TDADataSource
DataSet = tbl_ArticulosParaCliente.Dataset
DataTable = tbl_ArticulosParaCliente
Left = 400
Top = 32
end
end

View File

@ -0,0 +1,149 @@
unit uDataModuleArticulos;
interface
uses
SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
uDAScriptingProvider, uROWinInetHttpChannel, uROTypes,
uRORemoteService, uROClient, uROBinMessage,
uDADesigntimeCall,
uIDataModuleArticulos, uBizArticulos, uDataModuleBase, uDARemoteDataAdapter,
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable;
type
TDataModuleArticulos = class(TDataModuleBase, IDataModuleArticulos)
RORemoteService: TRORemoteService;
Bin2DataStreamer: TDABin2DataStreamer;
rda_Articulos: TDARemoteDataAdapter;
tbl_Articulos: TDAMemDataTable;
ds_Articulos: TDADataSource;
tbl_ArticulosParaCliente: TDAMemDataTable;
ds_ArticulosParaCliente: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
protected
procedure AsignarClaseNegocio(AArticulo: TDADataTable); virtual;
function darNombreGenerador(DataSetName: String): String; virtual;
public
function GetItems : IBizArticulo; overload;
function GetItems (IDCliente: Integer) : IBizArticulo; overload;
function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo;
function GetNextID(const DataSetName : String) : Integer;
function NewItem : IBizArticulo;
end;
implementation
{$R *.DFM}
uses
FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
schArticulosClient_Intf;
{ TdmArticulos }
procedure TDataModuleArticulos.AsignarClaseNegocio(AArticulo: TDADataTable);
begin
AArticulo.BusinessRulesID := BIZ_CLIENT_ARTICULO;
end;
procedure TDataModuleArticulos.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmConexion.Channel;
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleArticulos.darNombreGenerador(DataSetName: String): String;
begin
if DataSetName = nme_Articulos then
Result := 'GEN_ARTICULOS_ID';
end;
function TDataModuleArticulos.GetNextID(const DataSetName: String): Integer;
var
aGeneratorName : String;
begin
// aGeneratorName := darNombreGenerador(DataSetName);
// Result := (RORemoteService as IsrvArticulos).GetNextAutoInc(aGeneratorName)
end;
function TDataModuleArticulos.NewItem: IBizArticulo;
begin
Result := GetItem(ID_NULO)
end;
{
function TDataModuleArticulos._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable;
begin
Result := NIL;
if not Assigned(ADataTable) then
raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)');
Result := TDACDSDataTable.Create(NIL);
CloneDataTable(ADataTable, Result);
end;
}
function TDataModuleArticulos.GetItem(const ID: Integer; AClienteID: Integer = -1): IBizArticulo;
begin
ShowHourglassCursor;
try
if (AClienteID = -1) then
Result := Self.GetItems
else
Result := Self.GetItems(AClienteID);
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText('V_ARTICULOS.' + fld_ArticulosID + ' = ' + IntToStr(ID));
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleArticulos.GetItems(IDCliente: Integer): IBizArticulo;
var
AArticulo : TDAMemDataTable;
begin
ShowHourglassCursor;
try
// AArticulo := _CloneDataTable(tbl_ArticulosParaCliente);
AArticulo := CloneDataTable(tbl_ArticulosParaCliente);
AsignarClaseNegocio(AArticulo);
AArticulo.ParamByName('ID_CLIENTE').AsInteger := IdCliente;
Result := (AArticulo as IBizArticulo);
finally
HideHourglassCursor;
end;
end;
function TDataModuleArticulos.GetItems: IBizArticulo;
var
AArticulo : TDAMemDataTable;
begin
ShowHourglassCursor;
try
// AArticulo := _CloneDataTable(tbl_Articulos);
AArticulo := CloneDataTable(tbl_Articulos);
AsignarClaseNegocio(AArticulo);
Result := (AArticulo as IBizArticulo);
finally
HideHourglassCursor;
end;
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">{E4F81792-84CF-4900-A6AB-18F6DD2C7ADA}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Articulos_model.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">0</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">1</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">0</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">True</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=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
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=1
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=0
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,36 @@
package Articulos_model;
{$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 ON}
requires
Base;
contains
uBizArticulos in 'uBizArticulos.pas',
uIDataModuleArticulos in 'Data\uIDataModuleArticulos.pas',
schArticulosClient_Intf in 'schArticulosClient_Intf.pas',
schArticulosServer_Intf in 'schArticulosServer_Intf.pas';
end.

Binary file not shown.

View File

@ -0,0 +1,20 @@
unit uIDataModuleArticulos;
interface
uses
uBizArticulos;
type
IDataModuleArticulos = interface
['{9047C468-78DE-404E-9047-1125B382FE3B}']
function GetItems: IBizArticulo; overload;
function GetItems (IDCliente: Integer) : IBizArticulo; overload;
function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo;
function GetNextID(const DataSetName : String) : Integer;
function NewItem : IBizArticulo;
end;
implementation
end.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,124 @@
unit uBizArticulos;
interface
uses
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;
end;
TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable)
protected
FSeleccionableInterface : ISeleccionable;
procedure OnNewRecord(Sender: TDADataTable); override;
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;
end;
implementation
uses
uDataTableUtils, SysUtils, uROClasses, Classes;
{ 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;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizArticulo.Destroy;
begin
FSeleccionableInterface := NIL;
inherited;
end;
function TBizArticulo.EsNuevo: Boolean;
begin
Result := (ID < 0);
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 := dmUsuarios.IDEmpresaActual;
PRECIO_PORTE := 0;
PRECIO_COSTE := 0;
DESCUENTO := 0;
PRECIO_NETO := 0;
COMISIONABLE := 1;
ELIMINADO := 0;
// USUARIO := dmUsuarios.LoginInfo.Usuario;
end;
procedure TBizArticulo.OnNewRecord(Sender: TDADataTable);
begin
inherited;
ID := GetRecNo; // -1, -2, -3...
INVENTARIABLE := 1;
IniciarValoresArticuloNuevo;
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;
initialization
RegisterDataTableRules(BIZ_CLIENT_ARTICULO, TBizArticulo);
finalization
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">{E4A70E78-DCAB-415C-9E35-1956BD41AE1A}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Articulos_plugin.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">0</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=5111
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
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=1
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=0
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,35 @@
package Articulos_plugin;
{$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 ON}
requires
PluginSDK_D10R,
Articulos_controller,
Articulos_view;
contains
uPluginArticulos in 'uPluginArticulos.pas';
end.

Binary file not shown.

View File

@ -0,0 +1,112 @@
object PluginArticulos: TPluginArticulos
OldCreateOrder = True
DefaultAction = actArticulos
Description = 'Ventas'
ModuleMenu = MainMenu
ModuleName = 'Articulos'
SmallImages = SmallImages
LargeImages = LargeImages
Author = 'Rodax Software'
Version = '1.0.0'
Height = 252
Width = 401
object LargeImages: TPngImageList
Height = 24
Width = 24
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD2520000015E4944415478DA
63FCFFFF3F032D0123CC822BA552CE406A0F1EB52E84E475BA9FEDC567C17FD5
961A0676F62C0C9D3F7F4E63981DDBC290BA18BF7CCEAA678C782D00BA00AC18
0EBE7F6760F8F19D61FA0E4306966DA9200308C993600148F38777607AFA4967
4C0BB0CB1369014CF37B20FEF19361FACD60540B70CB1361C1875E84E60F1F20
2E7C958AB000BF3C11163CA8466806BB1068C0AF728405F8E5F15B004A45D397
CB634D83200340A9089F3C210B9C0F3CC49DCE1DE4195C08C9539C0FB0B99010
20351F50D1023CE99C88620504C041466A3E8059803338D18394D47CC088E118
64F0F91303C397CF0CD30F58C1D5939A0F705B00359CE133D082B3EED82D2094
0F705A806438D8073743B05A40301FC0D2398A056886337CFDC230FD4902A605
A400B8056F3A300C67F8F29561FA876C2A5970B38481E1D72F14C319BE7D4189
33B22DC0175FC87146AE0578E30B39CEC8B2801440730B007C5C13EF8DA2E719
0000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end>
Left = 232
Top = 16
Bitmap = {}
end
object ModuleActionList: TActionList
Images = LargeImages
Left = 40
Top = 72
object actArticulos: TAction
Category = 'Ventas'
Caption = 'Cat'#225'logo de art'#237'culos'
ImageIndex = 0
OnExecute = actArticulosExecute
end
end
object MainMenu: TMainMenu
Images = LargeImages
Left = 40
Top = 16
object N1: TMenuItem
Caption = 'Log'#237'stica'
object Articulos1: TMenuItem
Tag = 100
Action = actArticulos
end
end
end
object SmallImages: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001004944415478DA
63BC5C22F99F8148A0D3FD8C115D8C1164806A4B0D84F7FD3B03C3FD3B0CB3DB
3732A42EC614CB5985CF00A8C2E9177D1858B6A5420C4013C36D4075315821C3
F5AB0CD37F95430C98852986DB80287FB02D300036A012530CA701071E121788
F8C3002DC072573F67FCFF9F7004E10C449001403967A09A3D78F4BBE00C44A8
0160C3D9D9B33074FEFC398D61766C0BEE408419004C3C60C5700072E98FEF0C
D3771882D5E10C44AC0680347F7807A6A79F748618802FA0AE944A210C80697E
0FC43F7E324CBF194C82011F7A119A3F7C80B8E0552A09063CA8466806BBE03B
3CB0091A008A85E9CBE5B1CA13638033308071A6030779061700E6FAF742387F
63F70000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 308
Top = 16
Bitmap = {}
end
object ExtraImages: TPngImageList
Height = 28
Width = 28
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
940000000970485973000017120000171201679FD252000001374944415478DA
63FCFFFF3F033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FF
AA2D350CECEC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC6489485409781
35A180CF9F1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CE
BA63B710BB1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902
AA85F8D59060E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F
148318BE015DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A62
2D743EF0107FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC
450E5E72333ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E76
0B892857C9CAF8582D24B25C2527E397022DE921270A302C2415901A0554B190
9428A086854495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E
44AE426082}
Name = 'PngImage0'
Background = clWindow
end>
Left = 232
Top = 80
Bitmap = {}
end
end

View File

@ -0,0 +1,74 @@
unit uPluginArticulos;
interface
uses
uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
ImgList, Controls, PngImageList;
type
IMCArticulos = interface(IInterface)
['{ED6B467B-B6DD-4E2E-8E54-BCEB8FD0A012}']
end;
TPluginArticulos = class(TModuleController, IMCArticulos)
actArticulos: TAction;
ExtraImages: TPngImageList;
LargeImages: TPngImageList;
MainMenu: TMainMenu;
ModuleActionList: TActionList;
SmallImages: TPngImageList;
N1: TMenuItem;
Articulos1: TMenuItem;
procedure actArticulosExecute(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
Forms, Dialogs, SysUtils,
uArticulosController, uBizArticulos, uArticulosViewRegister;
function GetModule : TModuleController;
begin
Result := TPluginArticulos.Create(NIL);
end;
exports
GetModule name GET_MODULE_FUNC;
procedure TPluginArticulos.actArticulosExecute(Sender: TObject);
var
AArticulosController : IArticulosController;
AArticulos : IBizArticulo;
begin
AArticulosController := TArticulosController.Create;
AArticulos := (AArticulosController.BuscarTodos as IBizArticulo);
AArticulosController.VerTodos(AArticulos);
end;
constructor TPluginArticulos.Create(AOwner: TComponent);
begin
inherited;
uArticulosViewRegister.RegisterViews;
end;
destructor TPluginArticulos.Destroy;
begin
uArticulosViewRegister.UnregisterViews;
inherited;
end;
initialization
RegisterModuleClass(TPluginArticulos);
finalization
UnRegisterModuleClass(TPluginArticulos);
end.

View File

@ -0,0 +1,823 @@
object srvArticulos: TsrvArticulos
OldCreateOrder = True
OnCreate = DARemoteServiceCreate
RequiresSession = True
SessionManager = dmServer.SessionManager
ConnectionName = 'IBX'
ServiceSchema = schArticulos
ServiceDataStreamer = Bin2DataStreamer
ExportedDataTables = <>
BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
Height = 229
Width = 349
object Diagrams: TDADiagrams
Left = 150
Top = 74
DiagramData = '<Diagrams>'#13#10'</Diagrams>'#13#10
end
object DataDictionary: TDADataDictionary
Fields = <
item
Name = 'Articulos_REFERENCIA'
DataType = datString
Size = 255
DisplayLabel = 'Referencia'
end
item
Name = 'Articulos_DESCRIPCION'
DataType = datString
Size = 255
DisplayLabel = 'Descripci'#243'n'
end
item
Name = 'Articulos_FAMILIA'
DataType = datString
Size = 255
DisplayLabel = 'Familia'
end
item
Name = 'Articulos_IMAGEN'
DataType = datBlob
DisplayLabel = 'Foto'
end
item
Name = 'Articulos_COMISIONABLE'
DataType = datInteger
DisplayLabel = 'Comisionable'
end
item
Name = 'Articulos_FECHA_ALTA'
DataType = datDateTime
DisplayLabel = 'FECHA_ALTA'
end
item
Name = 'Articulos_FECHA_MODIFICACION'
DataType = datDateTime
DisplayLabel = 'FECHA_MODIFICACION'
end
item
Name = 'Articulos_USUARIO'
DataType = datString
Size = 20
DisplayLabel = 'USUARIO'
end
item
Name = 'Articulos_REFERENCIA_PROVEEDOR'
DataType = datString
Size = 255
DisplayLabel = 'Ref. proveedor'
end
item
Name = 'Articulos_PRECIO_COSTE'
DataType = datCurrency
DisplayLabel = 'Importe'
end
item
Name = 'Articulos_PRECIO_PORTE'
DataType = datCurrency
DisplayLabel = 'Porte'
end
item
Name = 'Articulos_DESCUENTO'
DataType = datFloat
DisplayLabel = 'Descuento'
end
item
Name = 'Articulos_ID'
DataType = datAutoInc
GeneratorName = 'GEN_ARTICULOS_ID'
Required = True
DisplayLabel = 'ID'
end
item
Name = 'Articulos_ID_EMPRESA'
DataType = datInteger
DisplayLabel = 'ID_EMPRESA'
end
item
Name = 'Articulos_PRECIO_NETO'
DataType = datCurrency
DisplayLabel = 'PRECIO_NETO'
end
item
Name = 'Articulos_ID_PROVEEDOR'
DataType = datInteger
DisplayLabel = 'ID_PROVEEDOR'
ServerAutoRefresh = True
end
item
Name = 'Articulos_NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
DisplayLabel = 'Nombre'
ServerAutoRefresh = True
end>
Left = 150
Top = 22
end
object schArticulos: TDASchema
ConnectionManager = dmServer.ConnectionManager
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'IBX'
TargetTable = 'V_ARTICULOS'
StatementType = stAutoSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'REFERENCIA'
TableField = 'REFERENCIA'
end
item
DatasetField = 'DESCRIPCION'
TableField = 'DESCRIPCION'
end
item
DatasetField = 'FAMILIA'
TableField = 'FAMILIA'
end
item
DatasetField = 'IMAGEN'
TableField = 'IMAGEN'
end
item
DatasetField = 'COMISIONABLE'
TableField = 'COMISIONABLE'
end
item
DatasetField = 'FECHA_ALTA'
TableField = 'FECHA_ALTA'
end
item
DatasetField = 'FECHA_MODIFICACION'
TableField = 'FECHA_MODIFICACION'
end
item
DatasetField = 'USUARIO'
TableField = 'USUARIO'
end
item
DatasetField = 'REFERENCIA_PROV'
TableField = 'REFERENCIA_PROV'
end
item
DatasetField = 'PRECIO_COSTE'
TableField = 'PRECIO_COSTE'
end
item
DatasetField = 'PRECIO_PORTE'
TableField = 'PRECIO_PORTE'
end
item
DatasetField = 'DESCUENTO'
TableField = 'DESCUENTO'
end
item
DatasetField = 'PRECIO_NETO'
TableField = 'PRECIO_NETO'
end
item
DatasetField = 'ID_PROVEEDOR'
TableField = 'ID_PROVEEDOR'
end
item
DatasetField = 'NOMBRE_PROVEEDOR'
TableField = 'NOMBRE_PROVEEDOR'
end
item
DatasetField = 'INVENTARIABLE'
TableField = 'INVENTARIABLE'
end
item
DatasetField = 'ELIMINADO'
TableField = 'ELIMINADO'
end>
end>
Name = 'Articulos'
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
end
item
Name = 'IMAGEN'
DataType = datBlob
end
item
Name = 'COMISIONABLE'
DataType = datInteger
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
end
item
Name = 'DESCUENTO'
DataType = datFloat
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'ELIMINADO'
DataType = datInteger
DisplayLabel = 'Eliminado'
end>
end
item
Params = <
item
Name = 'ID_CLIENTE'
Value = ''
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'ARTICULOS'
SQL =
'SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFER' +
'ENCIA, V_ARTICULOS.DESCRIPCION,'#10' V_ARTICULOS.FAMILIA, V_AR' +
'TICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA' +
','#10' V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO,'#10' ' +
' V_ARTICULOS.REFERENCIA_PROV,'#10' V_ARTICULOS.PRECIO_COST' +
'E,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' CLIENTES_DTOS_PROVEED' +
'ORES.DESCUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICUL' +
'OS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_ARTI' +
'CULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTI' +
'CULOS'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES'#10'ON ((CLIENTES_DT' +
'OS_PROVEEDORES.ID_PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CLI' +
'ENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))'
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'REFERENCIA'
TableField = 'REFERENCIA'
end
item
DatasetField = 'DESCRIPCION'
TableField = 'DESCRIPCION'
end
item
DatasetField = 'FAMILIA'
TableField = 'FAMILIA'
end
item
DatasetField = 'IMAGEN'
TableField = 'IMAGEN'
end
item
DatasetField = 'COMISIONABLE'
TableField = 'COMISIONABLE'
end
item
DatasetField = 'FECHA_ALTA'
TableField = 'FECHA_ALTA'
end
item
DatasetField = 'FECHA_MODIFICACION'
TableField = 'FECHA_MODIFICACION'
end
item
DatasetField = 'USUARIO'
TableField = 'USUARIO'
end
item
DatasetField = 'REFERENCIA_PROV'
TableField = 'REFERENCIA_PROV'
end
item
DatasetField = 'PRECIO_COSTE'
TableField = 'PRECIO_COSTE'
end
item
DatasetField = 'PRECIO_PORTE'
TableField = 'PRECIO_PORTE'
end
item
DatasetField = 'DESCUENTO'
TableField = 'DESCUENTO'
end
item
DatasetField = 'PRECIO_NETO'
TableField = 'PRECIO_NETO'
end
item
DatasetField = 'ID_PROVEEDOR'
TableField = 'ID_PROVEEDOR'
end
item
DatasetField = 'NOMBRE_PROVEEDOR'
TableField = 'NOMBRE_PROVEEDOR'
end
item
DatasetField = 'INVENTARIABLE'
TableField = 'INVENTARIABLE'
end
item
DatasetField = 'ELIMINADO'
TableField = 'ELIMINADO'
end>
end>
Name = 'ArticulosParaCliente'
Fields = <
item
Name = 'ID'
DataType = datInteger
InPrimaryKey = True
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
end
item
Name = 'IMAGEN'
DataType = datBlob
end
item
Name = 'COMISIONABLE'
DataType = datInteger
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
end
item
Name = 'DESCUENTO'
DataType = datFloat
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
end
item
Name = 'NOMBRE_PROVEEDOR'
DataType = datString
Size = 255
end
item
Name = 'ELIMINADO'
DataType = datInteger
DisplayLabel = 'Eliminado'
end>
end>
JoinDataTables = <>
UnionDataTables = <>
Commands = <
item
Params = <
item
Name = 'ELIMINADO'
DataType = datInteger
Value = ''
end
item
Name = 'ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'IMAGEN'
DataType = datBlob
Value = ''
ParamType = daptInput
end
item
Name = 'COMISIONABLE'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
Value = ''
ParamType = daptInput
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
Value = ''
ParamType = daptInput
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'DESCUENTO'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'ARTICULOS'
SQL =
'INSERT'#10' INTO ARTICULOS'#10' (ID, ID_EMPRESA, REFERENCIA, DESCRIP' +
'CION, FAMILIA, IMAGEN, '#10' COMISIONABLE, FECHA_ALTA, FECHA_MOD' +
'IFICACION, USUARIO, '#10' PRECIO_COSTE, PRECIO_PORTE, DESCUENTO,' +
' ID_PROVEEDOR, '#10' PRECIO_NETO, REFERENCIA_PROV, INVENTARIABLE' +
', ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCR' +
'IPCION, :FAMILIA, '#10' :IMAGEN, :COMISIONABLE, :FECHA_ALTA, :FE' +
'CHA_MODIFICACION, '#10' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, ' +
':DESCUENTO, '#10' :ID_PROVEEDOR, :PRECIO_NETO, :REFERENCIA_PROV,' +
#10' :INVENTARIABLE, :ELIMINADO)'
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Insert_Articulos'
end
item
Params = <
item
Name = 'OLD_ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'ARTICULOS'
SQL = 'UPDATE ARTICULOS'#10'SET ELIMINADO = 1'#10'WHERE (ID = :OLD_ID)'
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Delete_Articulos'
end
item
Params = <
item
Name = 'ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'FAMILIA'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'IMAGEN'
DataType = datBlob
Value = ''
ParamType = daptInput
end
item
Name = 'COMISIONABLE'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'FECHA_ALTA'
DataType = datDateTime
Value = ''
ParamType = daptInput
end
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
Value = ''
ParamType = daptInput
end
item
Name = 'USUARIO'
DataType = datString
Size = 20
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_COSTE'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_PORTE'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'DESCUENTO'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'ID_PROVEEDOR'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'PRECIO_NETO'
DataType = datFloat
Value = ''
ParamType = daptInput
end
item
Name = 'INVENTARIABLE'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'REFERENCIA_PROV'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'ELIMINADO'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'OLD_ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
Statements = <
item
Connection = 'IBX'
TargetTable = 'ARTICULOS'
SQL =
'UPDATE ARTICULOS'#10' SET '#10' ID = :ID, '#10' ID_EMPRESA = :ID_EMPR' +
'ESA, '#10' REFERENCIA = :REFERENCIA, '#10' DESCRIPCION = :DESCRIPC' +
'ION, '#10' FAMILIA = :FAMILIA, '#10' IMAGEN = :IMAGEN, '#10' COMISI' +
'ONABLE = :COMISIONABLE, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FECH' +
'A_MODIFICACION = :FECHA_MODIFICACION, '#10' USUARIO = :USUARIO, '#10 +
' PRECIO_COSTE = :PRECIO_COSTE, '#10' PRECIO_PORTE = :PRECIO_PO' +
'RTE, '#10' DESCUENTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEE' +
'DOR, '#10' PRECIO_NETO = :PRECIO_NETO,'#10' INVENTARIABLE = :INVEN' +
'TARIABLE,'#10' REFERENCIA_PROV = :REFERENCIA_PROV,'#10' ELIMINADO ' +
'= :ELIMINADO'#10' WHERE'#10' (ID = :OLD_ID)'
StatementType = stSQL
ColumnMappings = <>
end>
Name = 'Update_Articulos'
end>
RelationShips = <>
UpdateRules = <
item
Name = 'Insert Articulos'
DoUpdate = False
DoDelete = False
DatasetName = 'Articulos'
FailureBehavior = fbRaiseException
end
item
Name = 'Update Articulos'
DoInsert = False
DoDelete = False
DatasetName = 'Articulos'
FailureBehavior = fbRaiseException
end
item
Name = 'Delete Articulos'
DoUpdate = False
DoInsert = False
DatasetName = 'Articulos'
FailureBehavior = fbRaiseException
end>
Version = 0
Left = 48
Top = 24
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 80
end
object bpArticulos: TDABusinessProcessor
Schema = schArticulos
InsertCommandName = 'Insert_Articulos'
DeleteCommandName = 'Delete_Articulos'
UpdateCommandName = 'Update_Articulos'
RefreshDatasetName = 'Articulos_Refresh'
ReferencedDataset = 'Articulos'
ProcessorOptions = [poPrepareCommands]
UpdateMode = updWhereKeyOnly
Left = 264
Top = 24
end
end

View File

@ -0,0 +1,87 @@
unit srvArticulos_Impl;
{----------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading }
{ the RODL file associated with this project . }
{ }
{ This is where you are supposed to code the implementation of your objects. }
{----------------------------------------------------------------------------}
interface
uses
{vcl:} Classes, SysUtils,
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
{Ancestor Implementation:} DataAbstractService_Impl,
{Used RODLs:} DataAbstract4_Intf,
{Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses,
uDAInterfaces, uDAScriptingProvider,
uDABusinessProcessor, uDADataStreamer, uDABin2DataStreamer;
type
{ TsrvArticulos }
TsrvArticulos = class(TDataAbstractService, IsrvArticulos)
Diagrams: TDADiagrams;
schArticulos: TDASchema;
bpArticulos: TDABusinessProcessor;
DataDictionary: TDADataDictionary;
Bin2DataStreamer: TDABin2DataStreamer;
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset;
const IncludeSchema: Boolean; const MaxRecords: Integer);
procedure DARemoteServiceCreate(Sender: TObject);
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
private
protected
{ IsrvArticulos methods }
function GetNextAutoInc(const GeneratorName: String): Integer;
end;
implementation
{$R *.dfm}
uses
{Generated:} FactuGES_Invk, uDataModuleServer,
uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils;
procedure Create_srvArticulos(out anInstance : IUnknown);
begin
anInstance := TsrvArticulos.Create(NIL);
end;
{ srvArticulos }
procedure TsrvArticulos.DARemoteServiceBeforeGetDatasetData(
const Dataset: IDADataset; const IncludeSchema: Boolean;
const MaxRecords: Integer);
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;
end;
procedure TsrvArticulos.DARemoteServiceCreate(Sender: TObject);
begin
SessionManager := dmServer.SessionManager;
end;
procedure TsrvArticulos.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin
ConnectionName := dmServer.ConnectionName;
end;
function TsrvArticulos.GetNextAutoInc(const GeneratorName: String): Integer;
begin
Result := uDatabaseUtils.GetNextAutoInc(GeneratorName)
end;
initialization
TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker);
finalization
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">{5E4BDD4D-597F-407C-8B0C-32E37FBD6267}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">Articulos_view.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">0</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">1</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">0</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">True</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=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
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=1
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=0
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,43 @@
package Articulos_view;
{$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 ON}
requires
GUIBase,
Articulos_model,
Articulos_controller,
Familias_controller,
Contactos_view;
contains
uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame},
uEditorArticulos in 'uEditorArticulos.pas' {fEditorArticulos: TfEditorArticulos},
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};
end.

Binary file not shown.

View File

@ -0,0 +1,27 @@
unit uArticulosViewRegister;
interface
procedure RegisterViews;
procedure UnregisterViews;
implementation
uses
uEditorRegistryUtils, uEditorArticulos, uEditorArticulo, 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;
end.

View File

@ -0,0 +1,664 @@
inherited fEditorArticulo: TfEditorArticulo
Left = 374
Top = 273
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
Caption = 'Ficha de art'#237'culo'
ClientHeight = 480
ClientWidth = 624
Scaled = False
OnClose = CustomEditorClose
ExplicitWidth = 632
ExplicitHeight = 514
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 624
Caption = 'Art'#237'culo'
ExplicitWidth = 624
inherited Image1: TImage
Left = 597
Picture.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
00001C0806000000720DDF940000000970485973000017120000171201679FD2
520000000467414D410000AA11B57D14DC000001374944415478DA63FCFFFF3F
033D01E3C8B2F04AA9943390DA43408F0B316A74BA9FED25C6C2FFAA2D350CEC
EC59584DF9F9731AC3ECD81686D4C584D5E4AC7AC648948540978135A180CF9F
1818BE7C66987EC08A81655B2AC83062D4906921D42086CF40C3CEBA63B710BB
1A322C443208ECFA9B219816E25643A2856806317CFDC230FD4902AA85F8D590
60E19B0E0C8318BE7C6598FE211B61216135245878B38481E1D72F148318BE01
5DFFAB1C61216135C45908CA16D397CB33E00220C340D982901A622D743EF010
7FA67690677021460D55333E2ED71303C8CDF834B4104FA626B6EC450E5E7233
3ECC4292A380DC8CCF88D581444401B9191FB78504CA5572333E760B892857C9
CAF8582D24B25C2527E397022DE921270A302C2415901A0554B1909428A08685
4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082}
ExplicitLeft = 607
end
end
inherited TBXDock: TTBXDock
Width = 624
ExplicitWidth = 624
inherited tbxMain: TTBXToolbar
ExplicitWidth = 394
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 = 624
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 = 624
Height = 385
ExplicitWidth = 624
ExplicitHeight = 385
inherited pagGeneral: TTabSheet
ExplicitLeft = 4
ExplicitTop = 24
ExplicitWidth = 616
ExplicitHeight = 357
end
end
inherited StatusBar: TJvStatusBar
Top = 461
Width = 624
Panels = <
item
Width = 200
end>
ExplicitTop = 461
ExplicitWidth = 624
end
inherited EditorActionList: TActionList
Top = 128
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 = 168
Top = 120
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 = 248
Top = 168
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

@ -0,0 +1,212 @@
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;
type
TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
TBXItem33: TTBXItem;
actFamilias: TAction;
TBXSeparatorItem6: TTBXSeparatorItem;
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';
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
FViewArticulo.Articulo := Articulo;
end;
procedure TfEditorArticulo.SetController(const Value: IArticulosController);
begin
FController := Value;
if Assigned(FController) then
(ViewArticulo as IViewArticulo).Controller := (FController as IArticulosController);
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.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,189 @@
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;
type
TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos)
actFamilias: TAction;
procedure FormShow(Sender: TObject);
procedure actFamiliasExecute(Sender: TObject);
private
FArticulos: IBizArticulo;
FController : IArticulosController;
protected
function GetArticulos: IBizArticulo;
procedure SetArticulos(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;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
public
procedure PonerTitulos(const ATitulo: string = ''); override;
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios,
uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController,
cxGrid, cxGridCustomTableView; //, uListaArticulos;
{$R *.dfm}
{
****************************** TfEditorArticulos *******************************
}
procedure TfEditorArticulos.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Articulos) then
raise Exception.Create('No hay ningún articulo asignado');
Articulos.DataTable.Active := True;
ViewGrid.GotoFirst;
end;
function TfEditorArticulos.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
function TfEditorArticulos.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfEditorArticulos.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorArticulos.ModificarInterno;
begin
inherited;
FController.Ver(Articulos);
end;
procedure TfEditorArticulos.NuevoInterno;
begin
inherited;
FController.Anadir(Articulos);
FController.Ver(Articulos);
end;
procedure TfEditorArticulos.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
// FTitulo := 'Lista de artículos - ' + dmUsuarios.EmpresaActual.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorArticulos.PrevisualizarInterno;
begin
inherited;
end;
procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
dsDataTable.DataTable := FArticulos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := Articulos;
end;
procedure TfEditorArticulos.SetController(const Value: IArticulosController);
begin
FController := Value;
end;
destructor TfEditorArticulos.Destroy;
begin
FArticulos := 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
if not FController.Eliminar(Articulos) then
actRefrescar.Execute;
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;
procedure TfEditorArticulos.AsignarVista;
begin
ViewGrid := CreateView(TfrViewArticulos) as IViewArticulos;
end;
constructor TfEditorArticulos.Create(AOwner: TComponent);
begin
inherited;
AsignarVista;
end;
end.

View File

@ -0,0 +1,187 @@
inherited fEditorElegirArticulos: TfEditorElegirArticulos
Caption = 'Seleccionar art'#237'culos'
ClientWidth = 656
ExplicitWidth = 664
PixelsPerInch = 96
TextHeight = 13
object JvgWizardHeader1: TJvgWizardHeader [0]
Left = 0
Top = 27
Width = 656
Height = 60
CaptionFont.Charset = DEFAULT_CHARSET
CaptionFont.Color = clWindowText
CaptionFont.Height = -11
CaptionFont.Name = 'Tahoma'
CaptionFont.Style = [fsBold]
CommentFont.Charset = DEFAULT_CHARSET
CommentFont.Color = clWindowText
CommentFont.Height = -11
CommentFont.Name = 'Tahoma'
CommentFont.Style = []
SymbolFont.Charset = DEFAULT_CHARSET
SymbolFont.Color = clHighlightText
SymbolFont.Height = -35
SymbolFont.Name = 'Wingdings'
SymbolFont.Style = [fsBold]
Captions.Strings = (
'Seleccione los art'#237'culos')
Comments.Strings = (
' ')
Gradient.FromColor = clHighlight
Gradient.ToColor = clWindow
Gradient.Active = False
Gradient.Orientation = fgdVertical
BufferedDraw = False
ExplicitTop = 87
end
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 656
Caption = 'Lista de art'#237'culos'
Visible = False
ExplicitWidth = 656
inherited Image1: TImage
Left = 629
ExplicitLeft = 629
end
end
inherited TBXDock: TTBXDock
Top = 87
Width = 656
ExplicitTop = 87
ExplicitWidth = 656
inherited tbxMain: TTBXToolbar
Align = alLeft
DockPos = -6
ExplicitWidth = 126
inherited TBXItem2: TTBXItem
Visible = False
end
inherited TBXItem5: TTBXItem
Visible = False
end
inherited TBXItem4: TTBXItem
Visible = False
end
inherited TBXItem6: TTBXItem
Visible = False
end
inherited TBXItem36: TTBXItem
Action = actAnchoAuto2
end
end
inherited tbxFiltro: TTBXToolbar
Left = 126
Top = 23
Align = alLeft
DockPos = 101
DockRow = 1
ExplicitLeft = 126
ExplicitTop = 23
inherited TBXItem34: TTBXItem
Action = actQuitarFiltro2
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 656
end
end
inherited StatusBar: TJvStatusBar
Width = 656
Visible = False
ExplicitWidth = 656
end
inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4]
Left = 0
Top = 376
Width = 656
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 = 376
ExplicitWidth = 656
inherited JvFooter1: TJvFooter
Width = 656
ExplicitWidth = 656
inherited bSeleccionar: TJvFooterBtn
Left = 444
ExplicitLeft = 444
end
inherited bCancelar: TJvFooterBtn
Left = 548
ExplicitLeft = 548
end
end
inherited BarraSeleccionActionList: TActionList
Left = 76
Top = 11
inherited actSeleccionar: TAction
OnExecute = frViewBarraSeleccion1actSeleccionarExecute
OnUpdate = frViewBarraSeleccion1actSeleccionarUpdate
end
inherited actCancelar: TAction
OnExecute = frViewBarraSeleccion1actCancelarExecute
end
end
end
inherited EditorActionList: TActionList [5]
Left = 112
Top = 192
inherited actPrevisualizar: TAction
Visible = False
end
inherited actImprimir: TAction
Visible = False
end
inherited actDuplicar: TAction
Visible = False
end
end
inherited SmallImages: TPngImageList [6]
end
inherited LargeImages: TPngImageList [7]
end
inherited JvFormStorage: TJvFormStorage [8]
end
inherited dsDataTable: TDADataSource [10]
Left = 8
Top = 192
end
inherited StatusBarImages: TPngImageList [11]
Top = 384
end
inherited GridPopupMenu: TPopupMenu
Left = 80
Top = 192
end
object EditorSeleccionActionList: TActionList
Images = SmallImages
Left = 152
Top = 192
object actBuscar2: TAction
Category = 'Buscar'
Caption = 'Buscar'
ImageIndex = 10
ShortCut = 114
end
object actQuitarFiltro2: TAction
Category = 'Buscar'
Caption = 'Quitar filtro y ver todo'
ImageIndex = 19
OnExecute = actQuitarFiltro2Execute
end
object actAnchoAuto2: TAction
Category = 'Ver'
Caption = 'Ancho autom'#225'tico'
ImageIndex = 21
OnExecute = actAnchoAuto2Execute
end
end
end

View File

@ -0,0 +1,125 @@
unit uEditorElegirArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage,
JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid,
uViewArticulos, ComCtrls, TB2ExtItems, TBXExtItems, TBX,
TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewBarraSeleccion, JvgWizardHeader, StdCtrls,
uEditorArticulos, uBizArticulos, uIEditorElegirArticulos,
JvExComCtrls, JvStatusBar, uDAInterfaces;
type
TfEditorElegirArticulos = class(TfEditorArticulos, IEditorElegirArticulos)
frViewBarraSeleccion1: TfrViewBarraSeleccion;
JvgWizardHeader1: TJvgWizardHeader;
EditorSeleccionActionList: TActionList;
actBuscar2: TAction;
actQuitarFiltro2: TAction;
actAnchoAuto2: TAction;
procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject);
procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actAnchoAuto2Execute(Sender: TObject);
procedure actQuitarFiltro2Execute(Sender: TObject);
protected
procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
function GetArticulosSeleccionados: IBizArticulo;
procedure SetViewGrid(const Value: IViewGridBase); override;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
public
property Mensaje : String read GetMensaje write SetMensaje;
property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
end;
implementation
uses
uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils,
uGridUtils, uEditorBase, uArticulosController;
{$R *.dfm}
{ TfEditorElegirArticulos }
procedure TfEditorElegirArticulos.actAnchoAuto2Execute(Sender: TObject);
begin
inherited;
actAnchoAuto.Execute;
end;
procedure TfEditorElegirArticulos.actQuitarFiltro2Execute(Sender: TObject);
begin
inherited;
actQuitarFiltro.Execute;
end;
procedure TfEditorElegirArticulos.FormShow(Sender: TObject);
begin
inherited;
EditorActionList.State := asSuspended;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actCancelarExecute(
Sender: TObject);
begin
inherited;
Close;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarExecute(
Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarUpdate(
Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0)
end;
function TfEditorElegirArticulos.GetArticulosSeleccionados: IBizArticulo;
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Articulos as ISeleccionable).SelectedRecords);
// En SelectedRecords tengo los ID de las filas seleccionadas del grid
Result := (Controller as IArticulosController).ExtraerSeleccionados(Articulos) as IBizArticulo;
end;
function TfEditorElegirArticulos.GetMensaje: String;
begin
Result := JvgWizardHeader1.Comments.Text;
end;
function TfEditorElegirArticulos.GetMultiSelect: Boolean;
begin
Result := ViewGrid.MultiSelect;
end;
procedure TfEditorElegirArticulos.SetMensaje(const AValue: String);
begin
JvgWizardHeader1.Comments.Text := AValue;
end;
procedure TfEditorElegirArticulos.SetMultiSelect(AValue: Boolean);
begin
ViewGrid.MultiSelect := AValue;
end;
procedure TfEditorElegirArticulos.SetViewGrid(const Value: IViewGridBase);
begin
inherited;
ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute;
end;
end.

View File

@ -0,0 +1,560 @@
inherited frViewArticulo: TfrViewArticulo
Width = 451
Height = 304
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
OnShow = CustomViewShow
ExplicitWidth = 451
ExplicitHeight = 304
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
Width = 451
Height = 393
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
DesignSize = (
451
393)
object PngSpeedButton2: TPngSpeedButton
Left = 546
Top = 28
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 = 546
Top = 56
Width = 23
Height = 22
Action = actEliminar
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object eReferencia: TcxDBTextEdit
Left = 103
Top = 28
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA'
DataBinding.DataSource = dsViewArticulo
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = 14745599
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 164
end
object eDescripcion: TcxDBTextEdit
Left = 103
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
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 108
end
object eNoComisionable: TcxDBCheckBox
Left = 103
Top = 109
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
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Width = 144
end
object eImagen: TcxImage
Left = 409
Top = 28
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
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 5
Height = 100
Width = 140
end
object cbFamilia: TcxDBComboBox
Left = 103
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.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 70
end
inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor
Left = 219
Top = 166
Width = 350
Height = 202
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 11
ReadOnly = False
ExplicitLeft = 219
ExplicitTop = 166
inherited dxLayoutControl1: TdxLayoutControl
inherited edtNIFCIF: TcxDBTextEdit
ExplicitWidth = 562
Width = 562
end
inherited edtCalle: TcxDBTextEdit
ExplicitWidth = 562
Width = 562
end
inherited edtPoblacion: TcxDBTextEdit
ExplicitWidth = 177
Width = 177
end
inherited edtProvincia: TcxDBTextEdit
ExplicitWidth = 327
Width = 327
end
end
end
object eReferenciaProv: TcxDBTextEdit
Left = 103
Top = 166
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA_PROV'
DataBinding.DataSource = dsViewArticulo
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = 14745599
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 6
Width = 86
end
object ePrecioCoste: TcxDBCurrencyEdit
Left = 103
Top = 193
DataBinding.DataField = 'PRECIO_COSTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 7
Width = 86
end
object eDescuento: TcxDBSpinEdit
Left = 103
Top = 220
DataBinding.DataField = 'DESCUENTO'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
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.ButtonStyle = bts3D
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 8
Width = 86
end
object ePrecioNeto: TcxDBCurrencyEdit
Left = 103
Top = 247
DataBinding.DataField = 'PRECIO_NETO'
DataBinding.DataSource = dsViewArticulo
Enabled = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Color = clBtnFace
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleFocused.TextColor = clWindowText
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 9
Width = 86
end
object ePrecioPorte: TcxDBCurrencyEdit
Left = 103
Top = 274
DataBinding.DataField = 'PRECIO_PORTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 10
Width = 86
end
object cbNoInventariable: TcxDBCheckBox
Left = 242
Top = 109
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
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 4
Width = 144
end
object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloGroup7: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloGroup1: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
Caption = 'Datos del art'#237'culo'
object dxLayoutControlArticuloItem3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Referencia:'
Control = eReferencia
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup4: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloItem8: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Descripci'#243'n:'
Control = eDescripcion
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup6: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControlArticuloItem4: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Familia:'
Control = cbFamilia
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup8: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloItem1: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = ' '
Control = eNoComisionable
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem7: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = ' '
ShowCaption = False
Control = cbNoInventariable
ControlOptions.ShowBorder = False
end
end
end
end
end
object dxLayoutControlArticuloGroup2: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
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
object dxLayoutControlArticuloGroup3: TdxLayoutGroup
Caption = 'New Group'
ShowCaption = False
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloGroup11: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Datos del proveedor para el art'#237'culo'
object dxLayoutControlArticuloItem15: TdxLayoutItem
Caption = 'Ref. del prov:'
Control = eReferenciaProv
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem16: TdxLayoutItem
Caption = 'Precio:'
Control = ePrecioCoste
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem17: TdxLayoutItem
Caption = 'Dto (%):'
Control = eDescuento
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem18: TdxLayoutItem
Caption = 'Precio neto:'
Control = ePrecioNeto
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem19: TdxLayoutItem
Caption = 'Coste de envio:'
Control = ePrecioPorte
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloGroup12: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahRight
Caption = 'Proveedor para el art'#237'culo'
object dxLayoutControlArticuloItem14: TdxLayoutItem
Control = frViewDatosYSeleccionProveedor1
ControlOptions.AutoColor = True
ControlOptions.ShowBorder = False
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

@ -0,0 +1,282 @@
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, 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;
dxLayoutControlArticuloGroup7: TdxLayoutGroup;
eImagen: TcxImage;
dxLayoutControlArticuloItem6: TdxLayoutItem;
dxLayoutControlArticuloGroup5: TdxLayoutGroup;
dxLayoutControlArticuloItem4: TdxLayoutItem;
cbFamilia: TcxDBComboBox;
dxLayoutControlArticuloGroup6: TdxLayoutGroup;
dxLayoutControlArticuloItem14: TdxLayoutItem;
frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor;
dxLayoutControlArticuloItem15: TdxLayoutItem;
eReferenciaProv: TcxDBTextEdit;
dxLayoutControlArticuloItem16: TdxLayoutItem;
ePrecioCoste: TcxDBCurrencyEdit;
dxLayoutControlArticuloItem17: TdxLayoutItem;
eDescuento: TcxDBSpinEdit;
dxLayoutControlArticuloItem18: TdxLayoutItem;
ePrecioNeto: TcxDBCurrencyEdit;
dxLayoutControlArticuloItem19: TdxLayoutItem;
ePrecioPorte: TcxDBCurrencyEdit;
dxLayoutControlArticuloGroup11: TdxLayoutGroup;
dxLayoutControlArticuloGroup12: TdxLayoutGroup;
dxLayoutControlArticuloItem7: TdxLayoutItem;
cbNoInventariable: TcxDBCheckBox;
dxLayoutControlArticuloGroup8: 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 CustomViewShow(Sender: TObject);
procedure PrecioNetoChanged(Sender: TObject);
private
procedure CargarImagen;
procedure SalvarImagen;
protected
FFamiliasController: IFamiliasController;
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;
{$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.cbFamiliaPropertiesInitPopup(Sender: TObject);
begin
inherited;
with cbFamilia.Properties.Items do
begin
BeginUpdate;
try
Clear;
AddStrings(FFamiliasController.DarListaFamilias);
finally
EndUpdate;
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
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;
AFamilias := NIL;
end;
end;
end;
end;
procedure TfrViewArticulo.CustomViewCreate(Sender: TObject);
begin
inherited;
FFamiliasController := TFamiliasController.Create;
end;
procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject);
begin
FFamiliasController := Nil;
ePrecioCoste.Properties.OnEditValueChanged := Nil;
eDescuento.Properties.OnEditValueChanged := Nil;
inherited;
end;
procedure TfrViewArticulo.CustomViewShow(Sender: TObject);
begin
inherited;
ePrecioCoste.Properties.OnEditValueChanged := PrecioNetoChanged;
eDescuento.Properties.OnEditValueChanged := PrecioNetoChanged;
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

@ -0,0 +1,245 @@
inherited frViewArticulos: TfrViewArticulos
inherited cxGrid: TcxGrid
inherited cxGridView: TcxGridDBTableView
OnMouseMove = cxGridViewMouseMove
DataController.KeyFieldNames = 'ID'
DataController.Options = [dcoAnsiSort, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoGroupsAlwaysExpanded]
DataController.Summary.FooterSummaryItems = <
item
Format = '0 almacenes'
Kind = skCount
end
item
Format = '0 Art'#237'culos'
Kind = skCount
Column = cxGridViewDESCRIPCION
end>
OptionsBehavior.PullFocusing = True
OptionsCustomize.ColumnHidingOnGrouping = False
OptionsView.GroupFooters = gfAlwaysVisible
object cxGridViewINVENTARIABLE: TcxGridDBColumn
Caption = #191'Inventariable?'
DataBinding.FieldName = 'INVENTARIABLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.Images = PngImageList
Properties.Items = <
item
Value = 0
end
item
ImageIndex = 0
Tag = 1
Value = 1
end>
BestFitMaxWidth = 22
MinWidth = 22
Options.HorzSizing = False
Width = 22
end
object cxGridViewCOMISIONABLE: TcxGridDBColumn
Caption = #191'Comisionable?'
DataBinding.FieldName = 'COMISIONABLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.DefaultDescription = 'S'#237
Properties.DefaultImageIndex = 1
Properties.Images = PngImageList
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
BestFitMaxWidth = 22
MinWidth = 22
Options.HorzSizing = False
Width = 22
end
object cxGridViewREFERENCIA: TcxGridDBColumn
Caption = 'Referencia'
DataBinding.FieldName = 'REFERENCIA'
BestFitMaxWidth = 60
Width = 60
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
Caption = 'Descripci'#243'n'
DataBinding.FieldName = 'DESCRIPCION'
BestFitMaxWidth = 120
Width = 120
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 coste'
DataBinding.FieldName = 'PRECIO_COSTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
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 %'
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_NETO: TcxGridDBColumn
Caption = 'Precio neto'
DataBinding.FieldName = 'PRECIO_NETO'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewPRECIO_PORTE: TcxGridDBColumn
Caption = 'Precio porte'
DataBinding.FieldName = 'PRECIO_PORTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
end
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
inherited TBXDockablePanel1: TTBXDockablePanel
inherited dxLayoutControl1: TdxLayoutControl
inherited txtFiltroTodo: TcxTextEdit
ExplicitWidth = 273
Width = 273
end
inherited edtFechaIniFiltro: TcxDateEdit
ExplicitWidth = 121
Width = 121
end
inherited edtFechaFinFiltro: TcxDateEdit
ExplicitWidth = 121
Width = 121
end
end
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
Visible = True
ExplicitWidth = 554
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
inherited TBXToolbar1: TTBXToolbar
object TBXSeparatorItem1: TTBXSeparatorItem
end
object TBXItem3: TTBXItem
Action = actFamilia
end
object TBXSeparatorItem2: TTBXSeparatorItem
end
object TBXItem2: TTBXItem
Action = actProveedor
end
end
end
end
inherited dxComponentPrinter: TdxComponentPrinter
inherited dxComponentPrinterLink: TdxGridReportLink
ReportDocument.CreationDate = 38673.842406053240000000
BuiltInReportLink = True
end
end
inherited ActionList1: TActionList
Left = 352
Top = 560
object actFamilia: TAction
Caption = 'Familia'
OnExecute = actFamiliaExecute
OnUpdate = actFamiliaUpdate
end
object actProveedor: TAction
Caption = 'Proveedor'
OnExecute = actProveedorExecute
OnUpdate = actProveedorUpdate
end
end
inherited PngImageList10: TPngImageList
Left = 320
Top = 560
end
inherited dxPrintStyleManager1: TdxPrintStyleManager
inherited dxPrintStyleManager1Style1: TdxPSPrintStyle
BuiltInStyle = True
end
end
object PngImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000022E4944415478DA
8D93CF6BD36018C7BF6997A45DD376EA70CA18D31D44981741280C44119DA83D
C87619781A1EFD1BC49B2028B28353141111A43BE8CD934E65A8D4A1686B61B5
A31DD8CCBAFEDAACEDF226B389EFFB26CBCC54E6030FEFCB4B3E9FE79B9744B0
2C0B8220E0F7BA3AB2D75A282DE07F4AD82C60F0851B8F50530BF85EF98A6236
8DCCAB69B0B366BD8C95B24ACF4BB877FD226AFD635EC13A5CF99243A356869A
4D51F8398799EC476D09E5621E0F6F5EC6C8D938EE7C503604EB7055CDA34127
A8B90C3ECD3CE570A35AA2FD0DCB4B2AEE4F5CC29953C35094102667655B706D
7480C3F97412AD951AAAC502E6DEBCE47031974673B942BB8AA9DB57103F7D12
9D9D413ED4154C8C0BD6FCE7AD2F6C2816C3CE9E6E8862077C3E9F57307CE2FC
1F80655A308C35E844C7B3273318D8D78FE8B6282449A41211B7DE05FE2D304D
13866EC34433F0FAC55BF4EDE945A42B0C910A6459C6DD94F27781D936F964B2
AADB02DAEF9329ECEEED4138A240944548B2840773DBBD02B637596C6238205D
352AD175643E66B1A3BB0B0A15489204292061AAB0CB2B68D3C96B34367120BE
3AB2F96C01E1A8825028083920F35778BCD8B721387E6C9C42060788465C50A3
12B24AB0582C2110946907282C61BA3588442221B882C343E75C50A30093B104
84D849EAD53AFC1D7E0ECFFA631C76FF0526387470D4135977405B62A0D56CB2
C791891C71618FE0C0FEB873618623B2E33361FB679B4A340A1FF5C01E41928C
6DF9256E8659FD02D3B7960923D6946A0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000B64944415478DA6364A010300E2A031C80B800CA9E00C407408C008F
00850F3F3E2C3870E080032103E09A900D031AD0B061C70607A8185E03FE03B1
2094FD1E24E7E0E12070E1C2850D1F5E7C4800F21F90EC0207078702A0D30370
D94E300C0404040E7CF8F0A101C960BC06A000A0ED0140DB0BA006630D604206
00F51F0029DE802B80711A000C798703270E34009D0FF33B4600E335C0C0C0E0
0028F4A136630D60425E00290685FE075C014C300C8805036F00007263471179
E402210000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end>
Left = 160
Top = 32
Bitmap = {}
end
end

View File

@ -0,0 +1,173 @@
unit uViewArticulos;
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, dxPScxGridLnk,
cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox,
cxCheckComboBox, cxImageComboBox, TB2Item, TBX, TB2Toolbar, TBXDkPanels,
TB2Dock, uViewFiltroBase, dxPgsDlg, uDAInterfaces;
type
IViewArticulos = interface(IViewGrid)
['{4C09BEC8-C82B-4DE8-8C36-40DB62224E95}']
function GetArticulos: IBizArticulo;
procedure SetArticulos(const Value: IBizArticulo);
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
end;
TfrViewArticulos = class(TfrViewGrid, IViewArticulos)
PngImageList: TPngImageList;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewFAMILIA: TcxGridDBColumn;
cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn;
actFamilia: TAction;
actProveedor: TAction;
TBXItem2: TTBXItem;
TBXItem3: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXSeparatorItem2: TTBXSeparatorItem;
cxGridViewINVENTARIABLE: TcxGridDBColumn;
procedure cxGridViewIDCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure actProveedorExecute(Sender: TObject);
procedure actProveedorUpdate(Sender: TObject);
procedure actFamiliaExecute(Sender: TObject);
procedure actFamiliaUpdate(Sender: TObject);
procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
protected
FArticulos: IBizArticulo;
function GetArticulos: IBizArticulo; virtual;
procedure SetArticulos(const Value: IBizArticulo); virtual;
public
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
end;
implementation
{$R *.dfm}
uses //uDataModuleArticulos,
schArticulosClient_Intf;
{ TfrViewArticulos }
{
******************************* TfrViewArticulos *******************************
}
function TfrViewArticulos.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
if Assigned(FArticulos) then
dsDataSource.DataTable := FArticulos.DataTable;
end;
procedure TfrViewArticulos.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 TfrViewArticulos.actFamiliaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewFAMILIA.GroupIndex < 0);
end;
procedure TfrViewArticulos.actProveedorExecute(Sender: TObject);
begin
inherited;
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 TfrViewArticulos.actProveedorUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0);
end;
procedure TfrViewArticulos.cxGridViewIDCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
R : TRect;
begin
inherited;
R := AViewInfo.ContentBounds;
ACanvas.FillRect(R);
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
ADone := True;
end;
procedure TfrViewArticulos.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
Site : TcxGridSite;
HitTest : TcxCustomGridHitTest;
Item : TcxCustomGridTableItem;
Rec : TcxCustomGridRecord;
sNewHint : string;
begin
{Este método desaparecerá cuando se migre la aplicación, es para sacar la causa de la incidencia sin necesidad de entrar en el documento}
Site := Sender as TcxGridSite;
HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y);
if HitTest is TcxGridRecordCellHitTest then begin
Item := TcxGridRecordCellHitTest(HitTest).Item;
Rec := TcxGridRecordCellHitTest(HitTest).GridRecord;
if (Item.Index = cxGridView.GetColumnByFieldName(fld_ArticulosCOMISIONABLE).Index) then begin
sNewHint := 'Todo artículo comisionable se tendrá en cuenta para la liquidación de comisiones de los agentes';
if (cxGrid.Hint <> sNewHint) then begin
cxGrid.ShowHint := false;
cxGrid.Hint := sNewHint;
end
else cxGrid.ShowHint := true;
end
else if (Item.Index = cxGridView.GetColumnByFieldName(fld_ArticulosINVENTARIABLE).Index) then begin
sNewHint := 'Todo artículo inventariable se tendrá en cuenta para el control de almacenes (inventario de almacén)';
if (cxGrid.Hint <> sNewHint) then begin
cxGrid.ShowHint := false;
cxGrid.Hint := sNewHint;
end
else cxGrid.ShowHint := true;
end
else begin
cxGrid.ShowHint := false;
end;
end;
end;
end.

View File

@ -0,0 +1,358 @@
inherited frViewDetallesArticulos: TfrViewDetallesArticulos
ParentBiDiMode = False
OnShow = CustomViewShow
inherited ToolBar1: TToolBar
inherited ToolButton4: TToolButton
Wrap = True
end
inherited ToolButton14: TToolButton
Left = 0
Top = 22
Wrap = False
ExplicitLeft = 0
ExplicitTop = 22
end
inherited FontName: TJvFontComboBox
Left = 34
ExplicitLeft = 34
end
inherited FontSize: TEdit
Left = 179
Width = 42
ExplicitLeft = 179
ExplicitWidth = 42
end
inherited UpDown1: TUpDown
Left = 221
Width = 17
ExplicitLeft = 221
ExplicitWidth = 17
end
inherited ToolButton13: TToolButton
Left = 238
ExplicitLeft = 238
end
inherited ToolButton6: TToolButton
Left = 246
ExplicitLeft = 246
end
inherited ToolButton7: TToolButton
Left = 280
ExplicitLeft = 280
end
inherited ToolButton8: TToolButton
Left = 314
ExplicitLeft = 314
end
inherited ToolButton12: TToolButton
Left = 348
ExplicitLeft = 348
end
inherited ToolButton9: TToolButton
Left = 356
ExplicitLeft = 356
end
inherited ToolButton10: TToolButton
Left = 390
ExplicitLeft = 390
end
inherited ToolButton11: TToolButton
Left = 424
ExplicitLeft = 424
end
end
inherited cxGrid: TcxGrid
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewTIPO: TcxGridDBColumn
Visible = False
Width = 26
end
object cxGridViewID_ARTICULO: TcxGridDBColumn [3]
DataBinding.FieldName = 'ID_ARTICULO'
Visible = False
Width = 31
end
object cxGridViewREFERENCIA: TcxGridDBColumn [4]
Caption = 'Referencia'
DataBinding.FieldName = 'REFERENCIA'
PropertiesClassName = 'TcxTextEditProperties'
Width = 59
end
object cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn [5]
Caption = 'Ref. proveedor'
DataBinding.FieldName = 'REFERENCIA_PROVEEDOR'
PropertiesClassName = 'TcxTextEditProperties'
Width = 66
end
inherited cxGridViewDESCRIPCION: TcxGridDBColumn
Width = 85
end
inherited cxGridViewCANTIDAD: TcxGridDBColumn
Width = 48
end
inherited cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
Width = 48
end
inherited cxGridViewDESCUENTO: TcxGridDBColumn
HeaderAlignmentHorz = taRightJustify
Width = 25
end
inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn
Caption = 'Porte unidad'
end
inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn
Width = 49
end
end
end
inherited TBXDock1: TTBXDock
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 451
object TBXItem12: TTBXItem [0]
Action = actAnadirArticulos
DisplayMode = nbdmImageAndText
end
end
end
inherited ActionListContenido: TActionList
object actAnadirArticulos: TAction
Category = 'Operaciones'
Caption = 'A'#241'adir art'#237'culos'
ImageIndex = 12
OnExecute = actAnadirArticulosExecute
OnUpdate = actAnadirArticulosUpdate
end
end
inherited ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000D04944415478DA
6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000006E4944415478DA
63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001984944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046
C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F
CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8
7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7
9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254
66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F
9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0
8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908
567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754
03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4
6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748
CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945
4E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001844944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B
37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C
6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E
61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B
0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14
CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F
005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD
DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE
D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13
9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC
F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C
81590C9B58CC0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001854944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12
CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A
B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10
67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9
D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707
E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356
D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE
EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426
90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8
97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F
1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B
D67559EB1C43180000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F94944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D
80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7
CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0
E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8
0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651
5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049
454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001004944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D
80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86
FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED
BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01
E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7
64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE
9D230000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000FC4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66
18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF
B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E
FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354
DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875
F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001CB4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7
E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3
3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC
759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E
32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9
4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1
1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7
70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19
562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183
3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56
28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B
99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410
72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B
F333A26300FC1C815930D4A9C10000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001124944415478DA
63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
Name = 'PngImage11'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000002354944415478DA
9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B
A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6
A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152
92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83
9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32
DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9
2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B
EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977
8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112
55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0
CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201
F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526
9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC
A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053
C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72
4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA
F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03
2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE
426082}
Name = 'PngImage12'
Background = clWindow
end>
Bitmap = {}
end
end

View File

@ -0,0 +1,135 @@
unit uViewDetallesArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesDTO, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit,
cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable,
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos,
cxTextEdit, uDAInterfaces;
type
IViewDetallesArticulos = interface(IViewDetallesDTO)
['{D2F72E72-9CEA-4E43-AA18-625F7561E627}']
end;
TfrViewDetallesArticulos = class(TfrViewDetallesDTO, IViewDetallesArticulos)
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn;
actAnadirArticulos: TAction;
TBXItem12: TTBXItem;
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);
procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure CustomViewShow(Sender: TObject);
protected
procedure AnadirArticulosInterno; virtual;
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; virtual;
end;
implementation
{$R *.dfm}
uses uViewDetallesBase;
procedure TfrViewDetallesArticulos.actAnadirArticulosExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
AnadirArticulosInterno;
finally
cxGridView.EndUpdate;
end;
SeleccionarRowActual;
end;
procedure TfrViewDetallesArticulos.AnadirArticulosInterno;
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;
SeleccionarRowActual;
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, tCliente) 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;
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, tProveedor) then
begin
ErrorText := 'La referencia introducida no exite en el catálogo';
Error := True;
end;
end;
procedure TfrViewDetallesArticulos.actAnadirArticulosUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := actAnadir.Enabled;
end;
function TfrViewDetallesArticulos.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
Result := (Controller as IControllerDetallesArticulos).AnadirArticulo(Detalles, pReferencia, TipoReferencia);
end;
end.

View File

@ -253,10 +253,9 @@ begin
raise Exception.Create('Debe indicar al menos el nombre de este contacto.');
// Asegurarse de valores en campos "automáticos"
// OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
{AContacto.Edit;
AContacto.USUARIO := dmUsuarios.LoginInfo.Usuario;
AContacto.Post;}
AContacto.Edit;
AContacto.USUARIO := AppFactuGES.UsuarioActivo.UserName;
AContacto.Post;
Result := True;
end;
@ -272,13 +271,13 @@ begin
AContacto.DataTable.Active := False;
// Filtrar los contactos actuales por empresa
with AContacto.DataTable.DynamicWhere do
{ with AContacto.DataTable.DynamicWhere do
begin
// (ID = :ID)
// OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
{ Expression := NewBinaryExpression(NewField('', fld_ContactosID_EMPRESA),
NewConstant(dmUsuarios.IDEmpresaActual, datInteger), dboEqual);}
Expression := NewBinaryExpression(NewField('', fld_ContactosID_EMPRESA),
NewConstant(dmUsuarios.IDEmpresaActual, datInteger), dboEqual);
end;
}
end;
end.

View File

@ -4050,23 +4050,23 @@ object srvContactos: TsrvContactos
DiagramData =
'<Diagrams>'#13#10' <Diagram Name="Contactos" Left="200" Top="200" Wid' +
'th="400" Height="300">'#13#10' <Entity Name="Contactos" Left="0,00"' +
' Top="85,50" />'#13#10' <Entity Name="DatosBancarios" Left="325,90"' +
' Top="0,00" />'#13#10' <Entity Name="DireccionesContacto" Left="320' +
',90" Top="183,00" />'#13#10' </Diagram>'#13#10' <Diagram Name="Clientes" L' +
' Top="85,50" />'#13#10' <Entity Name="DireccionesContacto" Left="32' +
'0,90" Top="183,00" />'#13#10' <Entity Name="DatosBancarios" Left="3' +
'25,90" Top="0,00" />'#13#10' </Diagram>'#13#10' <Diagram Name="Clientes" L' +
'eft="200" Top="200" Width="400" Height="300">'#13#10' <Entity Name=' +
'"Clientes" Left="0,00" Top="23,00" />'#13#10' <Entity Name="DatosBa' +
'ncarios" Left="463,00" Top="175,00" />'#13#10' <Entity Name="Direcc' +
'ionesContacto" Left="253,00" Top="236,00" />'#13#10' <Entity Name="' +
'"Clientes" Left="0,00" Top="23,00" />'#13#10' <Entity Name="Direcci' +
'onesContacto" Left="253,00" Top="236,00" />'#13#10' <Entity Name="D' +
'atosBancarios" Left="463,00" Top="175,00" />'#13#10' <Entity Name="' +
'ClientesDescuentos" Left="438,00" Top="0,00" />'#13#10' </Diagram>'#13#10' ' +
' <Diagram Name="Empleados" Left="200" Top="200" Width="400" Heig' +
'ht="300">'#13#10' <Entity Name="DatosBancarios" Left="210,50" Top="' +
'280,67" />'#13#10' <Entity Name="DireccionesContacto" Left="295,00"' +
' Top="0,00" />'#13#10' <Entity Name="Empleados" Left="0,00" Top="42' +
'ht="300">'#13#10' <Entity Name="DireccionesContacto" Left="295,00" ' +
'Top="0,00" />'#13#10' <Entity Name="DatosBancarios" Left="210,50" T' +
'op="280,67" />'#13#10' <Entity Name="Empleados" Left="0,00" Top="42' +
',00" />'#13#10' </Diagram>'#13#10' <Diagram Name="Proveedores" Left="200" ' +
'Top="200" Width="400" Height="300">'#13#10' <Entity Name="DatosBanc' +
'arios" Left="247,28" Top="242,04" />'#13#10' <Entity Name="Direccio' +
'nesContacto" Left="245,28" Top="0,00" />'#13#10' <Entity Name="Prov' +
'eedores" Left="0,00" Top="115,17" />'#13#10' </Diagram>'#13#10'</Diagrams>'#13 +
'Top="200" Width="400" Height="300">'#13#10' <Entity Name="Proveedor' +
'es" Left="0,00" Top="115,17" />'#13#10' <Entity Name="DireccionesCo' +
'ntacto" Left="245,28" Top="0,00" />'#13#10' <Entity Name="DatosBanc' +
'arios" Left="247,28" Top="242,04" />'#13#10' </Diagram>'#13#10'</Diagrams>'#13 +
#10
end
object bpContactos: TDABusinessProcessor

View File

@ -3,7 +3,7 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
ClientHeight = 480
ClientWidth = 656
ExplicitWidth = 664
ExplicitHeight = 514
ExplicitHeight = 507
PixelsPerInch = 96
TextHeight = 13
object JvgWizardHeader1: TJvgWizardHeader [0]
@ -41,8 +41,6 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 656
Visible = False
ExplicitLeft = 8
ExplicitTop = -12
ExplicitWidth = 656
inherited Image1: TImage
Left = 629
@ -52,11 +50,10 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
inherited TBXDock: TTBXDock
Top = 87
Width = 656
Height = 49
ExplicitTop = 87
ExplicitWidth = 656
ExplicitHeight = 49
inherited tbxMain: TTBXToolbar
ExplicitWidth = 117
ExplicitWidth = 284
inherited TBXItem2: TTBXItem
Images = frViewProveedores1.PngImageList
end
@ -65,11 +62,11 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
end
end
inherited tbxFiltro: TTBXToolbar
Left = 117
Left = 284
Top = 23
DockPos = 108
DockRow = 1
ExplicitLeft = 117
ExplicitLeft = 284
ExplicitTop = 23
inherited TBXItem34: TTBXItem
Action = actQuitarFiltro2
@ -83,8 +80,7 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
Top = 461
Width = 656
Visible = False
ExplicitLeft = 8
ExplicitTop = 467
ExplicitTop = 461
ExplicitWidth = 656
end
inline frViewBarraSeleccion1: TfrViewBarraSeleccion [4]
@ -133,26 +129,26 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
end
end
inherited frViewProveedores1: TfrViewProveedores [5]
Top = 136
Top = 162
Width = 656
Height = 289
Height = 263
Padding.Left = 10
Padding.Top = 10
Padding.Right = 10
Padding.Bottom = 5
TabOrder = 4
ExplicitTop = 136
ExplicitTop = 162
ExplicitWidth = 656
ExplicitHeight = 289
ExplicitHeight = 263
inherited cxGrid: TcxGrid
Left = 10
Top = 10
Top = 112
Width = 636
Height = 274
Height = 120
ExplicitLeft = 10
ExplicitTop = 10
ExplicitTop = 112
ExplicitWidth = 636
ExplicitHeight = 274
ExplicitHeight = 120
inherited cxGridView: TcxGridDBTableView
DataController.Summary.FooterSummaryItems = <
item
@ -164,6 +160,34 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
OptionsView.Footer = False
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
Left = 10
Top = 10
Width = 636
ExplicitLeft = 10
ExplicitTop = 10
ExplicitWidth = 636
inherited TBXDockablePanel1: TTBXDockablePanel
ExplicitWidth = 636
inherited dxLayoutControl1: TdxLayoutControl
Width = 636
ExplicitWidth = 636
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 636
inherited tbxBotones: TTBXToolbar
Width = 626
end
end
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
Left = 10
Top = 232
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 636
end
end
inherited dsDataSource: TDADataSource
Left = 144
Top = 56
@ -181,6 +205,11 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
Index = 0
end>
end
inherited dxPrintStyleManager1: TdxPrintStyleManager
inherited dxPrintStyleManager1Style1: TdxPSPrintStyle
BuiltInStyle = True
end
end
end
inherited EditorActionList: TActionList [6]
Left = 112
@ -260,10 +289,14 @@ inherited fEditorElegirProveedores: TfEditorElegirProveedores
end
inherited StatusBarImages: TPngImageList [12]
end
inherited GridPopupMenu: TPopupMenu
inherited GridPopupMenu: TPopupMenu [13]
Left = 80
Top = 192
end
inherited JsPrevisualizarDialog: TJSDialog [14]
end
inherited JsImprimirDialog: TJSDialog [15]
end
object EditorSeleccionActionList: TActionList
Images = SmallImages
Left = 200

View File

@ -10,7 +10,8 @@ uses
uViewContactos, uViewProveedores, ComCtrls, TB2ExtItems, TBXExtItems, TBX,
TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
JvNavigationPane, uIEditorElegirProveedores, uViewBarraSeleccion, JvgWizardHeader,
StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar;
StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog,
uDAInterfaces;
type
TfEditorElegirProveedores = class(TfEditorProveedores, IEditorElegirProveedores)

View File

@ -55,6 +55,7 @@ inherited fEditorProveedor: TfEditorProveedor
inherited pgPaginas: TPageControl
Width = 648
Height = 495
ActivePage = pagDatosComerciales
ExplicitWidth = 648
ExplicitHeight = 495
inherited pagGeneral: TTabSheet
@ -166,6 +167,18 @@ inherited fEditorProveedor: TfEditorProveedor
ExplicitWidth = 227
Width = 227
end
inherited eDescripcionProveedor: TcxDBTextEdit
Top = 84
ExplicitTop = 84
ExplicitWidth = 221
Width = 221
end
inherited eCodigoAsignado: TcxDBTextEdit
Top = 111
ExplicitTop = 111
ExplicitWidth = 221
Width = 221
end
inherited eTlfParticular: TcxDBTextEdit
Left = 486
Top = 57
@ -182,18 +195,6 @@ inherited fEditorProveedor: TfEditorProveedor
ExplicitWidth = 172
Width = 172
end
inherited eDescripcionProveedor: TcxDBTextEdit
Top = 84
ExplicitTop = 84
ExplicitWidth = 221
Width = 221
end
inherited eCodigoAsignado: TcxDBTextEdit
Top = 111
ExplicitTop = 111
ExplicitWidth = 221
Width = 221
end
inherited eTlfMovil: TcxDBTextEdit
Left = 486
Top = 84
@ -277,6 +278,10 @@ inherited fEditorProveedor: TfEditorProveedor
Width = 640
LookAndFeel = dxLayoutOfficeLookAndFeel
ExplicitWidth = 640
inherited eEntidad: TcxDBTextEdit
ExplicitWidth = 114
Width = 114
end
inherited eSucursal: TcxDBTextEdit
Left = 325
ExplicitLeft = 325
@ -318,9 +323,9 @@ inherited fEditorProveedor: TfEditorProveedor
LookAndFeel = dxLayoutOfficeLookAndFeel
ExplicitWidth = 640
inherited Label1: TLabel
Left = 415
Left = 416
Top = 30
ExplicitLeft = 415
ExplicitLeft = 416
ExplicitTop = 30
end
inherited cbRegimenIVA: TcxDBComboBox
@ -332,7 +337,9 @@ inherited fEditorProveedor: TfEditorProveedor
ExplicitTop = 57
end
inherited bFormasPago: TButton
Left = 256
Top = 57
ExplicitLeft = 256
ExplicitTop = 57
end
inherited eIVA: TcxDBLookupComboBox
@ -340,13 +347,15 @@ inherited fEditorProveedor: TfEditorProveedor
ExplicitTop = 84
end
inherited bTiposIVA: TButton
Left = 256
Top = 84
ExplicitLeft = 256
ExplicitTop = 84
end
inherited eDescuento: TcxDBSpinEdit
Left = 459
Left = 460
Top = 62
ExplicitLeft = 459
ExplicitLeft = 460
ExplicitTop = 62
end
end
@ -381,15 +390,31 @@ inherited fEditorProveedor: TfEditorProveedor
Width = 640
ExplicitWidth = 640
inherited ToolButton1: TToolButton
Top = 0
ExplicitTop = 0
ExplicitWidth = 62
end
inherited ToolButton4: TToolButton
Top = 0
ExplicitTop = 0
ExplicitWidth = 74
end
inherited ToolButton5: TToolButton
Top = 0
ExplicitTop = 0
end
inherited ToolButton2: TToolButton
Top = 0
ExplicitTop = 0
ExplicitWidth = 67
end
inherited ToolButton6: TToolButton
Top = 0
ExplicitTop = 0
end
inherited ToolButton7: TToolButton
Top = 0
ExplicitTop = 0
ExplicitWidth = 117
end
end

View File

@ -9,7 +9,7 @@ uses
ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit,
pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask,
DBCtrls,
uClientesController, dxLayoutControl, Buttons;
uClientesController, dxLayoutControl, Buttons, uDAInterfaces;
type
IViewDatosYSeleccionCliente = interface(IViewBase)

View File

@ -9,7 +9,7 @@ uses
ComCtrls, ToolWin, ActnList, ImgList, PngImageList, cxTextEdit, cxDBEdit,
pngimage, JvExControls, JvComponent, JvButton, JvTransparentButton, Mask,
DBCtrls,
uProveedoresController, dxLayoutControl, Buttons;
uProveedoresController, dxLayoutControl, Buttons, uDAInterfaces;
type
IViewDatosYSeleccionProveedor = interface(IViewBase)

View File

@ -8,7 +8,7 @@ uses
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, cxControls, cxSpinEdit, cxDBEdit,
uBizContactos, cxCheckBox, StdCtrls, uFormasPagoController, uTiposIVAController,
uDAInterfaces;
uDAInterfaces, uBizTiposIVA, uBizFormasPago;
type
IViewProveedorDatosComerciales = interface(IViewBase)
@ -50,7 +50,8 @@ type
procedure bTiposIVAClick(Sender: TObject);
protected
FContacto : IBizContacto;
// FAgentesController : IAgentesController;
FTiposIVA : IBizTipoIVA;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
FTiposIVAController : ITiposIVAController;
function GetContacto: IBizContacto;
@ -65,20 +66,22 @@ implementation
{$R *.dfm}
uses
uRegimenIVAUtils, uBizFormasPago, uBizTiposIVA;
uRegimenIVAUtils;
{ TfrViewProveedorDatosComerciales }
procedure TfrViewProveedorDatosComerciales.bFormasPagoClick(Sender: TObject);
begin
inherited;
FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago);
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewProveedorDatosComerciales.bTiposIVAClick(Sender: TObject);
begin
inherited;
FTiposIVAController.VerTodos((dsTiposIVA.DataTable) as IBizTipoIVA);
if Assigned(FTiposIVA) then
FTiposIVAController.VerTodos(FTiposIVA);
end;
procedure TfrViewProveedorDatosComerciales.cbRegimenIVAPropertiesInitPopup(
@ -95,7 +98,9 @@ end;
procedure TfrViewProveedorDatosComerciales.CustomViewCreate(Sender: TObject);
begin
inherited;
// FAgentesController := TAgentesController.Create;
FTiposIVA := Nil;
FFormasPago := Nil;
FContacto := Nil;
FFormasPagoController := TFormasPagoController.Create;
FTiposIVAController := TTiposIVAController.Create;
end;
@ -103,7 +108,9 @@ end;
procedure TfrViewProveedorDatosComerciales.CustomViewDestroy(Sender: TObject);
begin
inherited;
// FAgentesController := NIL;
FTiposIVA := Nil;
FFormasPago := Nil;
FContacto := Nil;
FFormasPagoController := NIL;
FTiposIVAController := NIL;
end;
@ -119,16 +126,16 @@ begin
if Assigned(FContacto) then
begin
dsDatosComerciales.DataTable := FContacto.DataTable;
// dsAgentes.DataTable := FAgentesController.BuscarTodos.DataTable;
// dsAgentes.DataTable.Active := True;
dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
dsTiposIVA.DataTable := FTiposIVAController.BuscarTodos.DataTable;
FTiposIVA := FTiposIVAController.BuscarTodos;
dsTiposIVA.DataTable := FTiposIVA.DataTable;
dsTiposIVA.DataTable.Active := True;
end
else begin
dsDatosComerciales.DataTable := NIL;
// dsAgentes.DataTable := NIL;
dsFormaPago.DataTable := NIL;
dsTiposIVA.DataTable := NIL;
end

View File

@ -49,14 +49,497 @@
</DelphiCompile>
<DCCReference Include="ApplicationBase.dcp" />
<DCCReference Include="Base.dcp" />
<DCCReference Include="ControllerBase.dcp" />
<DCCReference Include="GUIBase.dcp" />
<DCCReference Include="rtl.dcp" />
<DCCReference Include="TiposIVA_data.dcp" />
<DCCReference Include="TiposIVA_model.dcp" />
<DCCReference Include="vcl.dcp" />
<DCCReference Include="uTiposIVAController.pas" />
<DCCReference Include="vcl.dcp" />
<DCCReference Include="View\uIEditorTipoIVA.pas" />
<DCCReference Include="View\uIEditorTiposIVA.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6006
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
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 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

@ -81,7 +81,7 @@ uses
uDAInterfaces, uDataTableUtils,
uDateUtils, uROTypes, DateUtils, Controls, Windows,
schTiposIVAClient_Intf, uIEditorTiposIVA,
schTiposIVAClient_Intf, uIEditorTiposIVA, Dialogs,
uIEditorTipoIVA, uDataModuleTiposIVA;
{ TTiposIVAController }

View File

@ -111,6 +111,38 @@
</Interface>
</Interfaces>
</Service>
<Service Name="srvArticulos" UID="{292ACE2A-8349-41B3-A458-E7D410EA6D0F}" Ancestor="DataAbstractService">
<Interfaces>
<Interface Name="Default" UID="{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}">
<Operations>
<Operation Name="GetNextAutoInc" UID="{EEA30D8A-98CD-4751-9D8A-290FE23B0F2C}">
<Parameters>
<Parameter Name="Result" DataType="Integer" Flag="Result">
</Parameter>
<Parameter Name="GeneratorName" DataType="String" Flag="In" >
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>
</Service>
<Service Name="srvPresupuestosCliente" UID="{E9EDA019-251A-44CF-B681-A3159E292796}" Ancestor="DataAbstractService">
<Interfaces>
<Interface Name="Default" UID="{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}">
<Operations>
<Operation Name="GenerateReport" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}">
<Parameters>
<Parameter Name="Result" DataType="Binary" Flag="Result">
</Parameter>
<Parameter Name="ID" DataType="String" Flag="In" >
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>
</Service>
</Services>
<EventSinks>
</EventSinks>

View File

@ -31,6 +31,8 @@ const
IsrvFormasPago_IID : TGUID = '{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}';
IsrvTiposIVA_IID : TGUID = '{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}';
IsrvUsuarios_IID : TGUID = '{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}';
IsrvArticulos_IID : TGUID = '{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}';
IsrvPresupuestosCliente_IID : TGUID = '{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}';
{ Event ID's }
@ -44,6 +46,8 @@ type
IsrvFormasPago = interface;
IsrvTiposIVA = interface;
IsrvUsuarios = interface;
IsrvArticulos = interface;
IsrvPresupuestosCliente = interface;
TRdxEmpresasArray = class;
@ -264,6 +268,44 @@ type
end;
{ IsrvArticulos }
IsrvArticulos = interface(IDataAbstractService)
['{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}']
function GetNextAutoInc(const GeneratorName: String): Integer;
end;
{ CosrvArticulos }
CosrvArticulos = class
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
end;
{ TsrvArticulos_Proxy }
TsrvArticulos_Proxy = class(TDataAbstractService_Proxy, IsrvArticulos)
protected
function __GetInterfaceName:string; override;
function GetNextAutoInc(const GeneratorName: String): Integer;
end;
{ IsrvPresupuestosCliente }
IsrvPresupuestosCliente = interface(IDataAbstractService)
['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}']
function GenerateReport(const ID: String): Binary;
end;
{ CosrvPresupuestosCliente }
CosrvPresupuestosCliente = class
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente;
end;
{ TsrvPresupuestosCliente_Proxy }
TsrvPresupuestosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvPresupuestosCliente)
protected
function __GetInterfaceName:string; override;
function GenerateReport(const ID: String): Binary;
end;
implementation
uses
@ -730,6 +772,67 @@ begin
result := 'srvUsuarios';
end;
{ CosrvArticulos }
class function CosrvArticulos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
begin
result := TsrvArticulos_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvArticulos_Proxy }
function TsrvArticulos_Proxy.__GetInterfaceName:string;
begin
result := 'srvArticulos';
end;
function TsrvArticulos_Proxy.GetNextAutoInc(const GeneratorName: String): Integer;
begin
try
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GetNextAutoInc');
__Message.Write('GeneratorName', TypeInfo(String), GeneratorName, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Integer), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvPresupuestosCliente }
class function CosrvPresupuestosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente;
begin
result := TsrvPresupuestosCliente_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvPresupuestosCliente_Proxy }
function TsrvPresupuestosCliente_Proxy.__GetInterfaceName:string;
begin
result := 'srvPresupuestosCliente';
end;
function TsrvPresupuestosCliente_Proxy.GenerateReport(const ID: String): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
__Message.Write('ID', TypeInfo(String), ID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
initialization
RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray);
@ -741,6 +844,8 @@ initialization
RegisterProxyClass(IsrvFormasPago_IID, TsrvFormasPago_Proxy);
RegisterProxyClass(IsrvTiposIVA_IID, TsrvTiposIVA_Proxy);
RegisterProxyClass(IsrvUsuarios_IID, TsrvUsuarios_Proxy);
RegisterProxyClass(IsrvArticulos_IID, TsrvArticulos_Proxy);
RegisterProxyClass(IsrvPresupuestosCliente_IID, TsrvPresupuestosCliente_Proxy);
finalization
@ -754,5 +859,7 @@ finalization
UnregisterProxyClass(IsrvFormasPago_IID);
UnregisterProxyClass(IsrvTiposIVA_IID);
UnregisterProxyClass(IsrvUsuarios_IID);
UnregisterProxyClass(IsrvArticulos_IID);
UnregisterProxyClass(IsrvPresupuestosCliente_IID);
end.

View File

@ -90,6 +90,24 @@ type
end;
{$M-}
{$M+}
TsrvArticulos_Invoker = class(TDataAbstractService_Invoker)
private
protected
published
procedure Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
{$M-}
{$M+}
TsrvPresupuestosCliente_Invoker = class(TDataAbstractService_Invoker)
private
protected
published
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
{$M-}
implementation
uses
@ -241,4 +259,56 @@ begin
end;
end;
{ TsrvArticulos_Invoker }
procedure TsrvArticulos_Invoker.Invoke_GetNextAutoInc(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GetNextAutoInc(const GeneratorName: String): Integer; }
var
GeneratorName: String;
lResult: Integer;
begin
try
__Message.Read('GeneratorName', TypeInfo(String), GeneratorName, []);
lResult := (__Instance as IsrvArticulos).GetNextAutoInc(GeneratorName);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvArticulos', 'GetNextAutoIncResponse');
__Message.Write('Result', TypeInfo(Integer), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
end;
end;
{ TsrvPresupuestosCliente_Invoker }
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function GenerateReport(const ID: String): Binary; }
var
ID: String;
lResult: Binary;
__lObjectDisposer: TROObjectDisposer;
begin
lResult := nil;
try
__Message.Read('ID', TypeInfo(String), ID, []);
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReport(ID);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerateReportResponse');
__Message.Write('Result', TypeInfo(Binary), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
try
__lObjectDisposer.Add(lResult);
finally
__lObjectDisposer.Free();
end;
end;
end;
end.

Binary file not shown.

Binary file not shown.

View File

@ -46,7 +46,14 @@ uses
schTiposIVAClient_Intf in '..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas',
schUsuariosClient_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas',
schBase_Intf in '..\Base\schBase_Intf.pas';
schBase_Intf in '..\Base\schBase_Intf.pas',
srvPresupuestosCliente_Impl in '..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas' {srvPresupuestosCliente: TDataAbstractService},
schPedidosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPedidosClienteClient_Intf.pas',
schPedidosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPedidosClienteServer_Intf.pas',
uBizPresupuestosClienteServer in '..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas',
srvArticulos_Impl in '..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas',
schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
@ -46,6 +46,9 @@
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas" />
<DCCReference Include="..\Base\schBase_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas" />
<DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas" />
@ -61,6 +64,12 @@
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas" />
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas" />
<DCCReference Include="..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPedidosClienteClient_Intf.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPedidosClienteServer_Intf.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas" />
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
<Form>srvPresupuestosCliente</Form>
</DCCReference>
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas" />
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas" />
<DCCReference Include="..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas" />

View File

@ -2093,6 +2093,8 @@ END
/* C:\Codigo tecsitel\Source\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.dfm */
/* C:\Codigo tecsitel\Source\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.dfm */
/* C:\Codigo tecsitel\Source\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.dfm */
/* C:\Codigo tecsitel\Source\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.dfm */
/* C:\Codigo tecsitel\Source\Modulos\Articulos\Servidor\srvArticulos_Impl.dfm */
/* C:\Codigo tecsitel\Source\Servidor\FactuGES_Server.res */
/* C:\Codigo tecsitel\Source\Servidor\..\Servicios\RODLFile.res */
/* C:\Codigo tecsitel\Source\Servidor\FactuGES_Server.drf */

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN
VALUE "FileVersion", "3.0.0.0\0"
VALUE "ProductVersion", "3.0.0.0\0"
VALUE "CompileDate", "miércoles, 24 de octubre de 2007 13:43\0"
VALUE "CompileDate", "viernes, 26 de octubre de 2007 12:26\0"
END
END
BLOCK "VarFileInfo"