Integrar gestión de usuarios

git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/trunk@108 1c943782-d109-9647-9548-93b3ac332352
This commit is contained in:
David Arranz 2008-04-15 09:28:58 +00:00
parent 75ab5245cb
commit 19aed4c9ee
269 changed files with 28454 additions and 5993 deletions

View File

@ -531,149 +531,6 @@ source_path
<Property name="RetryPauseInterval" type="Cardinal">1000</Property> <Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property> <Property name="SuppressStatusMessages" type="Boolean">False</Property>
</Object> </Object>
<Object Class="TGroupAction" XMLID="{16BBD182-B44C-4EA2-BD93-D93C06B9A41D}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="0" name="ActionDescription" type="string">Servidor</Property>
<Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property>
<Property MultiValue="0" name="Description" type="string">Servidor</Property>
<Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property>
<Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property>
<Object Class="TDelphiCompilerAction" XMLID="{BCC90A20-6E68-4CF0-B93D-1182528436DC}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Compile Servidor\AdminPV_Server.dpr]]>
</Property>
<Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property>
<Property name="AllowImplicitImport" type="Boolean">True</Property>
<Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AutoIncBuild" type="WordBool">False</Property>
<Property name="AutoUpdateFileVersion" type="Boolean">True</Property>
<Property name="BuildAll" type="WordBool">True</Property>
<Property name="BuildVersion" type="Integer">0</Property>
<Property name="CodePage" type="Integer">1252</Property>
<Property name="CompilerVersion" type="Integer">12</Property>
<Property MultiValue="0" name="ConfigName" type="string">Release</Property>
<Property name="DebugVersionNumbers" type="Boolean">False</Property>
<Property MultiValue="1" name="Description" type="string"><![CDATA[Compile Servidor\AdminPV_Server.dpr]]>
</Property>
<Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property>
<Property MultiValue="0" name="ExtraCommandline" type="WideString"></Property>
<Property name="HintsAsError" type="Boolean">False</Property>
<Property MultiValue="0" name="IconFile" type="WideString">%project_path%\Resources\Iconos\Servidor.ico</Property>
<Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">True</Property>
<Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property>
<Property name="IsDLL" type="WordBool">False</Property>
<Property name="IsPreRelease" type="WordBool">False</Property>
<Property name="IsPrivate" type="WordBool">False</Property>
<Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">True</Property>
<Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">2</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="MinorVersion" type="Integer">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Servidor\AdminPV_Server.dpr</Property>
<Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property MultiValue="0" name="StartingDir" type="WideString">%source_path%\Servidor\</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property>
<Property name="UpdateDofFile" type="Boolean">True</Property>
<Property name="UpdatePackageSource" type="Boolean">False</Property>
<Property name="UseEurekaLogCompiler" type="Boolean">False</Property>
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">True</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=Rodax Software S.L.
FileDescription=
FileVersion=2.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=AdminPV_Server
ProductVersion=1.2.5.0
Comments=
CompileDate=miércoles, 12 de septiembre de 2007 18:52
]]>
</Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
<Property name="WarningsAsError" type="Boolean">False</Property>
<Property name="WorkAroundD5Bug" type="WordBool">False</Property>
<Object Class="TDelphiCompilerOptions" XMLID="{50F8565E-B514-4194-9050-D3B469F29817}"><Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AlwaysUseDelphiLibraryPath" type="WordBool">False</Property>
<Property name="AlwaysUseDOFSearchPath" type="WordBool">False</Property>
<Property name="Assertions" type="WordBool">True</Property>
<Property name="AssignableConst" type="WordBool">False</Property>
<Property name="BoolEval" type="WordBool">False</Property>
<Property MultiValue="0" name="BPLOutputDir" type="WideString"></Property>
<Property name="CompilerWarnings" type="TStrings"><![CDATA[]]>
</Property>
<Property MultiValue="0" name="Conditionals" type="WideString"></Property>
<Property name="ConsoleApp" type="WordBool">False</Property>
<Property MultiValue="0" name="DCPOutputDir" type="WideString"></Property>
<Property name="DebugInfo" type="WordBool">False</Property>
<Property MultiValue="0" name="DefaultNamespace" type="string"></Property>
<Property name="DefinitionsOnly" type="WordBool">False</Property>
<Property MultiValue="0" name="ExeDescription" type="WideString"></Property>
<Property name="ExportAllSymbols" type="WordBool">False</Property>
<Property name="ExtendedSyntax" type="WordBool">True</Property>
<Property name="GenerateDocumentation" type="Boolean">False</Property>
<Property name="GenerateHPP" type="WordBool">False</Property>
<Property name="HugeStrings" type="WordBool">True</Property>
<Property name="ImageBase" type="Cardinal">4194304</Property>
<Property name="IncludeNamespaces" type="WordBool">False</Property>
<Property name="IncludeRemoteSymbols" type="WordBool">False</Property>
<Property name="IncludeTD32" type="WordBool">False</Property>
<Property name="IOChecking" type="WordBool">True</Property>
<Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%</Property>
<Property name="LinkerOutput" type="Integer">0</Property>
<Property name="LocalSymbols" type="WordBool">False</Property>
<Property name="Mapfile" type="Integer">3</Property>
<Property name="MaxStackSize" type="Cardinal">1048576</Property>
<Property name="MinStackSize" type="Cardinal">16384</Property>
<Property MultiValue="0" name="NamespacePrefixes" type="string"></Property>
<Property name="OpenStrings" type="WordBool">True</Property>
<Property name="Optimisation" type="WordBool">True</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Servidor</Property>
<Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString"></Property>
<Property name="RangeChecking" type="WordBool">False</Property>
<Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property>
<Property name="ReferenceInfo" type="WordBool">False</Property>
<Property name="SafeDivide" type="WordBool">False</Property>
<Property MultiValue="0" name="SearchPath" type="WideString">.\</Property>
<Property name="ShowHints" type="WordBool">True</Property>
<Property name="ShowWarnings" type="WordBool">True</Property>
<Property name="StackFrames" type="WordBool">True</Property>
<Property name="TypedPointers" type="WordBool">False</Property>
<Property MultiValue="0" name="UnitAliases" type="WideString">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Property>
<Property MultiValue="0" name="UnitOutputDir" type="WideString">.\</Property>
<Property name="UseDebugDCU" type="WordBool">False</Property>
<Property name="UsePackages" type="WordBool">False</Property>
<Property name="VarStringChecks" type="WordBool">True</Property>
</Object>
</Object>
</Object>
<Object Class="TCommentAction" XMLID="{A239B00D-1E95-4D41-AF84-C1825C39CDE0}"><Property MultiValue="0" name="ActionComment" type="string"></Property> <Object Class="TCommentAction" XMLID="{A239B00D-1E95-4D41-AF84-C1825C39CDE0}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="0" name="ActionDescription" type="string">#</Property> <Property MultiValue="0" name="ActionDescription" type="string">#</Property>
<Property name="ActionTextColor" type="Cardinal">16711680</Property> <Property name="ActionTextColor" type="Cardinal">16711680</Property>
@ -739,7 +596,7 @@ CompileDate=miércoles, 12 de septiembre de 2007 18:52
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">True</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property> <Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property> <Property name="SuppressStatusMessages" type="Boolean">False</Property>
@ -1017,7 +874,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1027,7 +884,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -1049,7 +906,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -1110,7 +976,7 @@ Comments=
</Object> </Object>
</Object> </Object>
<Object Class="TDelphiCompilerAction" XMLID="{8EA2A3AA-98DB-48CB-8B9A-118FE22A444F}"><Property MultiValue="0" name="ActionComment" type="string"></Property> <Object Class="TDelphiCompilerAction" XMLID="{8EA2A3AA-98DB-48CB-8B9A-118FE22A444F}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Compile Usuarios\Usuarios.dpk]]> <Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Compile ApplicationBase\ApplicationBase.dpk]]>
</Property> </Property>
<Property name="ActionTextColor" type="Cardinal">0</Property> <Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property> <Property MultiValue="0" name="ActionTypeID" type="string"></Property>
@ -1124,7 +990,7 @@ Comments=
<Property name="CompilerVersion" type="Integer">12</Property> <Property name="CompilerVersion" type="Integer">12</Property>
<Property MultiValue="0" name="ConfigName" type="string">Debug</Property> <Property MultiValue="0" name="ConfigName" type="string">Debug</Property>
<Property name="DebugVersionNumbers" type="Boolean">False</Property> <Property name="DebugVersionNumbers" type="Boolean">False</Property>
<Property MultiValue="1" name="Description" type="string"><![CDATA[Compile Usuarios\Usuarios.dpk]]> <Property MultiValue="1" name="Description" type="string"><![CDATA[Compile ApplicationBase\ApplicationBase.dpk]]>
</Property> </Property>
<Property name="Enabled" type="WordBool">True</Property> <Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property> <Property name="ExpandActionLogTitle" type="Boolean">True</Property>
@ -1150,9 +1016,9 @@ Comments=
<Property name="MinorVersion" type="Integer">0</Property> <Property name="MinorVersion" type="Integer">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Usuarios\Usuarios.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\ApplicationBase\ApplicationBase.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">3</Property> <Property name="ReleaseVersion" type="Integer">0</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -1167,7 +1033,7 @@ Comments=
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName= <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription= FileDescription=
FileVersion=1.0.3.0 FileVersion=1.0.0.0
InternalName= InternalName=
LegalCopyright= LegalCopyright=
LegalTrademarks= LegalTrademarks=
@ -1204,17 +1070,17 @@ Comments=
<Property name="ImageBase" type="Cardinal">4194304</Property> <Property name="ImageBase" type="Cardinal">4194304</Property>
<Property name="IncludeNamespaces" type="WordBool">False</Property> <Property name="IncludeNamespaces" type="WordBool">False</Property>
<Property name="IncludeRemoteSymbols" type="WordBool">False</Property> <Property name="IncludeRemoteSymbols" type="WordBool">False</Property>
<Property name="IncludeTD32" type="WordBool">False</Property> <Property name="IncludeTD32" type="WordBool">True</Property>
<Property name="IOChecking" type="WordBool">True</Property> <Property name="IOChecking" type="WordBool">True</Property>
<Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%</Property> <Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%</Property>
<Property name="LinkerOutput" type="Integer">0</Property> <Property name="LinkerOutput" type="Integer">0</Property>
<Property name="LocalSymbols" type="WordBool">True</Property> <Property name="LocalSymbols" type="WordBool">True</Property>
<Property name="Mapfile" type="Integer">3</Property> <Property name="Mapfile" type="Integer">0</Property>
<Property name="MaxStackSize" type="Cardinal">1048576</Property> <Property name="MaxStackSize" type="Cardinal">1048576</Property>
<Property name="MinStackSize" type="Cardinal">16384</Property> <Property name="MinStackSize" type="Cardinal">16384</Property>
<Property MultiValue="0" name="NamespacePrefixes" type="string"></Property> <Property MultiValue="0" name="NamespacePrefixes" type="string"></Property>
<Property name="OpenStrings" type="WordBool">True</Property> <Property name="OpenStrings" type="WordBool">True</Property>
<Property name="Optimisation" type="WordBool">True</Property> <Property name="Optimisation" type="WordBool">False</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property> <Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property>
<Property name="OverflowChecking" type="WordBool">False</Property> <Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString"></Property> <Property MultiValue="0" name="Packages" type="WideString"></Property>
@ -1234,122 +1100,6 @@ Comments=
<Property name="VarStringChecks" type="WordBool">True</Property> <Property name="VarStringChecks" type="WordBool">True</Property>
</Object> </Object>
</Object> </Object>
<Object Class="TDelphiCompilerAction" XMLID="{FAE0CC1A-C74E-4136-B371-B96AD443C8C3}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Compile Configuracion\Configuracion.dpk]]>
</Property>
<Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property>
<Property name="AllowImplicitImport" type="Boolean">True</Property>
<Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AutoIncBuild" type="WordBool">False</Property>
<Property name="AutoUpdateFileVersion" type="Boolean">True</Property>
<Property name="BuildAll" type="WordBool">True</Property>
<Property name="BuildVersion" type="Integer">0</Property>
<Property name="CodePage" type="Integer">1252</Property>
<Property name="CompilerVersion" type="Integer">12</Property>
<Property MultiValue="0" name="ConfigName" type="string">Debug</Property>
<Property name="DebugVersionNumbers" type="Boolean">False</Property>
<Property MultiValue="1" name="Description" type="string"><![CDATA[Compile Configuracion\Configuracion.dpk]]>
</Property>
<Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property>
<Property MultiValue="0" name="ExtraCommandline" type="WideString"></Property>
<Property name="HintsAsError" type="Boolean">False</Property>
<Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property>
<Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property>
<Property name="IsDLL" type="WordBool">False</Property>
<Property name="IsPreRelease" type="WordBool">False</Property>
<Property name="IsPrivate" type="WordBool">False</Property>
<Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="MinorVersion" type="Integer">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Configuracion\Configuracion.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property MultiValue="0" name="StartingDir" type="WideString"></Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property>
<Property name="UpdateDofFile" type="Boolean">False</Property>
<Property name="UpdatePackageSource" type="Boolean">False</Property>
<Property name="UseEurekaLogCompiler" type="Boolean">False</Property>
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0
]]>
</Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
<Property name="WarningsAsError" type="Boolean">False</Property>
<Property name="WorkAroundD5Bug" type="WordBool">False</Property>
<Object Class="TDelphiCompilerOptions" XMLID="{8D02CDDF-9851-475C-BEF3-538FFBD93680}"><Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AlwaysUseDelphiLibraryPath" type="WordBool">False</Property>
<Property name="AlwaysUseDOFSearchPath" type="WordBool">False</Property>
<Property name="Assertions" type="WordBool">True</Property>
<Property name="AssignableConst" type="WordBool">False</Property>
<Property name="BoolEval" type="WordBool">False</Property>
<Property MultiValue="0" name="BPLOutputDir" type="WideString">%package_path%</Property>
<Property name="CompilerWarnings" type="TStrings"><![CDATA[]]>
</Property>
<Property MultiValue="0" name="Conditionals" type="WideString"></Property>
<Property name="ConsoleApp" type="WordBool">False</Property>
<Property MultiValue="0" name="DCPOutputDir" type="WideString">%modules_dcp_path%</Property>
<Property name="DebugInfo" type="WordBool">True</Property>
<Property MultiValue="0" name="DefaultNamespace" type="string"></Property>
<Property name="DefinitionsOnly" type="WordBool">True</Property>
<Property MultiValue="0" name="ExeDescription" type="WideString"></Property>
<Property name="ExportAllSymbols" type="WordBool">False</Property>
<Property name="ExtendedSyntax" type="WordBool">True</Property>
<Property name="GenerateDocumentation" type="Boolean">False</Property>
<Property name="GenerateHPP" type="WordBool">False</Property>
<Property name="HugeStrings" type="WordBool">True</Property>
<Property name="ImageBase" type="Cardinal">4194304</Property>
<Property name="IncludeNamespaces" type="WordBool">False</Property>
<Property name="IncludeRemoteSymbols" type="WordBool">False</Property>
<Property name="IncludeTD32" type="WordBool">False</Property>
<Property name="IOChecking" type="WordBool">True</Property>
<Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%</Property>
<Property name="LinkerOutput" type="Integer">0</Property>
<Property name="LocalSymbols" type="WordBool">True</Property>
<Property name="Mapfile" type="Integer">3</Property>
<Property name="MaxStackSize" type="Cardinal">1048576</Property>
<Property name="MinStackSize" type="Cardinal">16384</Property>
<Property MultiValue="0" name="NamespacePrefixes" type="string"></Property>
<Property name="OpenStrings" type="WordBool">True</Property>
<Property name="Optimisation" type="WordBool">True</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property>
<Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString"></Property>
<Property name="RangeChecking" type="WordBool">False</Property>
<Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property>
<Property name="ReferenceInfo" type="WordBool">True</Property>
<Property name="SafeDivide" type="WordBool">False</Property>
<Property MultiValue="0" name="SearchPath" type="WideString"></Property>
<Property name="ShowHints" type="WordBool">True</Property>
<Property name="ShowWarnings" type="WordBool">True</Property>
<Property name="StackFrames" type="WordBool">False</Property>
<Property name="TypedPointers" type="WordBool">False</Property>
<Property MultiValue="0" name="UnitAliases" type="WideString">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Property>
<Property MultiValue="0" name="UnitOutputDir" type="WideString"></Property>
<Property name="UseDebugDCU" type="WordBool">False</Property>
<Property name="UsePackages" type="WordBool">False</Property>
<Property name="VarStringChecks" type="WordBool">True</Property>
</Object>
</Object>
</Object> </Object>
<Object Class="TGroupAction" XMLID="{B06E72B1-4F77-4ACA-AAAE-DE2674896609}"><Property MultiValue="0" name="ActionComment" type="string"></Property> <Object Class="TGroupAction" XMLID="{B06E72B1-4F77-4ACA-AAAE-DE2674896609}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="0" name="ActionDescription" type="string">Módulos</Property> <Property MultiValue="0" name="ActionDescription" type="string">Módulos</Property>
@ -1363,7 +1113,7 @@ Comments=
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">True</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property> <Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property> <Property name="SuppressStatusMessages" type="Boolean">False</Property>
@ -1391,7 +1141,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1401,7 +1151,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -1410,7 +1160,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\FicherosEDI\Cliente\FicherosEDI.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">3</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -1423,7 +1173,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -1632,7 +1391,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1642,7 +1401,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -1651,7 +1410,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\VentasProceso\Cliente\VentasProceso.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">3</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -1664,7 +1423,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -1748,7 +1516,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1758,7 +1526,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -1767,7 +1535,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\ReferenciaGenerica\Cliente\ReferenciaGenerica.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">3</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -1780,7 +1548,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -1864,7 +1641,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1874,7 +1651,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -1883,7 +1660,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Recepciones\Cliente\Recepciones.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">3</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -1896,7 +1673,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -1980,7 +1766,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -1990,7 +1776,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -2012,7 +1798,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -2096,7 +1891,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -2106,7 +1901,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -2115,7 +1910,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Traspasos\Cliente\Traspasos.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">3</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -2128,7 +1923,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -2212,7 +2016,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString"></Property> <Property MultiValue="0" name="IconFile" type="WideString"></Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">False</Property> <Property name="IncludeCompileDate" type="WordBool">False</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -2222,7 +2026,7 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">1</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
@ -2231,7 +2035,7 @@ Comments=
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Stock\Cliente\Stock.dpk</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Modulos\Stock\Cliente\Stock.dpk</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">2</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -2244,7 +2048,16 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property> <Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription=
FileVersion=1.0.2.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -2347,7 +2160,7 @@ Comments=
<Property MultiValue="0" name="IconFile" type="WideString">%project_path%\Resources\Iconos\Cliente.ico</Property> <Property MultiValue="0" name="IconFile" type="WideString">%project_path%\Resources\Iconos\Cliente.ico</Property>
<Property name="IgnoreFailure" type="WordBool">False</Property> <Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">True</Property> <Property name="IncludeCompileDate" type="WordBool">True</Property>
<Property name="IncludeVerInfo" type="WordBool">False</Property> <Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property> <Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property> <Property name="IsDebug" type="WordBool">False</Property>
@ -2357,16 +2170,16 @@ Comments=
<Property name="IsSpecial" type="WordBool">False</Property> <Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property> <Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property> <Property name="LinkProductVersionToFileVersion" type="Boolean">False</Property>
<Property name="Locale" type="Integer">3081</Property> <Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">1</Property> <Property name="MajorVersion" type="Integer">2</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="MinorVersion" type="Integer">0</Property> <Property name="MinorVersion" type="Integer">1</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Cliente\AdminPV.dpr</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Cliente\AdminPV.dpr</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">1</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -2379,7 +2192,17 @@ Comments=
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usCompiler,usLinker,usVersionInfo]</Property> <Property name="UseProjectSettings" type="TFBUseProjectSettings">[usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">True</Property> <Property name="UsePropertySet" type="Boolean">True</Property>
<Property name="UseVersionFromDOF" type="Boolean">True</Property> <Property name="UseVersionFromDOF" type="Boolean">True</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[FileVersion=1.0.0.0 <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=Rodax Software S.L.
FileDescription=
FileVersion=2.1.1.0
InternalName=Administración de puntos de venta
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=Administración de puntos de venta
ProductVersion=1.0.0.0
Comments=
CompileDate=miércoles, 12 de marzo de 2008 12:35
]]> ]]>
</Property> </Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property> <Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
@ -2414,7 +2237,7 @@ Comments=
<Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%;%modules_dcp_path%</Property> <Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%;%modules_dcp_path%</Property>
<Property name="LinkerOutput" type="Integer">0</Property> <Property name="LinkerOutput" type="Integer">0</Property>
<Property name="LocalSymbols" type="WordBool">True</Property> <Property name="LocalSymbols" type="WordBool">True</Property>
<Property name="Mapfile" type="Integer">0</Property> <Property name="Mapfile" type="Integer">3</Property>
<Property name="MaxStackSize" type="Cardinal">1048576</Property> <Property name="MaxStackSize" type="Cardinal">1048576</Property>
<Property name="MinStackSize" type="Cardinal">16384</Property> <Property name="MinStackSize" type="Cardinal">16384</Property>
<Property MultiValue="0" name="NamespacePrefixes" type="string"></Property> <Property MultiValue="0" name="NamespacePrefixes" type="string"></Property>
@ -2422,7 +2245,7 @@ Comments=
<Property name="Optimisation" type="WordBool">True</Property> <Property name="Optimisation" type="WordBool">True</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property> <Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property>
<Property name="OverflowChecking" type="WordBool">False</Property> <Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString">BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica</Property> <Property MultiValue="0" name="Packages" type="WideString">BaseD10;ControlesBaseD10;ApplicationBase;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica</Property>
<Property name="RangeChecking" type="WordBool">False</Property> <Property name="RangeChecking" type="WordBool">False</Property>
<Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property> <Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property>
<Property name="ReferenceInfo" type="WordBool">True</Property> <Property name="ReferenceInfo" type="WordBool">True</Property>
@ -2479,12 +2302,12 @@ Comments=
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">2</Property> <Property name="MajorVersion" type="Integer">2</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="MinorVersion" type="Integer">0</Property> <Property name="MinorVersion" type="Integer">1</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\CargaEDI\CargaEDI.dpr</Property> <Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\CargaEDI\CargaEDI.dpr</Property>
<Property name="RegenerateResource" type="WordBool">True</Property> <Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">0</Property> <Property name="ReleaseVersion" type="Integer">1</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property> <Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property> <Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
@ -2499,7 +2322,7 @@ Comments=
<Property name="UseVersionFromDOF" type="Boolean">False</Property> <Property name="UseVersionFromDOF" type="Boolean">False</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName= <Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=
FileDescription= FileDescription=
FileVersion=2.0.0.0 FileVersion=2.1.1.0
InternalName= InternalName=
LegalCopyright= LegalCopyright=
LegalTrademarks= LegalTrademarks=
@ -2549,7 +2372,7 @@ Comments=
<Property name="Optimisation" type="WordBool">True</Property> <Property name="Optimisation" type="WordBool">True</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property> <Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Cliente</Property>
<Property name="OverflowChecking" type="WordBool">False</Property> <Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString">BaseD10;Configuracion;FicherosEDI</Property> <Property MultiValue="0" name="Packages" type="WideString">BaseD10;FicherosEDI</Property>
<Property name="RangeChecking" type="WordBool">False</Property> <Property name="RangeChecking" type="WordBool">False</Property>
<Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property> <Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property>
<Property name="ReferenceInfo" type="WordBool">True</Property> <Property name="ReferenceInfo" type="WordBool">True</Property>
@ -2567,6 +2390,149 @@ Comments=
</Object> </Object>
</Object> </Object>
</Object> </Object>
<Object Class="TGroupAction" XMLID="{16BBD182-B44C-4EA2-BD93-D93C06B9A41D}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="0" name="ActionDescription" type="string">Servidor</Property>
<Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property>
<Property MultiValue="0" name="Description" type="string">Servidor</Property>
<Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property>
<Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property>
<Object Class="TDelphiCompilerAction" XMLID="{BCC90A20-6E68-4CF0-B93D-1182528436DC}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Compile Servidor\AdminPV_Server.dpr]]>
</Property>
<Property name="ActionTextColor" type="Cardinal">0</Property>
<Property MultiValue="0" name="ActionTypeID" type="string"></Property>
<Property name="AllowImplicitImport" type="Boolean">True</Property>
<Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AutoIncBuild" type="WordBool">False</Property>
<Property name="AutoUpdateFileVersion" type="Boolean">True</Property>
<Property name="BuildAll" type="WordBool">True</Property>
<Property name="BuildVersion" type="Integer">0</Property>
<Property name="CodePage" type="Integer">1252</Property>
<Property name="CompilerVersion" type="Integer">12</Property>
<Property MultiValue="0" name="ConfigName" type="string">Release</Property>
<Property name="DebugVersionNumbers" type="Boolean">False</Property>
<Property MultiValue="1" name="Description" type="string"><![CDATA[Compile Servidor\AdminPV_Server.dpr]]>
</Property>
<Property name="Enabled" type="WordBool">True</Property>
<Property name="ExpandActionLogTitle" type="Boolean">True</Property>
<Property MultiValue="0" name="ExtraCommandline" type="WideString"></Property>
<Property name="HintsAsError" type="Boolean">False</Property>
<Property MultiValue="0" name="IconFile" type="WideString">%project_path%\Resources\Iconos\Servidor.ico</Property>
<Property name="IgnoreFailure" type="WordBool">False</Property>
<Property name="IncludeCompileDate" type="WordBool">True</Property>
<Property name="IncludeVerInfo" type="WordBool">True</Property>
<Property name="IsAction" type="Boolean">True</Property>
<Property name="IsBreakPoint" type="WordBool">False</Property>
<Property name="IsDebug" type="WordBool">False</Property>
<Property name="IsDLL" type="WordBool">False</Property>
<Property name="IsPreRelease" type="WordBool">False</Property>
<Property name="IsPrivate" type="WordBool">False</Property>
<Property name="IsSpecial" type="WordBool">False</Property>
<Property name="KeepCFG" type="Boolean">False</Property>
<Property name="LinkProductVersionToFileVersion" type="Boolean">True</Property>
<Property name="Locale" type="Integer">3082</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MajorVersion" type="Integer">2</Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="MinorVersion" type="Integer">1</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property>
<Property name="PauseInterval" type="Cardinal">0</Property>
<Property MultiValue="0" name="ProjectFile" type="WideString">%source_path%\Servidor\AdminPV_Server.dpr</Property>
<Property name="RegenerateResource" type="WordBool">True</Property>
<Property name="ReleaseVersion" type="Integer">1</Property>
<Property MultiValue="0" name="ResourceCompilerOptions" type="string"></Property>
<Property MultiValue="0" name="ResourceCompilerPath" type="string"></Property>
<Property name="ResourceCompilerType" type="TFBDelphiResourceCompiler">rcBorland</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property MultiValue="0" name="StartingDir" type="WideString">%source_path%\Servidor\</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property>
<Property name="UpdateDofFile" type="Boolean">True</Property>
<Property name="UpdatePackageSource" type="Boolean">False</Property>
<Property name="UseEurekaLogCompiler" type="Boolean">False</Property>
<Property name="UseProjectSettings" type="TFBUseProjectSettings">[usPackages,usCompiler,usLinker,usVersionInfo]</Property>
<Property name="UsePropertySet" type="Boolean">False</Property>
<Property name="UseVersionFromDOF" type="Boolean">True</Property>
<Property MultiValue="1" name="VersionInfoKeys" type="WideString"><![CDATA[CompanyName=Rodax Software S.L.
FileDescription=
FileVersion=2.1.1.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=AdminPV_Server
ProductVersion=2.1.0.0
Comments=
CompileDate=lunes, 10 de marzo de 2008 13:15
]]>
</Property>
<Property MultiValue="0" name="VersionInfoPropertySetName" type="string"></Property>
<Property name="WarningsAsError" type="Boolean">False</Property>
<Property name="WorkAroundD5Bug" type="WordBool">False</Property>
<Object Class="TDelphiCompilerOptions" XMLID="{50F8565E-B514-4194-9050-D3B469F29817}"><Property name="AlwaysUseConditionalsFromDOF" type="WordBool">False</Property>
<Property name="AlwaysUseDelphiLibraryPath" type="WordBool">False</Property>
<Property name="AlwaysUseDOFSearchPath" type="WordBool">False</Property>
<Property name="Assertions" type="WordBool">True</Property>
<Property name="AssignableConst" type="WordBool">False</Property>
<Property name="BoolEval" type="WordBool">False</Property>
<Property MultiValue="0" name="BPLOutputDir" type="WideString"></Property>
<Property name="CompilerWarnings" type="TStrings"><![CDATA[]]>
</Property>
<Property MultiValue="0" name="Conditionals" type="WideString"></Property>
<Property name="ConsoleApp" type="WordBool">False</Property>
<Property MultiValue="0" name="DCPOutputDir" type="WideString"></Property>
<Property name="DebugInfo" type="WordBool">False</Property>
<Property MultiValue="0" name="DefaultNamespace" type="string"></Property>
<Property name="DefinitionsOnly" type="WordBool">False</Property>
<Property MultiValue="0" name="ExeDescription" type="WideString"></Property>
<Property name="ExportAllSymbols" type="WordBool">False</Property>
<Property name="ExtendedSyntax" type="WordBool">True</Property>
<Property name="GenerateDocumentation" type="Boolean">False</Property>
<Property name="GenerateHPP" type="WordBool">False</Property>
<Property name="HugeStrings" type="WordBool">True</Property>
<Property name="ImageBase" type="Cardinal">4194304</Property>
<Property name="IncludeNamespaces" type="WordBool">False</Property>
<Property name="IncludeRemoteSymbols" type="WordBool">False</Property>
<Property name="IncludeTD32" type="WordBool">False</Property>
<Property name="IOChecking" type="WordBool">True</Property>
<Property MultiValue="0" name="LibraryPath" type="WideString">%library_path%</Property>
<Property name="LinkerOutput" type="Integer">0</Property>
<Property name="LocalSymbols" type="WordBool">False</Property>
<Property name="Mapfile" type="Integer">3</Property>
<Property name="MaxStackSize" type="Cardinal">1048576</Property>
<Property name="MinStackSize" type="Cardinal">16384</Property>
<Property MultiValue="0" name="NamespacePrefixes" type="string"></Property>
<Property name="OpenStrings" type="WordBool">True</Property>
<Property name="Optimisation" type="WordBool">True</Property>
<Property MultiValue="0" name="OutputDir" type="WideString">%output_path%\Servidor</Property>
<Property name="OverflowChecking" type="WordBool">False</Property>
<Property MultiValue="0" name="Packages" type="WideString"></Property>
<Property name="RangeChecking" type="WordBool">False</Property>
<Property name="RecordFieldAlign" type="TFieldAlign">fa8</Property>
<Property name="ReferenceInfo" type="WordBool">False</Property>
<Property name="SafeDivide" type="WordBool">False</Property>
<Property MultiValue="0" name="SearchPath" type="WideString">.\</Property>
<Property name="ShowHints" type="WordBool">True</Property>
<Property name="ShowWarnings" type="WordBool">True</Property>
<Property name="StackFrames" type="WordBool">True</Property>
<Property name="TypedPointers" type="WordBool">False</Property>
<Property MultiValue="0" name="UnitAliases" type="WideString">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Property>
<Property MultiValue="0" name="UnitOutputDir" type="WideString">.\</Property>
<Property name="UseDebugDCU" type="WordBool">False</Property>
<Property name="UsePackages" type="WordBool">False</Property>
<Property name="VarStringChecks" type="WordBool">True</Property>
</Object>
</Object>
</Object>
<Object Class="TGroupAction" XMLID="{B6FF24D6-FAF7-4A2C-A3DD-82476DA27DD2}"><Property MultiValue="0" name="ActionComment" type="string"></Property> <Object Class="TGroupAction" XMLID="{B6FF24D6-FAF7-4A2C-A3DD-82476DA27DD2}"><Property MultiValue="0" name="ActionComment" type="string"></Property>
<Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Comprimir ejecutables]]> <Property MultiValue="1" name="ActionDescription" type="string"><![CDATA[Comprimir ejecutables]]>
</Property> </Property>
@ -2581,7 +2547,7 @@ Comments=
<Property name="IsBreakPoint" type="WordBool">False</Property> <Property name="IsBreakPoint" type="WordBool">False</Property>
<Property MultiValue="0" name="LogToVariable" type="string"></Property> <Property MultiValue="0" name="LogToVariable" type="string"></Property>
<Property name="MaxRetryAttempts" type="Cardinal">0</Property> <Property name="MaxRetryAttempts" type="Cardinal">0</Property>
<Property name="NodeCollapsed" type="Boolean">False</Property> <Property name="NodeCollapsed" type="Boolean">True</Property>
<Property name="PauseInterval" type="Cardinal">0</Property> <Property name="PauseInterval" type="Cardinal">0</Property>
<Property name="RetryPauseInterval" type="Cardinal">1000</Property> <Property name="RetryPauseInterval" type="Cardinal">1000</Property>
<Property name="SuppressStatusMessages" type="Boolean">False</Property> <Property name="SuppressStatusMessages" type="Boolean">False</Property>
@ -2834,7 +2800,7 @@ Comments=
<Property name="VariableType" type="TFBVariableType">vtProject</Property> <Property name="VariableType" type="TFBVariableType">vtProject</Property>
</Object> </Object>
<Object Class="TFBVariable" XMLID="{E1F16954-518E-44DB-8598-32BD70D0B552}"><Property MultiValue="0" name="Comment" type="string"></Property> <Object Class="TFBVariable" XMLID="{E1F16954-518E-44DB-8598-32BD70D0B552}"><Property MultiValue="0" name="Comment" type="string"></Property>
<Property MultiValue="0" name="DefaultValue" type="string">%DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport3;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview;%project_path%\Lib\SDAC;</Property> <Property MultiValue="0" name="DefaultValue" type="string">%DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport3;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview;%project_path%\Lib\JSDialog;%project_path%\Lib\UserControl</Property>
<Property name="IsMacro" type="Boolean">True</Property> <Property name="IsMacro" type="Boolean">True</Property>
<Property name="IsPersistent" type="Boolean">False</Property> <Property name="IsPersistent" type="Boolean">False</Property>
<Property name="MakeEnv" type="Boolean">False</Property> <Property name="MakeEnv" type="Boolean">False</Property>

View File

@ -873,6 +873,118 @@ ON [RDX_VENTASEDI]
TO [public] TO [public]
GO GO
/*--------------- SQL ---------------*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_USUARIOS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [RDX_USUARIOS]
GO
CREATE TABLE [RDX_USUARIOS](
[ID] int NOT NULL,
[USERNAME] varchar(30) NULL,
[LOGIN] varchar(30) NULL,
[PASS] varchar(255) NULL,
[PASSEXPIRED] datetime NULL,
[BLOQUEADO] smallint NULL,
[EMAIL] varchar(150) NULL,
[USERDAYSSUN] int NULL,
[PRIVILEGED] int NULL,
[TIPO] char(1) NULL,
[ID_PERFIL] int NULL,
[CHECKSUM] varchar(250) NULL
) ON [PRIMARY]
GO
ALTER TABLE [RDX_USUARIOS]
ADD CONSTRAINT [RDX_USUARIOS_PK]
PRIMARY KEY CLUSTERED ([ID])
ON [PRIMARY]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_USUARIOS_EVENTOS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [RDX_USUARIOS_EVENTOS]
GO
CREATE TABLE [RDX_USUARIOS_EVENTOS](
[APLICACION] VARCHAR(250),
[ID_USUARIO] INT,
[FECHA] CHAR(10),
[HORA] CHAR(8),
[FORM] VARCHAR(250),
[TITULO_FORM] VARCHAR(100),
[EVENTO] VARCHAR(50),
[NOTAS] TEXT,
[TNAME] VARCHAR(20)
) ON [PRIMARY]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_USUARIOS_LOGON]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [RDX_USUARIOS_LOGON]
GO
CREATE TABLE [RDX_USUARIOS_LOGON] (
[LOGONID] CHAR(38) NOT NULL,
[ID_USUARIO] INT,
[APLICACION] VARCHAR(50),
[EQUIPO] VARCHAR(50),
[DATA] VARCHAR(14)
)
GO
ALTER TABLE [RDX_USUARIOS_LOGON]
ADD CONSTRAINT [RDX_USUARIOS_LOGON_PK]
PRIMARY KEY CLUSTERED ([LOGONID])
ON [PRIMARY]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_PERMISOS]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [RDX_PERMISOS]
GO
CREATE TABLE [RDX_PERMISOS] (
[ID] INT NOT NULL,
[ID_USUARIO] INT,
[MODULO] VARCHAR(50),
[NOMBRECOMP] VARCHAR(50),
[CHECKSUM] VARCHAR(250)
)
GO
ALTER TABLE [RDX_PERMISOS]
ADD CONSTRAINT [RDX_PERMISOS_PK]
PRIMARY KEY CLUSTERED ([ID])
ON [PRIMARY]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[RDX_PERMISOSEX]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [RDX_PERMISOSEX]
GO
CREATE TABLE [RDX_PERMISOSEX] (
[ID] INT NOT NULL,
[ID_USUARIO] INT,
[MODULO] VARCHAR(50),
[NOMBRECOMP] VARCHAR(50),
[NOMBREFORM] VARCHAR(50),
[CHECKSUM] VARCHAR(250)
)
GO
ALTER TABLE [RDX_PERMISOSEX]
ADD CONSTRAINT [RDX_PERMISOSEX_PK]
PRIMARY KEY CLUSTERED ([ID])
ON [PRIMARY]
GO
/* EOF */ /* EOF */

View File

@ -4,10 +4,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup /> <ItemGroup />
<ItemGroup> <ItemGroup>
<Projects Include="ApplicationBase\ApplicationBase.dproj" />
<Projects Include="Base\BaseD10.dproj" /> <Projects Include="Base\BaseD10.dproj" />
<Projects Include="CargaEDI\CargaEDI.dproj" /> <Projects Include="CargaEDI\CargaEDI.dproj" />
<Projects Include="Cliente\AdminPV.dproj" /> <Projects Include="Cliente\AdminPV.dproj" />
<Projects Include="Configuracion\Configuracion.dproj" />
<Projects Include="ControlesBase\ControlesBaseD10.dproj" /> <Projects Include="ControlesBase\ControlesBaseD10.dproj" />
<Projects Include="Modulos\Devoluciones\Cliente\Devoluciones.dproj" /> <Projects Include="Modulos\Devoluciones\Cliente\Devoluciones.dproj" />
<Projects Include="Modulos\FicherosEDI\Cliente\FicherosEDI.dproj" /> <Projects Include="Modulos\FicherosEDI\Cliente\FicherosEDI.dproj" />
@ -19,7 +19,6 @@
<Projects Include="Modulos\VentasProceso\Cliente\VentasProceso.dproj" /> <Projects Include="Modulos\VentasProceso\Cliente\VentasProceso.dproj" />
<Projects Include="Modulos\VentasTerminadas\Cliente\VentasTerminadas.dproj" /> <Projects Include="Modulos\VentasTerminadas\Cliente\VentasTerminadas.dproj" />
<Projects Include="Servidor\AdminPV_Server.dproj" /> <Projects Include="Servidor\AdminPV_Server.dproj" />
<Projects Include="Usuarios\Usuarios.dproj" />
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>
<Borland.Personality>Default.Personality</Borland.Personality> <Borland.Personality>Default.Personality</Borland.Personality>
@ -27,15 +26,6 @@
<BorlandProject> <BorlandProject>
<BorlandProject xmlns=""><Default.Personality></Default.Personality></BorlandProject></BorlandProject> <BorlandProject xmlns=""><Default.Personality></Default.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
<Target Name="AdminPV_Server">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="" />
</Target>
<Target Name="AdminPV_Server:Clean">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="Clean" />
</Target>
<Target Name="AdminPV_Server:Make">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="Make" />
</Target>
<Target Name="BaseD10"> <Target Name="BaseD10">
<MSBuild Projects="Base\BaseD10.dproj" Targets="" /> <MSBuild Projects="Base\BaseD10.dproj" Targets="" />
</Target> </Target>
@ -63,23 +53,14 @@
<Target Name="Parametros:Make"> <Target Name="Parametros:Make">
<MSBuild Projects="Modulos\Parametros\Cliente\Parametros.dproj" Targets="Make" /> <MSBuild Projects="Modulos\Parametros\Cliente\Parametros.dproj" Targets="Make" />
</Target> </Target>
<Target Name="Usuarios"> <Target Name="ApplicationBase">
<MSBuild Projects="Usuarios\Usuarios.dproj" Targets="" /> <MSBuild Projects="ApplicationBase\ApplicationBase.dproj" Targets="" />
</Target> </Target>
<Target Name="Usuarios:Clean"> <Target Name="ApplicationBase:Clean">
<MSBuild Projects="Usuarios\Usuarios.dproj" Targets="Clean" /> <MSBuild Projects="ApplicationBase\ApplicationBase.dproj" Targets="Clean" />
</Target> </Target>
<Target Name="Usuarios:Make"> <Target Name="ApplicationBase:Make">
<MSBuild Projects="Usuarios\Usuarios.dproj" Targets="Make" /> <MSBuild Projects="ApplicationBase\ApplicationBase.dproj" Targets="Make" />
</Target>
<Target Name="Configuracion">
<MSBuild Projects="Configuracion\Configuracion.dproj" Targets="" />
</Target>
<Target Name="Configuracion:Clean">
<MSBuild Projects="Configuracion\Configuracion.dproj" Targets="Clean" />
</Target>
<Target Name="Configuracion:Make">
<MSBuild Projects="Configuracion\Configuracion.dproj" Targets="Make" />
</Target> </Target>
<Target Name="FicherosEDI"> <Target Name="FicherosEDI">
<MSBuild Projects="Modulos\FicherosEDI\Cliente\FicherosEDI.dproj" Targets="" /> <MSBuild Projects="Modulos\FicherosEDI\Cliente\FicherosEDI.dproj" Targets="" />
@ -171,14 +152,23 @@
<Target Name="AdminPV:Make"> <Target Name="AdminPV:Make">
<MSBuild Projects="Cliente\AdminPV.dproj" Targets="Make" /> <MSBuild Projects="Cliente\AdminPV.dproj" Targets="Make" />
</Target> </Target>
<Target Name="AdminPV_Server">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="" />
</Target>
<Target Name="AdminPV_Server:Clean">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="Clean" />
</Target>
<Target Name="AdminPV_Server:Make">
<MSBuild Projects="Servidor\AdminPV_Server.dproj" Targets="Make" />
</Target>
<Target Name="Build"> <Target Name="Build">
<CallTarget Targets="AdminPV_Server;BaseD10;ControlesBaseD10;Parametros;Usuarios;Configuracion;FicherosEDI;VentasTerminadas;VentasProceso;ReferenciaGenerica;Recepciones;Devoluciones;Traspasos;Stock;CargaEDI;AdminPV" /> <CallTarget Targets="BaseD10;ControlesBaseD10;Parametros;ApplicationBase;FicherosEDI;VentasTerminadas;VentasProceso;ReferenciaGenerica;Recepciones;Devoluciones;Traspasos;Stock;CargaEDI;AdminPV;AdminPV_Server" />
</Target> </Target>
<Target Name="Clean"> <Target Name="Clean">
<CallTarget Targets="AdminPV_Server:Clean;BaseD10:Clean;ControlesBaseD10:Clean;Parametros:Clean;Usuarios:Clean;Configuracion:Clean;FicherosEDI:Clean;VentasTerminadas:Clean;VentasProceso:Clean;ReferenciaGenerica:Clean;Recepciones:Clean;Devoluciones:Clean;Traspasos:Clean;Stock:Clean;CargaEDI:Clean;AdminPV:Clean" /> <CallTarget Targets="BaseD10:Clean;ControlesBaseD10:Clean;Parametros:Clean;ApplicationBase:Clean;FicherosEDI:Clean;VentasTerminadas:Clean;VentasProceso:Clean;ReferenciaGenerica:Clean;Recepciones:Clean;Devoluciones:Clean;Traspasos:Clean;Stock:Clean;CargaEDI:Clean;AdminPV:Clean;AdminPV_Server:Clean" />
</Target> </Target>
<Target Name="Make"> <Target Name="Make">
<CallTarget Targets="AdminPV_Server:Make;BaseD10:Make;ControlesBaseD10:Make;Parametros:Make;Usuarios:Make;Configuracion:Make;FicherosEDI:Make;VentasTerminadas:Make;VentasProceso:Make;ReferenciaGenerica:Make;Recepciones:Make;Devoluciones:Make;Traspasos:Make;Stock:Make;CargaEDI:Make;AdminPV:Make" /> <CallTarget Targets="BaseD10:Make;ControlesBaseD10:Make;Parametros:Make;ApplicationBase:Make;FicherosEDI:Make;VentasTerminadas:Make;VentasProceso:Make;ReferenciaGenerica:Make;Recepciones:Make;Devoluciones:Make;Traspasos:Make;Stock:Make;CargaEDI:Make;AdminPV:Make;AdminPV_Server:Make" />
</Target> </Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" /> <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project> </Project>

View File

@ -0,0 +1,2 @@
<?xml version="1.0"?>
<TgConfig Version="3" SubLevelDisabled="False" />

View File

@ -0,0 +1,697 @@
<?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">{14A25028-EC1A-430C-ADE3-13C264E9BAC2}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ApplicationBase.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="TypeInfoImplicitlyAdded">True</Compiler>
<Compiler Name="XMLWhitespaceNotAllowed">True</Compiler>
<Compiler Name="XMLUnknownEntity">True</Compiler>
<Compiler Name="XMLInvalidNameStart">True</Compiler>
<Compiler Name="XMLInvalidName">True</Compiler>
<Compiler Name="XMLExpectedCharacter">True</Compiler>
<Compiler Name="XMLCRefNoResolve">True</Compiler>
<Compiler Name="XMLNoParm">True</Compiler>
<Compiler Name="XMLNoMatchingParm">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</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>
<Signing>
<Signing Name="SignAssembly">False</Signing>
</Signing>
<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>
<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>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
</Excluded_Packages>
<buildevents/>
</Delphi.Personality>
</BorlandProject>
<!-- 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

@ -0,0 +1,40 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N0".\"
-LE"..\..\..\..\Output\Debug\Cliente"
-LN"..\Lib"
-U"..\Lib"
-O"..\Lib"
-I"..\Lib"
-R"..\Lib"

View File

@ -0,0 +1,63 @@
package ApplicationBase;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}
{$DEFINE DEBUG}
requires
rtl,
vcl,
dbrtl,
PLuginSDK_D10R,
BaseD10,
pckMD5,
pckUserControl_RT;
contains
uAdminPV_App in 'uAdminPV_App.pas',
uIDataModuleUsuarios in 'Usuarios\Model\Data\uIDataModuleUsuarios.pas',
uDataModuleUsuarios in 'Usuarios\Data\uDataModuleUsuarios.pas' {DataModuleUsuarios},
uUCROConn in 'Usuarios\Data\uUCROConn.pas',
uUsuariosController in 'Usuarios\Controller\uUsuariosController.pas',
uBizUsuarios in 'Usuarios\Model\uBizUsuarios.pas',
uIEditorLogin in 'Usuarios\Controller\View\uIEditorLogin.pas',
uEditorLogin in 'Usuarios\Views\uEditorLogin.pas' {fEditorLogin},
uUsuariosViewRegister in 'Usuarios\Views\uUsuariosViewRegister.pas',
uViewPerfilesUsuario in 'Usuarios\Views\uViewPerfilesUsuario.pas' {frViewPerfilesUsuario: TFrame},
uEditorPerfilesUsuario in 'Usuarios\Views\uEditorPerfilesUsuario.pas' {fEditorPerfilesUsuario},
uIEditorUsuarios in 'Usuarios\Controller\View\uIEditorUsuarios.pas',
uEditorPerfilUsuario in 'Usuarios\Views\uEditorPerfilUsuario.pas' {fEditorPerfilUsuario},
uIEditorUsuario in 'Usuarios\Controller\View\uIEditorUsuario.pas',
uViewPerfilUsuario in 'Usuarios\Views\uViewPerfilUsuario.pas' {frViewPerfilUsuario: TFrame},
uIEditorPerfilesUsuario in 'Usuarios\Controller\View\uIEditorPerfilesUsuario.pas',
uIEditorPerfilUsuario in 'Usuarios\Controller\View\uIEditorPerfilUsuario.pas',
uEditorUsuarios in 'Usuarios\Views\uEditorUsuarios.pas' {fEditorUsuarios},
uViewUsuarios in 'Usuarios\Views\uViewUsuarios.pas' {frViewUsuarios: TFrame},
uEditorUsuario in 'Usuarios\Views\uEditorUsuario.pas' {fEditorUsuario: TFrame},
uViewUsuario in 'Usuarios\Views\uViewUsuario.pas' {frViewUsuario: TFrame},
uEditorCambiarPassword in 'Usuarios\Views\uEditorCambiarPassword.pas' {fEditorCambiarPassword},
schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas';
end.

View File

@ -0,0 +1,625 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{14a25028-ec1a-430c-ade3-13c264e9bac2}</ProjectGuid>
<MainSource>ApplicationBase.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\ApplicationBase.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Release\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\Lib</DCC_IncludePath>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib</DCC_ResourcePath>
<DCC_ObjPath>$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib</DCC_ObjPath>
<DCC_IncludePath>$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib</DCC_IncludePath>
<DCC_Define>DEBUG</DCC_Define>
<DCC_Optimize>False</DCC_Optimize>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><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>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">ApplicationBase.dpk</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="ApplicationBase.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="Empresas\Data\uDataModuleEmpresas.pas">
<Form>DataModuleEmpresasObj</Form>
</DCCReference>
<DCCReference Include="Empresas\Model\Data\uIDataModuleEmpresas.pas" />
<DCCReference Include="Empresas\Model\schEmpresasClient_Intf.pas" />
<DCCReference Include="Empresas\Model\schEmpresasServer_Intf.pas" />
<DCCReference Include="Empresas\Model\uBizEmpresas.pas" />
<DCCReference Include="Empresas\Model\uBizEmpresasDatosBancarios.pas" />
<DCCReference Include="Empresas\Views\uEditorDatosBancariosEmpresa.pas" />
<DCCReference Include="Empresas\Views\uEditorEmpresa.pas" />
<DCCReference Include="Empresas\Views\uEmpresasViewRegister.pas" />
<DCCReference Include="Empresas\Views\uViewDatosBancarios.pas" />
<DCCReference Include="Empresas\Views\uViewEmpresa.pas" />
<DCCReference Include="uAdminPV_App.pas" />
<DCCReference Include="Usuarios\Controller\uUsuariosController.pas" />
<DCCReference Include="Usuarios\Controller\View\uIEditorLogin.pas" />
<DCCReference Include="Usuarios\Controller\View\uIEditorPerfilesUsuario.pas" />
<DCCReference Include="Usuarios\Controller\View\uIEditorPerfilUsuario.pas" />
<DCCReference Include="Usuarios\Controller\View\uIEditorUsuario.pas" />
<DCCReference Include="Usuarios\Controller\View\uIEditorUsuarios.pas" />
<DCCReference Include="Usuarios\Data\uDataModuleUsuarios.pas">
<Form>DataModuleUsuarios</Form>
</DCCReference>
<DCCReference Include="Usuarios\Data\uUCROConn.pas" />
<DCCReference Include="Usuarios\Model\BaseD10.dcp" />
<DCCReference Include="Usuarios\Model\Data\uIDataModuleUsuarios.pas" />
<DCCReference Include="Usuarios\Model\dbrtl.dcp" />
<DCCReference Include="Usuarios\Model\pckMD5.dcp" />
<DCCReference Include="Usuarios\Model\pckUserControl_RT.dcp" />
<DCCReference Include="Usuarios\Model\PLuginSDK_D10R.dcp" />
<DCCReference Include="Usuarios\Model\rtl.dcp" />
<DCCReference Include="Usuarios\Model\schUsuariosClient_Intf.pas" />
<DCCReference Include="Usuarios\Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="Usuarios\Model\uBizUsuarios.pas" />
<DCCReference Include="Usuarios\Model\vcl.dcp" />
<DCCReference Include="Usuarios\Views\uEditorCambiarPassword.pas">
<Form>fEditorCambiarPassword</Form>
</DCCReference>
<DCCReference Include="Usuarios\Views\uEditorLogin.pas">
<Form>fEditorLogin</Form>
</DCCReference>
<DCCReference Include="Usuarios\Views\uEditorPerfilesUsuario.pas">
<Form>fEditorPerfilesUsuario</Form>
</DCCReference>
<DCCReference Include="Usuarios\Views\uEditorPerfilUsuario.pas">
<Form>fEditorPerfilUsuario</Form>
</DCCReference>
<DCCReference Include="Usuarios\Views\uEditorUsuario.pas">
<Form>fEditorUsuario</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Usuarios\Views\uEditorUsuarios.pas">
<Form>fEditorUsuarios</Form>
</DCCReference>
<DCCReference Include="Usuarios\Views\uUsuariosViewRegister.pas" />
<DCCReference Include="Usuarios\Views\uViewPerfilesUsuario.pas">
<Form>frViewPerfilesUsuario</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Usuarios\Views\uViewPerfilUsuario.pas">
<Form>frViewPerfilUsuario</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Usuarios\Views\uViewUsuario.pas">
<Form>frViewUsuario</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
<DCCReference Include="Usuarios\Views\uViewUsuarios.pas">
<Form>frViewUsuarios</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
</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=
EurekaLog Last Line -->

View File

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

Binary file not shown.

View File

@ -0,0 +1,22 @@
unit uIEditorLogin;
interface
uses
uEditorBase, uUsuariosController;
type
IEditorLogin = interface
['{96513A0B-679D-4DD6-8821-C99003DAD2A3}']
function ShowModal : Integer;
procedure Release;
function GetController : IUsuariosController;
procedure SetController (const AValue : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorPerfilUsuario;
interface
uses
uEditorDBBase, uBizUsuarios, uUsuariosController;
type
IEditorPerfilUsuario = interface(IEditorDBBase)
['{1DE19CC0-E4FA-4FD7-AE70-6430781CAFE4}']
function GetPerfilUsuario: IBizPerfilUsuario;
procedure SetPerfilUsuario(const Value: IBizPerfilUsuario);
property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario;
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorPerfilesUsuario;
interface
uses
uEditorDBBase, uBizUsuarios, uUsuariosController;
type
IEditorPerfilesUsuario = interface(IEditorDBBase)
['{A4EDC876-8290-4AFF-B307-E935CD750842}']
function GetPerfilesUsuario: IBizPerfilUsuario;
procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario);
property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario;
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
end.

View File

@ -0,0 +1,22 @@
unit uIEditorUsuario;
interface
uses
uEditorDBItem, uUsuariosController, uBizUsuarios;
type
IEditorUsuario = interface(IEditorDBItem)
['{D016C4C2-F204-47AA-9327-00379CFFFB14}']
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
function GetUsuario: IBizUsuario;
procedure SetUsuario(const Value: IBizUsuario);
property Usuario: IBizUsuario read GetUsuario write SetUsuario;
end;
implementation
end.

View File

@ -0,0 +1,23 @@
unit uIEditorUsuarios;
interface
uses
uEditorGridBase, uUsuariosController, uBizUsuarios;
type
IEditorUsuarios = interface(IEditorGridBase)
['{236534A8-F225-4EA0-8917-4228E530C604}']
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
function GetUsuarios: IBizUsuario;
procedure SetUsuarios(const Value: IBizUsuario);
property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios;
end;
implementation
end.

View File

@ -0,0 +1,287 @@
unit uPerfilesUsuarioController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uIDataModuleUsuarios, uBizUsuarios;
type
IPerfilesUsuarioController = interface(IObservador)
['{3D60BC4E-B244-4C08-9A1A-00A7C3B74558}']
function BuscarTodos: IBizPerfilUsuario;
procedure VerTodos;
procedure Ver(const AIDPerfil : Integer);
procedure Anadir(APerfilUsuario : IBizPerfilUsuario);
function Eliminar(APerfilUsuario : IBizPerfilUsuario): Boolean; overload;
function Eliminar(const AIDPerfil : Integer): Boolean; overload;
function Guardar(APerfilUsuario : IBizPerfilUsuario): Boolean;
procedure DescartarCambios(APerfilUsuario : IBizPerfilUsuario);
function Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion:String): Boolean;
function DarListaPerfilesUsuario: TStringList;
end;
TPerfilesUsuarioController = class(TObservador, IPerfilesUsuarioController)
protected
FDataModule : IDataModuleUsuarios;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
//Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de
//este controller
procedure AsignarDataModule; virtual;
procedure ValidarObjetos; virtual;
public
constructor Create; override;
destructor Destroy; override;
function Eliminar(APerfilUsuario : IBizPerfilUsuario): Boolean; overload;
function Eliminar(const AIDPerfil : Integer): Boolean; overload;
function Guardar(APerfilUsuario : IBizPerfilUsuario): Boolean;
procedure DescartarCambios(APerfilUsuario : IBizPerfilUsuario); virtual;
procedure Anadir(APerfilUsuario : IBizPerfilUsuario);
function BuscarTodos: IBizPerfilUsuario;
procedure VerTodos;
procedure Ver(const AIDPerfil : Integer);
function Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion:String): Boolean;
function DarListaPerfilesUsuario: TStringList;
end;
implementation
uses
cxControls, DB, uEditorRegistryUtils,
uDAInterfaces, uDataTableUtils,
uDateUtils, uROTypes, DateUtils, Controls, Windows, schUsuariosClient_Intf,
uDataModuleUsuarios, uIEditorPerfilesUsuario, uIEditorPerfilUsuario;
{ TPerfilesUsuarioController }
procedure TPerfilesUsuarioController.Anadir(APerfilUsuario: IBizPerfilUsuario);
begin
APerfilUsuario.Insert;
end;
procedure TPerfilesUsuarioController.AsignarDataModule;
begin
FDataModule := TDataModuleUsuarios.Create(Nil);
end;
function TPerfilesUsuarioController.BuscarTodos: IBizPerfilUsuario;
begin
Result := FDataModule.GetPerfiles;
end;
constructor TPerfilesUsuarioController.Create;
begin
inherited;
AsignarDataModule;
end;
function TPerfilesUsuarioController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
function TPerfilesUsuarioController.DarListaPerfilesUsuario: TStringList;
var
APerfilesUsuario: IBizPerfilUsuario;
begin
APerfilesUsuario := BuscarTodos;
APerfilesUsuario.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
APerfilesUsuario.DataTable.First;
while not APerfilesUsuario.DataTable.EOF do
begin
Add(APerfilesUsuario.USERNAME);
APerfilesUsuario.DataTable.Next;
end;
end;
finally
APerfilesUsuario := NIL;
end;
end;
procedure TPerfilesUsuarioController.DescartarCambios(APerfilUsuario: IBizPerfilUsuario);
begin
if not Assigned(APerfilUsuario) then
raise Exception.Create ('Perfil no asignado');
ShowHourglassCursor;
try
if (APerfilUsuario.State in dsEditModes) then
APerfilUsuario.Cancel;
APerfilUsuario.DataTable.CancelUpdates;
finally
HideHourglassCursor;
end;
end;
destructor TPerfilesUsuarioController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
function TPerfilesUsuarioController.Eliminar(const AIDPerfil: Integer): Boolean;
begin
end;
procedure TPerfilesUsuarioController.ValidarObjetos;
var
AEditor : IEditorPerfilesUsuario;
APerfilesUsuario: IBizPerfilUsuario;
begin
APerfilesUsuario := FDataModule.GetPerfiles;
if Assigned(APerfilesUsuario) then
begin
APerfilesUsuario.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorPerfilesUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
PerfilesUsuario := APerfilesUsuario;
ShowEmbedded;
end;
finally
AEditor := NIL;
APerfilesUsuario := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TPerfilesUsuarioController.Ver(const AIDPerfil: Integer);
var
AEditor : IEditorPerfilUsuario;
FPerfil : IBizPerfilUsuario;
begin
FPerfil := FDataModule.GetPerfil(AIDPerfil);
if Assigned(FPerfil) then
begin
FPerfil.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorPerfilUsuario', IEditorPerfilUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorPerfilUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
PerfilUsuario := FPerfil;
ShowModal;
Release;
end;
finally
AEditor := NIL;
FPerfil := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TPerfilesUsuarioController.VerTodos;
var
AEditor : IEditorPerfilesUsuario;
APerfilesUsuario: IBizPerfilUsuario;
begin
APerfilesUsuario := FDataModule.GetPerfiles;
if Assigned(APerfilesUsuario) then
begin
APerfilesUsuario.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorPerfilesUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
PerfilesUsuario := APerfilesUsuario;
ShowEmbedded;
end;
finally
AEditor := NIL;
APerfilesUsuario := NIL;
HideHourglassCursor;
end;
end;
end;
function TPerfilesUsuarioController.Eliminar(APerfilUsuario: IBizPerfilUsuario): Boolean;
begin
Result := False;
if not Assigned(APerfilUsuario) then
raise Exception.Create ('Perfil no asignado');
ShowHourglassCursor;
try
if (APerfilUsuario.State in dsEditModes) then
APerfilUsuario.Cancel;
APerfilUsuario.Delete;
APerfilUsuario.DataTable.ApplyUpdates;
HideHourglassCursor;
Result := True;
finally
HideHourglassCursor;
end;
end;
procedure TPerfilesUsuarioController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
//
end;
function TPerfilesUsuarioController.Guardar(APerfilUsuario: IBizPerfilUsuario): Boolean;
begin
Result := False;
if not Assigned(APerfilUsuario) then
raise Exception.Create ('Perfil no asignado');
ValidarObjetos;
ShowHourglassCursor;
try
if (APerfilUsuario.DataTable.State in dsEditModes) then
APerfilUsuario.DataTable.Post;
APerfilUsuario.DataTable.ApplyUpdates;
Result := True;
finally
HideHourglassCursor;
end;
end;
function TPerfilesUsuarioController.Localizar(APerfilesUsuario: IBizPerfilUsuario; ADescripcion: String): Boolean;
begin
Result := True;
ShowHourglassCursor;
try
with APerfilesUsuario.DataTable do
begin
DisableControls;
First;
if not Locate(fld_PERFILESUSERNAME, ADescripcion, []) then
Result := False;
EnableControls;
end;
finally
HideHourglassCursor;
end;
end;
end.

View File

@ -0,0 +1,923 @@
unit uUsuariosController;
interface
uses
Classes, SysUtils, Forms, uDADataTable, uControllerBase,
uIDataModuleUsuarios, uDataModuleUsuarios, UCBase, uBizUsuarios;
type
TUCCriptografia = (ucStandard, ucMD5);
IUsuariosController = interface(IControllerBase)
['{DD963EEC-5880-4DE7-AF55-B5080B538D84}']
procedure Logoff;
function StartLogin : Boolean;
procedure VerUsuarios;
procedure VerPerfiles;
procedure VerUsuario(const AIDUser: Integer); overload;
procedure VerUsuario(AUser : IBizUsuario); overload;
procedure VerPerfil(const AIDPerfil: Integer); overload;
procedure VerPerfil(APerfil : IBizPerfilUsuario); overload;
procedure _ShowUserManager;
procedure _ShowProfileManager;
procedure _ShowLogManager;
procedure _ShowChangePassword;
function ComprobarUsuario(const User : String; const Password: String): Boolean;
function CambiarPassword(const AIDUser: Integer): Boolean;
function GetMaxIntentosLogin: Integer;
procedure SetMaxIntentosLogin(const Value: Integer);
property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin;
function GetCurrentUser: IBizUsuario;
property CurrentUser: IBizUsuario read GetCurrentUser;
function GuardarPerfil(APerfil : IBizPerfilUsuario): Boolean;
function GuardarUsuario(AUser : IBizUsuario): Boolean;
function EliminarUsuario(const AIDUser : integer): Boolean; overload;
function EliminarUsuario(AUser : IBizUsuario): Boolean; overload;
function EliminarPerfil(APerfil : IBizPerfilUsuario): Boolean; overload;
function EliminarPerfil(const AIDPerfil : integer): Boolean; overload;
function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean;
function BuscarUsuario(const AIDUser: Integer): IBizUsuario;
function BuscarTodosUsuarios: IBizUsuario;
function DarListaPerfilesUsuario: TStringList;
function DarListaUsuarios: TStringList;
function ValidarPassword(const APassword : string; const ALogin : String;
const ANombre: String; out AMsg : String): boolean;
function NuevoUsuario : IBizUsuario;
function NuevoPerfil : IBizPerfilUsuario;
function GetCriptografia : TUCCriptografia;
property Criptografia: TUCCriptografia read GetCriptografia;
function GetUsarPasswordsSeguras: Boolean;
procedure SetUsarPasswordsSeguras(const Value: Boolean);
property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras;
{
procedure ChangePassword(IDUser: Integer; NewPassword: String);
procedure AddRight(idUser: Integer; ItemRight: TObject; FullPath: Boolean = True); overload;
procedure AddRight(idUser: Integer; ItemRight: String); overload;
procedure AddRightEX(idUser: Integer; Module, FormName, ObjName: String);
function VerificaLogin(User, Password: String): Boolean;
function GetLocalUserName: String;
function GetLocalComputerName: String;
function AddUser(Login, Password, Name, Mail: String; Profile , UserExpired , DaysExpired : Integer; PrivUser: Boolean): Integer;
function ExisteUsuario(Login: String): Boolean;
property CurrentUser: TUCCurrentUser read FCurrentUser write FCurrentUser;
property CurrentEmpresa : TEmpresaDef read FEmpresaAtual write FEmpresaAtual;
property UserSettings: TUCUserSettings read FUserSettings write SetUserSettings;}
end;
TUsuariosController = class(TControllerBase, IUsuariosController)
private
procedure FiltrarEmpresa(AUsuario: IBizUsuario);
protected
FDataModule : IDataModuleUsuarios;
FUserControl: TUserControl;
FCurrentUser : IBizUsuario;
FUsarPasswordsSeguras : Boolean;
function GetMaxIntentosLogin: Integer;
procedure SetMaxIntentosLogin(const Value: Integer);
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
procedure AsignarDataModule;
procedure InicializarUserControl;
function GetCurrentUser: IBizUsuario;
function AnadirUsuario(AUser : IBizUsuario): Boolean;
function ModificarUsuario(AUser : IBizUsuario): Boolean;
function AnadirPerfil(APerfil : IBizPerfilUsuario): Boolean;
function ModificarPerfil(APerfil : IBizPerfilUsuario): Boolean;
function ValidarUsuario(AUser: IBizUsuario): Boolean;
function ValidarPerfil(APerfil: IBizPerfilUsuario): Boolean;
function GetCriptografia : TUCCriptografia;
function CambiarPassword(const AIDUser: Integer; const ANewPassword: String): Boolean; overload;
function GetUsarPasswordsSeguras: Boolean;
procedure SetUsarPasswordsSeguras(const Value: Boolean);
public
constructor Create; virtual;
destructor Destroy; override;
procedure Logoff;
function StartLogin : Boolean;
procedure VerUsuarios;
procedure VerPerfiles;
procedure VerUsuario(const AIDUser: Integer); overload;
procedure VerUsuario(AUser : IBizUsuario); overload;
procedure VerPerfil(const AIDPerfil: Integer); overload;
procedure VerPerfil(APerfil : IBizPerfilUsuario); overload;
procedure _ShowUserManager;
procedure _ShowProfileManager;
procedure _ShowLogManager;
procedure _ShowChangePassword;
function ComprobarUsuario(const User : String; const Password: String): Boolean;
function CambiarPassword(const AIDUser: Integer): Boolean; overload;
function EliminarUsuario(const AIDUser : integer): Boolean; overload;
function EliminarUsuario(AUser : IBizUsuario): Boolean; overload;
function EliminarPerfil(APerfil : IBizPerfilUsuario): Boolean; overload;
function EliminarPerfil(const AIDPerfil : integer): Boolean; overload;
function NuevoUsuario : IBizUsuario;
function NuevoPerfil : IBizPerfilUsuario;
function GuardarPerfil(APerfil : IBizPerfilUsuario): Boolean;
function GuardarUsuario(AUser : IBizUsuario): Boolean;
function BuscarUsuario(const AIDUser: Integer): IBizUsuario;
function BuscarTodosUsuarios: IBizUsuario;
function DarListaPerfilesUsuario: TStringList;
function DarListaUsuarios: TStringList;
function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean;
function ValidarPassword(const APassword : string; const ALogin : String;
const ANombre: String; out AMsg : String): boolean;
property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras;
property UserControl : TUserControl read FUserControl;
property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin;
property CurrentUser: IBizUsuario read GetCurrentUser;
property Criptografia: TUCCriptografia read GetCriptografia;
end;
implementation
uses
cxControls, DB, uEditorRegistryUtils, schUsuariosClient_Intf,
uDAInterfaces, uDataTableUtils, uDialogUtils, uAdminPV_App, Dialogs,
uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorLogin,
uIEditorUsuarios, uIEditorUsuario, uIEditorPerfilesUsuario,
uIEditorPerfilUsuario, uEditorCambiarPassword;
{ TUsuariosController }
function TUsuariosController.AnadirPerfil(APerfil: IBizPerfilUsuario): Boolean;
function GetNewIdUser: Integer;
var
TempDs: TDataset;
begin
with FUserControl do
TempDS := DataConnector.UCGetSQLDataSet('SELECT ' + TableUsers.FieldUserID + ' as MaxUserID from ' + TableUsers.TableName +
' ORDER BY ' + TableUsers.FieldUserID + ' DESC');
Result := TempDs.FieldByName('MaxUserID').AsInteger + 1;
TempDS.Close;
FreeAndNil(TempDS);
end;
var
ANuevoID : Integer;
begin
Result := False;
if not Assigned(APerfil) then
raise Exception.Create('No hay perfil asignado (AnadirPerfil)');
if ValidarPerfil(APerfil) then
begin
ShowHourglassCursor;
try
ANuevoID := GetNewIdUser;
with FUserControl do
begin
DataConnector.UCExecSQL(Format('INSERT INTO %s(%s, %s, %s) Values(%d,%s,%s)',
[TableUsers.TableName,
TableUsers.FieldUserID,
TableUsers.FieldUserName,
TableUsers.FieldTypeRec,
ANuevoID,
QuotedStr(APerfil.USERNAME),
QuotedStr('P')]));
end;
Result := (ANuevoID > 0);
if Result then
begin
APerfil.Edit;
APerfil.ID := ANuevoID;
APerfil.Post;
end;
finally
HideHourglassCursor;
end;
end;
end;
function TUsuariosController.AnadirUsuario(AUser: IBizUsuario): Boolean;
var
ANuevoID : Integer;
begin
Result := False;
if not Assigned(AUser) then
raise Exception.Create('No hay usuario asignado (AnadirUsuario)');
if FUserControl.ExisteUsuario(AUser.LOGIN) then
begin
MessageDlg(Format(FUserControl.UserSettings.CommonMessages.UsuarioExiste, [AUser.LOGIN]), mtWarning, [mbOK], 0);
Exit;
end;
if ValidarUsuario(AUser) then
begin
ShowHourglassCursor;
try
ANuevoID := FUserControl.AddUser(AUser.LOGIN, AUser.PASS, AUser.USERNAME, AUser.EMAIL,
AUser.ID_PERFIL, AUser.BLOQUEADO, AUser.USERDAYSSUN, (AUser.PRIVILEGED = 1));
Result := (ANuevoID > 0);
if Result then
begin
AUser.Edit;
AUser.ID := ANuevoID;
AUser.Post;
end;
{ TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 }
{if (Assigned(MailUserControl)) and (MailUserControl.AdicionaUsuario.Ativo) then
try
MailUserControl.EnviaEmailAdicionaUsuario(vNome, vLogin, Encrypt(vNovaSenha, EncryptKey), vEmail, IntToStr(vPerfil), EncryptKey);
except
on E: Exception do
Log(E.Message, llMedio);
end;}
finally
HideHourglassCursor;
end;
end;
end;
procedure TUsuariosController.AsignarDataModule;
begin
FDataModule := TDataModuleUsuarios.Create(Nil);
end;
function TUsuariosController.BuscarTodosUsuarios: IBizUsuario;
begin
Result := FDataModule.GetUsuarios;
FiltrarEmpresa(Result);
end;
function TUsuariosController.BuscarUsuario(const AIDUser: Integer): IBizUsuario;
begin
Result := FDataModule.GetUsuario(AIDUser);
FiltrarEmpresa(Result);
end;
function TUsuariosController.CambiarPassword(const AIDUser: Integer;
const ANewPassword: String): Boolean;
begin
FUserControl.ChangePassword(AIDUser, ANewPassword);
Result := True;
end;
function TUsuariosController.CambiarPassword(const AIDUser: Integer) : Boolean;
var
AUser : IBizUsuario;
AEditorCambiar : TfEditorCambiarPassword;
begin
AUser := FDataModule.GetUsuario(AIDUser);
if Assigned(AUser) then
begin
AUser.Active := True;
AEditorCambiar := TfEditorCambiarPassword.Create(NIL);
with AEditorCambiar do
try
Controller := Self;
Usuario := AUser;
CambioObligatorio := False;
if (Length(Trim(AUser.PASS)) = 0) then
EditAtu.Enabled := False;
if (ShowModal = mrOk) then
Result := CambiarPassword(AIDUser, EditNova.Text);
finally
Release;
AUser.Active := False;
AUser := NIL;
end;
end;
end;
function TUsuariosController.ComprobarUsuario(const User,
Password: String): Boolean;
begin
Result := FUserControl.VerificaLogin(User, Password);
if not Result then
begin
if User = 'admin' then
begin
if not FUserControl.ExisteUsuario('admin') then
begin
FUserControl.AddUser('admin', '1', 'Administrador', 'admin@correo.net', 0, 0 , 30, True);
Result := ComprobarUsuario(User, Password);
end;
end;
end;
end;
constructor TUsuariosController.Create;
begin
AsignarDataModule;
FCurrentUser := NIL;
FUserControl := TUserControl.Create(nil);
FUsarPasswordsSeguras := False;
InicializarUserControl;
end;
function TUsuariosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
function TUsuariosController.DarListaPerfilesUsuario: TStringList;
var
APerfilesUsuario: IBizPerfilUsuario;
i : integer;
begin
APerfilesUsuario := FDataModule.GetPerfiles;
APerfilesUsuario.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
APerfilesUsuario.DataTable.First;
while not APerfilesUsuario.DataTable.EOF do
begin
Add(Format('%s=%d', [APerfilesUsuario.USERNAME, APerfilesUsuario.ID]));
APerfilesUsuario.DataTable.Next;
end;
end;
finally
APerfilesUsuario := NIL;
end;
end;
function TUsuariosController.DarListaUsuarios: TStringList;
var
AUsuarios: IBizUsuario;
i : integer;
begin
AUsuarios := FDataModule.GetUsuarios;
AUsuarios.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
AUsuarios.DataTable.First;
while not AUsuarios.DataTable.EOF do
begin
Add(Format('%s=%d', [AUsuarios.USERNAME, AUsuarios.ID]));
AUsuarios.DataTable.Next;
end;
end;
finally
AUsuarios := NIL;
end;
end;
destructor TUsuariosController.Destroy;
begin
FreeAndNIL(FUserControl);
FDataModule := NIL;
inherited;
end;
function TUsuariosController.EliminarPerfil(
APerfil: IBizPerfilUsuario): Boolean;
var
CanDelete: Boolean;
ErrorMsg: String;
begin
Result := False;
if not Assigned(APerfil) then
raise Exception.Create('No hay perfil asignado (EliminarPerfil)');
if not APerfil.Active then
APerfil.Active := True;
if APerfil.DataTable.RecordCount = 0 then
Exit;
if HayUsuarioConPerfil(APerfil.ID) then
begin
//changed by fduenas: PromptDelete_WindowCaption
if MessageBox(Application.Handle, PChar(Format(FUserControl.UserSettings.UsersProfile.PromptDelete, [APerfil.USERNAME])),
PChar(FUserControl.UserSettings.UsersProfile.PromptDelete_WindowCaption), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> idYes then
Exit;
end;
CanDelete := True;
if Assigned(FUserControl.onDeleteProfile) then
FUserControl.onDeleteProfile(NIL, APerfil.ID, CanDelete, ErrorMsg);
if not CanDelete then
begin
MessageDlg(ErrorMSG, mtWarning, [mbOK], 0);
Exit;
end;
with FUserControl do
begin
DataConnector.UCExecSQL('Delete from ' + TableUsers.TableName + ' where ' + TableUsers.FieldUserID + ' = ' + IntToStr(APerfil.ID));
DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + ' where ' + TableRights.FieldUserID + ' = ' + IntToStr(APerfil.ID));
DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + 'EX where ' + TableRights.FieldUserID + ' = ' + IntToStr(APerfil.ID));
DataConnector.UCExecSQL('Update ' + TableUsers.TableName +
' Set ' + TableUsers.FieldProfile + ' = null where ' + TableUsers.FieldUserID + ' = ' + IntToStr(APerfil.ID));
end;
Result := True;
end;
function TUsuariosController.EliminarPerfil(const AIDPerfil: integer): Boolean;
begin
Result := EliminarPerfil(FDataModule.GetPerfil(AIDPerfil));
end;
function TUsuariosController.EliminarUsuario(AUser: IBizUsuario): Boolean;
begin
if not Assigned(AUser) then
raise Exception.Create('No hay usuario asignado (EliminarUsuario)');
if not AUser.Active then
AUser.Active := True;
if AUser.DataTable.RecordCount > 0 then
Result := EliminarUsuario(AUser.ID);
end;
function TUsuariosController.EliminarUsuario(const AIDUser: integer): Boolean;
begin
FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableRights.TableName + ' where ' + FUserControl.TableRights.FieldUserID + ' = ' + IntToStr(AIDUser));
FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableUsers.TableName + ' where ' + FUserControl.TableUsers.FieldUserID + ' = ' + IntToStr(AIDUser));
Result := True;
end;
function TUsuariosController.GetCriptografia: TUCCriptografia;
begin
case FUserControl.Criptografia of
cPadrao: Result := ucStandard;
cMD5: Result := ucMD5;
end;
end;
function TUsuariosController.GetCurrentUser: IBizUsuario;
begin
if not Assigned(FCurrentUser) or (FCurrentUser.ID <> FUserControl.CurrentUser.UserID) then
FCurrentUser := BuscarUsuario(FUserControl.CurrentUser.UserID);
if not FCurrentUser.Active then
FCurrentUser.Active := True;
Result := FCurrentUser;
end;
function TUsuariosController.GetMaxIntentosLogin: Integer;
begin
Result := FUserControl.Login.MaxLoginAttempts;
end;
function TUsuariosController.GetUsarPasswordsSeguras: Boolean;
begin
Result := FUsarPasswordsSeguras;
end;
function TUsuariosController.GuardarPerfil(APerfil: IBizPerfilUsuario): Boolean;
begin
Result := False;
if not Assigned(APerfil) then
raise Exception.Create('No hay perfil asignado (GuardarPerfil)');
if APerfil.EsNuevo then
Result := AnadirPerfil(APerfil)
else
Result := ModificarPerfil(APerfil);
end;
function TUsuariosController.GuardarUsuario(AUser: IBizUsuario): Boolean;
begin
Result := False;
if not Assigned(AUser) then
raise Exception.Create('No hay usuario asignado (GuardarUsuario)');
if AUser.EsNuevo then
Result := AnadirUsuario(AUser)
else
Result := ModificarUsuario(AUser);
end;
function TUsuariosController.HayUsuarioConPerfil(
const AIDPerfil: integer): Boolean;
var
TempDS: TDataset;
begin
Result := False;
try
TempDS := FUserControl.DataConnector.UCGetSQLDataset('Select ' + FUserControl.TableUsers.FieldUserID + ' as IdUser from ' +
FUserControl.TableUsers.TableName +
' Where ' + FUserControl.TableUsers.FieldTypeRec + ' = ' + QuotedStr('U') +
' AND ' + FUserControl.TableUsers.FieldProfile + ' = ' + IntToStr(AIDPerfil));
Result := (TempDS.FieldByName('IdUser').AsInteger > 0);
TempDS.Close;
finally
FreeAndNil(TempDS);
end;
end;
procedure TUsuariosController.InicializarUserControl;
begin
with FUserControl do
begin
ApplicationID := Application.ExeName;
AutoStart := False;
Criptografia := cMD5;
CheckValidationKey := True;
Login.MaxLoginAttempts := 3;
UserPasswordChange.ForcePassword := True;
UserPasswordChange.MinPasswordLength := 3;
end;
FDataModule.InicializarUserControl(FUserControl);
end;
procedure TUsuariosController.Logoff;
begin
FUserControl.Logoff;
end;
function TUsuariosController.ModificarPerfil(
APerfil: IBizPerfilUsuario): Boolean;
begin
Result := False;
if not Assigned(APerfil) then
raise Exception.Create('No hay perfil asignado (ModificarPerfil)');
if ValidarPerfil(APerfil) then
begin
ShowHourglassCursor;
try
with FUserControl do
begin
DataConnector.UCExecSQL(Format('UPDATE %s SET %s = %s WHERE %s = %d',
[TableUsers.TableName,
TableUsers.FieldUserName,
QuotedStr(APerfil.USERNAME),
TableUsers.FieldUserID,
APerfil.ID]));
end;
Result := True;
finally
HideHourglassCursor;
end;
end;
end;
function TUsuariosController.ModificarUsuario(AUser: IBizUsuario): Boolean;
begin
Result := False;
if not Assigned(AUser) then
raise Exception.Create('No hay usuario asignado (ModificarUsuario)');
if ValidarUsuario(AUser) then
begin
ShowHourglassCursor;
try
FUserControl.ChangeUser(AUser.ID, AUser.LOGIN, AUser.USERNAME, AUser.EMAIL,
AUser.ID_PERFIL, AUser.BLOQUEADO , AUser.USERDAYSSUN, (AUser.PRIVILEGED = 1));
Result := True;
{ TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 }
{if (Assigned(MailUserControl)) and (MailUserControl.AlteraUsuario.Ativo) then
try
MailUserControl.EnviaEmailAlteraUsuario(vNome,
vLogin,
TfrmCadastrarUsuario(Self.Owner).FDataSetCadastroUsuario.FieldByName('SENHA').AsString,
vEmail,
IntToStr(vPerfil),
EncryptKey);
except
on E: Exception do
Log(E.Message, 2);
end;}
finally
HideHourglassCursor;
end;
end;
end;
function TUsuariosController.NuevoPerfil: IBizPerfilUsuario;
var
APerfil : IBizPerfilUsuario;
begin
APerfil := FDataModule.NuevoPerfil;
APerfil.DataTable.Active := True;
APerfil.Insert;
Result := APerfil;
end;
function TUsuariosController.NuevoUsuario: IBizUsuario;
var
AUsuario : IBizUsuario;
begin
AUsuario := FDataModule.NuevoUsuario;
AUsuario.DataTable.Active := True;
AUsuario.Insert;
Result := AUsuario;
end;
procedure TUsuariosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
//
end;
procedure TUsuariosController.SetMaxIntentosLogin(const Value: Integer);
begin
FUserControl.Login.MaxLoginAttempts := Value;
end;
procedure TUsuariosController.SetUsarPasswordsSeguras(const Value: Boolean);
begin
FUsarPasswordsSeguras := Value;
end;
procedure TUsuariosController._ShowChangePassword;
begin
FUserControl.ShowChangePassword;
end;
procedure TUsuariosController._ShowLogManager;
begin
FUserControl.ShowLogManager;
end;
procedure TUsuariosController._ShowProfileManager;
begin
FUserControl.ShowProfileManager;
end;
function TUsuariosController.ValidarPassword(const APassword : string;
const ALogin : String; const ANombre: String; out AMsg : String): boolean;
begin
Result := False;
AMsg := '';
if (FUserControl.UserPasswordChange.ForcePassword) and (Length(Trim(APassword)) = 0) then
AMsg := FUserControl.UserSettings.CommonMessages.ChangePasswordError.PasswordRequired
else
if (Length(Trim(APassword)) < FUserControl.UserPasswordChange.MinPasswordLength) then
AMsg := Format(FUserControl.UserSettings.CommonMessages.ChangePasswordError.MinPasswordLength, [FUserControl.UserPasswordChange.MinPasswordLength])
else
if FUsarPasswordsSeguras and (Pos(LowerCase(APassword), 'abcdeasdfqwerzxcv1234567890321654987test' + LowerCase(ALogin) + LowerCase(AMsg)) > 0) then
AMsg := FUserControl.UserSettings.CommonMessages.ChangePasswordError.InvalidNewPassword
else
Result := true;
end;
function TUsuariosController.ValidarPerfil(APerfil: IBizPerfilUsuario): Boolean;
begin
Result := False;
if not Assigned(APerfil) then
raise Exception.Create ('Perfil no asignado (ValidarPerfil)');
if (APerfil.DataTable.State in dsEditModes) then
APerfil.DataTable.Post;
if Length(APerfil.USERNAME) = 0 then
raise Exception.Create('Debe indicar el nombre del perfil.');
Result := True;
end;
function TUsuariosController.ValidarUsuario(AUser: IBizUsuario): Boolean;
begin
Result := False;
if not Assigned(AUser) then
raise Exception.Create ('Usuario no asignado (ValidarUsuario)');
if (AUser.DataTable.State in dsEditModes) then
AUser.DataTable.Post;
if Length(AUser.USERNAME) = 0 then
raise Exception.Create('Debe indicar el nombre completo del usuario.');
if Length(AUser.LOGIN) = 0 then
raise Exception.Create('Debe indicar un login para el usuario.');
Result := True;
end;
procedure TUsuariosController.VerPerfil(const AIDPerfil: Integer);
var
FPerfil : IBizPerfilUsuario;
begin
FPerfil := FDataModule.GetPerfil(AIDPerfil);
VerPerfil(FPerfil);
end;
procedure TUsuariosController.VerPerfil(APerfil: IBizPerfilUsuario);
var
AEditor : IEditorPerfilUsuario;
begin
if not Assigned(APerfil) then
raise Exception.Create('Perfil no asignado (VerPerfil)');
APerfil.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorPerfilUsuario', IEditorPerfilUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorPerfilUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
PerfilUsuario := APerfil;
ShowModal;
Release;
end;
finally
AEditor := NIL;
HideHourglassCursor;
end;
end;
procedure TUsuariosController.VerPerfiles;
var
AEditor : IEditorPerfilesUsuario;
APerfilesUsuario: IBizPerfilUsuario;
begin
APerfilesUsuario := FDataModule.GetPerfiles;
if Assigned(APerfilesUsuario) then
begin
APerfilesUsuario.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorPerfilesUsuario', IEditorPerfilesUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorPerfilesUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
PerfilesUsuario := APerfilesUsuario;
ShowEmbedded;
end;
finally
AEditor := NIL;
APerfilesUsuario := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TUsuariosController.VerUsuario(const AIDUser: Integer);
var
FUsuario : IBizUsuario;
begin
FUsuario := FDataModule.GetUsuario(AIDUser);
VerUsuario(FUsuario);
end;
procedure TUsuariosController.VerUsuario(AUser: IBizUsuario);
var
AEditor : IEditorUsuario;
begin
if not Assigned(AUser) then
raise Exception.Create('Usuario no asignado (VerUsuario)');
AUser.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorUsuario', IEditorUsuario, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorUsuario) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Usuario := AUser;
ShowModal;
Release;
end;
finally
AEditor := NIL;
HideHourglassCursor;
end;
end;
procedure TUsuariosController.VerUsuarios;
var
AEditor : IEditorUsuarios;
FUsuarios : IBizUsuario;
begin
FUsuarios := FDataModule.GetUsuarios;
if Assigned(FUsuarios) then
begin
FUsuarios.Active := True;
ShowHourglassCursor;
try
CreateEditor('EditorUsuarios', IEditorUsuarios, AEditor);
if Assigned(AEditor) then
with (AEditor as IEditorUsuarios) do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Usuarios := FUsuarios;
ShowEmbedded;
end;
finally
AEditor := NIL;
FUsuarios := NIL;
HideHourglassCursor;
end;
end;
end;
procedure TUsuariosController._ShowUserManager;
begin
FUserControl.ShowUserManager;
end;
function TUsuariosController.StartLogin : Boolean;
var
AEditor : IEditorLogin;
begin
Result := False;
AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorLogin', IEditorLogin, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
Controller := Self;
Result := (AEditor.ShowModal = mrOk);
Release;
end;
finally
AEditor := NIL;
HideHourglassCursor;
end;
end;
procedure TUsuariosController.FiltrarEmpresa(AUsuario: IBizUsuario);
var
Condicion: TDAWhereExpression;
begin
// AQUI HAY QUE TENER EN CUENTA QUE UN USUARIO PUEDE QUE NO TENGA ACCESO
// EN UNA DETERMINADA EMPRESA
{ if AUsuario.DataTable.Active then
AUsuario.DataTable.Active := False;
// Filtrar los contactos actuales por empresa
with AUsuario.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewField('', fld_U
ContactosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;}
end;
end.

View File

@ -0,0 +1,426 @@
inherited DataModuleUsuarios: TDataModuleUsuarios
OnCreate = DataModuleCreate
Height = 215
Width = 331
object srvUsuarios: TRORemoteService
Message = dmBase.ROMessage
Channel = dmBase.ROChannel
ServiceName = 'srvUsuarios'
Left = 40
Top = 80
end
object UCSettingsSpanish: TUCSettings
AppMessages.MsgsForm_BtNew = '&Nuevo Mensaje'
AppMessages.MsgsForm_BtReplay = '&Responder'
AppMessages.MsgsForm_BtForward = '&Reenviar'
AppMessages.MsgsForm_BtDelete = '&Borrar'
AppMessages.MsgsForm_BtClose = '&Cerrar'
AppMessages.MsgsForm_WindowCaption = 'Mensajes de Sistema'
AppMessages.MsgsForm_ColFrom = 'Remitente'
AppMessages.MsgsForm_ColSubject = 'Asunto'
AppMessages.MsgsForm_ColDate = 'Fecha'
AppMessages.MsgsForm_PromptDelete = #191'Est'#225' seguro de eliminar los mensajes seleccionados?'
AppMessages.MsgsForm_PromptDelete_WindowCaption = 'Eliminar mensajes'
AppMessages.MsgsForm_NoMessagesSelected = '!Ning'#250'n mensaje seleccionado'#161
AppMessages.MsgsForm_NoMessagesSelected_WindowCaption = 'Informaci'#243'n'
AppMessages.MsgRec_BtClose = '&Cerrar'
AppMessages.MsgRec_WindowCaption = 'Mensaje'
AppMessages.MsgRec_Title = 'Mensaje Recibido'
AppMessages.MsgRec_LabelFrom = 'De:'
AppMessages.MsgRec_LabelDate = 'Fecha'
AppMessages.MsgRec_LabelSubject = 'Asunto'
AppMessages.MsgRec_LabelMessage = 'Mensaje'
AppMessages.MsgSend_BtSend = '&Enviar'
AppMessages.MsgSend_BtCancel = '&Cancelar'
AppMessages.MsgSend_WindowCaption = 'Mensaje'
AppMessages.MsgSend_Title = 'Enviar Nuevo Mensaje'
AppMessages.MsgSend_GroupTo = 'Para:'
AppMessages.MsgSend_RadioUser = 'Usuario:'
AppMessages.MsgSend_RadioAll = 'Todos'
AppMessages.MsgSend_GroupMessage = 'Mensaje'
AppMessages.MsgSend_LabelSubject = 'Asunto'
AppMessages.MsgSend_LabelMessageText = 'Texto del mensaje'
CommonMessages.AutoLogonError =
'Error de Ingreso Autom'#225'tico!'#13#10'Especifique un Usuario y Contrase'#241 +
'a V'#225'lidos.'
CommonMessages.ChangePasswordError.InvalidCurrentPassword = #161'Contrase'#241'a Actual Incorrecta!'
CommonMessages.ChangePasswordError.NewPasswordError =
'Los campos Contrase'#241'a Nueva y Confirme Contrase'#241'a deben ser igua' +
'les'
CommonMessages.ChangePasswordError.NewEqualCurrent = 'Nueva Contrase'#241'a y Contrase'#241'a Actual deben ser diferentes'
CommonMessages.ChangePasswordError.PasswordRequired = #161'La Contrase'#241'a es obligatoria!'
CommonMessages.ChangePasswordError.MinPasswordLength = 'La Contrase'#241'a debe tener un m'#237'nimo de %d caracteres'
CommonMessages.ChangePasswordError.InvalidNewPassword = #161'Prohibido utilizar contrase'#241'as NO Seguras!'
CommonMessages.InvalidLogin = 'Usuario y/o Contrase'#241'a Incorrectos!'
CommonMessages.InitialMessage.Strings = (
'ATENCION! Conecci'#243'n Inicial:'
''
'Usuario : :user'
'Contrase'#241'a : :password'
''
'Defina permisos para este usuario')
CommonMessages.MaxLoginAttemptsError = '%d Intentos de conecci'#243'n inv'#225'lidos !'
CommonMessages.PasswordChanged = #161'Se ha cambiado la Contrase'#241'a con '#233'xito!'
CommonMessages.BlankPassword = 'Contrase'#241'a vac'#237'a para el Usuario %s'
CommonMessages.UsuarioExiste = 'O Usu'#225'rio "%s" j'#225' est'#225' cadastrado no sistema !!'
CommonMessages.PasswordExpired = 'Aten'#231#227'o, sua senha expirou, favor troca-la'
CommonMessages.ForcaTrocaSenha = 'Mudan'#231'a de senha obrigat'#243'ria'
Login.WindowCaption = 'Conecci'#243'n'
Login.LabelUser = 'Usuario: '
Login.LabelPassword = 'Contrase'#241'a:'
Login.BtOk = 'Aceptar'
Login.BtCancel = '&Cancelar'
Login.LeftImage.Data = {
07544269746D617016090000424D160900000000000036040000280000003200
0000180000000100080000000000E00400000000000000000000000100000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020
E00000400000004020000040400000406000004080000040A0000040C0000040
E00000600000006020000060400000606000006080000060A0000060C0000060
E00000800000008020000080400000806000008080000080A0000080C0000080
E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0
E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0
E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0
E00040000000400020004000400040006000400080004000A0004000C0004000
E00040200000402020004020400040206000402080004020A0004020C0004020
E00040400000404020004040400040406000404080004040A0004040C0004040
E00040600000406020004060400040606000406080004060A0004060C0004060
E00040800000408020004080400040806000408080004080A0004080C0004080
E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0
E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0
E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0
E00080000000800020008000400080006000800080008000A0008000C0008000
E00080200000802020008020400080206000802080008020A0008020C0008020
E00080400000804020008040400080406000804080008040A0008040C0008040
E00080600000806020008060400080606000806080008060A0008060C0008060
E00080800000808020008080400080806000808080008080A0008080C0008080
E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0
E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0
E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0
E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000
E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020
E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040
E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060
E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080
E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0
E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0
A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD525252525252525252525252
5252FDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDAFB75E5E5E66666767676F6F6F6FB752FDFDFDFDFD0000FDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF
BFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6FB7B7B7B7B7776F5EB752FD
FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6F6FB7B7
B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD
0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAF
B76767676F6F6FB7B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBF
BFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDAFB76767676F6F6F6FB7B7776F5EB752FDFDFDFDFD0000FDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF
BFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBFB7AFAFB7B7B7B7BFBFBFBFB7B752FD
FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDAFB76F675E5E5E5E5E5E676FB7A5FDFDFDFDFDFD0000FDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFD
FDFDA4F7A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD
0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F7A4FDFDFDFDFDFDF707
A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDF707A49AFDFDFDFDA30707A3FDFDFDFDFDFDFD0000FDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6A4
A49B9A9AA3A407079AFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6F7F7A4A4F70707A3FDFDFDFD
FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDF7F6F6F6F6F607A3FDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7A3A3A3
A3A3FDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
0000}
Login.LabelTentativa = 'Tentativa : '
Login.LabelTentativas = 'M'#225'ximo de Tentativas : '
Log.WindowCaption = 'Seguridad'
Log.LabelDescription = 'Visor de Eventos'
Log.LabelUser = 'Usuario:'
Log.LabelDate = 'Fecha:'
Log.LabelLevel = 'Nivel M'#237'nimo: '
Log.ColAppID = 'AppID'
Log.ColLevel = 'Nivel'
Log.ColMessage = 'Mensaje'
Log.ColUser = 'Usuario'
Log.ColDate = 'Fecha'
Log.BtFilter = '&Aplicar Filtro'
Log.BtDelete = '&Borrar Bit'#225'cora'
Log.BtClose = '&Cerrar'
Log.PromptDelete =
#191'Est'#225' seguro de Eliminar todos todos los registros de Bit'#225'cora s' +
'eleccionados?'
Log.PromptDelete_WindowCaption = 'Confirmaci'#243'n'
Log.OptionUserAll = 'Todos'
Log.OptionLevelLow = 'Bajo'
Log.OptionLevelNormal = 'Normal'
Log.OptionLevelHigh = 'Alto'
Log.OptionLevelCritic = 'Cr'#237'tico'
Log.DeletePerformed =
'Borrado de registros de bit'#225'cora realizado: Usuario = "%s" | Fec' +
'ha = %s a %s | Nivel <= %s'
UsersForm.WindowCaption = 'Seguridad'
UsersForm.LabelDescription = 'Administraci'#243'n de Usuarios'
UsersForm.ColName = 'Nombre'
UsersForm.ColLogin = 'Usuario'
UsersForm.ColEmail = 'Correo'
UsersForm.BtAdd = '&Nuevo'
UsersForm.BtChange = '&Editar'
UsersForm.BtDelete = 'E&liminar'
UsersForm.PromptDelete = #191'Est'#225' seguro de Eliminar al Usuario "%s"?'
UsersForm.PromptDelete_WindowCaption = 'Eliminar usuario'
UsersForm.BtRights = '&Accesos'
UsersForm.BtPassword = 'C&ontrase'#241'a'
UsersForm.BtClose = '&Cerrar'
AddChangeUser.WindowCaption = 'Administraci'#243'n de Usuarios'
AddChangeUser.LabelAdd = 'Nuevo Usuario'
AddChangeUser.LabelChange = 'Editar Usuario'
AddChangeUser.LabelName = 'Nombre:'
AddChangeUser.LabelLogin = 'Usuario: '
AddChangeUser.LabelEmail = 'Correo: '
AddChangeUser.LabelPerfil = 'Perfil: '
AddChangeUser.CheckPrivileged = 'Usuario Privilegiado'
AddChangeUser.BtSave = '&Guardar'
AddChangeUser.BtCancel = 'Cancelar'
AddChangeUser.CheckExpira = 'Senha do usu'#225'rio n'#227'o expira'
AddChangeUser.Day = 'Dias'
AddChangeUser.ExpiredIn = 'Expira em'
AddChangeProfile.WindowCaption = 'Perfiles de Usuarios'
AddChangeProfile.LabelAdd = 'Nuevo Perfil'
AddChangeProfile.LabelChange = 'Editar Perfil'
AddChangeProfile.LabelName = 'Descripci'#243'n: '
AddChangeProfile.BtSave = '&Guardar'
AddChangeProfile.BtCancel = 'Cancelar'
UsersProfile.WindowCaption = 'Seguridad'
UsersProfile.LabelDescription = 'Perfil de Usuario'
UsersProfile.ColProfile = 'Perfil'
UsersProfile.BtAdd = '&Nuevo'
UsersProfile.BtChange = '&Editar'
UsersProfile.BtDelete = 'E&liminar'
UsersProfile.BtRights = '&Accesos'
UsersProfile.PromptDelete =
'Existe(n) usuario(s) con el Perfil "%s". '#191'Est'#225' seguro de elimina' +
'r el perfil?'
UsersProfile.PromptDelete_WindowCaption = 'Eliminar perfil'
UsersProfile.BtClose = '&Cerrar'
Rights.WindowCaption = 'Seguridad'
Rights.LabelUser = 'Permisos de Usuario : '
Rights.LabelProfile = 'Permisos del Perfil : '
Rights.PageMenu = 'Elementos del Men'#250
Rights.PageActions = 'Acciones'
Rights.PageControls = 'Controles'
Rights.BtUnlock = '&Permitir'
Rights.BtLock = '&Bloquear'
Rights.BtSave = '&Guardar'
Rights.BtCancel = '&Cancelar'
ChangePassword.WindowCaption = 'Seguridad'
ChangePassword.LabelDescription = 'Cambiar Contrase'#241'a'
ChangePassword.LabelCurrentPassword = 'Contrase'#241'a Actual:'
ChangePassword.LabelNewPassword = 'Nueva Contrase'#241'a:'
ChangePassword.LabelConfirm = 'Confirme Contrase'#241'a:'
ChangePassword.BtSave = '&Guardar'
ChangePassword.BtCancel = 'Cancelar'
ResetPassword.WindowCaption = 'Ingrese Contrase'#241'a de Usuario: "%s"'
ResetPassword.LabelPassword = 'Contrase'#241'a: '
History.Evento_Insert = 'Nuevo'
History.Evento_Delete = 'Eliminar'
History.Evento_Edit = 'Editar'
History.Evento_NewRecord = 'Nuevo registro'
History.Hist_All = 'Todos'
History.Msg_LimpHistorico = 'Excluir el contenido entero del hist'#243'rico ?'
History.Msg_MensConfirma = 'Confirme'
History.Msg_LogEmptyHistory = 'El usuario %s borra la historia de mesa en %s '
History.LabelDescricao = 'Hist'#243'rico de tabelas'
History.LabelUser = 'Usuario'
History.LabelForm = 'Formul'#225'rio'
History.LabelEvento = 'Evento'
History.LabelTabela = 'Tabela'
History.LabelDataEvento = 'Data'
History.LabelHoraEvento = 'Hora'
History.Msg_NewRecord = '%s Inserte el nuevo registro'
History.Hist_MsgExceptPropr = 'Por favor informe la propiedad %s'
History.Hist_BtnFiltro = '&Aplicar Filtro'
History.Hist_BtnExcluir = '&Borrar Hist'#243'rico'
History.Hist_BtnFechar = '&Cerrar'
TypeFieldsDB.Type_VarChar = 'VarChar'
TypeFieldsDB.Type_Char = 'Char'
TypeFieldsDB.Type_Int = 'Int'
TypeFieldsDB.Type_MemoField = 'BLOB SUB_TYPE 1 SEGMENT SIZE 1024'
Language = ucSpanish
Left = 40
Top = 16
end
object rda_Usuarios: TDARemoteDataAdapter
GetSchemaCall.RemoteService = srvUsuarios
GetDataCall.RemoteService = srvUsuarios
UpdateDataCall.RemoteService = srvUsuarios
GetScriptsCall.RemoteService = srvUsuarios
RemoteService = srvUsuarios
DataStreamer = Bin2DataStreamer
Left = 176
Top = 16
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 40
Top = 144
end
object tbl_USUARIOS: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
Required = True
DictionaryEntry = 'USUARIOS_ID'
InPrimaryKey = True
end
item
Name = 'USERNAME'
DataType = datString
Size = 30
DisplayLabel = 'Nombre'
DictionaryEntry = 'USUARIOS_USERNAME'
end
item
Name = 'LOGIN'
DataType = datString
Size = 30
DisplayLabel = 'Login'
DictionaryEntry = 'USUARIOS_LOGIN'
end
item
Name = 'PASS'
DataType = datString
Size = 250
DisplayLabel = 'Password'
DictionaryEntry = 'USUARIOS_PASS'
end
item
Name = 'PASSEXPIRED'
DataType = datDateTime
DisplayLabel = 'Expiraci'#243'n de password'
DictionaryEntry = 'USUARIOS_PASSEXPIRED'
end
item
Name = 'BLOQUEADO'
DataType = datSmallInt
DisplayLabel = 'Bloqueado'
DictionaryEntry = 'USUARIOS_BLOQUEADO'
end
item
Name = 'EMAIL'
DataType = datString
Size = 150
DisplayLabel = 'Correo electr'#243'nico'
DictionaryEntry = 'USUARIOS_EMAIL'
end
item
Name = 'USERDAYSSUN'
DataType = datInteger
DisplayLabel = 'USUARIOS_USERDAYSSUN'
DictionaryEntry = 'USUARIOS_USERDAYSSUN'
end
item
Name = 'PRIVILEGED'
DataType = datInteger
DisplayLabel = 'Privilegiado'
DictionaryEntry = 'USUARIOS_PRIVILEGED'
end
item
Name = 'TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
DictionaryEntry = 'USUARIOS_TIPO'
end
item
Name = 'ID_PERFIL'
DataType = datInteger
DictionaryEntry = 'USUARIOS_ID_PERFIL'
end
item
Name = 'CHECKSUM'
DataType = datString
Size = 250
DisplayLabel = 'Checksum'
DictionaryEntry = 'USUARIOS_CHECKSUM'
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Usuarios
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'USUARIOS'
IndexDefs = <>
Left = 176
Top = 80
end
object ds_USUARIOS: TDADataSource
DataSet = tbl_USUARIOS.Dataset
DataTable = tbl_USUARIOS
Left = 176
Top = 136
end
object tbl_PERFILES: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
Required = True
DictionaryEntry = 'PERFILES_ID'
InPrimaryKey = True
end
item
Name = 'USERNAME'
DataType = datString
Size = 30
DisplayLabel = 'Nombre'
DictionaryEntry = 'PERFILES_USERNAME'
end
item
Name = 'LOGIN'
DataType = datString
Size = 30
DisplayLabel = 'Login'
DictionaryEntry = 'PERFILES_LOGIN'
end
item
Name = 'TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
DictionaryEntry = 'PERFILES_TIPO'
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Usuarios
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'PERFILES'
IndexDefs = <>
Left = 272
Top = 80
end
object ds_PERFILES: TDADataSource
DataSet = tbl_PERFILES.Dataset
DataTable = tbl_PERFILES
Left = 272
Top = 136
end
end

View File

@ -0,0 +1,465 @@
unit uDataModuleUsuarios;
interface
uses
SysUtils, Classes, DB, DBClient, uDADataTable,
VARELA_Intf,
UCBase, UCDataConnector, uUCROConn, uDARemoteDataAdapter,
uDARemoteCommand, uROClient, uRORemoteService, uDADataStreamer,
uDABin2DataStreamer, uDAScriptingProvider, uIDataModuleUsuarios, UCSettings,
uDataModuleBase, uDAInterfaces, uDAMemDataTable, uBizUsuarios;
type
TDataModuleUsuarios = class(TDataModuleBase, IDataModuleUsuarios)
srvUsuarios: TRORemoteService;
UCSettingsSpanish: TUCSettings;
rda_Usuarios: TDARemoteDataAdapter;
Bin2DataStreamer: TDABin2DataStreamer;
tbl_USUARIOS: TDAMemDataTable;
ds_USUARIOS: TDADataSource;
tbl_PERFILES: TDAMemDataTable;
ds_PERFILES: TDADataSource;
procedure DataModuleCreate(Sender: TObject);
private
procedure InicializarCamposUserControl(AUserControl: TUserControl);
procedure InicializarSettingsUserControl(AUserControl: TUserControl);
function CreateConnectorInstance : TUCDataConnector;
public
function GetUsuario(const ID : Integer) : IBizUsuario;
function NuevoUsuario : IBizUsuario;
function GetUsuarios : IBizUsuario;
function NuevoPerfil : IBizPerfilUsuario;
function GetPerfiles : IBizPerfilUsuario;
function GetPerfil (const ID : Integer) : IBizPerfilUsuario;
procedure InicializarUserControl (AUserControl : TUserControl);
end;
implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uDMBase,
Dialogs, Windows, cxControls,
schUsuariosClient_Intf;
const
ID_NULO = -9000;
{ TDataModuleUsuarios }
function TDataModuleUsuarios.CreateConnectorInstance: TUCDataConnector;
begin
// El propietario (Owner) es Application para que se encarge de la
// liberación del conector que estamos creando.
Result := TUCROConn.Create(Application);
with TUCROConn(Result) do
begin
ROServiceName := srvUsuarios.ServiceName;
ROChannel := dmBase.ROChannel;
ROMessage := dmBase.ROMessage;
end;
end;
function TDataModuleUsuarios.NuevoPerfil: IBizPerfilUsuario;
begin
Result := GetPerfil(ID_NULO)
end;
function TDataModuleUsuarios.NuevoUsuario: IBizUsuario;
begin
Result := GetUsuario(ID_NULO)
end;
procedure TDataModuleUsuarios.DataModuleCreate(Sender: TObject);
begin
inherited;
srvUsuarios.Channel := dmBase.Channel;
srvUsuarios.Message := dmBase.Message;
end;
function TDataModuleUsuarios.GetPerfil(const ID: Integer): IBizPerfilUsuario;
begin
ShowHourglassCursor;
try
Result := Self.GetPerfiles;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_PERFILESID), NewConstant(ID, datInteger), dboEqual);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleUsuarios.GetPerfiles: IBizPerfilUsuario;
var
AUsuarios : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AUsuarios := CloneDataTable(tbl_PERFILES);
AUsuarios.BusinessRulesID := BIZ_CLIENT_PERFIL_USUARIO;
Result := (AUsuarios as IBizPerfilUsuario);
finally
HideHourglassCursor;
end;
end;
function TDataModuleUsuarios.GetUsuario(const ID: Integer): IBizUsuario;
begin
ShowHourglassCursor;
try
Result := Self.GetUsuarios;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_USUARIOSID), NewConstant(ID, datInteger), dboEqual);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleUsuarios.GetUsuarios: IBizUsuario;
var
AUsuarios : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AUsuarios := CloneDataTable(tbl_Usuarios);
AUsuarios.BusinessRulesID := BIZ_CLIENT_USUARIO;
Result := (AUsuarios as IBizUsuario);
finally
HideHourglassCursor;
end;
end;
procedure TDataModuleUsuarios.InicializarCamposUserControl(
AUserControl: TUserControl);
begin
if not Assigned(AUserControl) then
raise Exception.Create('UserControl no asignado (InicializarUserControl)');
with AUserControl do
begin
DataConnector := CreateConnectorInstance;
with TableUsers do
begin
TableName := 'RDX_USUARIOS'; //nme_USUARIOS;
FieldUserID := fld_USUARIOSID;
FieldUserName := fld_USUARIOSUSERNAME;
FieldLogin := fld_USUARIOSLOGIN;
FieldPassword := fld_USUARIOSPASS;
FieldEmail := fld_USUARIOSEMAIL;
FieldPrivileged := fld_USUARIOSPRIVILEGED;
FieldTypeRec := fld_USUARIOSTIPO;
FieldProfile := fld_USUARIOSID_PERFIL;
FieldUserExpired := fld_USUARIOSBLOQUEADO;
FieldDateExpired := fld_USUARIOSPASSEXPIRED;
FieldUserDaysSun := fld_USUARIOSUSERDAYSSUN;
FieldKey := fld_USUARIOSCHECKSUM;
end;
with TableRights do
begin
TableName := 'RDX_PERMISOS'; //nme_PERMISOS;
FieldUserID := fld_PERMISOSID_USUARIO;
FieldModule := fld_PERMISOSMODULO;
FieldComponentName := fld_PERMISOSNOMBRECOMP;
FieldFormName := fld_PERMISOSEXNOMBREFORM;
FieldKey := fld_PERMISOSCHECKSUM;
end;
with TableUsersLogged do
begin
TableName := 'RDX_USUARIOS_LOGON'; //nme_USUARIOS_LOGON;
FieldLogonID := fld_USUARIOS_LOGONLOGONID;
FieldUserID := fld_USUARIOS_LOGONID_USUARIO;
FieldApplicationID := fld_USUARIOS_LOGONAPLICACION;
FieldMachineName := fld_USUARIOS_LOGONEQUIPO;
FieldData := fld_USUARIOS_LOGONDATA;
end;
with TableHistory do
begin
TableName := 'RDX_USUARIOS_EVENTOS'; //nme_USUARIOS_EVENTOS;
FieldApplicationID := fld_USUARIOS_EVENTOSAPLICACION;
FieldUserID := fld_USUARIOS_EVENTOSID_USUARIO;
FieldEventDate := fld_USUARIOS_EVENTOSFECHA;
FieldEventTime := fld_USUARIOS_EVENTOSHORA;
FieldForm := fld_USUARIOS_EVENTOSFORM;
FieldCaptionForm := fld_USUARIOS_EVENTOSTITULO_FORM;
FieldEvent := fld_USUARIOS_EVENTOSEVENTO;
FieldObs := fld_USUARIOS_EVENTOSNOTAS;
FieldTableName := fld_USUARIOS_EVENTOSTNAME;
end;
end;
end;
procedure TDataModuleUsuarios.InicializarSettingsUserControl(
AUserControl: TUserControl);
var
SourceSettings : TUCSettings;
begin
SourceSettings := UCSettingsSpanish;
with AUserControl do
begin
with UserSettings.CommonMessages do
begin
BlankPassword := SourceSettings.CommonMessages.BlankPassword;
PasswordChanged := SourceSettings.CommonMessages.PasswordChanged;
InitialMessage.Text := SourceSettings.CommonMessages.InitialMessage.Text;
MaxLoginAttemptsError := SourceSettings.CommonMessages.MaxLoginAttemptsError;
InvalidLogin := SourceSettings.CommonMessages.InvalidLogin;
AutoLogonError := SourceSettings.CommonMessages.AutoLogonError;
UsuarioExiste := SourceSettings.CommonMessages.UsuarioExiste; // Luiz Benevenuto 20/04/06
PasswordExpired := SourceSettings.CommonMessages.PasswordExpired; // vicente barros leonel
ForcaTrocaSenha := SourceSettings.CommonMessages.ForcaTrocaSenha;
end;
with UserSettings.Login do
begin
BtCancel := SourceSettings.Login.BtCancel;
BtOK := SourceSettings.Login.BtOK;
LabelPassword := SourceSettings.Login.LabelPassword;
LabelUser := SourceSettings.Login.LabelUser;
WindowCaption := SourceSettings.Login.WindowCaption;
LabelTentativa := SourceSettings.Login.LabelTentativa;
LabelTentativas := SourceSettings.Login.LabelTentativas;
if Assigned(SourceSettings.Login.LeftImage.Bitmap) then
LeftImage.Bitmap := SourceSettings.Login.LeftImage.Bitmap
else
LeftImage.Bitmap := nil;
if Assigned(SourceSettings.Login.TopImage.Bitmap) then
TopImage.Bitmap := SourceSettings.Login.TopImage.Bitmap
else
TopImage.Bitmap := nil;
if Assigned(SourceSettings.Login.BottomImage.Bitmap) then
BottomImage.Bitmap := SourceSettings.Login.BottomImage.Bitmap
else
BottomImage.Bitmap := nil;
end;
with UserSettings.UsersForm do
begin
WindowCaption := SourceSettings.UsersForm.WindowCaption;
LabelDescription := SourceSettings.UsersForm.LabelDescription;
ColName := SourceSettings.UsersForm.ColName;
ColLogin := SourceSettings.UsersForm.ColLogin;
ColEmail := SourceSettings.UsersForm.ColEmail;
BtAdd := SourceSettings.UsersForm.BtAdd;
BtChange := SourceSettings.UsersForm.BtChange;
BtDelete := SourceSettings.UsersForm.BtDelete;
BtRights := SourceSettings.UsersForm.BtRights;
BtPassword := SourceSettings.UsersForm.BtPassword;
BtClose := SourceSettings.UsersForm.BtClose;
PromptDelete := SourceSettings.UsersForm.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.UsersForm.PromptDelete_WindowCaption; //added by fduenas
end;
with UserSettings.UsersProfile do
begin
WindowCaption := SourceSettings.UsersProfile.WindowCaption;
LabelDescription := SourceSettings.UsersProfile.LabelDescription;
ColProfile := SourceSettings.UsersProfile.ColProfile;
BtAdd := SourceSettings.UsersProfile.BtAdd;
BtChange := SourceSettings.UsersProfile.BtChange;
BtDelete := SourceSettings.UsersProfile.BtDelete;
BtRights := SourceSettings.UsersProfile.BtRights; //added by fduenas
BtClose := SourceSettings.UsersProfile.BtClose;
PromptDelete := SourceSettings.UsersProfile.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.UsersProfile.PromptDelete_WindowCaption; //added by fduenas
end;
with UserSettings.AddChangeUser do
begin
WindowCaption := SourceSettings.AddChangeUser.WindowCaption;
LabelAdd := SourceSettings.AddChangeUser.LabelAdd;
LabelChange := SourceSettings.AddChangeUser.LabelChange;
LabelName := SourceSettings.AddChangeUser.LabelName;
LabelLogin := SourceSettings.AddChangeUser.LabelLogin;
LabelEmail := SourceSettings.AddChangeUser.LabelEmail;
CheckPrivileged := SourceSettings.AddChangeUser.CheckPrivileged;
BtSave := SourceSettings.AddChangeUser.BtSave;
BtCancel := SourceSettings.AddChangeUser.BtCancel;
CheckExpira := SourceSettings.AddChangeUser.CheckExpira;
Day := SourceSettings.AddChangeUser.Day;
ExpiredIn := SourceSettings.AddChangeUser.ExpiredIn;
end;
with UserSettings.AddChangeProfile do
begin
WindowCaption := SourceSettings.AddChangeProfile.WindowCaption;
LabelAdd := SourceSettings.AddChangeProfile.LabelAdd;
LabelChange := SourceSettings.AddChangeProfile.LabelChange;
LabelName := SourceSettings.AddChangeProfile.LabelName;
BtSave := SourceSettings.AddChangeProfile.BtSave;
BtCancel := SourceSettings.AddChangeProfile.BtCancel;
end;
with UserSettings.Rights do
begin
WindowCaption := SourceSettings.Rights.WindowCaption;
LabelUser := SourceSettings.Rights.LabelUser;
LabelProfile := SourceSettings.Rights.LabelProfile;
PageMenu := SourceSettings.Rights.PageMenu;
PageActions := SourceSettings.Rights.PageActions;
PageControls := SourceSettings.Rights.PageControls;
BtUnlock := SourceSettings.Rights.BtUnlock;
BtLock := SourceSettings.Rights.BtLock;
BtSave := SourceSettings.Rights.BtSave;
BtCancel := SourceSettings.Rights.BtCancel;
end;
with UserSettings.ChangePassword do
begin
WindowCaption := SourceSettings.ChangePassword.WindowCaption;
LabelDescription := SourceSettings.ChangePassword.LabelDescription;
LabelCurrentPassword := SourceSettings.ChangePassword.LabelCurrentPassword;
LabelNewPassword := SourceSettings.ChangePassword.LabelNewPassword;
LabelConfirm := SourceSettings.ChangePassword.LabelConfirm;
BtSave := SourceSettings.ChangePassword.BtSave;
BtCancel := SourceSettings.ChangePassword.BtCancel;
end;
with UserSettings.CommonMessages.ChangePasswordError do
begin
InvalidCurrentPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidCurrentPassword;
NewPasswordError := SourceSettings.CommonMessages.ChangePasswordError.NewPasswordError;
NewEqualCurrent := SourceSettings.CommonMessages.ChangePasswordError.NewEqualCurrent;
PasswordRequired := SourceSettings.CommonMessages.ChangePasswordError.PasswordRequired;
MinPasswordLength := SourceSettings.CommonMessages.ChangePasswordError.MinPasswordLength;
InvalidNewPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidNewPassword;
end;
with UserSettings.ResetPassword do
begin
WindowCaption := SourceSettings.ResetPassword.WindowCaption;
LabelPassword := SourceSettings.ResetPassword.LabelPassword;
end;
with UserSettings.Log do
begin
WindowCaption := SourceSettings.Log.WindowCaption;
LabelDescription := SourceSettings.Log.LabelDescription;
LabelUser := SourceSettings.Log.LabelUser;
LabelDate := SourceSettings.Log.LabelDate;
LabelLevel := SourceSettings.Log.LabelLevel;
ColLevel := SourceSettings.Log.ColLevel;
ColMessage := SourceSettings.Log.ColMessage;
ColUser := SourceSettings.Log.ColUser;
ColDate := SourceSettings.Log.ColDate;
BtFilter := SourceSettings.Log.BtFilter;
BtDelete := SourceSettings.Log.BtDelete;
BtClose := SourceSettings.Log.BtClose;
PromptDelete := SourceSettings.Log.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.Log.PromptDelete_WindowCaption; //added by fduenas
OptionUserAll := SourceSettings.Log.OptionUserAll; //added by fduenas
OptionLevelLow := SourceSettings.Log.OptionLevelLow; //added by fduenas
OptionLevelNormal := SourceSettings.Log.OptionLevelNormal; //added by fduenas
OptionLevelHigh := SourceSettings.Log.OptionLevelHigh; //added by fduenas
OptionLevelCritic := SourceSettings.Log.OptionLevelCritic; //added by fduenas
DeletePerformed := SourceSettings.Log.DeletePerformed; //added by fduenas
end;
with UserSettings.AppMessages do
begin
MsgsForm_BtNew := SourceSettings.AppMessages.MsgsForm_BtNew;
MsgsForm_BtReplay := SourceSettings.AppMessages.MsgsForm_BtReplay;
MsgsForm_BtForward := SourceSettings.AppMessages.MsgsForm_BtForward;
MsgsForm_BtDelete := SourceSettings.AppMessages.MsgsForm_BtDelete;
MsgsForm_BtClose := SourceSettings.AppMessages.MsgsForm_BtClose; //added by fduenas
MsgsForm_WindowCaption := SourceSettings.AppMessages.MsgsForm_WindowCaption;
MsgsForm_ColFrom := SourceSettings.AppMessages.MsgsForm_ColFrom;
MsgsForm_ColSubject := SourceSettings.AppMessages.MsgsForm_ColSubject;
MsgsForm_ColDate := SourceSettings.AppMessages.MsgsForm_ColDate;
MsgsForm_PromptDelete := SourceSettings.AppMessages.MsgsForm_PromptDelete;
MsgsForm_PromptDelete_WindowCaption := SourceSettings.AppMessages.MsgsForm_PromptDelete_WindowCaption; //added by fduenas
MsgsForm_NoMessagesSelected := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected; //added by fduenas
MsgsForm_NoMessagesSelected_WindowCaption := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected_WindowCaption; //added by fduenas
MsgRec_BtClose := SourceSettings.AppMessages.MsgRec_BtClose;
MsgRec_WindowCaption := SourceSettings.AppMessages.MsgRec_WindowCaption;
MsgRec_Title := SourceSettings.AppMessages.MsgRec_Title;
MsgRec_LabelFrom := SourceSettings.AppMessages.MsgRec_LabelFrom;
MsgRec_LabelDate := SourceSettings.AppMessages.MsgRec_LabelDate;
MsgRec_LabelSubject := SourceSettings.AppMessages.MsgRec_LabelSubject;
MsgRec_LabelMessage := SourceSettings.AppMessages.MsgRec_LabelMessage;
MsgSend_BtSend := SourceSettings.AppMessages.MsgSend_BtSend;
MsgSend_BtCancel := SourceSettings.AppMessages.MsgSend_BtCancel;
MsgSend_WindowCaption := SourceSettings.AppMessages.MsgSend_WindowCaption;
MsgSend_Title := SourceSettings.AppMessages.MsgSend_Title;
MsgSend_GroupTo := SourceSettings.AppMessages.MsgSend_GroupTo;
MsgSend_RadioUser := SourceSettings.AppMessages.MsgSend_RadioUser;
MsgSend_RadioAll := SourceSettings.AppMessages.MsgSend_RadioAll;
MsgSend_GroupMessage := SourceSettings.AppMessages.MsgSend_GroupMessage;
MsgSend_LabelSubject := SourceSettings.AppMessages.MsgSend_LabelSubject; //added by fduenas
MsgSend_LabelMessageText := SourceSettings.AppMessages.MsgSend_LabelMessageText; //added by fduenas
end;
With UserSettings.History do
Begin
Evento_edit := SourceSettings.History.Evento_edit;
Evento_NewRecord := SourceSettings.History.Evento_NewRecord;
Evento_Insert := SourceSettings.History.Evento_Insert;
Evento_delete := SourceSettings.History.Evento_Delete;
LabelTabela := SourceSettings.History.LabelTabela;
Msg_LogEmptyHistory := SourceSettings.History.Msg_LogEmptyHistory;
Msg_MensConfirma := SourceSettings.History.Msg_MensConfirma;
LabelDescricao := SourceSettings.History.LabelDescricao;
Hist_BtnExcluir := SourceSettings.History.Hist_BtnExcluir;
Hist_BtnFiltro := SourceSettings.History.Hist_BtnFiltro;
LabelForm := SourceSettings.History.LabelForm;
Hist_BtnFechar := SourceSettings.History.Hist_BtnFechar;
LabelDataEvento := SourceSettings.History.LabelDataEvento;
LabelEvento := SourceSettings.History.LabelEvento;
Msg_NewRecord := SourceSettings.History.Msg_NewRecord;
Hist_All := SourceSettings.History.Hist_All;
Msg_LimpHistorico := SourceSettings.History.Msg_LimpHistorico;
LabelHoraEvento := SourceSettings.History.LabelHoraEvento;
LabelUser := SourceSettings.History.LabelUser;
Hist_MsgExceptPropr := SourceSettings.History.Hist_MsgExceptPropr;
End;
with UserSettings.TypeFieldsDB do
Begin
Type_VarChar := SourceSettings.TypeFieldsDB.Type_VarChar;
Type_Char := SourceSettings.TypeFieldsDB.Type_Char;
Type_Int := SourceSettings.TypeFieldsDB.Type_Int;
Type_MemoField := SourceSettings.TypeFieldsDB.Type_MemoField;
end;
UserSettings.WindowsPosition := SourceSettings.WindowsPosition;
end;
end;
procedure TDataModuleUsuarios.InicializarUserControl(AUserControl: TUserControl);
begin
if Assigned(AUserControl) then
begin
InicializarCamposUserControl(AUserControl);
InicializarSettingsUserControl(AUserControl);
end;
end;
end.

View File

@ -0,0 +1,224 @@
{-----------------------------------------------------------------------------
Unit Name: UCMidasConn
Author : Luiz Benevenuto
Date : 31/07/2005
Purpose : Midas Suporte ( DataSnap )
E-mail : luiz@siffra.com
URL : www.siffra.com
UC : www.usercontrol.com.br
Forum : http://www.usercontrol.com.br/modules.php?name=Forums
registered in UCMidasConnReg.pas
-----------------------------------------------------------------------------}
unit uUCROConn;
interface
//{$I 'UserControl.inc'}
uses
Classes,
DB,
DBClient,
SysUtils,
uRORemoteService, uDADataStreamer, uROBinMessage, uROWinInetHttpChannel,
uDABin2DataStreamer, uDARemoteDataAdapter, UCDataConnector, uROClient;
type
TUCROConn = class(TUCDataConnector)
private
FMessage: TROBinMessage;
FChannel: TROWinInetHTTPChannel;
FRemoteService: TRORemoteService;
FDataAdapter : TDARemoteDataAdapter;
FDataStreamer : TDABin2DataStreamer;
procedure SetServiceName(const Value: String);
function GetServiceName: String;
procedure SetChannel(const Value: TROWinInetHTTPChannel);
procedure SetMessage(const Value: TROBinMessage);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure RefreshROConnection;
public
function GetDBObjectName: String; override;
function GetTransObjectName: String; override;
function UCFindDataConnection: Boolean; override;
function UCFindTable(const Tablename: String): Boolean; override;
function UCGetSQLDataset(FSQL: String): TDataset; override;
procedure UCExecSQL(FSQL: String); override;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property ROServiceName : String read GetServiceName write SetServiceName;
property ROMessage : TROBinMessage read FMessage write SetMessage;
property ROChannel : TROWinInetHTTPChannel read FChannel write SetChannel;
end;
implementation
uses
Forms, Dialogs, VARELA_Intf, uROTypes, uDAClasses, uDADataTable,
uDACDSDataTable, uROEncryption;
{ TUCROConn }
constructor TUCROConn.Create(AOwner: TComponent);
begin
inherited;
FRemoteService := TRORemoteService.Create(nil);
FDataStreamer := TDABin2DataStreamer.Create(nil);
FDataAdapter := TDARemoteDataAdapter.Create(nil);
FDataAdapter.DataStreamer := FDataStreamer;
FDataAdapter.SetupDefaultRequest;
end;
destructor TUCROConn.Destroy;
begin
FreeAndNil(FRemoteService);
FreeAndNil(FDataAdapter);
FreeAndNil(FDataStreamer);
inherited;
end;
function TUCROConn.GetDBObjectName: String;
begin
if Assigned(FRemoteService) then
begin
if Owner = FRemoteService.Owner then
Result := FRemoteService.Name
else
Result := FRemoteService.Owner.Name + '.' + FRemoteService.Name;
end
else
Result := '';
end;
function TUCROConn.GetServiceName: String;
begin
Result := FRemoteService.ServiceName;
end;
function TUCROConn.GetTransObjectName: String;
begin
Result := '';
end;
procedure TUCROConn.Notification(AComponent: TComponent; Operation: TOperation);
begin
if (Operation = opRemove) and (AComponent = FRemoteService) then
begin
FreeAndNil(FDataAdapter);
FRemoteService := nil;
end;
inherited Notification(AComponent, Operation);
end;
procedure TUCROConn.RefreshROConnection;
begin
with FRemoteService do
begin
FRemoteService.Message := FMessage;
FRemoteService.Channel := FChannel;
with FDataAdapter do
begin
RemoteService := FRemoteService;
GetSchemaCall.RemoteService := FRemoteService;
GetDataCall.RemoteService := FRemoteService;
UpdateDataCall.RemoteService := FRemoteService;
GetScriptsCall.RemoteService := FRemoteService;
end;
end;
end;
procedure TUCROConn.SetChannel(const Value: TROWinInetHTTPChannel);
begin
FChannel := Value;
RefreshROConnection;
end;
procedure TUCROConn.SetMessage(const Value: TROBinMessage);
begin
FMessage := Value;
RefreshROConnection;
end;
procedure TUCROConn.SetServiceName(const Value: String);
begin
FRemoteService.ServiceName := Value;
end;
procedure TUCROConn.UCExecSQL(FSQL: String);
var
ASQL : String;
begin
ASQL := AnsiToUtf8(FSQL);
(FRemoteService as IsrvUsuarios).SQLExecuteCommand(ASQL);
end;
function TUCROConn.UCFindDataConnection: Boolean;
begin
Result := False;
if Assigned(FRemoteService) then
begin
FRemoteService.CheckCanConnect;
Result := True;
end;
end;
function TUCROConn.UCFindTable(const Tablename: String): Boolean;
var
ASchema : TDASchema;
begin
ASchema := FDataAdapter.ReadSchema;
try
Result := Assigned(ASchema.FindDataset(TableName));
finally
FreeAndNil(ASchema);
end;
end;
function TUCROConn.UCGetSQLDataset(FSQL: String): TDataset;
var
AStream: TMemoryStream;
ADataStreamer: TDABin2DataStreamer;
ADataTable: TDACDSDataTable;
begin
Result := NIL;
ADataStreamer := TDABin2DataStreamer.Create(NIL);
AStream := (FRemoteService as IsrvUsuarios).SQLGetData(FSQL, True, -1);
if AStream <> nil then
try
ADataTable := TDACDSDataTable.Create(Application);
// Generar un nombre aleatorio
Randomize;
ADataTable.Name := 'SQLResult' + '_' + IntToStr(Random(MAXINT));
ADataTable.LocalDataStreamer := ADataStreamer;
ADataTable.RemoteFetchEnabled := False;
try
ADataStreamer.ReadDataset(AStream, ADataTable, True);
ADataTable.Open;
{ ¡¡OJO!! Trapicheo!!!!!
Forzamos a recuperar en Dataset todas las tuplas
recorriendonos toda la tabla.}
ADataTable.Last;
ADataTable.First;
Result := ADataTable.Dataset;
finally
//FreeAndNIL(ADataTable); <-- No liberar, lo hace Application
end;
finally
FreeAndNIL(AStream);
FreeAndNIL(ADataStreamer);
end;
end;
end.

View File

@ -0,0 +1,25 @@
unit uIDataModuleUsuarios;
interface
uses
UCBase, UCSettings, uBizUsuarios;
type
IDataModuleUsuarios = interface
['{C0A8481F-4920-414D-A906-EE1EB18DE946}']
procedure InicializarUserControl (AUserControl : TUserControl);
function GetUsuario(const ID : Integer) : IBizUsuario;
function NuevoUsuario : IBizUsuario;
function GetUsuarios : IBizUsuario;
function NuevoPerfil : IBizPerfilUsuario;
function GetPerfiles : IBizPerfilUsuario;
function GetPerfil(const ID : Integer) : IBizPerfilUsuario;
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,90 @@
unit uBizUsuarios;
interface
uses
UCBase, uDAInterfaces, uDADataTable, schUsuariosClient_Intf;
const
BIZ_CLIENT_USUARIO = 'Client.Usuario';
BIZ_CLIENT_PERFIL_USUARIO = 'Client.PerfilUsuario';
type
TUsuario = TUCCurrentUser;
IBizUsuario = interface (IUSUARIOS)
['{1DB69F36-969C-4078-B862-6D697670BCFD}']
function EsNuevo : Boolean;
end;
IBizPerfilUsuario = interface (IPERFILES)
['{D14DF996-A8CD-400A-BF74-C8B660199C74}']
function EsNuevo : Boolean;
end;
TBizUsuario = class(TUsuariosDataTableRules, IBizUsuario)
protected
procedure OnNewRecord(Sender: TDADataTable); override;
public
function EsNuevo : Boolean;
procedure IniciarValoresUsuarioNuevo;
end;
TBizPerfilUsuario = class(TPerfilesDataTableRules, IBizPerfilUsuario)
protected
procedure OnNewRecord(Sender: TDADataTable); override;
public
function EsNuevo : Boolean;
procedure IniciarValoresPerfilNuevo;
end;
implementation
{ TBizUsuario }
function TBizUsuario.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
procedure TBizUsuario.IniciarValoresUsuarioNuevo;
begin
TIPO := 'U'; // Usuario;
end;
procedure TBizUsuario.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresUsuarioNuevo;
end;
{ TBizPerfilUsuario }
function TBizPerfilUsuario.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
procedure TBizPerfilUsuario.IniciarValoresPerfilNuevo;
begin
TIPO := 'P'; // Perfil
end;
procedure TBizPerfilUsuario.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresPerfilNuevo;
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_USUARIO, TBizUsuario);
RegisterDataTableRules(BIZ_CLIENT_PERFIL_USUARIO, TBizPerfilUsuario);
finalization
end.

View File

@ -0,0 +1,600 @@
object srvUsuarios: TsrvUsuarios
OldCreateOrder = True
OnCreate = DataAbstractServiceCreate
SessionManager = dmServer.SessionManager
ServiceSchema = schUsuarios
ServiceDataStreamer = Bin2DataStreamer
AllowExecuteSQL = True
AllowWhereSQL = True
ExportedDataTables = <>
BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
Height = 163
Width = 300
object Diagrams: TDADiagrams
Left = 150
Top = 88
DiagramData = '<Diagrams>'#13#10'</Diagrams>'#13#10
end
object DataDictionary: TDADataDictionary
Fields = <
item
Name = 'USUARIOS_ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
Required = True
DisplayLabel = 'ID'
end
item
Name = 'USUARIOS_USERNAME'
DataType = datString
Size = 30
DisplayLabel = 'Nombre'
end
item
Name = 'USUARIOS_LOGIN'
DataType = datString
Size = 30
DisplayLabel = 'Login'
end
item
Name = 'USUARIOS_PASS'
DataType = datString
Size = 250
DisplayLabel = 'Password'
end
item
Name = 'USUARIOS_PASSEXPIRED'
DataType = datDateTime
DisplayLabel = 'Expiraci'#243'n de password'
end
item
Name = 'USUARIOS_BLOQUEADO'
DataType = datSmallInt
DisplayLabel = 'Bloqueado'
end
item
Name = 'USUARIOS_EMAIL'
DataType = datString
Size = 150
DisplayLabel = 'Correo electr'#243'nico'
end
item
Name = 'USUARIOS_USERDAYSSUN'
DataType = datInteger
end
item
Name = 'USUARIOS_PRIVILEGED'
DataType = datInteger
DisplayLabel = 'Privilegiado'
end
item
Name = 'USUARIOS_TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
end
item
Name = 'USUARIOS_ID_PERFIL'
DataType = datInteger
DisplayLabel = 'ID_PERFIL'
end
item
Name = 'USUARIOS_CHECKSUM'
DataType = datString
Size = 250
DisplayLabel = 'Checksum'
end
item
Name = 'PERFILES_ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
Required = True
DisplayLabel = 'ID'
end
item
Name = 'PERFILES_USERNAME'
DataType = datString
Size = 30
DisplayLabel = 'Nombre'
end
item
Name = 'PERFILES_LOGIN'
DataType = datString
Size = 30
DisplayLabel = 'Login'
end
item
Name = 'PERFILES_TIPO'
DataType = datString
Size = 1
DisplayLabel = 'Tipo'
end>
Left = 150
Top = 24
end
object schUsuarios: TDASchema
ConnectionManager = dmServer.ConnectionManager
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
Default = True
TargetTable = 'RDX_USUARIOS'
SQL =
'SELECT'#10' ID, USERNAME, LOGIN, PASS, PASSEXPIRED, BLOQUEADO,'#10' ' +
' EMAIL, USERDAYSSUN, PRIVILEGED, TIPO, ID_PERFIL, CHECKSUM'#10' FR' +
'OM'#10' RDX_USUARIOS'#10' WHERE TIPO = '#39'U'#39' AND {Where}'#10' ORDER BY US' +
'ERNAME'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'USERNAME'
TableField = 'USERNAME'
end
item
DatasetField = 'LOGIN'
TableField = 'LOGIN'
end
item
DatasetField = 'PASS'
TableField = 'PASS'
end
item
DatasetField = 'PASSEXPIRED'
TableField = 'PASSEXPIRED'
end
item
DatasetField = 'BLOQUEADO'
TableField = 'BLOQUEADO'
end
item
DatasetField = 'EMAIL'
TableField = 'EMAIL'
end
item
DatasetField = 'USERDAYSSUN'
TableField = 'USERDAYSSUN'
end
item
DatasetField = 'PRIVILEGED'
TableField = 'PRIVILEGED'
end
item
DatasetField = 'TIPO'
TableField = 'TIPO'
end
item
DatasetField = 'ID_PERFIL'
TableField = 'ID_PERFIL'
end
item
DatasetField = 'CHECKSUM'
TableField = 'CHECKSUM'
end>
end>
Name = 'USUARIOS'
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
DictionaryEntry = 'USUARIOS_ID'
InPrimaryKey = True
end
item
Name = 'USERNAME'
DataType = datString
Size = 30
DictionaryEntry = 'USUARIOS_USERNAME'
end
item
Name = 'LOGIN'
DataType = datString
Size = 30
DictionaryEntry = 'USUARIOS_LOGIN'
end
item
Name = 'PASS'
DataType = datString
Size = 250
DictionaryEntry = 'USUARIOS_PASS'
end
item
Name = 'PASSEXPIRED'
DataType = datDateTime
DictionaryEntry = 'USUARIOS_PASSEXPIRED'
end
item
Name = 'BLOQUEADO'
DataType = datSmallInt
DictionaryEntry = 'USUARIOS_BLOQUEADO'
end
item
Name = 'EMAIL'
DataType = datString
Size = 150
DictionaryEntry = 'USUARIOS_EMAIL'
end
item
Name = 'USERDAYSSUN'
DataType = datInteger
DictionaryEntry = 'USUARIOS_USERDAYSSUN'
end
item
Name = 'PRIVILEGED'
DataType = datInteger
DictionaryEntry = 'USUARIOS_PRIVILEGED'
end
item
Name = 'TIPO'
DataType = datString
Size = 1
DictionaryEntry = 'USUARIOS_TIPO'
end
item
Name = 'ID_PERFIL'
DataType = datInteger
DictionaryEntry = 'USUARIOS_ID_PERFIL'
end
item
Name = 'CHECKSUM'
DataType = datString
Size = 250
DictionaryEntry = 'USUARIOS_CHECKSUM'
end>
end
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
Default = True
TargetTable = 'RDX_USUARIOS_EVENTOS'
StatementType = stAutoSQL
ColumnMappings = <
item
DatasetField = 'APLICACION'
TableField = 'APLICACION'
end
item
DatasetField = 'ID_USUARIO'
TableField = 'ID_USUARIO'
end
item
DatasetField = 'FECHA'
TableField = 'FECHA'
end
item
DatasetField = 'HORA'
TableField = 'HORA'
end
item
DatasetField = 'FORM'
TableField = 'FORM'
end
item
DatasetField = 'TITULO_FORM'
TableField = 'TITULO_FORM'
end
item
DatasetField = 'EVENTO'
TableField = 'EVENTO'
end
item
DatasetField = 'NOTAS'
TableField = 'NOTAS'
end
item
DatasetField = 'TNAME'
TableField = 'TNAME'
end>
end>
Name = 'USUARIOS_EVENTOS'
Fields = <
item
Name = 'APLICACION'
DataType = datString
Size = 250
end
item
Name = 'ID_USUARIO'
DataType = datInteger
end
item
Name = 'FECHA'
DataType = datString
Size = 10
end
item
Name = 'HORA'
DataType = datString
Size = 8
end
item
Name = 'FORM'
DataType = datString
Size = 250
end
item
Name = 'TITULO_FORM'
DataType = datString
Size = 100
end
item
Name = 'EVENTO'
DataType = datString
Size = 50
end
item
Name = 'NOTAS'
DataType = datMemo
end
item
Name = 'TNAME'
DataType = datString
Size = 20
end>
end
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
TargetTable = 'RDX_USUARIOS_LOGON'
StatementType = stAutoSQL
ColumnMappings = <
item
DatasetField = 'LOGONID'
TableField = 'LOGONID'
end
item
DatasetField = 'ID_USUARIO'
TableField = 'ID_USUARIO'
end
item
DatasetField = 'APLICACION'
TableField = 'APLICACION'
end
item
DatasetField = 'EQUIPO'
TableField = 'EQUIPO'
end
item
DatasetField = 'DATA'
TableField = 'DATA'
end>
end>
Name = 'USUARIOS_LOGON'
Fields = <
item
Name = 'LOGONID'
DataType = datString
Size = 38
Required = True
InPrimaryKey = True
end
item
Name = 'ID_USUARIO'
DataType = datInteger
end
item
Name = 'APLICACION'
DataType = datString
Size = 50
end
item
Name = 'EQUIPO'
DataType = datString
Size = 50
end
item
Name = 'DATA'
DataType = datString
Size = 14
end>
end
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
TargetTable = 'RDX_USUARIOS'
SQL =
'SELECT '#10' ID, USERNAME, LOGIN, TIPO'#10' FROM'#10' RDX_USUARIOS'#10' ' +
'WHERE TIPO = '#39'P'#39' AND {Where}'#10' ORDER BY USERNAME'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'USERNAME'
TableField = 'USERNAME'
end
item
DatasetField = 'LOGIN'
TableField = 'LOGIN'
end
item
DatasetField = 'TIPO'
TableField = 'TIPO'
end>
end>
Name = 'PERFILES'
Fields = <
item
Name = 'ID'
DataType = datAutoInc
GeneratorName = 'GEN_USUARIOS_ID'
DictionaryEntry = 'PERFILES_ID'
InPrimaryKey = True
end
item
Name = 'USERNAME'
DataType = datString
Size = 30
DictionaryEntry = 'PERFILES_USERNAME'
end
item
Name = 'LOGIN'
DataType = datString
Size = 30
DictionaryEntry = 'PERFILES_LOGIN'
end
item
Name = 'TIPO'
DataType = datString
Size = 1
DictionaryEntry = 'PERFILES_TIPO'
end>
end
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
ConnectionType = 'MSSQL'
Default = True
TargetTable = 'RDX_PERMISOS'
StatementType = stAutoSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_USUARIO'
TableField = 'ID_USUARIO'
end
item
DatasetField = 'MODULO'
TableField = 'MODULO'
end
item
DatasetField = 'NOMBRECOMP'
TableField = 'NOMBRECOMP'
end
item
DatasetField = 'CHECKSUM'
TableField = 'CHECKSUM'
end>
end>
Name = 'PERMISOS'
Fields = <
item
Name = 'ID'
DataType = datInteger
Required = True
InPrimaryKey = True
end
item
Name = 'ID_USUARIO'
DataType = datInteger
end
item
Name = 'MODULO'
DataType = datString
Size = 50
end
item
Name = 'NOMBRECOMP'
DataType = datString
Size = 50
end
item
Name = 'CHECKSUM'
DataType = datString
Size = 250
end>
end
item
Params = <>
Statements = <
item
Connection = 'GFT_VARELA'
ConnectionType = 'MSSQL'
Default = True
TargetTable = 'RDX_PERMISOSEX'
StatementType = stAutoSQL
ColumnMappings = <
item
DatasetField = 'ID'
TableField = 'ID'
end
item
DatasetField = 'ID_USUARIO'
TableField = 'ID_USUARIO'
end
item
DatasetField = 'MODULO'
TableField = 'MODULO'
end
item
DatasetField = 'NOMBRECOMP'
TableField = 'NOMBRECOMP'
end
item
DatasetField = 'NOMBREFORM'
TableField = 'NOMBREFORM'
end
item
DatasetField = 'CHECKSUM'
TableField = 'CHECKSUM'
end>
end>
Name = 'PERMISOSEX'
Fields = <
item
Name = 'ID'
DataType = datInteger
Required = True
InPrimaryKey = True
end
item
Name = 'ID_USUARIO'
DataType = datInteger
end
item
Name = 'MODULO'
DataType = datString
Size = 50
end
item
Name = 'NOMBRECOMP'
DataType = datString
Size = 50
end
item
Name = 'NOMBREFORM'
DataType = datString
Size = 50
end
item
Name = 'CHECKSUM'
DataType = datString
Size = 250
end>
end>
JoinDataTables = <>
UnionDataTables = <>
Commands = <>
RelationShips = <>
UpdateRules = <>
Version = 0
Left = 48
Top = 24
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 88
end
end

View File

@ -0,0 +1,65 @@
unit srvUsuarios_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. }
{----------------------------------------------------------------------------}
{$I Remobjects.inc}
interface
uses
{vcl:} Classes, SysUtils,
{RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
{Required:} uRORemoteDataModule,
{Ancestor Implementation:} DataAbstractService_Impl,
{Used RODLs:} DataAbstract4_Intf,
{Generated:} VARELA_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses;
type
{ TsrvUsuarios }
TsrvUsuarios = class(TDataAbstractService, IsrvUsuarios)
Diagrams: TDADiagrams;
Bin2DataStreamer: TDABin2DataStreamer;
schUsuarios: TDASchema;
DataDictionary: TDADataDictionary;
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
procedure DataAbstractServiceCreate(Sender: TObject);
private
protected
{ IsrvUsuarios methods }
end;
implementation
{$R *.dfm}
uses
{Generated:} VARELA_Invk, uDataModuleServer;
procedure Create_srvUsuarios(out anInstance : IUnknown);
begin
anInstance := TsrvUsuarios.Create(nil);
end;
{ srvUsuarios }
procedure TsrvUsuarios.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin
ConnectionName := dmServer.ConnectionName;
end;
procedure TsrvUsuarios.DataAbstractServiceCreate(Sender: TObject);
begin
SessionManager := dmServer.SessionManager;
end;
initialization
TROClassFactory.Create('srvUsuarios', Create_srvUsuarios, TsrvUsuarios_Invoker);
finalization
end.

View File

@ -0,0 +1,45 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-GD
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N".\"
-LE"..\..\Output\Cliente"
-LN"..\Lib"
-U"..\Lib"
-O"..\Lib"
-I"..\Lib"
-R"..\Lib"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,471 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=3
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=Pedidos a proveedor
[Directories]
OutputDir=
UnitOutputDir=.\
PackageDLLOutputDir=..\..\Output\Cliente
PackageDCPOutputDir=..\Lib
SearchPath=..\Lib
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;cxLibraryVCLD7;dxThemeD7;cxTreeListVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxSchedulerVCLD7;dxComnD7;dxsbD7;dxBarD7;dxBarDBNavD7;dxBarExtDBItemsD7;dxBarExtItemsD7;dxDockingD7;dxLayoutControlD7;dxNavBarD7;dxPSCoreD7;cxExportVCLD7;cxIntl5D7;cxIntlPrintSys3D7;cxIntlSchedulerD7;fsIBX7;fs7;fqb70;frx7;frxADO7;frxBDE7;frxcs7;frxDB7;frxDBX7;frxe7;frxIBX7;fsADO7;fsBDE7;fsDB7;cxVerticalGridVCLD7
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=3
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.3.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview
T:\BPL_D7\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=1
Item0=..\Lib
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=.\
[HistoryLists\hlBPLOutput]
Count=1
Item0=..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=..\Lib
[Exception Log]
EurekaLog Version=519
Activate=1
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."

View File

@ -0,0 +1,67 @@
package Usuarios;
{$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 ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'Pedidos a proveedor'}
{$IMPLICITBUILD ON}
{$DEFINE DEBUG}
requires
vcl,
vcldb,
PngComponentsD10,
PNG_D10,
vclactnband,
vclx,
vcljpg,
BaseD10;
contains
uUsuariosController in 'Controller\uUsuariosController.pas',
uPerfilesUsuarioController in 'Controller\uPerfilesUsuarioController.pas',
uUCROConn in 'Data\uUCROConn.pas',
uDataModuleUsuarios in 'Data\uDataModuleUsuarios.pas',
uBizUsuarios in 'Model\uBizUsuarios.pas',
uIEditorUsuarios in 'Controller\View\uIEditorUsuarios.pas',
uIEditorLogin in 'Controller\View\uIEditorLogin.pas',
uIEditorPerfilesUsuario in 'Controller\View\uIEditorPerfilesUsuario.pas',
uIEditorPerfilUsuario in 'Controller\View\uIEditorPerfilUsuario.pas',
uIEditorUsuario in 'Controller\View\uIEditorUsuario.pas',
uIDataModuleUsuarios in 'Model\Data\uIDataModuleUsuarios.pas',
uViewUsuarios in 'Views\uViewUsuarios.pas',
uEditorCambiarPassword in 'Views\uEditorCambiarPassword.pas',
uEditorLogin in 'Views\uEditorLogin.pas',
uEditorPerfilesUsuario in 'Views\uEditorPerfilesUsuario.pas',
uEditorPerfilUsuario in 'Views\uEditorPerfilUsuario.pas',
uEditorUsuario in 'Views\uEditorUsuario.pas',
uEditorUsuarios in 'Views\uEditorUsuarios.pas',
uUsuario in 'Views\uUsuario.pas',
uUsuarios in 'Views\uUsuarios.pas',
uUsuariosViewRegister in 'Views\uUsuariosViewRegister.pas',
uViewPerfilesUsuario in 'Views\uViewPerfilesUsuario.pas',
uViewPerfilUsuario in 'Views\uViewPerfilUsuario.pas',
uViewUsuario in 'Views\uViewUsuario.pas',
schUsuariosClient_Intf in 'Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in 'Model\schUsuariosServer_Intf.pas';
end.

View File

@ -0,0 +1,598 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{c2514fab-bd64-47eb-ac2d-4b0b5460f98f}</ProjectGuid>
<MainSource>Usuarios.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\Usuarios.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\Lib;..\Base</DCC_UnitSearchPath>
<DCC_ResourcePath>..\Lib;..\Base</DCC_ResourcePath>
<DCC_ObjPath>..\Lib;..\Base</DCC_ObjPath>
<DCC_IncludePath>..\Lib;..\Base</DCC_IncludePath>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\Lib;..\Base</DCC_UnitSearchPath>
<DCC_ResourcePath>..\Lib;..\Base</DCC_ResourcePath>
<DCC_ObjPath>..\Lib;..\Base</DCC_ObjPath>
<DCC_IncludePath>..\Lib;..\Base</DCC_IncludePath>
<DCC_Define>DEBUG</DCC_Define>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">Pedidos a proveedor</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><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">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">3</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.3.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Usuarios.dpk</Source></Source><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>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
</Excluded_Packages></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="Usuarios.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="Controller\uPerfilesUsuarioController.pas" />
<DCCReference Include="Controller\uUsuariosController.pas" />
<DCCReference Include="Controller\View\uIEditorLogin.pas" />
<DCCReference Include="Controller\View\uIEditorPerfilesUsuario.pas" />
<DCCReference Include="Controller\View\uIEditorPerfilUsuario.pas" />
<DCCReference Include="Controller\View\uIEditorUsuario.pas" />
<DCCReference Include="Controller\View\uIEditorUsuarios.pas" />
<DCCReference Include="Data\uDataModuleUsuarios.pas" />
<DCCReference Include="Data\uUCROConn.pas" />
<DCCReference Include="Model\BaseD10.dcp" />
<DCCReference Include="Model\Data\uIDataModuleUsuarios.pas" />
<DCCReference Include="Model\PngComponentsD10.dcp" />
<DCCReference Include="Model\PNG_D10.dcp" />
<DCCReference Include="Model\schUsuariosClient_Intf.pas" />
<DCCReference Include="Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="Model\uBizUsuarios.pas" />
<DCCReference Include="Model\vcl.dcp" />
<DCCReference Include="Model\vclactnband.dcp" />
<DCCReference Include="Model\vcldb.dcp" />
<DCCReference Include="Model\vcljpg.dcp" />
<DCCReference Include="Model\vclx.dcp" />
<DCCReference Include="Views\uEditorCambiarPassword.pas" />
<DCCReference Include="Views\uEditorLogin.pas" />
<DCCReference Include="Views\uEditorPerfilesUsuario.pas" />
<DCCReference Include="Views\uEditorPerfilUsuario.pas" />
<DCCReference Include="Views\uEditorUsuario.pas" />
<DCCReference Include="Views\uEditorUsuarios.pas" />
<DCCReference Include="Views\uUsuario.pas" />
<DCCReference Include="Views\uUsuarios.pas" />
<DCCReference Include="Views\uUsuariosViewRegister.pas" />
<DCCReference Include="Views\uViewPerfilesUsuario.pas" />
<DCCReference Include="Views\uViewPerfilUsuario.pas" />
<DCCReference Include="Views\uViewUsuario.pas" />
<DCCReference Include="Views\uViewUsuarios.pas" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6006
Activate=1
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 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_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."
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppUpTime=1
soExcModuleName=1
soExcModuleVersion=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSCharset=1
soCustomData=1
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoDoNotStoreProcNames=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=1
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
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_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
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_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
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_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
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_Login=1
mtSendDialog_Login0="Login..."
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 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 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=
EurekaLog Last Line -->

View File

@ -0,0 +1,21 @@
/* VER185
Generated by the CodeGear Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END
/* C:\Varela_D2007\Source\Usuarios\uLoginForm.dfm */
/* C:\Varela_D2007\Source\Usuarios\uCambiarPassword.dfm */
/* C:\Varela_D2007\Source\Usuarios\uDataModuleUsuarios.dfm */
/* C:\Varela_D2007\Source\Usuarios\uUsuarios.dfm */
/* C:\Varela_D2007\Source\Usuarios\uUsuario.dfm */
/* C:\Varela_D2007\Source\Usuarios\Usuarios.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtfF.tmp */

View File

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

Binary file not shown.

View File

@ -0,0 +1,123 @@
object fEditorCambiarPassword: TfEditorCambiarPassword
Left = 398
Top = 263
BorderStyle = bsDialog
Caption = 'Cambiar la contrase'#241'a'
ClientHeight = 217
ClientWidth = 406
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCloseQuery = FormCloseQuery
PixelsPerInch = 96
TextHeight = 13
object Bevel4: TBevel
Left = 8
Top = 154
Width = 388
Height = 10
Shape = bsBottomLine
end
object lbConfirma: TLabel
Left = 35
Top = 88
Width = 103
Height = 13
Alignment = taRightJustify
Caption = 'Confirmar contrase'#241'a:'
end
object lbNovaSenha: TLabel
Left = 47
Top = 57
Width = 91
Height = 13
Alignment = taRightJustify
Caption = 'Nueva contrase'#241'a:'
end
object lbSenhaAtu: TLabel
Left = 49
Top = 27
Width = 89
Height = 13
Alignment = taRightJustify
Caption = 'Contrase'#241'a actual:'
end
object Label1: TLabel
Left = 19
Top = 132
Width = 360
Height = 13
Caption =
'Si hace clic en Cancelar, no se realizar'#225' ning'#250'n cambio sobre la' +
' contrase'#241'a.'
end
object bAceptar: TButton
Left = 234
Top = 178
Width = 75
Height = 23
Action = actAceptar
TabOrder = 0
end
object bCancelar: TButton
Left = 319
Top = 178
Width = 75
Height = 23
Action = actCancelar
Cancel = True
ModalResult = 2
TabOrder = 1
end
object EditAtu: TEdit
Left = 143
Top = 24
Width = 202
Height = 21
Ctl3D = True
MaxLength = 10
ParentCtl3D = False
PasswordChar = '*'
TabOrder = 2
end
object EditConfirma: TEdit
Left = 143
Top = 85
Width = 202
Height = 21
Ctl3D = True
MaxLength = 10
ParentCtl3D = False
PasswordChar = '*'
TabOrder = 4
end
object EditNova: TEdit
Left = 143
Top = 54
Width = 202
Height = 21
Ctl3D = True
MaxLength = 10
ParentCtl3D = False
PasswordChar = '*'
TabOrder = 3
end
object ActionList1: TActionList
Left = 136
Top = 169
object actAceptar: TAction
Caption = 'C&ambiar'
OnExecute = actAceptarExecute
end
object actCancelar: TAction
Caption = '&Cancelar'
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,101 @@
unit uEditorCambiarPassword;
interface
uses
Forms, UCBase, ExtCtrls, Classes, ActnList, StdCtrls, Controls, Buttons,
uBizUsuarios, uUsuariosController;
type
TfEditorCambiarPassword = class(TForm)
lbSenhaAtu: TLabel;
lbNovaSenha: TLabel;
lbConfirma: TLabel;
EditAtu: TEdit;
EditNova: TEdit;
EditConfirma: TEdit;
ActionList1: TActionList;
actAceptar: TAction;
actCancelar: TAction;
Bevel4: TBevel;
bAceptar: TButton;
bCancelar: TButton;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
public
Usuario : IBizUsuario;
Controller : IUsuariosController;
CambioObligatorio : Boolean;
end;
implementation
{$R *.dfm}
uses
uDialogUtils;
procedure TfEditorCambiarPassword.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caHide;
end;
procedure TfEditorCambiarPassword.actAceptarExecute(Sender: TObject);
var
AuxPass : String;
AMensaje : String;
begin
case Controller.Criptografia of
ucStandard: AuxPass := EditAtu.Text;
ucMD5: AuxPass := MD5Sum(EditAtu.Text);
end;
if Usuario.PASS <> AuxPass then
begin
ShowWarningMessage('Cambiar la contraseña', 'La contraseña actual no es correcta.' + #10#13 +
'Asegúrese de que la contraseña actual está bien introduccida.');
EditAtu.SetFocus;
Exit;
end;
if (EditNova.Text <> EditConfirma.Text) then
begin
ShowWarningMessage('Cambiar la contraseña', 'La contraseña no se confirmó correctamente' + #10#13 +
'Asegúrese de que la contraseña y su confirmación sean iguales.');
EditNova.SetFocus;
Exit;
end
else begin
if not Controller.ValidarPassword(EditNova.Text, Usuario.LOGIN, Usuario.USERNAME, AMensaje) then
begin
ShowWarningMessage('Cambiar la contraseña', AMensaje);
EditNova.SetFocus;
Exit;
end
else begin
if CambioObligatorio = True then
CambioObligatorio := False;
ModalResult := mrOK;
end;
end;
end;
procedure TfEditorCambiarPassword.actCancelarExecute(Sender: TObject);
begin
Close;
end;
procedure TfEditorCambiarPassword.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if CambioObligatorio then
begin
CanClose := False;
ShowWarningMessage('Cambiar la contraseña', 'El cambio de la contraseña es obligatorio');
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,140 @@
unit uEditorLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls,
JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement,
JvAppStorage, JvAppRegistryStorage, uIEditorLogin, uUsuariosController;
type
TfEditorLogin = class(TForm, IEditorLogin)
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
edtPassword: TEdit;
bAceptar: TButton;
bCancelar: TButton;
Label1: TLabel;
edtUser: TEdit;
JvGradient1: TJvGradient;
Button1: TButton;
Timer1: TTimer;
JvAppRegistryStorage1: TJvAppRegistryStorage;
JvFormStorage1: TJvFormStorage;
Image1: TImage;
procedure bAceptarClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure edtUserKeyPress(Sender: TObject; var Key: Char);
private
FController : IUsuariosController;
FIntentos : Integer;
function GetController : IUsuariosController;
procedure SetController (const AValue : IUsuariosController);
published
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
uses
uAdminPV_App, uDMBase;
{$R *.dfm}
{
********************************* TfEditorLogin **********************************
}
procedure TfEditorLogin.bAceptarClick(Sender: TObject);
var
bOk : Boolean;
begin
Timer1.Enabled := False;
ShowHourglassCursor;
try
bOK := FController.ComprobarUsuario(edtUser.Text, edtPassword.Text);
finally
HideHourglassCursor;
end;
if bOk then
ModalResult := mrOK
else begin
Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente'
+ #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK);
Inc(FIntentos);
if (Controller.MaxIntentosLogin > 0) and (FIntentos = Controller.MaxIntentosLogin) then
ModalResult := mrCancel;
end;
end;
procedure TfEditorLogin.ToolButton4Click(Sender: TObject);
var
ATimer : Boolean;
begin
ATimer := False;
if Timer1.Enabled then
begin
ATimer := True;
Timer1.Enabled := False;
end;
dmBase.ConfigurarConexion;
if ATimer then
Timer1.Enabled := True;
end;
procedure TfEditorLogin.edtUserKeyPress(Sender: TObject; var Key: Char);
begin
// Desactivar el timer cuando el usuario empieza a escribir
Timer1.Enabled := False;
end;
procedure TfEditorLogin.FormCreate(Sender: TObject);
begin
FIntentos := 0;
end;
procedure TfEditorLogin.FormDestroy(Sender: TObject);
begin
FController := NIL;
end;
procedure TfEditorLogin.FormShow(Sender: TObject);
begin
Self.Caption := AppAdminPV.AppFullName;
JvFormStorage1.RestoreFormPlacement;
// Hacer login automática si hay usuario/password y no hay más de una base
// de datos como opción para conectarse.
if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then
Timer1.Enabled := True;
end;
function TfEditorLogin.GetController: IUsuariosController;
begin
Result := FController;
end;
procedure TfEditorLogin.SetController(const AValue: IUsuariosController);
begin
FController := AValue;
end;
procedure TfEditorLogin.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
bAceptar.Click;
end;
end.

View File

@ -0,0 +1,48 @@
inherited fEditorPerfilUsuario: TfEditorPerfilUsuario
Caption = 'fEditorPerfilUsuario'
ExplicitHeight = 492
PixelsPerInch = 96
TextHeight = 13
inherited TBXDock: TTBXDock
inherited tbxMain: TTBXToolbar
ExplicitWidth = 273
end
end
inherited StatusBar: TStatusBar
Panels = <
item
Width = 200
end>
Visible = True
end
inherited EditorActionList: TActionList
inherited actNuevo: TAction
Visible = False
end
inherited actModificar: TAction
Visible = False
end
inherited actPrevisualizar: TAction
Visible = False
end
inherited actImprimir: TAction
Visible = False
end
end
inherited dsDataTable: TDADataSource
OnDataChange = dsDataTableDataChange
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,240 @@
unit uEditorPerfilUsuario;
interface
uses
Windows, Menus, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces,
uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList,
StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item,
TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane,
uIEditorPerfilUsuario, uUsuariosController, uCustomView, uViewBase,
uViewPerfilUsuario, uBizUsuarios, dxLayoutLookAndFeels;
type
TfEditorPerfilUsuario = class(TfEditorDBItem, IEditorPerfilUsuario)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
procedure actGuardarExecute(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
private
FController : IUsuariosController;
FPerfilUsuario : IBizPerfilUsuario;
FViewPerfilUsuario : IViewPerfilUsuario;
protected
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetPerfilUsuario: IBizPerfilUsuario;
procedure SetPerfilUsuario(const Value: IBizPerfilUsuario);
procedure GuardarInterno;
procedure EliminarInterno;
procedure ActualizarEstadoEditor;
function HayDatos: Boolean;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
procedure PonerTitulos(const ATitulo: string = '');
function GetViewPerfilUsuario: IViewPerfilUsuario;
procedure SetViewPerfilUsuario(const Value: IViewPerfilUsuario);
property ViewPerfilUsuario: IViewPerfilUsuario read GetViewPerfilUsuario write SetViewPerfilUsuario;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Controller : IUsuariosController read GetController write SetController;
property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario;
end;
implementation
{$R *.dfm}
{ TfEditorUsuario }
uses
cxControls, uDialogUtils;
var
FIDNuevoGuardado : Integer = -1;
procedure TfEditorPerfilUsuario.actGuardarCerrarExecute(Sender: TObject);
begin
ShowHourglassCursor;
try
if actGuardar.Execute then
actCerrar.Execute;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorPerfilUsuario.actGuardarExecute(Sender: TObject);
begin
if actGuardar.Enabled then
begin
GuardarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorPerfilUsuario.ActualizarEstadoEditor;
begin
PonerTitulos;
if HayDatos then
begin
if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then
StatusBar.Panels[0].Text := ' Se han producido cambios'
else
StatusBar.Panels[0].Text := '';
end;
end;
procedure TfEditorPerfilUsuario.AsignarVista;
var
AViewPerfilUsuario: TfrViewPerfilUsuario;
begin
AViewPerfilUsuario := TfrViewPerfilUsuario.Create(Self);
with AViewPerfilUsuario do
begin
Parent := Self;
Align := alClient;
dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1;
end;
ViewPerfilUsuario := AViewPerfilUsuario;
end;
constructor TfEditorPerfilUsuario.Create(AOwner: TComponent);
begin
inherited;
AsignarVista;
end;
destructor TfEditorPerfilUsuario.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorPerfilUsuario.dsDataTableDataChange(Sender: TObject;
Field: TField);
begin
inherited;
ActualizarEstadoEditor;
end;
procedure TfEditorPerfilUsuario.EliminarInterno;
begin
if (ShowConfirmMessage('Eliminar el perfil', '¿Desea eliminar este perfil?') = IDYES) then
begin
inherited;
if not FController.EliminarPerfil(FPerfilUsuario) then
actRefrescar.Execute;
end;
end;
procedure TfEditorPerfilUsuario.FormShow(Sender: TObject);
begin
inherited;
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
function TfEditorPerfilUsuario.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfEditorPerfilUsuario.GetPerfilUsuario: IBizPerfilUsuario;
begin
Result := FPerfilUsuario;
end;
function TfEditorPerfilUsuario.GetViewPerfilUsuario: IViewPerfilUsuario;
begin
Result := FViewPerfilUsuario;
end;
procedure TfEditorPerfilUsuario.GuardarInterno;
begin
inherited;
if FController.GuardarPerfil(FPerfilUsuario) then
begin
FIDNuevoGuardado := FPerfilUsuario.ID;
FPerfilUsuario.DataTable.CancelUpdates;
Modified := False;
actRefrescar.Execute;
end;
end;
function TfEditorPerfilUsuario.HayDatos: Boolean;
begin
Result := Assigned(dsDataTable.DataTable) and (dsDataTable.DataTable.State <> dsInactive)
and (not dsDataTable.DataTable.IsEmpty);
end;
procedure TfEditorPerfilUsuario.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
if Assigned(FPerfilUsuario) then
begin
if FPerfilUsuario.EsNuevo then
FTitulo := 'Nuevo perfil'
else
FTitulo := 'Perfil';
if Length(FPerfilUsuario.USERNAME) > 0 then
FTitulo := FTitulo + ' - ' + FPerfilUsuario.USERNAME;
end;
if ReadOnly then
begin
JvNavPanelHeader.Caption := FTitulo + ' (NO MODIFICABLE)';
Caption := FTitulo + ' (NO MODIFICABLE)';
end
else
begin
JvNavPanelHeader.Caption := FTitulo;
Caption := FTitulo;
end;
end;
procedure TfEditorPerfilUsuario.SetController(const Value: IUsuariosController);
begin
FController := Value;
if Assigned(FViewPerfilUsuario) and Assigned(FController) then
FViewPerfilUsuario.Controller := FController;
end;
procedure TfEditorPerfilUsuario.SetPerfilUsuario(
const Value: IBizPerfilUsuario);
begin
FPerfilUsuario := Value;
dsDataTable.DataTable := FPerfilUsuario.DataTable;
if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then
FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario;
end;
procedure TfEditorPerfilUsuario.SetViewPerfilUsuario(const Value: IViewPerfilUsuario);
begin
FViewPerfilUsuario := Value;
if Assigned(FViewPerfilUsuario) and Assigned(FPerfilUsuario) then
FViewPerfilUsuario.PerfilUsuario := FPerfilUsuario;
end;
end.

View File

@ -0,0 +1,59 @@
inherited fEditorPerfilesUsuario: TfEditorPerfilesUsuario
Caption = 'fEditorPerfilesUsuario'
ClientHeight = 493
ClientWidth = 840
ExplicitWidth = 848
ExplicitHeight = 520
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 840
ExplicitWidth = 840
inherited Image1: TImage
Left = 813
ExplicitLeft = 813
end
end
inherited TBXDock: TTBXDock
Width = 840
ExplicitWidth = 840
inherited tbxMain: TTBXToolbar
ExplicitWidth = 213
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 840
end
inherited tbxFiltro: TTBXToolbar
Left = 213
DockPos = 208
Visible = False
ExplicitLeft = 213
end
end
inherited StatusBar: TStatusBar
Top = 474
Width = 840
ExplicitTop = 474
ExplicitWidth = 840
end
inherited EditorActionList: TActionList
inherited actNuevo: TAction
OnExecute = actNuevoExecute
end
inherited actModificar: TAction
OnExecute = actModificarExecute
end
inherited actPrevisualizar: TAction
Visible = False
end
inherited actImprimir: TAction
Visible = False
end
inherited actDuplicar: TAction
Visible = False
end
end
inherited dsDataTable: TDADataSource
OnDataChange = dsDataTableDataChange
end
end

View File

@ -0,0 +1,199 @@
unit uEditorPerfilesUsuario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorGridBase, Menus, JvAppStorage, JvAppRegistryStorage, DB,
uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX,
TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls,
JvExControls, JvNavigationPane, uIEditorPerfilesUsuario,
uUsuariosController, uBizUsuarios, uViewPerfilesUsuario;
type
TfEditorPerfilesUsuario = class(TfEditorGridBase, IEditorPerfilesUsuario)
procedure actNuevoExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
private
FPerfiles : IBizPerfilUsuario;
FController : IUsuariosController;
protected
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetPerfilesUsuario: IBizPerfilUsuario;
procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario);
procedure NuevoInterno;
procedure EliminarInterno;
procedure ModificarInterno;
procedure ActualizarEstadoEditor;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
public
procedure PonerTitulos(const ATitulo: string = '');
property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario;
property Controller : IUsuariosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uDialogUtils;
{ TfEditorUsuarios }
procedure TfEditorPerfilesUsuario.actEliminarExecute(Sender: TObject);
begin
if actEliminar.Enabled then
begin
EliminarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorPerfilesUsuario.actModificarExecute(Sender: TObject);
begin
if actModificar.Enabled then
begin
ModificarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorPerfilesUsuario.actNuevoExecute(Sender: TObject);
begin
if actNuevo.Enabled then
begin
NuevoInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorPerfilesUsuario.ActualizarEstadoEditor;
begin
PonerTitulos;
end;
procedure TfEditorPerfilesUsuario.AsignarVista;
begin
ViewGrid := CreateView(TfrViewPerfilesUsuario) as IViewPerfilesUsuario;
end;
constructor TfEditorPerfilesUsuario.Create(AOwner: TComponent);
begin
inherited;
AsignarVista;
end;
destructor TfEditorPerfilesUsuario.Destroy;
begin
FPerfiles := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorPerfilesUsuario.dsDataTableDataChange(Sender: TObject;
Field: TField);
begin
inherited;
ActualizarEstadoEditor
end;
procedure TfEditorPerfilesUsuario.EliminarInterno;
begin
if (ShowConfirmMessage('Eliminar un perfil', Format('¿Desea eliminar el perfil %s?', [FPerfiles.USERNAME])) = 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
FController.EliminarPerfil(FPerfiles);
actRefrescar.Execute;
end;
end;
procedure TfEditorPerfilesUsuario.FormShow(Sender: TObject);
begin
inherited;
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
function TfEditorPerfilesUsuario.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfEditorPerfilesUsuario.GetPerfilesUsuario: IBizPerfilUsuario;
begin
Result := FPerfiles;
end;
procedure TfEditorPerfilesUsuario.ModificarInterno;
begin
inherited;
FController.VerPerfil(FPerfiles.ID);
actRefrescar.Execute;
end;
procedure TfEditorPerfilesUsuario.NuevoInterno;
var
ANuevoPerfil : IBizPerfilUsuario;
begin
inherited;
ANuevoPerfil := FController.NuevoPerfil;
FController.VerPerfil(ANuevoPerfil);
actRefrescar.Execute;
end;
procedure TfEditorPerfilesUsuario.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de perfiles de usuario';
if ReadOnly then
begin
JvNavPanelHeader.Caption := FTitulo + ' (NO MODIFICABLE)';
Caption := FTitulo + ' (NO MODIFICABLE)';
end
else
begin
JvNavPanelHeader.Caption := FTitulo;
Caption := FTitulo;
end;
end;
procedure TfEditorPerfilesUsuario.SetController(const Value: IUsuariosController);
begin
FController := Value;
end;
procedure TfEditorPerfilesUsuario.SetPerfilesUsuario(
const Value: IBizPerfilUsuario);
begin
FPerfiles := Value;
dsDataTable.DataTable := FPerfiles.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewPerfilesUsuario).PerfilesUsuario := FPerfiles;
end;
end.

View File

@ -0,0 +1,139 @@
inherited fEditorUsuario: TfEditorUsuario
Caption = 'fEditorUsuario'
ExplicitHeight = 492
PixelsPerInch = 96
TextHeight = 13
inherited TBXDock: TTBXDock
inherited tbxMain: TTBXToolbar
ExplicitWidth = 408
object TBXItem33: TTBXItem [7]
Action = actCambiarPassword
end
end
inherited tbxMenu: TTBXToolbar
object TBXSubmenuItem2: TTBXSubmenuItem [4]
Caption = '&Herramientas'
object TBXItem7: TTBXItem
Action = actCambiarPassword
end
end
end
end
inherited StatusBar: TStatusBar
Panels = <
item
Width = 200
end>
Visible = True
end
inline frViewUsuario1: TfrViewUsuario [3]
Left = 0
Top = 76
Width = 656
Height = 370
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 3
ReadOnly = False
ExplicitTop = 76
ExplicitWidth = 656
ExplicitHeight = 370
inherited dxLayoutControlArticulo: TdxLayoutControl
Width = 656
ExplicitWidth = 656
inherited PngSpeedButton3: TPngSpeedButton
Top = 84
ExplicitTop = 84
end
inherited eNombre: TcxDBTextEdit
Top = 30
ExplicitTop = 30
ExplicitWidth = 164
Width = 164
end
inherited eUsuario: TcxDBTextEdit
Top = 57
ExplicitTop = 57
ExplicitWidth = 108
Width = 108
end
inherited eMail: TcxDBHyperLinkEdit
Top = 84
Properties.Prefix = 'mailto:'
ExplicitTop = 84
end
inherited ePassword: TcxTextEdit
Top = 163
ExplicitTop = 163
ExplicitWidth = 121
Width = 121
end
inherited eConfirmarPassword: TcxTextEdit
Top = 190
ExplicitTop = 190
ExplicitWidth = 372
Width = 372
end
inherited cbPerfil: TcxComboBox
Top = 112
ExplicitTop = 112
end
inherited dxLayoutGroup1: TdxLayoutGroup
LookAndFeel = dxLayoutOfficeLookAndFeel1
end
end
end
inherited EditorActionList: TActionList [4]
inherited actNuevo: TAction
Visible = False
end
inherited actModificar: TAction
Visible = False
end
inherited actConfPagina: TAction
Visible = False
end
inherited actPrevisualizar: TAction
Visible = False
end
inherited actImprimir: TAction
Visible = False
end
object actCambiarPassword: TAction
Category = 'Herramientas'
Caption = 'Cambiar la contrase'#241'a...'
OnExecute = actCambiarPasswordExecute
OnUpdate = actCambiarPasswordUpdate
end
end
inherited SmallImages: TPngImageList [5]
end
inherited LargeImages: TPngImageList [6]
end
inherited JvFormStorage: TJvFormStorage [7]
end
inherited JvAppRegistryStorage: TJvAppRegistryStorage [8]
end
inherited dsDataTable: TDADataSource
OnDataChange = dsDataTableDataChange
Top = 80
end
object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
Left = 336
Top = 160
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,308 @@
unit uEditorUsuario;
interface
uses
Windows, Menus, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, JvAppStorage, JvAppRegistryStorage, DB, uDAInterfaces,
uDADataTable, JvComponentBase, JvFormPlacement, ImgList, PngImageList,
StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, TB2Item,
TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvNavigationPane,
uIEditorUsuario, uUsuariosController, uCustomView, uViewBase, uViewUsuario,
uBizUsuarios, dxLayoutLookAndFeels;
type
TfEditorUsuario = class(TfEditorDBItem, IEditorUsuario)
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
actCambiarPassword: TAction;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem7: TTBXItem;
TBXItem33: TTBXItem;
frViewUsuario1: TfrViewUsuario;
procedure actEliminarUpdate(Sender: TObject);
procedure actCambiarPasswordExecute(Sender: TObject);
procedure actCambiarPasswordUpdate(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure actGuardarExecute(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
procedure actRefrescarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FController : IUsuariosController;
FUsuario : IBizUsuario;
FViewUsuario : IViewUsuario;
protected
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetUsuario: IBizUsuario;
procedure SetUsuario(const Value: IBizUsuario);
procedure GuardarInterno;
procedure EliminarInterno;
procedure RefrescarInterno;
procedure ActualizarEstadoEditor;
procedure PonerTitulos(const ATitulo: string = '');
function HayDatos: Boolean;
function GetViewUsuario: IViewUsuario;
procedure SetViewUsuario(const Value: IViewUsuario);
property ViewUsuario: IViewUsuario read GetViewUsuario write SetViewUsuario;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Controller : IUsuariosController read GetController write SetController;
property Usuario: IBizUsuario read GetUsuario write SetUsuario;
end;
implementation
{$R *.dfm}
uses
uDialogUtils, cxControls;
{ TfEditorUsuario }
var
FIDNuevoGuardado : Integer = -1;
procedure TfEditorUsuario.actCambiarPasswordExecute(Sender: TObject);
begin
inherited;
FController.CambiarPassword(FUsuario.ID);
end;
procedure TfEditorUsuario.actCambiarPasswordUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := not FUsuario.EsNuevo;
end;
procedure TfEditorUsuario.actEliminarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := (FUsuario.PRIVILEGED = 0);
end;
procedure TfEditorUsuario.actGuardarCerrarExecute(Sender: TObject);
begin
ShowHourglassCursor;
try
if actGuardar.Execute then
actCerrar.Execute;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorUsuario.actGuardarExecute(Sender: TObject);
begin
if actModificar.Enabled then
begin
GuardarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorUsuario.actRefrescarExecute(Sender: TObject);
begin
if actRefrescar.Enabled then
begin
RefrescarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorUsuario.ActualizarEstadoEditor;
begin
PonerTitulos;
if HayDatos then
begin
if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then
StatusBar.Panels[0].Text := ' Se han producido cambios'
else
StatusBar.Panels[0].Text := '';
end;
end;
constructor TfEditorUsuario.Create(AOwner: TComponent);
begin
inherited;
//pgPaginas.ActivePageIndex := 0;
FViewUsuario := frViewUsuario1;
end;
destructor TfEditorUsuario.Destroy;
begin
// Utilizar mejor OnClose;
inherited;
end;
procedure TfEditorUsuario.dsDataTableDataChange(Sender: TObject; Field: TField);
begin
inherited;
ActualizarEstadoEditor;
end;
procedure TfEditorUsuario.EliminarInterno;
begin
if (Application.MessageBox('¿Desea borrar este usuario?', 'Atención', MB_YESNO) = IDYES) then
begin
inherited;
if not FController.EliminarUsuario(FUsuario.ID) then
actRefrescar.Execute;
end;
end;
procedure TfEditorUsuario.FormShow(Sender: TObject);
begin
inherited;
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
function TfEditorUsuario.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfEditorUsuario.GetUsuario: IBizUsuario;
begin
Result := FUsuario;
end;
function TfEditorUsuario.GetViewUsuario: IViewUsuario;
begin
Result := FViewUsuario;
end;
procedure TfEditorUsuario.GuardarInterno;
var
AMensaje : String;
AContinuar : Boolean;
begin
inherited;
if FUsuario.EsNuevo then
begin
if (frViewUsuario1.ePassword.Text <> frViewUsuario1.eConfirmarPassword.Text) then
raise Exception.Create('La contraseña no se confirmó correctamente' + #10#13 +
'Asegúrese de que la contraseña y su confirmación sean iguales.')
else
if not FController.ValidarPassword(frViewUsuario1.ePassword.Text,
frViewUsuario1.eUsuario.Text, frViewUsuario1.eNombre.Text, AMensaje) then
raise Exception.Create(AMensaje)
else begin
FUsuario.Edit;
FUsuario.PASS := frViewUsuario1.ePassword.Text;
FUsuario.Edit;
AContinuar := True;
end;
end
else
AContinuar := True;
if AContinuar then
begin
if FController.GuardarUsuario(FUsuario) then
begin
FIDNuevoGuardado := FUsuario.ID;
FUsuario.DataTable.CancelUpdates;
Modified := False;
actRefrescar.Execute;
end;
end
end;
function TfEditorUsuario.HayDatos: Boolean;
begin
Result := Assigned(dsDataTable.DataTable) and (dsDataTable.DataTable.State <> dsInactive)
and (not dsDataTable.DataTable.IsEmpty);
end;
procedure TfEditorUsuario.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
if Assigned(Usuario) then
begin
if Usuario.EsNuevo then
FTitulo := 'Nuevo usuario'
else
FTitulo := 'Usuario';
if Length(Usuario.USERNAME) > 0 then
FTitulo := FTitulo + ' - ' + Usuario.USERNAME;
end;
if ReadOnly then
begin
JvNavPanelHeader.Caption := FTitulo + ' (NO MODIFICABLE)';
Caption := FTitulo + ' (NO MODIFICABLE)';
end
else
begin
JvNavPanelHeader.Caption := FTitulo;
Caption := FTitulo;
end;
end;
procedure TfEditorUsuario.RefrescarInterno;
begin
inherited;
if (FIDNuevoGuardado > 0) and (FUsuario.ID <> FIDNuevoGuardado) then
begin
if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then
Exit; // No continuar con el refresco
dsDataTable.DataTable.DisableControls; //<- No descomentar
ShowHourglassCursor;
try
dsDataTable.DataTable.First;
if dsDataTable.DataTable.Locate('ID', FIDNuevoGuardado, []) then
FIDNuevoGuardado := -1;
finally
dsDataTable.DataTable.EnableControls; //<- No descomentar
HideHourglassCursor;
end;
end;
end;
procedure TfEditorUsuario.SetController(const Value: IUsuariosController);
begin
FController := Value;
if Assigned(FViewUsuario) and Assigned(FController) then
FViewUsuario.Controller := FController;
end;
procedure TfEditorUsuario.SetUsuario(const Value: IBizUsuario);
begin
FUsuario := Value;
dsDataTable.DataTable := FUsuario.DataTable;
if Assigned(FViewUsuario) and Assigned(Usuario) then
FViewUsuario.Usuario := Usuario;
end;
procedure TfEditorUsuario.SetViewUsuario(const Value: IViewUsuario);
begin
FViewUsuario := Value;
if Assigned(FViewUsuario) and Assigned(Usuario) then
FViewUsuario.Usuario := Usuario;
end;
end.

View File

@ -0,0 +1,71 @@
inherited fEditorUsuarios: TfEditorUsuarios
Caption = 'fEditorUsuarios'
ClientHeight = 493
ClientWidth = 840
ExplicitWidth = 848
ExplicitHeight = 520
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 840
ExplicitWidth = 840
inherited Image1: TImage
Left = 813
ExplicitLeft = 813
end
end
inherited TBXDock: TTBXDock
Width = 840
ExplicitWidth = 840
inherited tbxMain: TTBXToolbar
ExplicitWidth = 348
object TBXItem39: TTBXItem [8]
Action = actCambiarPassword
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 840
object TBXSubmenuItem2: TTBXSubmenuItem [4]
Caption = '&Herramientas'
object TBXItem38: TTBXItem
Action = actCambiarPassword
end
end
end
inherited tbxFiltro: TTBXToolbar
Left = 348
DockPos = 346
Visible = False
ExplicitLeft = 348
end
end
inherited StatusBar: TStatusBar
Top = 474
Width = 840
ExplicitTop = 474
ExplicitWidth = 840
end
inherited EditorActionList: TActionList
inherited actNuevo: TAction
OnExecute = actNuevoExecute
end
inherited actModificar: TAction
OnExecute = actModificarExecute
end
inherited actPrevisualizar: TAction
Visible = False
end
inherited actImprimir: TAction
Visible = False
end
inherited actDuplicar: TAction
Visible = False
end
object actCambiarPassword: TAction
Category = 'Herramientas'
Caption = 'Cambiar la contrase'#241'a...'
OnExecute = actCambiarPasswordExecute
OnUpdate = actCambiarPasswordUpdate
end
end
end

View File

@ -0,0 +1,239 @@
unit uEditorUsuarios;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorGridBase, Menus, JvAppStorage, JvAppRegistryStorage, DB,
uDAInterfaces, uDADataTable, JvComponentBase, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX,
TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls,
JvExControls, JvNavigationPane, uCustomView, uViewBase, uViewGridBase,
uViewGrid, uViewUsuarios, uIEditorUsuarios, uUsuariosController,
uBizUsuarios;
type
TfEditorUsuarios = class(TfEditorGridBase, IEditorUsuarios)
actCambiarPassword: TAction;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem38: TTBXItem;
TBXItem39: TTBXItem;
procedure actEliminarUpdate(Sender: TObject);
procedure actCambiarPasswordUpdate(Sender: TObject);
procedure actCambiarPasswordExecute(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FUsuarios : IBizUsuario;
FController : IUsuariosController;
protected
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetUsuarios: IBizUsuario;
procedure SetUsuarios(const Value: IBizUsuario);
procedure ActualizarEstadoEditor;
procedure NuevoInterno;
procedure EliminarInterno;
procedure ModificarInterno;
procedure ImprimirInterno;
procedure PrevisualizarInterno;
procedure DuplicarInterno;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
procedure AsignarVista; virtual;
public
procedure PonerTitulos(const ATitulo: string = '');
property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios;
property Controller : IUsuariosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uDialogUtils;
{ TfEditorUsuarios }
procedure TfEditorUsuarios.actCambiarPasswordExecute(Sender: TObject);
begin
inherited;
FController.CambiarPassword(FUsuarios.ID);
end;
procedure TfEditorUsuarios.actCambiarPasswordUpdate(Sender: TObject);
begin
inherited;
{ if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos;}
end;
procedure TfEditorUsuarios.actEliminarExecute(Sender: TObject);
begin
if actEliminar.Enabled then
begin
EliminarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorUsuarios.actEliminarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := (FUsuarios.PRIVILEGED = 0);
end;
procedure TfEditorUsuarios.actModificarExecute(Sender: TObject);
begin
if actModificar.Enabled then
begin
ModificarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorUsuarios.actNuevoExecute(Sender: TObject);
begin
if actNuevo.Enabled then
begin
NuevoInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorUsuarios.ActualizarEstadoEditor;
begin
PonerTitulos;
end;
procedure TfEditorUsuarios.AsignarVista;
begin
ViewGrid := CreateView(TfrViewUsuarios) as IViewUsuarios;
end;
constructor TfEditorUsuarios.Create(AOwner: TComponent);
begin
inherited;
AsignarVista;
end;
destructor TfEditorUsuarios.Destroy;
begin
FUsuarios := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorUsuarios.DuplicarInterno;
begin
inherited;
end;
procedure TfEditorUsuarios.EliminarInterno;
begin
if (ShowConfirmMessage('Eliminar un usuario', Format('¿Desea borrar el usuario %s?', [FUsuarios.USERNAME])) = 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
FController.EliminarUsuario(FUsuarios.ID);
actRefrescar.Execute;
end;
end;
procedure TfEditorUsuarios.FormShow(Sender: TObject);
begin
inherited;
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
function TfEditorUsuarios.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfEditorUsuarios.GetUsuarios: IBizUsuario;
begin
Result := FUsuarios;
end;
procedure TfEditorUsuarios.ImprimirInterno;
begin
inherited;
end;
procedure TfEditorUsuarios.ModificarInterno;
begin
inherited;
FController.VerUsuario(FUsuarios.ID);
actRefrescar.Execute;
end;
procedure TfEditorUsuarios.NuevoInterno;
var
ANuevoUsuario : IBizUsuario;
begin
inherited;
ANuevoUsuario := FController.NuevoUsuario;
FController.VerUsuario(ANuevoUsuario);
actRefrescar.Execute;
end;
procedure TfEditorUsuarios.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Lista de usuarios';
if ReadOnly then
begin
JvNavPanelHeader.Caption := FTitulo + ' (NO MODIFICABLE)';
Caption := FTitulo + ' (NO MODIFICABLE)';
end
else
begin
JvNavPanelHeader.Caption := FTitulo;
Caption := FTitulo;
end;
end;
procedure TfEditorUsuarios.PrevisualizarInterno;
begin
inherited;
//
end;
procedure TfEditorUsuarios.SetController(const Value: IUsuariosController);
begin
FController := Value;
end;
procedure TfEditorUsuarios.SetUsuarios(const Value: IBizUsuario);
begin
FUsuarios := Value;
dsDataTable.DataTable := FUsuarios.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewUsuarios).Usuarios := FUsuarios;
end;
end.

View File

@ -0,0 +1,123 @@
object fUsuario: TfUsuario
Left = 523
Top = 415
BorderStyle = bsDialog
Caption = 'Datos del usuario'
ClientHeight = 309
ClientWidth = 308
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 138
Top = 273
Width = 75
Height = 25
Action = actAceptar
TabOrder = 1
end
object Button2: TButton
Left = 226
Top = 273
Width = 75
Height = 25
Action = actCancelar
TabOrder = 2
end
object TabControl1: TPageControl
Left = 8
Top = 8
Width = 293
Height = 257
ActivePage = pagUsuario
TabOrder = 0
object pagUsuario: TTabSheet
Caption = 'Usuario'
object GroupBox1: TGroupBox
Left = 6
Top = 5
Width = 274
Height = 99
Caption = 'GroupBox1'
TabOrder = 0
DesignSize = (
274
99)
object Label4: TLabel
Left = 34
Top = 28
Width = 39
Height = 13
Caption = 'Usuario:'
Transparent = False
end
object Label5: TLabel
Left = 16
Top = 60
Width = 57
Height = 13
Caption = 'Contrase'#241'a:'
Transparent = False
end
object edtUser: TEdit
Left = 88
Top = 24
Width = 169
Height = 21
Anchors = [akLeft, akTop, akRight]
TabOrder = 0
end
object edtPassword: TEdit
Left = 88
Top = 56
Width = 169
Height = 21
Anchors = [akLeft, akTop, akRight]
PasswordChar = '*'
TabOrder = 1
end
end
object GroupBox2: TGroupBox
Left = 7
Top = 111
Width = 273
Height = 110
Caption = 'Permisos y seguridad'
TabOrder = 1
object Label1: TLabel
Left = 47
Top = 36
Width = 26
Height = 13
Caption = 'Perfil:'
Transparent = False
end
object cbPerfil: TComboBox
Left = 88
Top = 28
Width = 169
Height = 21
ItemHeight = 13
TabOrder = 0
end
end
end
end
object ActionList: TActionList
Left = 8
Top = 272
object actAceptar: TAction
Caption = '&Aceptar'
end
object actCancelar: TAction
Caption = '&Cancelar'
end
end
end

View File

@ -0,0 +1,39 @@
unit uUsuario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ActnList;
type
TfUsuario = class(TForm)
Button1: TButton;
Button2: TButton;
TabControl1: TPageControl;
pagUsuario: TTabSheet;
GroupBox1: TGroupBox;
Label4: TLabel;
Label5: TLabel;
edtUser: TEdit;
edtPassword: TEdit;
GroupBox2: TGroupBox;
Label1: TLabel;
cbPerfil: TComboBox;
ActionList: TActionList;
actAceptar: TAction;
actCancelar: TAction;
private
{ Private declarations }
public
{ Public declarations }
end;
var
fUsuario: TfUsuario;
implementation
{$R *.dfm}
end.

View File

@ -0,0 +1,118 @@
object fUsuarios: TfUsuarios
Left = 490
Top = 417
BorderStyle = bsDialog
Caption = 'Administraci'#243'n de usuarios'
ClientHeight = 401
ClientWidth = 550
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Grid: TDBGrid
Left = 8
Top = 40
Width = 425
Height = 313
DataSource = DADataSource
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object JvNavPanelHeader1: TJvNavPanelHeader
Left = 0
Top = 0
Width = 550
Align = alTop
Caption = 'Panel de control'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindow
Font.Height = -16
Font.Name = 'Arial'
Font.Style = [fsBold]
ParentFont = False
ColorFrom = 8684164
ColorTo = 8684164
ImageIndex = 0
StyleManager = dmBase.StyleManager
ParentStyleManager = False
end
object Button1: TButton
Left = 448
Top = 40
Width = 91
Height = 25
Action = actNuevo
TabOrder = 2
end
object Button2: TButton
Left = 448
Top = 136
Width = 91
Height = 25
Action = actModificar
TabOrder = 3
end
object Button3: TButton
Left = 448
Top = 176
Width = 91
Height = 25
Action = actEliminar
TabOrder = 4
end
object Button4: TButton
Left = 448
Top = 368
Width = 91
Height = 25
Action = actCerrar
TabOrder = 5
end
object Button5: TButton
Left = 448
Top = 96
Width = 91
Height = 25
Action = actCambiarPassword
TabOrder = 6
end
object DADataSource: TDADataSource
Left = 368
Top = 40
end
object ActionList: TActionList
Left = 8
Top = 360
object actCerrar: TAction
Caption = '&Cerrar'
OnExecute = actCerrarExecute
end
object actNuevo: TAction
Caption = 'Nuevo usuario'
OnUpdate = actNuevoUpdate
end
object actCambiarPassword: TAction
Caption = 'Cambiar contrase'#241'a'
OnUpdate = actCambiarPasswordUpdate
end
object actModificar: TAction
Caption = 'Modificar usuario'
OnUpdate = actModificarUpdate
end
object actEliminar: TAction
Caption = 'Eliminar usuario'
OnUpdate = actEliminarUpdate
end
end
end

View File

@ -0,0 +1,89 @@
unit uUsuarios;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, uDADataTable, dbcgrids, uDataModuleUsuarios, StdCtrls,
DBCtrls, JvExControls, JvComponent, JvNavigationPane,
Grids, DBGrids, ActnList, uDAInterfaces;
type
TfUsuarios = class(TForm)
DADataSource: TDADataSource;
Grid: TDBGrid;
JvNavPanelHeader1: TJvNavPanelHeader;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
ActionList: TActionList;
actCerrar: TAction;
actNuevo: TAction;
actCambiarPassword: TAction;
actModificar: TAction;
actEliminar: TAction;
procedure actCerrarExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actCambiarPasswordUpdate(Sender: TObject);
procedure actNuevoUpdate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure AdministrarUsuarios;
implementation
{$R *.dfm}
procedure AdministrarUsuarios;
var
fUsuarios: TfUsuarios;
begin
fUsuarios := TfUsuarios.Create(NIL);
try
fUsuarios.ShowModal;
finally
fUsuarios.Free;
end;
end;
procedure TfUsuarios.actCerrarExecute(Sender: TObject);
begin
Close;
end;
procedure TfUsuarios.FormCreate(Sender: TObject);
begin
{ DADataSource.DataTable := dmUsuarios.tbl_Usuarios;
DADataSource.DataTable.Active := True;}
end;
procedure TfUsuarios.actEliminarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
end;
procedure TfUsuarios.actModificarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
end;
procedure TfUsuarios.actCambiarPasswordUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not (DADataSource.DataTable.IsEmpty);
end;
procedure TfUsuarios.actNuevoUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := Assigned(DADataSource.DataTable);
end;
end.

View File

@ -0,0 +1,33 @@
unit uUsuariosViewRegister;
interface
procedure RegisterViews;
procedure UnregisterViews;
implementation
uses
uEditorRegistryUtils, uEditorLogin, Dialogs, uEditorUsuario, uEditorUsuarios,
uEditorPerfilesUsuario, uEditorPerfilUsuario;
procedure RegisterViews;
begin
EditorRegistry.RegisterClass(TfEditorLogin, 'EditorLogin');
EditorRegistry.RegisterClass(TfEditorUsuarios, 'EditorUsuarios');
EditorRegistry.RegisterClass(TfEditorUsuario, 'EditorUsuario');
EditorRegistry.RegisterClass(TfEditorPerfilesUsuario, 'EditorPerfilesUsuario');
EditorRegistry.RegisterClass(TfEditorPerfilUsuario, 'EditorPerfilUsuario');
end;
procedure UnregisterViews;
begin
EditorRegistry.UnRegisterClass(TfEditorLogin);
EditorRegistry.UnRegisterClass(TfEditorUsuarios);
EditorRegistry.UnRegisterClass(TfEditorUsuario);
EditorRegistry.UnRegisterClass(TfEditorPerfilesUsuario);
EditorRegistry.UnRegisterClass(TfEditorPerfilUsuario);
end;
end.

View File

@ -0,0 +1,68 @@
inherited frViewPerfilUsuario: TfrViewPerfilUsuario
Width = 509
Height = 122
ExplicitWidth = 509
ExplicitHeight = 122
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
Width = 509
Height = 113
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
DesignSize = (
509
113)
object eNombre: TcxDBTextEdit
Left = 68
Top = 28
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'USERNAME'
DataBinding.DataSource = dsUsuario
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 dxLayoutGroup1: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutGroup2: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
Caption = 'Datos del perfil'
object dxLayoutControlArticuloItem3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Nombre:'
Control = eNombre
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloGroup3: TdxLayoutGroup
Caption = 'New Group'
ShowCaption = False
LayoutDirection = ldHorizontal
ShowBorder = False
end
end
end
object dsUsuario: TDADataSource
Left = 152
Top = 24
end
end

View File

@ -0,0 +1,82 @@
unit uViewPerfilUsuario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uUsuariosController, cxGraphics, ImgList, PngImageList,
dxLayoutControl, cxCurrencyEdit, uCustomView, cxControls, DB, uDAInterfaces,
uDADataTable, ActnList, cxCheckBox, cxDBEdit, cxMaskEdit, cxSpinEdit,
cxHyperLinkEdit, cxContainer, cxEdit, cxTextEdit, Buttons, PngSpeedButton,
uBizUsuarios, cxDropDownEdit;
type
IViewPerfilUsuario = interface(IViewBase)
['{555B4B64-BE32-4036-B741-DCC7AD80D7B9}']
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
function GetPerfilUsuario: IBizPerfilUsuario;
procedure SetPerfilUsuario(const Value: IBizPerfilUsuario);
property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario;
end;
TfrViewPerfilUsuario = class(TfrViewBase, IViewPerfilUsuario)
dsUsuario: TDADataSource;
dxLayoutControlArticulo: TdxLayoutControl;
eNombre: TcxDBTextEdit;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutGroup2: TdxLayoutGroup;
dxLayoutControlArticuloItem3: TdxLayoutItem;
dxLayoutControlArticuloGroup3: TdxLayoutGroup;
protected
FController: IUsuariosController;
FPerfilUsuario : IBizPerfilUsuario;
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetPerfilUsuario: IBizPerfilUsuario;
procedure SetPerfilUsuario(const Value: IBizPerfilUsuario);
public
property PerfilUsuario: IBizPerfilUsuario read GetPerfilUsuario write SetPerfilUsuario;
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
{$R *.dfm}
{ TfrViewUsuario }
function TfrViewPerfilUsuario.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfrViewPerfilUsuario.GetPerfilUsuario: IBizPerfilUsuario;
begin
Result := FPerfilUsuario;
end;
procedure TfrViewPerfilUsuario.SetController(const Value: IUsuariosController);
begin
FController := Value;
end;
procedure TfrViewPerfilUsuario.SetPerfilUsuario(const Value: IBizPerfilUsuario);
begin
FPerfilUsuario := Value;
if Assigned(FPerfilUsuario) then
dsUsuario.DataTable := FPerfilUsuario.DataTable
else begin
dsUsuario.DataTable := NIL;
FPerfilUsuario := NIL;
end;
end;
end.

View File

@ -0,0 +1,38 @@
inherited frViewPerfilesUsuario: TfrViewPerfilesUsuario
Width = 426
Height = 247
ExplicitWidth = 426
ExplicitHeight = 247
inherited cxGrid: TcxGrid
Width = 426
Height = 247
inherited cxGridView: TcxGridDBTableView
object cxGridViewID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
Visible = False
BestFitMaxWidth = 20
Width = 20
end
object cxGridViewUSERNAME: TcxGridDBColumn
DataBinding.FieldName = 'USERNAME'
Width = 150
end
object cxGridViewTIPO: TcxGridDBColumn
DataBinding.FieldName = 'TIPO'
Visible = False
end
end
end
inherited dxComponentPrinter: TdxComponentPrinter
Left = 40
Top = 16
end
inherited dxPSEngineController1: TdxPSEngineController
Left = 304
Top = 168
end
inherited cxStyleRepository1: TcxStyleRepository
Left = 280
Top = 160
end
end

View File

@ -0,0 +1,56 @@
unit uViewPerfilesUsuario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPgsDlg, dxPSCore, ImgList, PngImageList, ActnList,
cxGridCustomPopupMenu, cxGridPopupMenu,
uDAInterfaces, uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock,
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
uBizUsuarios;
type
IViewPerfilesUsuario = interface(IViewGrid)
['{C6125F2F-5EDC-4019-BD5F-9AC9741F0F77}']
function GetPerfilesUsuario: IBizPerfilUsuario;
procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario);
property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario;
end;
TfrViewPerfilesUsuario = class(TfrViewGrid, IViewPerfilesUsuario)
cxGridViewID: TcxGridDBColumn;
cxGridViewUSERNAME: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
protected
FPerfiles : IBizPerfilUsuario;
function GetPerfilesUsuario: IBizPerfilUsuario;
procedure SetPerfilesUsuario(const Value: IBizPerfilUsuario);
public
property PerfilesUsuario: IBizPerfilUsuario read GetPerfilesUsuario write SetPerfilesUsuario;
end;
implementation
{$R *.dfm}
{ TfrViewPerfilesUsuario }
function TfrViewPerfilesUsuario.GetPerfilesUsuario: IBizPerfilUsuario;
begin
Result := FPerfiles;
end;
procedure TfrViewPerfilesUsuario.SetPerfilesUsuario(const Value: IBizPerfilUsuario);
begin
FPerfiles := Value;
if Assigned(FPerfiles) then
dsDataSource.DataTable := FPerfiles.DataTable;
end;
end.

View File

@ -0,0 +1,300 @@
inherited frViewUsuario: TfrViewUsuario
Width = 509
Height = 275
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
ExplicitWidth = 509
ExplicitHeight = 275
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
Width = 509
Height = 249
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
DesignSize = (
509
249)
object PngSpeedButton3: TPngSpeedButton
Left = 335
Top = 82
Width = 23
Height = 22
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001964944415478DA
63FCFFFF3F03232323033A58BCE9F87F647EAC9F258622B05E6C068034873B8A
80D92019C62F8F194C1356339CDF399D91A0014B361FFB1FE6208AA299E1F323
306D52F90CC5100C03566E3DFC3FD04E02A2F9F727064690462066006A66FC02
64FFFAC8603451096E088A01CB361FFDFF8F819981183077D11A86FDAB7B18E1
062CDD7CE27F14573FC3B2EF450CD13E86181ABE7DFFCDF0F5DB6F866FDFFE30
1CB97897218AB38FC1B85B98E1DC8E698C600396000D8861696058FAB7116CC0
94C5FBB0DAEC6CAECF70EED6238668E67AB057500CF8F0E10383A0A0208A0B90
6D06B1BF01D9379E3C67387AFE09C389A37BD15CE06B01B47907434EAC13C3EF
3F7F19662E3F8862BB898606C3EFDFFF1896EF3DCFA0A5C0CD306FE9265403FC
9D20362F5CB71F4CE7C47AA01890D5BC164C7716F980D56018606BAC0656B079
EF2986F82047AC6150DEB785A13CD911AC06C300234D05867DC72F30B8D818E1
8DC2494B0E63F702281075D455884A07576EDEC134404A5480E1DAED07441900
021806F44D5D44B46618801B400900007F4518F05E90AAF20000000049454E44
AE426082}
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object eNombre: TcxDBTextEdit
Left = 135
Top = 28
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'USERNAME'
DataBinding.DataSource = dsUsuario
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 eUsuario: TcxDBTextEdit
Left = 135
Top = 55
DataBinding.DataField = 'LOGIN'
DataBinding.DataSource = dsUsuario
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 eMail: TcxDBHyperLinkEdit
Left = 135
Top = 82
DataBinding.DataField = 'EMAIL'
DataBinding.DataSource = dsUsuario
Properties.ValidateOnEnter = True
Properties.OnEditValueChanged = eMailPropertiesEditValueChanged
Properties.OnValidate = eMailPropertiesValidate
Properties.Prefix = 'mailto:'
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 = 2
Width = 194
end
object ePassword: TcxTextEdit
Left = 135
Top = 167
Properties.EchoMode = eemPassword
Properties.PasswordChar = '*'
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 = 121
end
object eConfirmarPassword: TcxTextEdit
Left = 135
Top = 194
Properties.EchoMode = eemPassword
Properties.PasswordChar = '*'
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
Width = 372
end
object cbPerfil: TcxComboBox
Left = 135
Top = 110
Properties.DropDownListStyle = lsEditFixedList
Properties.ImmediatePost = True
Properties.ImmediateUpdateText = True
Properties.PostPopupValueOnTab = True
Properties.OnValidate = cbPerfilPropertiesValidate
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 = 194
end
object dxLayoutGroup1: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutGroup2: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
Caption = 'Datos del usuario'
object dxLayoutControlArticuloItem3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Nombre completo:'
Control = eNombre
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem8: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Usuario:'
Control = eUsuario
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloGroup2: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloItem4: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Correo electr'#243'nico'
Control = eMail
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem5: TdxLayoutItem
ShowCaption = False
Control = PngSpeedButton3
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloItem1: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Perfil de usuario:'
Control = cbPerfil
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloGroup5: TdxLayoutGroup
Caption = 'Seguridad'
object dxLayoutControlArticuloItem11: TdxLayoutItem
Caption = 'Contrase'#241'a:'
Control = ePassword
ControlOptions.ShowBorder = False
end
object dxLayoutControlArticuloItem12: TdxLayoutItem
Caption = 'Confirmar contrase'#241'a:'
Control = eConfirmarPassword
ControlOptions.ShowBorder = False
end
end
object dxLayoutControlArticuloGroup3: TdxLayoutGroup
Caption = 'New Group'
ShowCaption = False
LayoutDirection = ldHorizontal
ShowBorder = False
end
end
end
object ActionList1: TActionList
Images = SmallImages
Left = 72
Top = 48
object actMandarCorreo: TAction
Caption = 'Mandar un correo'
ImageIndex = 0
OnExecute = actMandarCorreoExecute
OnUpdate = actMandarCorreoUpdate
end
end
object dsUsuario: TDADataSource
Left = 104
Top = 48
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 = 43
Top = 48
Bitmap = {}
end
end

View File

@ -0,0 +1,210 @@
unit uViewUsuario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uUsuariosController, cxGraphics, ImgList, PngImageList,
dxLayoutControl, cxCurrencyEdit, uCustomView, cxControls, DB, uDAInterfaces,
uDADataTable, ActnList, cxCheckBox, cxDBEdit, cxMaskEdit, cxSpinEdit,
cxHyperLinkEdit, cxContainer, cxEdit, cxTextEdit, Buttons, PngSpeedButton,
uBizUsuarios, cxDropDownEdit, ExtCtrls;
type
IViewUsuario = interface(IViewBase)
['{E47D5136-A50C-4757-9352-4745518A899D}']
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
property Controller : IUsuariosController read GetController write SetController;
function GetUsuario: IBizUsuario;
procedure SetUsuario(const Value: IBizUsuario);
property Usuario: IBizUsuario read GetUsuario write SetUsuario;
end;
TfrViewUsuario = class(TfrViewBase, IViewUsuario)
ActionList1: TActionList;
dsUsuario: TDADataSource;
dxLayoutControlArticulo: TdxLayoutControl;
eNombre: TcxDBTextEdit;
eUsuario: TcxDBTextEdit;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutGroup2: TdxLayoutGroup;
dxLayoutControlArticuloItem3: TdxLayoutItem;
dxLayoutControlArticuloItem8: TdxLayoutItem;
dxLayoutControlArticuloGroup3: TdxLayoutGroup;
SmallImages: TPngImageList;
dxLayoutControlArticuloItem4: TdxLayoutItem;
eMail: TcxDBHyperLinkEdit;
dxLayoutControlArticuloItem5: TdxLayoutItem;
PngSpeedButton3: TPngSpeedButton;
actMandarCorreo: TAction;
dxLayoutControlArticuloGroup2: TdxLayoutGroup;
ePassword: TcxTextEdit;
dxLayoutControlArticuloItem11: TdxLayoutItem;
dxLayoutControlArticuloItem12: TdxLayoutItem;
eConfirmarPassword: TcxTextEdit;
dxLayoutControlArticuloGroup5: TdxLayoutGroup;
cbPerfil: TcxComboBox;
dxLayoutControlArticuloItem1: TdxLayoutItem;
procedure actMandarCorreoExecute(Sender: TObject);
procedure actMandarCorreoUpdate(Sender: TObject);
procedure cbPerfilPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure eMailPropertiesEditValueChanged(Sender: TObject);
procedure eMailPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
FController: IUsuariosController;
FUsuario : IBizUsuario;
FListaPerfiles : TStringList;
function GetController : IUsuariosController;
procedure SetController (const Value : IUsuariosController);
function GetUsuario: IBizUsuario;
procedure SetUsuario(const Value: IBizUsuario);
public
property Usuario: IBizUsuario read GetUsuario write SetUsuario;
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
{$R *.dfm}
type
THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit);
{ TfrViewUsuario }
procedure TfrViewUsuario.actMandarCorreoExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMail).DoStart;
end;
procedure TfrViewUsuario.actMandarCorreoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(eMail.Text) > 0)
end;
procedure TfrViewUsuario.cbPerfilPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
var
AIndex : integer;
begin
inherited;
if Assigned(FUsuario) and FUsuario.Active then
begin
if DisplayValue = cbPerfil.Properties.Items[0] then
AIndex := 0
else
AIndex := StrToInt(FListaPerfiles.Values[DisplayValue]);
FUsuario.Edit;
FUsuario.ID_PERFIL := AIndex;
FUsuario.Post;
end;
end;
procedure TfrViewUsuario.CustomViewCreate(Sender: TObject);
begin
inherited;
FListaPerfiles := NIL;
end;
procedure TfrViewUsuario.CustomViewDestroy(Sender: TObject);
begin
inherited;
FreeAndNIL(FListaPerfiles);
end;
procedure TfrViewUsuario.eMailPropertiesEditValueChanged(Sender: TObject);
begin
if not VarIsNull((Sender as TcxDBHyperLinkEdit).EditValue) then
(Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []);
end;
procedure TfrViewUsuario.eMailPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
if not VarIsNull(DisplayValue) then
DisplayValue := StringReplace(DisplayValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []);
end;
function TfrViewUsuario.GetController: IUsuariosController;
begin
Result := FController;
end;
function TfrViewUsuario.GetUsuario: IBizUsuario;
begin
Result := FUsuario;
end;
procedure TfrViewUsuario.SetController(const Value: IUsuariosController);
var
i : integer;
begin
FController := Value;
if Assigned(FController) then
begin
FListaPerfiles := FController.DarListaPerfilesUsuario;
with cbPerfil.Properties.Items do
begin
BeginUpdate;
try
Clear;
Add('<Ninguno>');
for i := 0 to FListaPerfiles.Count - 1 do
Add(FListaPerfiles.Names[i]);
finally
EndUpdate;
end;
end;
end;
end;
procedure TfrViewUsuario.SetUsuario(const Value: IBizUsuario);
var
i : integer;
begin
FUsuario := Value;
if Assigned(FUsuario) then
begin
dsUsuario.DataTable := FUsuario.DataTable;
if FUsuario.EsNuevo then
begin
dxLayoutControlArticuloGroup5.Visible := True;
cbPerfil.Text := cbPerfil.Properties.Items[0];
end
else begin
dxLayoutControlArticuloGroup5.Visible := False;
cbPerfil.Text := cbPerfil.Properties.Items[0];
for i := 0 to FListaPerfiles.Count-1 do
begin
if FListaPerfiles.ValueFromIndex[i] = IntToStr(FUsuario.ID_PERFIL) then
begin
cbPerfil.Text := FListaPerfiles.Names[i];
break;
end;
end;
end;
end
else begin
dsUsuario.DataTable := NIL;
FUsuario := NIL;
end;
end;
end.

View File

@ -0,0 +1,70 @@
inherited frViewUsuarios: TfrViewUsuarios
inherited cxGrid: TcxGrid
inherited cxGridView: TcxGridDBTableView
object cxGridViewID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
Visible = False
BestFitMaxWidth = 20
Width = 20
end
object cxGridViewUSERNAME: TcxGridDBColumn
DataBinding.FieldName = 'USERNAME'
Width = 150
end
object cxGridViewLOGIN: TcxGridDBColumn
DataBinding.FieldName = 'LOGIN'
BestFitMaxWidth = 75
Width = 75
end
object cxGridViewPASS: TcxGridDBColumn
DataBinding.FieldName = 'PASS'
Visible = False
end
object cxGridViewPASSEXPIRED: TcxGridDBColumn
DataBinding.FieldName = 'PASSEXPIRED'
Visible = False
end
object cxGridViewBLOQUEADO: TcxGridDBColumn
DataBinding.FieldName = 'BLOQUEADO'
Visible = False
end
object cxGridViewEMAIL: TcxGridDBColumn
DataBinding.FieldName = 'EMAIL'
BestFitMaxWidth = 120
Width = 120
end
object cxGridViewUSERDAYSSUN: TcxGridDBColumn
DataBinding.FieldName = 'USERDAYSSUN'
Visible = False
end
object cxGridViewPRIVILEGED: TcxGridDBColumn
DataBinding.FieldName = 'PRIVILEGED'
Visible = False
end
object cxGridViewTIPO: TcxGridDBColumn
DataBinding.FieldName = 'TIPO'
Visible = False
end
object cxGridViewID_PERFIL: TcxGridDBColumn
DataBinding.FieldName = 'ID_PERFIL'
Visible = False
end
end
end
inherited dsDataSource: TDADataSource
Left = 360
Top = 136
end
inherited dxComponentPrinter: TdxComponentPrinter
Left = 328
Top = 136
end
inherited dxPSEngineController1: TdxPSEngineController
Left = 296
Top = 136
end
inherited cxStyleRepository1: TcxStyleRepository
Left = 264
Top = 136
end
end

View File

@ -0,0 +1,64 @@
unit uViewUsuarios;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPgsDlg, dxPSCore, ImgList, PngImageList, ActnList,
cxGridCustomPopupMenu, cxGridPopupMenu, dxPScxCommon,
uDAInterfaces, uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock,
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
uBizUsuarios;
type
IViewUsuarios = interface(IViewGrid)
['{2F46A4FC-6501-47B2-AAB3-28B552DDA455}']
function GetUsuarios: IBizUsuario;
procedure SetUsuarios(const Value: IBizUsuario);
property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios;
end;
TfrViewUsuarios = class(TfrViewGrid, IViewUsuarios)
cxGridViewID: TcxGridDBColumn;
cxGridViewUSERNAME: TcxGridDBColumn;
cxGridViewLOGIN: TcxGridDBColumn;
cxGridViewPASS: TcxGridDBColumn;
cxGridViewPASSEXPIRED: TcxGridDBColumn;
cxGridViewBLOQUEADO: TcxGridDBColumn;
cxGridViewEMAIL: TcxGridDBColumn;
cxGridViewUSERDAYSSUN: TcxGridDBColumn;
cxGridViewPRIVILEGED: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewID_PERFIL: TcxGridDBColumn;
protected
FUsuarios : IBizUsuario;
function GetUsuarios: IBizUsuario;
procedure SetUsuarios(const Value: IBizUsuario);
public
property Usuarios: IBizUsuario read GetUsuarios write SetUsuarios;
end;
implementation
{$R *.dfm}
{ TfrViewUsuarios }
function TfrViewUsuarios.GetUsuarios: IBizUsuario;
begin
Result := FUsuarios;
end;
procedure TfrViewUsuarios.SetUsuarios(const Value: IBizUsuario);
begin
FUsuarios := Value;
if Assigned(FUsuarios) then
dsDataSource.DataTable := FUsuarios.DataTable;
end;
end.

View File

@ -0,0 +1,326 @@
unit uAdminPV_App;
interface
uses
SysUtils, Classes, Forms, uBizUsuarios, uControllerBase,
uUsuariosController, uHostManager;
type
TDoLoadModulesEvent = procedure;
TDoMainFormEvent = procedure;
IAppSplashForm = interface
['{9905DF57-4476-42E6-A7CD-B1479A84E220}']
procedure Show;
procedure Hide;
procedure Update;
function GetMensaje: String;
procedure SetMensaje(const AMensaje : String);
property Mensaje : String read GetMensaje write SetMensaje;
end;
IAppAdminPV = interface
['{FB6A0F3C-C1D1-462D-AFD4-2A368F85E920}']
function GetMainForm: TCustomForm;
function GetUsuariosController: IUsuariosController;
function GetAppName: String;
function GetAppVersion: String;
function GetAppFullName: String;
function GetUsuarioActivo: IBizUsuario;
function GetModuleManager : THostManager;
function GetTerminated: Boolean;
function GetLoadModulesEvent : TDoLoadModulesEvent;
procedure SetLoadModulesEvent (ALoadModulesEvent : TDoLoadModulesEvent);
function GetDoMainFormEvent : TDoMainFormEvent;
procedure SetDoMainFormEvent (AMainFormEvent : TDoMainFormEvent);
function GetAppSplashForm : IAppSplashForm;
procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm);
procedure ShowSplashForm;
procedure HideSplashForm;
procedure Run;
procedure Terminate;
property AppVersion : String read GetAppVersion;
property AppName : String read GetAppName;
property AppFullName : String read GetAppFullName;
property MainForm : TCustomForm read GetMainForm;
property UsuarioActivo : IBizUsuario read GetUsuarioActivo;
property UsuariosController : IUsuariosController read GetUsuariosController;
property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm;
property ModuleManager : THostManager read GetModuleManager;
property DoMainFormEvent : TDoMainFormEvent read GetDoMainFormEvent write SetDoMainFormEvent;
property DoLoadModulesEvent : TDoLoadModulesEvent read GetLoadModulesEvent write SetLoadModulesEvent;
property Terminated : Boolean read GetTerminated;
procedure ShowCapado;
end;
TAppAdminPV = class(TInterfacedObject, IAppAdminPV)
private
FUsuariosController: IUsuariosController;
FAppSplashForm : IAppSplashForm;
FHostManager : THostManager;
FTerminated : Boolean;
FDoMainFormEvent: TDoMainFormEvent;
FDoLoadModulesEvent: TDoMainFormEvent;
function GetMainForm: TCustomForm;
function GetUsuariosController: IUsuariosController;
function GetAppName: String;
function GetAppVersion: String;
function GetAppFullName: String;
function GetUsuarioActivo: IBizUsuario;
function GetModuleManager : THostManager;
function GetTerminated: Boolean;
function GetLoadModulesEvent : TDoLoadModulesEvent;
procedure SetLoadModulesEvent (ALoadModulesEvent : TDoLoadModulesEvent);
function GetDoMainFormEvent : TDoMainFormEvent;
procedure SetDoMainFormEvent (AMainFormEvent : TDoMainFormEvent);
function GetAppSplashForm : IAppSplashForm;
procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm);
procedure AfterLoadModule(Sender: TObject; AModuleInfo: TModuleInfo);
procedure RegisterModule(AModuleInfo : TModuleInfo);
protected
procedure DoMainForm;
procedure CargarModulos;
procedure ShowSplashForm;
procedure HideSplashForm;
procedure UpdateSplashForm;
public
constructor Create; virtual;
destructor Destroy; override;
procedure Run;
procedure Terminate;
property AppVersion : String read GetAppVersion;
property AppName : String read GetAppName;
property AppFullName : String read GetAppFullName;
property MainForm : TCustomForm read GetMainForm;
property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm;
property UsuarioActivo : IBizUsuario read GetUsuarioActivo;
property UsuariosController : IUsuariosController read GetUsuariosController;
property ModuleManager : THostManager read GetModuleManager;
property DoMainFormEvent : TDoMainFormEvent read GetDoMainFormEvent write SetDoMainFormEvent;
property DoLoadModulesEvent : TDoLoadModulesEvent read GetLoadModulesEvent write SetLoadModulesEvent;
property Terminated : Boolean read GetTerminated;
procedure ShowCapado;
end;
var
AppAdminPV : IAppAdminPV = nil;
implementation
uses
Dialogs, uDialogUtils, cxControls, uUsuariosViewRegister,
uAppInfoUtils;
procedure TAppAdminPV.CargarModulos;
begin
if not Assigned(FDoLoadModulesEvent) then
raise Exception.Create('Evento para la carga de los módulos de la aplicación no asignado (CargarModulos)');
FDoLoadModulesEvent();
end;
constructor TAppAdminPV.Create;
begin
FTerminated := False;
FDoMainFormEvent := NIL;
FDoLoadModulesEvent := NIL;
FAppSplashForm := NIL;
FUsuariosController := NIL; // Se crea la primera vez que se usa
FHostManager := THostManager.Create(NIL);
with FHostManager do
begin
OnAfterLoad := AfterLoadModule;
// Ruta por defecto de los módulos
BPLPath := ExtractFilePath(Application.ExeName) + PathDelim;
end;
end;
destructor TAppAdminPV.Destroy;
begin
FAppSplashForm := NIL;
FHostManager.UnloadModules;
FreeAndNIL(FHostManager);
FUsuariosController := NIL;
inherited;
end;
procedure TAppAdminPV.DoMainForm;
begin
if not Assigned(FDoMainFormEvent) then
raise Exception.Create('Evento para la creación del formulario principal no asignado (DoMainForm)');
FDoMainFormEvent();
end;
function TAppAdminPV.GetMainForm: TCustomForm;
begin
Result := Application.MainForm;
end;
function TAppAdminPV.GetDoMainFormEvent: TDoMainFormEvent;
begin
Result := FDoMainFormEvent;
end;
function TAppAdminPV.GetAppFullName: String;
begin
Result := uAppInfoUtils.GetAppFullName;
end;
function TAppAdminPV.GetAppName: String;
begin
Result := uAppInfoUtils.GetAppName;
end;
function TAppAdminPV.GetAppSplashForm: IAppSplashForm;
begin
Result := FAppSplashForm;
end;
function TAppAdminPV.GetAppVersion: String;
begin
Result := uAppInfoUtils.GetAppVersion;
end;
function TAppAdminPV.GetLoadModulesEvent: TDoLoadModulesEvent;
begin
Result := FDoLoadModulesEvent;
end;
function TAppAdminPV.GetModuleManager: THostManager;
begin
Result := FHostManager;
end;
function TAppAdminPV.GetTerminated: Boolean;
begin
Result := FTerminated;
end;
function TAppAdminPV.GetUsuarioActivo: IBizUsuario;
begin
Result := UsuariosController.CurrentUser;
end;
function TAppAdminPV.GetUsuariosController: IUsuariosController;
begin
if not Assigned(FUsuariosController) then
FUsuariosController := TUsuariosController.Create;
Result := FUsuariosController;
end;
procedure TAppAdminPV.HideSplashForm;
begin
if not Assigned(FAppSplashForm) then
raise Exception.Create('AppSplashForm no asignado (HideSplashForm)');
FAppSplashForm.Hide;
end;
procedure TAppAdminPV.AfterLoadModule(Sender: TObject;
AModuleInfo: TModuleInfo);
begin
RegisterModule(AModuleInfo);
end;
procedure TAppAdminPV.RegisterModule(AModuleInfo: TModuleInfo);
begin
AppSplashForm.Mensaje := 'Cargando ''' + AModuleInfo.Module.ModuleName + '''...';
end;
procedure TAppAdminPV.Run;
begin
if UsuariosController.StartLogin then
begin
ShowHourglassCursor;
try
CargarModulos;
DoMainForm;
finally
HideHourglassCursor;
HideSplashForm;
end;
end;
Application.Run;
Terminate;
end;
procedure TAppAdminPV.SetDoMainFormEvent(
AMainFormEvent: TDoMainFormEvent);
begin
FDoMainFormEvent := AMainFormEvent;
end;
procedure TAppAdminPV.SetAppSplashForm(AAppSplashForm: IAppSplashForm);
begin
FAppSplashForm := AAppSplashForm;
end;
procedure TAppAdminPV.SetLoadModulesEvent(
ALoadModulesEvent: TDoLoadModulesEvent);
begin
FDoLoadModulesEvent := ALoadModulesEvent;
end;
procedure TAppAdminPV.ShowCapado;
begin
ShowInfoMessage('Sin Acceso', 'Funcionalidad en desarrollo, disculpen las molestias');
end;
procedure TAppAdminPV.ShowSplashForm;
begin
if not Assigned(FAppSplashForm) then
raise Exception.Create('AppSplashForm no asignado (ShowSplashForm)');
FAppSplashForm.Show;
FAppSplashForm.Update;
end;
procedure TAppAdminPV.Terminate;
begin
ModuleManager.UnloadModules;
FTerminated := True;
end;
procedure TAppAdminPV.UpdateSplashForm;
begin
FAppSplashForm.Update;
end;
initialization
// Pongo esto aquí por ahora
uUsuariosViewRegister.RegisterViews;
finalization
// Pongo esto aquí por ahora
AppAdminPV := NIL;
uUsuariosViewRegister.UnregisterViews;
end.

View File

@ -77,16 +77,15 @@ requires
dxPSLnksD10, dxPSLnksD10,
vclshlctrls, vclshlctrls,
dclcxLibraryD10, dclcxLibraryD10,
RemObjects_Core_D10, RemObjects_Core_D11,
DataAbstract_Core_D10; DataAbstract_Core_D11,
JSDialog100;
contains contains
uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule}, uDMBase in 'uDMBase.pas' {dmBase: TDAClientDataModule},
uEditorBase in 'uEditorBase.pas' {fEditorBase}, uEditorBase in 'uEditorBase.pas' {fEditorBase},
uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase}, uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase},
uEditorItem in 'uEditorItem.pas' {fEditorItem}, uEditorItem in 'uEditorItem.pas' {fEditorItem},
uDataTableUtils in 'uDataTableUtils.pas',
uEditorUtils in 'uEditorUtils.pas',
uEditorPreview in 'uEditorPreview.pas' {fEditorPreview}, uEditorPreview in 'uEditorPreview.pas' {fEditorPreview},
uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame},
uViewBase in 'uViewBase.pas' {frViewBase: TCustomView}, uViewBase in 'uViewBase.pas' {frViewBase: TCustomView},
@ -95,15 +94,24 @@ contains
uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor},
uExceptions in 'uExceptions.pas', uExceptions in 'uExceptions.pas',
uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame},
uDBSelectionList in 'uDBSelectionList.pas',
uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion}, uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion},
uBizInformesBase in 'uBizInformesBase.pas', uBizInformesBase in 'uBizInformesBase.pas',
uSysFunc in 'uSysFunc.pas',
VARELA_Intf in '..\Servidor\VARELA_Intf.pas',
uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView}, uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView},
uIntegerList in 'uIntegerList.pas', VARELA_Intf in '..\Servicios\VARELA_Intf.pas',
schStockClient_Intf in '..\Modulos\Stock\Reglas\schStockClient_Intf.pas', uControllerBase in 'Controladores\uControllerBase.pas',
schStockServer_Intf in '..\Modulos\Stock\Reglas\schStockServer_Intf.pas', uDataModuleBase in 'uDataModuleBase.pas' {fDataModuleBase: TDataModuleBase},
uGridUtils in 'uGridUtils.pas'; uSysFunc in 'Utiles\uSysFunc.pas',
uDataTableUtils in 'Utiles\uDataTableUtils.pas',
uDBSelectionList in 'Utiles\uDBSelectionList.pas',
uDialogUtils in 'Utiles\uDialogUtils.pas',
uEditorUtils in 'Utiles\uEditorUtils.pas',
uGridUtils in 'Utiles\uGridUtils.pas',
uIntegerList in 'Utiles\uIntegerList.pas',
uViewRegistryUtils in 'ClassRegistry\uViewRegistryUtils.pas',
uClassRegistryUtils in 'ClassRegistry\uClassRegistryUtils.pas',
uEditorRegistryUtils in 'ClassRegistry\uEditorRegistryUtils.pas',
uInformeRegistryUtils in 'ClassRegistry\uInformeRegistryUtils.pas',
uAppInfoUtils in 'Utiles\uAppInfoUtils.pas',
uDateUtils in 'Utiles\uDateUtils.pas';
end. end.

View File

@ -53,9 +53,7 @@
<DelphiCompile Include="BaseD10.dpk"> <DelphiCompile Include="BaseD10.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Modulos\Stock\Reglas\schStockClient_Intf.pas" /> <DCCReference Include="..\Servicios\VARELA_Intf.pas" />
<DCCReference Include="..\Modulos\Stock\Reglas\schStockServer_Intf.pas" />
<DCCReference Include="..\Servidor\VARELA_Intf.pas" />
<DCCReference Include="C:\Documents and Settings\Usuario\adortl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\adortl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\ccpack10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\ccpack10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxDataD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\cxDataD10.dcp" />
@ -67,7 +65,7 @@
<DCCReference Include="C:\Documents and Settings\Usuario\cxIntlPrintSys3D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\cxIntlPrintSys3D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxPageControlD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\cxPageControlD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dclcxLibraryD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\dclcxLibraryD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\designide.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\designide.dcp" />
@ -84,12 +82,11 @@
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frx10.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\frxe10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frxTee10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\fs10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\fs10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\fsTee10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUISDK_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\GUISDK_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Jcl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\Jcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JclVcl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\JclVcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JSDialog100.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvAppFrmD10R.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\JvAppFrmD10R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCoreD10R.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\JvCoreD10R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD10R.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD10R.dcp" />
@ -99,35 +96,44 @@
<DCCReference Include="C:\Documents and Settings\Usuario\JvSystemD10R.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\JvSystemD10R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PngComponentsD10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\PngComponentsD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PNG_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\PNG_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\tb2k_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\tb2k_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\tbx_D10.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\tbx_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\tee.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\tee.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\teeui.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclactnband.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vclactnband.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclshlctrls.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vclshlctrls.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" /> <DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" />
<DCCReference Include="ClassRegistry\uClassRegistryUtils.pas" />
<DCCReference Include="ClassRegistry\uEditorRegistryUtils.pas" />
<DCCReference Include="ClassRegistry\uInformeRegistryUtils.pas" />
<DCCReference Include="ClassRegistry\uViewRegistryUtils.pas" />
<DCCReference Include="Controladores\uControllerBase.pas" />
<DCCReference Include="uBizInformesBase.pas" /> <DCCReference Include="uBizInformesBase.pas" />
<DCCReference Include="uConfigurarConexion.pas"> <DCCReference Include="uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form> <Form>fConfigurarConexion</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDataModuleBase.pas"> <DCCReference Include="uDataModuleBase.pas">
<Form>dmBase</Form> <Form>fDataModuleBase</Form>
<DesignClass>TDataModuleBase</DesignClass>
</DCCReference>
<DCCReference Include="uDMBase.pas">
<Form>dmBase</Form>
<DesignClass>TDAClientDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uDataTableUtils.pas" />
<DCCReference Include="uDBSelectionList.pas" />
<DCCReference Include="uEditorBase.pas"> <DCCReference Include="uEditorBase.pas">
<Form>fEditorBase</Form> <Form>fEditorBase</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uEditorDBBase.pas"> <DCCReference Include="uEditorDBBase.pas">
<Form>fEditorDBBase</Form> <Form>fEditorDBBase</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uEditorDBItem.pas"> <DCCReference Include="uEditorDBItem.pas">
<Form>fEditorDBItem</Form> <Form>fEditorDBItem</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uEditorGridBase.pas"> <DCCReference Include="uEditorGridBase.pas">
<Form>fEditorGridBase</Form> <Form>fEditorGridBase</Form>
@ -138,25 +144,35 @@
<DCCReference Include="uEditorPreview.pas"> <DCCReference Include="uEditorPreview.pas">
<Form>fEditorPreview</Form> <Form>fEditorPreview</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uEditorUtils.pas" />
<DCCReference Include="uExceptions.pas" /> <DCCReference Include="uExceptions.pas" />
<DCCReference Include="uGridUtils.pas" /> <DCCReference Include="Utiles\uAppInfoUtils.pas" />
<DCCReference Include="uIntegerList.pas" /> <DCCReference Include="Utiles\uDataTableUtils.pas" />
<DCCReference Include="uSysFunc.pas" /> <DCCReference Include="Utiles\uDateUtils.pas" />
<DCCReference Include="Utiles\uDBSelectionList.pas" />
<DCCReference Include="Utiles\uDialogUtils.pas" />
<DCCReference Include="Utiles\uEditorUtils.pas" />
<DCCReference Include="Utiles\uGridUtils.pas" />
<DCCReference Include="Utiles\uIntegerList.pas" />
<DCCReference Include="Utiles\uSysFunc.pas" />
<DCCReference Include="uViewBarraSeleccion.pas"> <DCCReference Include="uViewBarraSeleccion.pas">
<Form>frViewBarraSeleccion</Form> <Form>frViewBarraSeleccion</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewBase.pas"> <DCCReference Include="uViewBase.pas">
<Form>frViewBase</Form> <Form>frViewBase</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewGrid.pas"> <DCCReference Include="uViewGrid.pas">
<Form>frViewGrid</Form> <Form>frViewGrid</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewGridBase.pas"> <DCCReference Include="uViewGridBase.pas">
<Form>frViewGridBase</Form> <Form>frViewGridBase</Form>
<DesignClass>TCustomView</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uViewPreview.pas"> <DCCReference Include="uViewPreview.pas">
<Form>frViewPreview</Form> <Form>frViewPreview</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -8,14 +8,17 @@
resources were bound to the produced executable. resources were bound to the produced executable.
*/ */
#define uClassRegistryUtils_eClassnotFound 65520
STRINGTABLE STRINGTABLE
BEGIN BEGIN
uClassRegistryUtils_eClassnotFound, "Class \"%s\" was not found in the registry."
END END
/* C:\Varela_D2007\Source\Base\uConfigurarConexion.dfm */ /* C:\Varela_D2007\Source\Base\uConfigurarConexion.dfm */
/* C:\Varela_D2007\Source\Base\uDataModuleBase.dfm */ /* C:\Varela_D2007\Source\Base\uDMBase.dfm */
/* C:\Varela_D2007\Source\Base\uViewBase.dfm */ /* C:\Varela_D2007\Source\Base\uViewBase.dfm */
/* C:\Varela_D2007\Source\Base\uEditorBase.dfm */ /* C:\Varela_D2007\Source\Base\uEditorBase.dfm */
/* C:\Varela_D2007\Source\Base\uDataModuleBase.dfm */
/* C:\Varela_D2007\Source\Base\uViewGridBase.dfm */ /* C:\Varela_D2007\Source\Base\uViewGridBase.dfm */
/* C:\Varela_D2007\Source\Base\uEditorItem.dfm */ /* C:\Varela_D2007\Source\Base\uEditorItem.dfm */
/* C:\Varela_D2007\Source\Base\uEditorDBBase.dfm */ /* C:\Varela_D2007\Source\Base\uEditorDBBase.dfm */
@ -26,4 +29,4 @@ END
/* C:\Varela_D2007\Source\Base\uViewBarraSeleccion.dfm */ /* C:\Varela_D2007\Source\Base\uViewBarraSeleccion.dfm */
/* C:\Varela_D2007\Source\Base\uViewGrid.dfm */ /* C:\Varela_D2007\Source\Base\uViewGrid.dfm */
/* C:\Varela_D2007\Source\Base\BaseD10.res */ /* C:\Varela_D2007\Source\Base\BaseD10.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf9.tmp */ /* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf21.tmp */

Binary file not shown.

View File

@ -0,0 +1,336 @@
unit uClassRegistryUtils;
interface
uses
Classes, SysUtils, Forms, uGUIBase;
type
IClassRegistry = Interface
['{FD23C946-4103-4C67-9C3F-644B52826833}']
procedure RegisterClass( aClass: TClass; const aDisplayname: String = '');
procedure RegisterClasses( const aClasses: array of TClass;
const aDisplaynames: array of String );
procedure UnRegisterClass( aClass: TClass );
function FindClass( const aClassOrDisplayname: String ): Tclass;
function IsClassRegistered( aClass: TClass ): Boolean; overload;
function IsClassRegistered( const aDisplayname: String ): Boolean; overload;
procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil);
function CreateObject( const aClassOrDisplayname: String ): TObject;
end;
IComponentRegistry = Interface( IClassRegistry )
['{04BAA01F-9AF4-4E60-9922-641E127A35C2}']
function CreateComponent( const aClassOrDisplayname: String;
aOwner:TComponent = nil ): TComponent;
end;
IFormRegistry = Interface( IComponentRegistry )
['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}']
function CreateForm( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TForm;
end;
IDataModuleRegistry = Interface( IComponentRegistry )
['{9D8D1D23-6A5C-4351-9393-093CD8B76788}']
function CreateDatamodule( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TDatamodule;
end;
IReportRegistry = Interface( IComponentRegistry )
['{49D3C8D5-8FEE-4F15-A6D2-51CB1DB29F8D}']
function CreateReport( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TInterfacedObject;
end;
TClassRegistry = class( TInterfacedObject, IClassRegistry )
private
FList: TStringlist;
FMinAcceptableClass: TClass;
function FindClassByClassname( const aClassname: String ): Tclass;
function FindClassByDisplayname( const aDisplayname: String ): TClass;
function IsClassAcceptable( aClass: TClass ): Boolean;
function GetClasses(index: integer): TClass;
function GetCount: Integer;
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); virtual;
procedure RegisterClass( aClass: TClass; const aDisplayname: String = '');
procedure RegisterClasses( const aClasses: array of TClass;
const aDisplaynames: array of String );
procedure UnRegisterClass( aClass: TClass );
function FindClass( const aClassOrDisplayname: String ): Tclass;
function IsClassRegistered( aClass: TClass ): Boolean; overload;
function IsClassRegistered( const aDisplayname: String ): Boolean; overload;
procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil);
function CreateObject( const aClassOrDisplayname: String ): TObject;
property MinAcceptableClass: TClass read FMinAcceptableClass;
property List: TStringlist read FList;
property Count: Integer read GetCount;
property Classes[ index: integer ]: TClass read GetClasses;
public
constructor Create( minAcceptableClass: TClass = nil ); virtual;
destructor Destroy; override;
end;
TComponentRegistry = class( TClassRegistry, IComponentRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override;
function CreateComponent( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TComponent;
end;
TFormRegistry = class( TComponentRegistry, IFormRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override;
function CreateForm( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TForm;
end;
TDataModuleRegistry = class( TComponentRegistry, IDataModuleRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateDatamodule( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TDatamodule;
end;
TReportRegistry = class( TComponentRegistry, IReportRegistry )
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override;
function CreateReport( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TInterfacedObject;
end;
EClassRegistryError = class( Exception );
implementation
{ TClassRegistry }
ResourceString
eClassnotFound = 'Class "%s" was not found in the registry.';
constructor TClassRegistry.Create(minAcceptableClass: TClass);
begin
inherited Create;
FList := Tstringlist.Create;
ValidateMinAcceptableClass( minAcceptableClass );
FMinAcceptableClass := minAcceptableClass;
end;
function TClassRegistry.CreateObject(
const aClassOrDisplayname: String): TObject;
begin
Result := FindClass( aClassOrDisplayname ).Create;
end;
destructor TClassRegistry.Destroy;
begin
Flist.Free;
inherited;
end;
function TClassRegistry.FindClass(
const aClassOrDisplayname: String): Tclass;
begin
Result := FindClassByDisplayname( aClassOrDisplayname );
If not Assigned( Result ) Then
Result := FindClassByClassname( aClassOrDisplayname );
If not Assigned( Result ) Then
raise EClassRegistryError.CreateFmt
( eClassnotFound, [ aClassOrDisplayname ] );
end;
function TClassRegistry.FindClassByClassname(
const aClassname: String): Tclass;
var
i: Integer;
begin
for i:= 0 to count-1 do begin
Result := classes[i];
If Result.ClassNameIs( aClassname ) Then
Exit;
end;
Result := nil;
end;
function TClassRegistry.FindClassByDisplayname(
const aDisplayname: String): TClass;
var
i: Integer;
begin
i:= List.IndexOf( aDisplayname );
If i >= 0 Then
Result := Classes[i]
Else
Result := nil;
end;
function TClassRegistry.GetClasses(index: integer): TClass;
begin
Result := TClass( List.Objects[index] );
end;
function TClassRegistry.GetCount: Integer;
begin
Result := List.Count;
end;
procedure TClassRegistry.GetRegisteredClasses(aList: TStrings;
aMinClass: TClass);
var
i: Integer;
aClass: TClass;
begin
Assert( Assigned( aList ));
aList.BeginUpdate;
try
aList.Clear;
If not Assigned( aMinClass ) Then
aList.Assign( List )
else begin
For i:= 0 To Count-1 Do Begin
aClass := Classes[i];
If aClass.InheritsFrom( aMinClass ) Then
aList.AddObject( List[i], TObject( aClass ));
end;
end;
finally
aList.EndUpdate
end;
end;
function TClassRegistry.IsClassAcceptable(aClass: TClass): Boolean;
begin
Result := Assigned( aClass ) and
aClass.InheritsFrom( MinAcceptableClass );
end;
function TClassRegistry.IsClassRegistered(const aDisplayname: String): Boolean;
begin
Result := List.IndexOf(aDisplayname) >= 0;
end;
function TClassRegistry.IsClassRegistered(aClass: TClass): Boolean;
begin
Result := List.IndexOfObject( TObject( aClass )) >= 0;
end;
procedure TClassRegistry.RegisterClass(aClass: TClass;
const aDisplayname: String);
begin
Assert( Assigned( aClass ), 'Cannot register Nil class' );
If aDisplayname = '' Then
RegisterClass( aClass, aClass.Classname )
else begin
Assert( IsClassAcceptable( aClass ),
format('Cannot register %s since it does not inherit from %s',
[aclass.classname, MinAcceptableClass.classname] ));
Assert( not IsClassRegistered( aClass ),
Format('Class %s is already registered.', [aClass.Classname]));
List.AddObject( aDisplayname, TObject( aClass ));
end;
end;
procedure TClassRegistry.RegisterClasses(const aClasses: array of TClass;
const aDisplaynames: array of String);
var
i: Integer;
begin
Assert( High( aClasses ) = High( aDisplaynames ),
'Size of both parameter arrays has to be the same.' );
for i:= Low( aClasses ) to High( aClasses ) do
RegisterClass( aClasses[i], aDisplaynames[i] );
end;
procedure TClassRegistry.UnRegisterClass(aClass: TClass);
var
i: Integer;
begin
i:= List.IndexOfObject( TObject( aClass ));
If i >= 0 Then
List.Delete( i );
// does not consider attempt to unregister a class that is not
// registered as an error.
end;
procedure TClassRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
If not Assigned( aMinAcceptableClass ) Then
aMinAcceptableClass := TObject;
end;
{ TComponentRegistry }
function TComponentRegistry.CreateComponent(
const aClassOrDisplayname: String; aOwner: TComponent): TComponent;
var
aClass: TComponentClass;
begin
aClass := TComponentClass( FindClass( aClassOrDisplayname ));
Result := aClass.Create( aOwner );
end;
procedure TComponentRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TComponent )
Then
aMinAcceptableClass := TComponent;
end;
{ TFormRegistry }
function TFormRegistry.CreateForm(const aClassOrDisplayname: String;
aOwner: TComponent): TForm;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) As TForm;
end;
procedure TFormRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TForm )
Then
aMinAcceptableClass := TForm;
end;
{ TDataModuleRegistry }
function TDataModuleRegistry.CreateDatamodule(
const aClassOrDisplayname: String; aOwner: TComponent): TDatamodule;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) As TDatamodule;
end;
procedure TDataModuleRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TDatamodule )
Then
aMinAcceptableClass := TDatamodule;
end;
{ TReportRegistry }
function TReportRegistry.CreateReport(const aClassOrDisplayname: String;
aOwner: TComponent): TInterfacedObject;
begin
Result := CreateObject( aClassOrDisplayname) As TInterfacedObject;
// Result := CreateComponent( aClassOrDisplayname, aOwner ) As TInterfacedObject;
end;
procedure TReportRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
If not aMinAcceptableClass.InheritsFrom( TInterfacedObject )
Then
aMinAcceptableClass := TInterfacedObject;
end;
end.

View File

@ -0,0 +1,81 @@
unit uEditorRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils, uCustomEditor;
type
{
IEditorRegistry = interface (IComponentRegistry)
22F14B82-AC61-4987-847E-AF8513DE2A10
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = NIL): TCustomEditor;
end;
TEditorRegistry = class(TComponentRegistry, IEditorRegistry)
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TCustomEditor;
end;
}
IEditorRegistry = interface (IFormRegistry)
['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}']
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = NIL): TForm;
end;
TEditorRegistry = class(TFormRegistry, IEditorRegistry)
protected
function CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TForm;
end;
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
var
EditorRegistry : IEditorRegistry;
implementation
uses
SysUtils, cxControls;
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
ShowHourglassCursor;
try
Result := Supports(EditorRegistry.CreateEditor(AName, Application), IID, Intf);
finally
HideHourglassCursor;
end;
end;
{ TEditorRegistry }
function TEditorRegistry.CreateEditor(const aClassOrDisplayname: String;
aOwner: TComponent): TForm;
begin
if not Assigned(AOwner) then
AOwner := Application;
Result := CreateComponent( aClassOrDisplayname, aOwner ) as TForm;
end;
{procedure TEditorRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
if not aMinAcceptableClass.InheritsFrom(TCustomEditor) then
aMinAcceptableClass := TCustomEditor;
end;}
initialization
EditorRegistry := TEditorRegistry.Create;
finalization
EditorRegistry := NIL;
end.

View File

@ -0,0 +1,59 @@
unit uInformeRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils;
type
IInformeRegistry = interface (IReportRegistry)
['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}']
function CreateInforme(const aClassOrDisplayname: String;
aOwner: TComponent = NIL): TInterfacedObject;
end;
TInformeRegistry = class(TReportRegistry, IInformeRegistry)
protected
function CreateInforme(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TInterfacedObject;
end;
function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean;
var
InformeRegistry : IInformeRegistry;
implementation
uses
SysUtils, cxControls;
function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
ShowHourglassCursor;
try
Result := Supports(InformeRegistry.CreateInforme(AName, Application), IID, Intf);
finally
HideHourglassCursor;
end;
end;
{ TInformeRegistry }
function TInformeRegistry.CreateInforme(const aClassOrDisplayname: String;
aOwner: TComponent): TInterfacedObject;
begin
{ if not Assigned(AOwner) then
AOwner := Application;}
Result := CreateObject( aClassOrDisplayname) as TInterfacedObject;
end;
initialization
InformeRegistry := TInformeRegistry.Create;
finalization
InformeRegistry := NIL;
end.

View File

@ -0,0 +1,50 @@
unit uViewRegistryUtils;
interface
uses
Classes, Forms, uClassRegistryUtils, uCustomView;
type
IViewRegistry = interface (IComponentRegistry)
['{F49AE52F-47EC-42AF-8365-A09270E4B45D}']
function CreateView(const aClassOrDisplayname: String;
aOwner: TComponent = nil): TCustomView;
end;
TViewRegistry = class(TComponentRegistry, IViewRegistry)
protected
procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override;
function CreateView( const aClassOrDisplayname: String;
aOwner: TComponent = nil ): TCustomView;
end;
var
ViewRegistry : IViewRegistry;
implementation
{ TViewRegistry }
function TViewRegistry.CreateView(const aClassOrDisplayname: String;
aOwner: TComponent): TCustomView;
begin
Result := CreateComponent( aClassOrDisplayname, aOwner ) as TCustomView;
end;
procedure TViewRegistry.ValidateMinAcceptableClass(
var aMinAcceptableClass: TClass);
begin
inherited;
if not aMinAcceptableClass.InheritsFrom(TCustomView) then
aMinAcceptableClass := TCustomView;
end;
initialization
ViewRegistry := TViewRegistry.Create;
finalization
ViewRegistry := NIL;
end.

View File

@ -0,0 +1,280 @@
unit uControllerBase;
interface
uses
Classes, uDADataTable, Forms;
type
ISujeto = interface;
IObservador = interface (IInterface)
['{679D5CF2-D5DC-4A52-9FF3-04AD91402483}']
procedure AddSujeto(Sujeto: ISujeto);
procedure DeleteSujeto(Sujeto: ISujeto);
procedure RecibirAviso(ASujeto: ISujeto); overload;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload;
end;
ISujeto = interface (IInterface)
['{CDB691CD-D1D6-4F2E-AA34-93B1CD0E6030}']
procedure AddObservador(Observador: IObservador);
procedure DeleteObservador(Observador: IObservador);
end;
{ ******************* PARA PRUEBAS ******************************************}
TMiInterfacedObject = class(TObject, IInterface)
protected
FRefCount: Integer;
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; virtual; stdcall;
function GetRefCount : Integer;
public
procedure AfterConstruction; override;
procedure BeforeDestruction; override;
class function NewInstance: TObject; override;
property RefCount: Integer read FRefCount;
end;
{ ***************************************************************************}
TObservador = class(TObject, IObservador)
private
fSujetos: IInterfaceList;
protected
FRefCount: Integer;
procedure RecibirAviso(ASujeto: ISujeto); overload; virtual;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; virtual; abstract;
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
function GetRefCount : Integer;
public
constructor Create; virtual;
procedure AddSujeto(Sujeto: ISujeto);
procedure DeleteSujeto(Sujeto: ISujeto);
destructor Destroy; override;
procedure AfterConstruction; override;
procedure BeforeDestruction; override;
class function NewInstance: TObject; override;
property RefCount: Integer read FRefCount;
end;
TSujeto = class(TInterfacedObject, ISujeto)
private
fObservadores: IInterfaceList;
protected
procedure AvisarObservadores; overload;
procedure AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); overload;
public
constructor Create; virtual;
procedure AddObservador(Observador: IObservador);
procedure DeleteObservador(Observador: IObservador);
destructor Destroy; override;
end;
IControllerBase = IObservador;
TControllerBase = TObservador;
implementation
uses
Dialogs, SysUtils;
function InterlockedIncrement(var I: Integer): Integer;
asm
MOV EDX,1
XCHG EAX,EDX
LOCK XADD [EDX],EAX
INC EAX
end;
function InterlockedDecrement(var I: Integer): Integer;
asm
MOV EDX,-1
XCHG EAX,EDX
LOCK XADD [EDX],EAX
DEC EAX
end;
{ TMiInterfacedObject }
procedure TMiInterfacedObject.AfterConstruction;
begin
// Release the constructor's implicit refcount
InterlockedDecrement(FRefCount);
end;
procedure TMiInterfacedObject.BeforeDestruction;
begin
// if RefCount <> 0 then
// Error(reInvalidPtr);
end;
function TMiInterfacedObject.GetRefCount: Integer;
begin
Result := FRefCount;
end;
// Set an implicit refcount so that refcounting
// during construction won't destroy the object.
class function TMiInterfacedObject.NewInstance: TObject;
begin
Result := inherited NewInstance;
TMiInterfacedObject(Result).FRefCount := 1;
end;
function TMiInterfacedObject.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if GetInterface(IID, Obj) then
Result := 0
else
Result := E_NOINTERFACE;
end;
function TMiInterfacedObject._AddRef: Integer;
begin
Result := InterlockedIncrement(FRefCount);
// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount));
end;
function TMiInterfacedObject._Release: Integer;
begin
Result := InterlockedDecrement(FRefCount);
// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount));
if Result = 0 then
Destroy;
end;
{ TSujeto }
procedure TSujeto.addObservador(Observador: IObservador);
begin
FObservadores.Add(Observador);
Observador.AddSujeto(Self);
end;
procedure TSujeto.AvisarObservadores;
var
i: Integer;
AObs : IObservador;
begin
for i := 0 to Pred(FObservadores.Count) do
begin
if Supports(FObservadores[i], IObservador, AObs) then
AObs.RecibirAviso(Self);
end;
end;
procedure TSujeto.AvisarObservadores(ADataTable: IDAStronglyTypedDataTable);
var
i: Integer;
AObs : IObservador;
begin
for i := 0 to Pred(FObservadores.Count) do
begin
if Supports(FObservadores[i], IObservador, AObs) then
AObs.RecibirAviso(Self, ADataTable);
end;
end;
constructor TSujeto.Create;
begin
inherited;
FObservadores := TInterfaceList.Create;
end;
procedure TSujeto.DeleteObservador(Observador: IObservador);
begin
FObservadores.Remove(Observador);
end;
destructor TSujeto.Destroy;
begin
FObservadores := NIL;
inherited;
end;
{ TObservador }
procedure TObservador.RecibirAviso(ASujeto: ISujeto);
begin
//
end;
function TObservador._AddRef: Integer;
begin
Result := InterlockedIncrement(FRefCount);
// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount));
end;
function TObservador._Release: Integer;
begin
Result := InterlockedDecrement(FRefCount);
// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount));
// if (Result = 0)
if (Assigned(fSujetos) and (fSujetos.Count = FRefCount)) then
Destroy;
end;
procedure TObservador.AddSujeto(Sujeto: ISujeto);
begin
FSujetos.Add(Sujeto);
end;
procedure TObservador.AfterConstruction;
begin
// Release the constructor's implicit refcount
InterlockedDecrement(FRefCount);
end;
procedure TObservador.BeforeDestruction;
begin
// if RefCount <> 0 then
// Error(reInvalidPtr);
end;
constructor TObservador.Create;
begin
inherited;
FSujetos := TInterfaceList.Create;
end;
procedure TObservador.DeleteSujeto(Sujeto: ISujeto);
begin
FSujetos.Remove(Sujeto);
end;
destructor TObservador.Destroy;
begin
FSujetos := NIL;
inherited;
end;
function TObservador.GetRefCount: Integer;
begin
Result := FRefCount;
end;
class function TObservador.NewInstance: TObject;
begin
Result := inherited NewInstance;
TObservador(Result).FRefCount := 1;
end;
function TObservador.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if GetInterface(IID, Obj) then
Result := 0
else
Result := E_NOINTERFACE;
end;
end.

View File

@ -0,0 +1,52 @@
unit uAppInfoUtils;
interface
function GetAppName: String;
function GetAppVersion: String;
function GetAppFullName: String;
implementation
uses
Forms, SysUtils, JclFileUtils;
function GetAppName: String;
var
FAppInfo : TJclFileVersionInfo;
begin
FAppInfo := TJclFileVersionInfo.Create(Application.ExeName);
try
Result := FAppInfo.ProductName;
finally
FreeANDNil(FAppInfo);
end;
end;
function GetAppVersion: String;
var
FAppInfo : TJclFileVersionInfo;
begin
FAppInfo := TJclFileVersionInfo.Create(Application.ExeName);
try
Result := FAppInfo.ProductVersion;
finally
FreeANDNil(FAppInfo);
end;
end;
function GetAppFullName: String;
var
FAppInfo : TJclFileVersionInfo;
begin
FAppInfo := TJclFileVersionInfo.Create(Application.ExeName);
try
Result := FAppInfo.ProductName + ' ' + FAppInfo.ProductVersion;
finally
FreeANDNil(FAppInfo);
end;
end;
end.

View File

@ -3,22 +3,27 @@ unit uDataTableUtils;
interface interface
uses uses
uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta; uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta, uDAMemDataTable;
procedure CloneDataTable(const ASource : TDACDSDataTable; procedure CloneDataTable(const ASource : TDACDSDataTable;
var ATarget : TDACDSDataTable; var ATarget : TDACDSDataTable;
RemoteUpdate: Boolean = True); RemoteUpdate: Boolean = True); overload;
function CloneDataTable(const ASource : TDAMemDataTable;
RemoteUpdate: Boolean = True): TDAMemDataTable; overload;
procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable; procedure CopyDataTable(ASource : IDADataset; ATarget : TDADataTable;
const OnlySelectedRows : Boolean = False); const OnlySelectedRows : Boolean = False);
procedure DeleteAllTable(const ADataTable : TDADataTable); procedure DeleteAllTable(const ADataTable : TDADataTable);
function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean;
function DataTableModified (const ADataTable : TDADataTable): Boolean;
implementation implementation
uses uses
uDAClasses, SysUtils, uDABINAdapter, uROTypes, uDBSelectionList, cxControls, DB, Classes, uDAClasses, SysUtils, uDABINAdapter, uROTypes, uDBSelectionList,
Dialogs, Variants, uDADataStreamer; cxControls, Dialogs, Variants, uDADataStreamer;
{procedure EliminarNoSeleccionados(const ASource : IDADataset; {procedure EliminarNoSeleccionados(const ASource : IDADataset;
@ -144,6 +149,80 @@ begin
end; end;
function CloneDataTable(const ASource : TDAMemDataTable;
RemoteUpdate: Boolean = True): TDAMemDataTable;
var
i : Integer;
ATarget : TDAMemDataTable;
begin
if not Assigned(ASource) then
raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)');
ATarget := TDAMemDataTable.Create(NIL);
with ATarget do
begin
{ ATENCIÓN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--------------------------------------------------------------------
DA5 tiene un fallo en el cual las tablas definidas como detalle no
tienen asociados los eventos internos before... y after... por lo
que los campos AutoInc no funcionan (no pone el -1, -2...).
La forma de arreglarlo es llamar a DisableEventHandlers/EnableEventHandlers
que realiza la asociación de los eventos.
}
ATarget.DisableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!!
try
if not Assigned(ASource.RemoteDataAdapter) then
raise Exception.Create('No está asignado RemoteDataAdapter (' + ASource.Name + ')');
LogicalName := ASource.LogicalName;
CustomAttributes.Assign(ASource.CustomAttributes);
Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema;
Params.AssignParamCollection(ASource.Params);
RemoteDataAdapter := ASource.RemoteDataAdapter;
Randomize;
Name := ASource.Name + '_' + IntToStr(Random(MAXINT));
BusinessRulesID := ASource.BusinessRulesID;
with MasterParamsMappings do
for i := 0 to ASource.MasterParamsMappings.Count - 1 do
Add(ASource.MasterParamsMappings.Strings[i]);
with MasterRequestMappings do
for i := 0 to ASource.MasterRequestMappings.Count - 1 do
Add(ASource.MasterRequestMappings.Strings[i]);
MasterMappingMode := ASource.MasterMappingMode;
MasterFields := ASource.MasterFields;
MasterOptions := ASource.MasterOptions;
DetailFields := ASource.DetailFields;
DetailOptions := ASource.DetailOptions;
RemoteUpdatesOptions := ASource.RemoteUpdatesOptions;
StreamingOptions := ASource.StreamingOptions;
RemoteFetchEnabled := ASource.RemoteFetchEnabled;
finally
ATarget.EnableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!!!!!!!
end;
end;
if not RemoteUpdate then
begin
ATarget.LogChanges := False;
ATarget.RemoteFetchEnabled := False;
end;
Result := ATarget;
end;
procedure CloneDataTable(const ASource : TDACDSDataTable; procedure CloneDataTable(const ASource : TDACDSDataTable;
var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); var ATarget : TDACDSDataTable; RemoteUpdate: Boolean);
var var
@ -194,131 +273,36 @@ begin
end; end;
end. function DataTableModified (const ADataTable : TDADataTable): Boolean;
procedure CloneDataTable(const ASource : TDACDSDataTable;
var ATarget : TDACDSDataTable; RemoteUpdate: Boolean);
var var
i : Integer; bCambiado : Boolean;
dtDetails : TList;
i : integer;
begin begin
with ATarget do bCambiado := False;
if Assigned(ADataTable) and (ADataTable.Active) then
begin begin
// ****** Inicio migración DA 5 bCambiado :=(ADataTable.State = dsEdit) or
(ADataTable.HasDelta and DeltaValuesAreDifferent(ADataTable.Delta));
//RemoteService := ASource.GetRemoteService; if (not bCambiado) then
//Adapter := ASource.GetAdapter;
RemoteDataAdapter.Assign(ASource.RemoteDataAdapter);
// ****** Fin migración DA 5
BusinessRulesID := ASource.BusinessRulesID;
Randomize;
Name := ASource.Name + '_' + IntToStr(Random(MAXINT));
LogicalName := ASource.LogicalName;
Params.AssignParamCollection(ASource.Params);
if Assigned(ASource.LocalSchema) then
LocalSchema := ASource.LocalSchema
else begin
// ****** Inicio migración DA 5
{
with SchemaCall do
begin
MethodName := ASource.SchemaCall.MethodName;
for i := 0 to ASource.SchemaCall.Params.Count - 1 do
begin
with Params.Add do begin
Name := ASource.SchemaCall.Params[i].Name;
ParamType := ASource.SchemaCall.Params[i].ParamType;
DataType := ASource.SchemaCall.Params[i].DataType;
Value := ASource.SchemaCall.Params[i].Value;
UserClassName := ASource.SchemaCall.Params[i].UserClassName;
end;
end;
end;
}
// ****** Fin migración DA 5
ATarget.Fields.AssignFieldCollection(ASource.Fields); // o también ATarget.LoadSchema;
end;
// ****** Inicio migración DA 5
{
with DataUpdateCall do
begin begin
MethodName := ASource.DataUpdateCall.MethodName; dtDetails := ADataTable.GetDetailDataTables;
for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do for i := 0 to dtDetails.Count - 1 do
begin begin
with Params.Add do begin bCambiado := bCambiado or
Name := ASource.DataUpdateCall.Params[i].Name; ((TDADataTable(dtDetails.Items[i])).State in dsEditModes) or
ParamType := ASource.DataUpdateCall.Params[i].ParamType; ((TDADataTable(dtDetails.Items[i])).HasDelta and
DataType := ASource.DataUpdateCall.Params[i].DataType; DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta));
Value := ASource.DataUpdateCall.Params[i].Value; if bCambiado then
UserClassName := ASource.DataUpdateCall.Params[i].UserClassName; Break;
end;
end; end;
end; end;
with ScriptCall do
begin
MethodName := ASource.ScriptCall.MethodName;
for i := 0 to ASource.ScriptCall.Params.Count - 1 do
begin
with Params.Add do begin
Name := ASource.ScriptCall.Params[i].Name;
ParamType := ASource.ScriptCall.Params[i].ParamType;
DataType := ASource.ScriptCall.Params[i].DataType;
Value := ASource.ScriptCall.Params[i].Value;
UserClassName := ASource.ScriptCall.Params[i].UserClassName;
end;
end;
end;
with DataRequestCall do
begin
MethodName := ASource.DataRequestCall.MethodName;
for i := 0 to ASource.DataRequestCall.Params.Count - 1 do
begin
with Params.Add do begin
begin
Name := ASource.DataRequestCall.Params[i].Name;
ParamType := ASource.DataRequestCall.Params[i].ParamType;
DataType := ASource.DataRequestCall.Params[i].DataType;
Value := ASource.DataRequestCall.Params[i].Value;
UserClassName := ASource.DataRequestCall.Params[i].UserClassName;
end;
end;
end;
end;
}
// ****** Fin migración DA 5
with MasterParamsMappings do
for i := 0 to ASource.MasterParamsMappings.Count - 1 do
Add(ASource.MasterParamsMappings.Strings[i]);
with MasterRequestMappings do
for i := 0 to ASource.MasterRequestMappings.Count - 1 do
Add(ASource.MasterRequestMappings.Strings[i]);
MasterMappingMode := ASource.MasterMappingMode;
MasterFields := ASource.MasterFields;
MasterOptions := ASource.MasterOptions;
DetailFields := ASource.DetailFields;
DetailOptions := ASource.DetailOptions;
RemoteUpdatesOptions := ASource.RemoteUpdatesOptions;
StreamingOptions := ASource.StreamingOptions;
RemoteFetchEnabled := ASource.RemoteFetchEnabled;
end;
if not RemoteUpdate then
begin
ATarget.LogChanges := False;
ATarget.RemoteFetchEnabled := False;
end; end;
Result := bCambiado;
end; end;
end.

View File

@ -1,15 +1,13 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uDateUtils; unit uDateUtils;
interface interface
uses
SysUtils, Classes;
function DarFechaPrimerDia(Date: TDateTime): TDateTime;
function DarFechaUltimoDia(Date: TDateTime): TDateTime;
function EsFechaVacia(AFecha : TDateTime): Boolean;
function NumberDayOfTheWeek(const ADay : String) : Word; function NumberDayOfTheWeek(const ADay : String) : Word;
function NumberMonthOfTheYear(const AMonth : String) : Word; function NumberMonthOfTheYear(const AMonth : String) : Word;
@ -18,6 +16,9 @@ implementation
uses uses
DateUtils; DateUtils;
const
FECHA_NULA = -700000;
function NumberDayOfTheWeek(const ADay : String) : Word; function NumberDayOfTheWeek(const ADay : String) : Word;
begin begin
if (ADay = 'Monday') or (ADay = 'Lunes') then if (ADay = 'Monday') or (ADay = 'Lunes') then
@ -64,5 +65,29 @@ begin
Result := 12; Result := 12;
end; end;
function EsFechaVacia(AFecha : TDateTime): Boolean;
begin
Result := (AFecha = FECHA_NULA) or (AFecha = 0);
end;
function DarFechaPrimerDia(Date: TDateTime): TDateTime;
var
Year, Month, Day: Word;
begin
DecodeDate(Date, Year, Month, Day);
Result := EncodeDate(Year, Month, 1);
end;
function DarFechaUltimoDia(Date: TDateTime): TDateTime;
var
Year, Month, Day: Word;
begin
DecodeDate(Date, Year, Month, Day);
// (if Month < 12 then inc(Month)
// else begin Month := 1; inc(Year) end;
// Result := EncodeDate(Year, Month, 1) - 1;
Result := EncodeDate(Year, Month,
MonthDays[IsLeapYear(Year), Month]);
end;
end. end.

View File

@ -0,0 +1,287 @@
unit uDialogUtils;
interface
uses
Windows, Controls, SysUtils;
type
TDlgButton = (TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR,
TDlgButton_ACEPTAR, TDlgButton_OK, TDlgButton_CERRAR);
TDlgButtonSet = set of TDlgButton;
//For example:
//1. to display the "OpenDialog" for text files
//
// s := 'aaa.txt';
// if OpenFileDialog(Application.Handle, 'txt', 'Text Files|*.txt', 'c:\', 'Select text file', s) then
// ShowMessage(s + ' file was selected for open')
//
//2. to display the "Save dialog":
//
// s := 'data.dbf';
// if SaveFileDialog(Application.Handle, 'dbf', 'dBase tables|*.dbf|All files|*.*', 'c:\', 'Select table', s) then
// ShowMessage(s + ' table was selected for save')
function OpenFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean;
function SaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean;
procedure ShowInfoMessage(const AMessage : String); overload;
procedure ShowInfoMessage(const AHeader : String; const AMessage : String); overload;
procedure ShowWarningMessage(const AMessage : String); overload;
procedure ShowWarningMessage(const AHeader : String; const AMessage : String); overload;
procedure ShowErrorMessage(const AHeader : String; const AMessage : String); overload;
procedure ShowErrorMessage(const AHeader : String; const AMessage : String; AException: Exception); overload;
function ShowConfirmMessage(const AHeader : String;
const AMessage : String) : TModalResult; overload;
function ShowConfirmMessage(const ATitle : String;
const AHeader : String;
const AMessage : String;
const AButtonSet: TDlgButtonSet) : TModalResult; overload;
implementation
uses
Forms,
CommDlg,
JSDialog,
JSDialogs,
Classes,
StrUtils;
const
sBtnSi = '&Si';
sBtnNo = '&No';
sBtnCancelar = '&Cancelar';
sBtnAceptar = '&Aceptar';
sBtnOK = '&OK';
sBtnCerrar = '&Cerrar';
function CharReplace(const Source: string; oldChar, newChar: Char): string;
var
i: Integer;
begin
Result := Source;
for i := 1 to Length(Result) do
if Result[i] = oldChar then
Result[i] := newChar
end;
function OpenSaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string;
MustExist, OverwritePrompt, NoChangeDir, DoOpen: Boolean): Boolean;
var
ofn: TOpenFileName;
szFile: array[0..MAX_PATH] of Char;
begin
Result := False;
FillChar(ofn, SizeOf(TOpenFileName), 0);
FillChar(szFile, SizeOf(szFile), 0);
with ofn do
begin
lStructSize := SizeOf(TOpenFileName);
hwndOwner := ParentHandle;
lpstrFile := szFile;
nMaxFile := SizeOf(szFile);
if (Title <> '') then
lpstrTitle := PChar(Title);
if (InitialDir <> '') then
lpstrInitialDir := PChar(InitialDir);
StrPCopy(lpstrFile, FileName);
lpstrFilter := PChar(ReplaceStr(Filter, '|', #0)+#0#0);
if DefExt <> '' then
lpstrDefExt := PChar(DefExt);
end;
if MustExist then
ofn.Flags := ofn.Flags or OFN_FILEMUSTEXIST;
if OverwritePrompt then
ofn.Flags := ofn.Flags or OFN_OVERWRITEPROMPT;
if NoChangeDir then
ofn.Flags := ofn.Flags or OFN_NOCHANGEDIR;
if DoOpen then
begin
if GetOpenFileName(ofn) then
begin
Result := True;
FileName := StrPas(szFile);
end;
end
else
begin
if GetSaveFileName(ofn) then
begin
Result := True;
FileName := StrPas(szFile);
end;
end
end;
function OpenFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean;
begin
Result := OpenSaveFileDialog(ParentHandle, DefExt, Filter, InitialDir, Title, FileName, True, False, False, True);
end;
function SaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string): Boolean;
begin
Result := OpenSaveFileDialog(ParentHandle, DefExt, Filter, InitialDir, Title, FileName, False, True, True, False);
end;
function CreateTaskDialog(const ATitle: String;
const AInstruction: String;
const AMessage: String;
const AIcon: TTaskDialogIcon): TJSDialog;
var
ADialog : TJSDialog;
begin
ADialog := TJSDialog.Create(NIL);
with ADialog do
begin
Position := dpScreenCenter;
ButtonBar.Buttons := [];
DialogOptions := [doModal, doTopMost];
Title := ATitle;
Instruction.Text := AInstruction;
Content.Text := AMessage;
MainIcon := AIcon;
end;
Result := ADialog;
end;
procedure CreateCustomButtons(const AButtonSet: TDlgButtonSet;
ACustomButtons : TJSCustomButtons);
function CreateButton(const ACaption: String; const AModalResult: TModalResult): TJSCustomButtonItem;
begin
Result := ACustomButtons.Add;
Result.Caption := ACaption;
Result.ModalResult := AModalResult;
end;
begin
with ACustomButtons do
begin
Clear;
if TDlgButton_SI in AButtonSet then
CreateButton(sBtnSi, mrYes);
if TDlgButton_NO in AButtonSet then
CreateButton(sBtnNo, mrNo);
if TDlgButton_CANCELAR in AButtonSet then
CreateButton(sBtnCancelar, mrCancel);
if TDlgButton_ACEPTAR in AButtonSet then
CreateButton(sBtnAceptar, mrOk);
if TDlgButton_OK in AButtonSet then
CreateButton(sBtnOK, mrOk);
if TDlgButton_CERRAR in AButtonSet then
CreateButton(sBtnCerrar, mrNone);
end;
end;
procedure ShowInfoMessage(const AHeader : String; const AMessage : String); overload;
var
ADialog : TJSDialog;
begin
ADialog := CreateTaskDialog('Información', AHeader, AMessage, tdiInformation);
try
CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons);
ADialog.Execute;
finally
FreeAndNIL(ADialog);
end;
end;
procedure ShowInfoMessage(const AMessage : String);
begin
ShowInfoMessage('', AMessage);
end;
procedure ShowWarningMessage(const AHeader : String; const AMessage : String); overload;
var
ADialog : TJSDialog;
begin
ADialog := CreateTaskDialog('¡Atención!', AHeader, AMessage, tdiWarning);
try
CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons);
ADialog.Execute;
finally
FreeAndNIL(ADialog);
end;
end;
procedure ShowWarningMessage(const AMessage : String);
begin
ShowWarningMessage('', AMessage);
end;
procedure ShowErrorMessage(const AHeader : String; const AMessage : String);
var
ADialog : TJSDialog;
begin
ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError);
try
CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons);
ADialog.Execute;
finally
FreeAndNIL(ADialog);
end;
end;
procedure ShowErrorMessage(const AHeader : String; const AMessage : String; AException: Exception);
var
ADialog : TJSDialog;
begin
ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError);
try
CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons);
ADialog.Expando.Lines.Text := #13#13 + AException.Message;
ADialog.Expando.ShowText := 'Mostrar información sobre el error';
ADialog.Expando.HideText := 'No mostrar información sobre el error';
ADialog.Expando.Visible := True;
ADialog.Execute;
finally
FreeAndNIL(ADialog);
end;
end;
function ShowConfirmMessage(const AHeader : String;
const AMessage : String) : TModalResult;
begin
Result := ShowConfirmMessage(Application.Title, AHeader,
AMessage, [TDlgButton_SI, TDlgButton_NO]);
end;
function ShowConfirmMessage(const ATitle : String;
const AHeader : String;
const AMessage : String;
const AButtonSet: TDlgButtonSet) : TModalResult;
var
ADialog : TJSDialog;
begin
ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiConfirmation);
try
CreateCustomButtons(AButtonSet, ADialog.CustomButtons);
Result := ADialog.Execute;
finally
FreeAndNIL(ADialog);
end;
end;
end.

View File

@ -2,7 +2,6 @@ object fConfigurarConexion: TfConfigurarConexion
Left = 663 Left = 663
Top = 468 Top = 468
ActiveControl = edtServer ActiveControl = edtServer
AutoScroll = False
Caption = 'Configuraci'#243'n de la conexi'#243'n' Caption = 'Configuraci'#243'n de la conexi'#243'n'
ClientHeight = 149 ClientHeight = 149
ClientWidth = 392 ClientWidth = 392
@ -90,12 +89,10 @@ object fConfigurarConexion: TfConfigurarConexion
TabOrder = 3 TabOrder = 3
end end
object HTTPChannel: TROWinInetHTTPChannel object HTTPChannel: TROWinInetHTTPChannel
ServerLocators = <>
DispatchOptions = []
ProbeServers = False
ProbeFrequency = 60000
UserAgent = 'AdminPV' UserAgent = 'AdminPV'
TargetURL = 'http://localhost:8099/BIN' TargetURL = 'http://localhost:8099/BIN'
ServerLocators = <>
DispatchOptions = []
Left = 120 Left = 120
Top = 112 Top = 112
end end
@ -104,9 +101,9 @@ object fConfigurarConexion: TfConfigurarConexion
Top = 112 Top = 112
end end
object CoService: TRORemoteService object CoService: TRORemoteService
ServiceName = 'srvLogin'
Message = ROBinMessage Message = ROBinMessage
Channel = HTTPChannel Channel = HTTPChannel
ServiceName = 'srvLogin'
Left = 184 Left = 184
Top = 112 Top = 112
end end

View File

@ -36,7 +36,7 @@ var
implementation implementation
uses uses
StrUtils, JclStrings, uDataModuleBase, VARELA_Intf; StrUtils, JclStrings, uDMBase, VARELA_Intf;
{$R *.dfm} {$R *.dfm}

1660
Source/Base/uDMBase.dfm Normal file

File diff suppressed because it is too large Load Diff

254
Source/Base/uDMBase.pas Normal file
View File

@ -0,0 +1,254 @@
unit uDMBase;
interface
uses
Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher,
TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage,
uROServiceComponent, uRORemoteService, uROWinInetHttpChannel,
DataAbstract3_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3,
JvAppStorage, JvAppRegistryStorage, SysUtils,
JvComponentBase, uDADataStreamer;
type
TdmBase = class(TDataModule)
ROChannel: TROWinInetHTTPChannel;
SmallImages: TPngImageList;
StyleManager: TJvNavPaneStyleManager;
TBXSwitcher: TTBXSwitcher;
cxIntl: TcxIntl;
cxIntlPrintSys3: TcxIntlPrintSys3;
ROMessage: TROBinMessage;
DABINAdapter: TDABINAdapter;
JvAppRegistryStorage: TJvAppRegistryStorage;
RORemoteService: TRORemoteService;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
procedure ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
private
FOnThemeChange: TNotifyEvent;
function GetAdapter: TDABINAdapter;
function GetChannel: TROWinInetHTTPChannel;
function GetCodigoEmpresa: Integer;
function GetMessage: TROBinMessage;
procedure InitStyleManager;
procedure OnTBXThemeChange(Sender: TObject);
procedure LeerConfiguracion;
procedure SalvarConfiguracion;
public
function DarVersion : String;
procedure ConfigurarConexion;
function HayConexion(const ATargetURL : String = ''): Boolean;
property Adapter: TDABINAdapter read GetAdapter;
property Channel: TROWinInetHTTPChannel read GetChannel;
property CodigoEmpresa: Integer read GetCodigoEmpresa;
property Message: TROBinMessage read GetMessage;
property OnThemeChange: TNotifyEvent read FOnThemeChange write
FOnThemeChange;
end;
var
dmBase: TdmBase;
implementation
{$R *.DFM}
uses
Dialogs, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows,
JclFileUtils, VARELA_Intf, cxControls;
const
SERVER_URL = 'http://localhost:8099/bin';
IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)';
{
*********************************** TdmBase ************************************
}
procedure TdmBase.ConfigurarConexion;
begin
with TfConfigurarConexion.Create(NIL) do
try
TargetURL := ROChannel.TargetURL;
if ShowModal = mrOk then
begin
ROChannel.TargetURL := TargetURL;
ROChannel.Connected := False;
ROChannel.Connected := True;
SalvarConfiguracion;
end;
finally
Free;
end;
end;
procedure TdmBase.DAClientDataModuleCreate(Sender: TObject);
begin
TBXSwitcher.OnThemeChange := OnTBXThemeChange;
TBXSetTheme('Office2003');
LeerConfiguracion;
end;
function TdmBase.GetAdapter: TDABINAdapter;
begin
Result := DABinAdapter;
end;
function TdmBase.GetChannel: TROWinInetHTTPChannel;
begin
Result := ROChannel;
end;
function TdmBase.GetCodigoEmpresa: Integer;
begin
Result := 1;
end;
function TdmBase.GetMessage: TROBinMessage;
begin
Result := ROMessage;
end;
procedure TdmBase.InitStyleManager;
begin
if not USE_THEMES then
begin
TBXSwitcher.EnableXPStyles := False;
StyleManager.Theme := nptStandard;
end
else begin
TBXSwitcher.EnableXPStyles := True;
with StyleManager do
begin
if CurrentTheme is TTBXOffice2003Theme then
begin
case GetOffice2003Scheme of
osBlue : Theme := nptXPBlue;
osMetallic : Theme := nptXPSilver;
osGreen : Theme := nptXPOlive;
else
Theme := nptStandard;
end;
end;
end;
end;
end;
procedure TdmBase.LeerConfiguracion;
begin
ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL);
end;
procedure TdmBase.OnTBXThemeChange(Sender: TObject);
begin
InitStyleManager;
if Assigned(FOnThemeChange) then
FOnThemeChange(Sender);
end;
procedure TdmBase.SalvarConfiguracion;
begin
JvAppRegistryStorage.BeginUpdate;
try
JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL);
finally
JvAppRegistryStorage.EndUpdate;
end;
end;
procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
begin
if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then
begin
// Preguntar al usuario si se quiere conectar
if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then
Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación
else
Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo
end
else
Retry := True;
// raise Exception.Create(anException.Message);
end;
procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
begin
{ if iType = ptInProgress then
begin
if not Form1.Visible then
Form1.Show;
end
else
Form1.Hide;}
end;
function TdmBase.DarVersion: String;
var
Obj : TJclFileVersionInfo;
begin
Obj := TJclFileVersionInfo.Create(Application.ExeName);
try
Result := 'v' + Obj.FileVersion;
finally
FreeAndNil(Obj);
end;
end;
function TdmBase.HayConexion(const ATargetURL: String): Boolean;
var
AHTTPChannel: TROWinInetHTTPChannel;
AROBinMessage: TROBinMessage;
ACoService: TRORemoteService;
begin
AHTTPChannel := TROWinInetHTTPChannel.Create(Self);
AROBinMessage := TROBinMessage.Create(Self);
ACoService := TRORemoteService.Create(Self);
ShowHourglassCursor;
try
with AHTTPChannel do
begin
Name := 'HTTPChannel';
UserAgent := 'AdminPV';
if Length(ATargetURL) > 0 then
TargetURL := ATargetURL
else
TargetURL := ROChannel.TargetURL;
end;
with ACoService do
begin
ServiceName := 'srvLogin';
Message := AROBinMessage;
Channel := AHTTPChannel;
end;
try
(ACoService as IsrvLogin).Ping;
Result := True;
except
Result := False;
end;
finally
AHTTPChannel.Connected := False;
FreeAndNil(AHTTPChannel);
FreeAndNil(ACoService);
FreeAndNil(AROBinMessage);
HideHourglassCursor;
end;
end;
initialization
dmBase := TdmBase.Create(NIL);
finalization
dmBase.Free;
end.

File diff suppressed because it is too large Load Diff

View File

@ -3,252 +3,48 @@ unit uDataModuleBase;
interface interface
uses uses
Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, Classes;
TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage,
uROServiceComponent, uRORemoteService, uROWinInetHttpChannel,
DataAbstract3_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3,
JvAppStorage, JvAppRegistryStorage, SysUtils,
JvComponentBase, uDADataStreamer;
type type
TdmBase = class(TDataModule) TDataModuleBase = class(TDataModule)
ROChannel: TROWinInetHTTPChannel;
SmallImages: TPngImageList;
StyleManager: TJvNavPaneStyleManager;
TBXSwitcher: TTBXSwitcher;
cxIntl: TcxIntl;
cxIntlPrintSys3: TcxIntlPrintSys3;
ROMessage: TROBinMessage;
DABINAdapter: TDABINAdapter;
JvAppRegistryStorage: TJvAppRegistryStorage;
RORemoteService: TRORemoteService;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
procedure ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
private private
FOnThemeChange: TNotifyEvent; FRefCount: Integer;
function GetAdapter: TDABINAdapter; protected
function GetChannel: TROWinInetHTTPChannel; function QueryInterface(const IID: TGUID; out Obj): HResult; override; stdcall;
function GetCodigoEmpresa: Integer; function _AddRef: Integer; stdcall;
function GetMessage: TROBinMessage; function _Release: Integer; stdcall;
procedure InitStyleManager;
procedure OnTBXThemeChange(Sender: TObject);
procedure LeerConfiguracion;
procedure SalvarConfiguracion;
public public
function DarVersion : String; property RefCount: integer read fRefCount write fRefCount;
procedure ConfigurarConexion;
function HayConexion(const ATargetURL : String = ''): Boolean;
property Adapter: TDABINAdapter read GetAdapter;
property Channel: TROWinInetHTTPChannel read GetChannel;
property CodigoEmpresa: Integer read GetCodigoEmpresa;
property Message: TROBinMessage read GetMessage;
property OnThemeChange: TNotifyEvent read FOnThemeChange write
FOnThemeChange;
end;
var end;
dmBase: TdmBase;
implementation implementation
{$R *.DFM} {$R *.DFM}
uses // Set an implicit refcount so that refcounting
Dialogs, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows, // during construction won't destroy the object.
JclFileUtils, VARELA_Intf, cxControls;
const function TDataModuleBase.QueryInterface( const IID: TGUID; out Obj): HResult;
SERVER_URL = 'http://localhost:8099/bin';
IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)';
{
*********************************** TdmBase ************************************
}
procedure TdmBase.ConfigurarConexion;
begin begin
with TfConfigurarConexion.Create(NIL) do if GetInterface(IID, Obj)
try then Result := 0
TargetURL := ROChannel.TargetURL; else Result := E_NOINTERFACE;
if ShowModal = mrOk then
begin
ROChannel.TargetURL := TargetURL;
ROChannel.Connected := False;
ROChannel.Connected := True;
SalvarConfiguracion;
end;
finally
Free;
end;
end; end;
procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); function TDataModuleBase._AddRef: Integer;
begin begin
TBXSwitcher.OnThemeChange := OnTBXThemeChange; Inc(fRefCount);
TBXSetTheme('Office2003'); Result := fRefCount;
LeerConfiguracion;
end; end;
function TdmBase.GetAdapter: TDABINAdapter; function TDataModuleBase._Release: Integer;
begin begin
Result := DABinAdapter; Dec(fRefCount);
Result := fRefCount;
if fRefCount = 0 then Destroy;
end; end;
function TdmBase.GetChannel: TROWinInetHTTPChannel;
begin
Result := ROChannel;
end;
function TdmBase.GetCodigoEmpresa: Integer;
begin
Result := 1;
end;
function TdmBase.GetMessage: TROBinMessage;
begin
Result := ROMessage;
end;
procedure TdmBase.InitStyleManager;
begin
if not USE_THEMES then
begin
TBXSwitcher.EnableXPStyles := False;
StyleManager.Theme := nptStandard;
end
else begin
TBXSwitcher.EnableXPStyles := True;
with StyleManager do
begin
if CurrentTheme is TTBXOffice2003Theme then
begin
case GetOffice2003Scheme of
osBlue : Theme := nptXPBlue;
osMetallic : Theme := nptXPSilver;
osGreen : Theme := nptXPOlive;
else
Theme := nptStandard;
end;
end;
end;
end;
end;
procedure TdmBase.LeerConfiguracion;
begin
ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL);
end;
procedure TdmBase.OnTBXThemeChange(Sender: TObject);
begin
InitStyleManager;
if Assigned(FOnThemeChange) then
FOnThemeChange(Sender);
end;
procedure TdmBase.SalvarConfiguracion;
begin
JvAppRegistryStorage.BeginUpdate;
try
JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL);
finally
JvAppRegistryStorage.EndUpdate;
end;
end;
procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
begin
if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then
begin
// Preguntar al usuario si se quiere conectar
if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then
Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación
else
Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo
end
else
Retry := True;
// raise Exception.Create(anException.Message);
end;
procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
begin
{ if iType = ptInProgress then
begin
if not Form1.Visible then
Form1.Show;
end
else
Form1.Hide;}
end;
function TdmBase.DarVersion: String;
var
Obj : TJclFileVersionInfo;
begin
Obj := TJclFileVersionInfo.Create(Application.ExeName);
try
Result := 'v' + Obj.FileVersion;
finally
FreeAndNil(Obj);
end;
end;
function TdmBase.HayConexion(const ATargetURL: String): Boolean;
var
AHTTPChannel: TROWinInetHTTPChannel;
AROBinMessage: TROBinMessage;
ACoService: TRORemoteService;
begin
AHTTPChannel := TROWinInetHTTPChannel.Create(Self);
AROBinMessage := TROBinMessage.Create(Self);
ACoService := TRORemoteService.Create(Self);
ShowHourglassCursor;
try
with AHTTPChannel do
begin
Name := 'HTTPChannel';
UserAgent := 'AdminPV';
if Length(ATargetURL) > 0 then
TargetURL := ATargetURL
else
TargetURL := ROChannel.TargetURL;
end;
with ACoService do
begin
ServiceName := 'srvLogin';
Message := AROBinMessage;
Channel := AHTTPChannel;
end;
try
(ACoService as IsrvLogin).Ping;
Result := True;
except
Result := False;
end;
finally
AHTTPChannel.Connected := False;
FreeAndNil(AHTTPChannel);
FreeAndNil(ACoService);
FreeAndNil(AROBinMessage);
HideHourglassCursor;
end;
end;
initialization
dmBase := TdmBase.Create(NIL);
finalization
dmBase.Free;
end. end.

Binary file not shown.

Binary file not shown.

View File

@ -13,7 +13,6 @@ inherited fEditorDBBase: TfEditorDBBase
ExplicitWidth = 652 ExplicitWidth = 652
inherited Image1: TImage inherited Image1: TImage
Left = 625 Left = 625
Picture.Data = {00}
ExplicitLeft = 625 ExplicitLeft = 625
end end
end end

View File

@ -39,9 +39,6 @@ type
published published
end; end;
var
fEditorDBBase: TfEditorDBBase;
implementation implementation
uses uses
@ -196,35 +193,11 @@ begin
end; end;
function TfEditorDBBase.GetModified: Boolean; function TfEditorDBBase.GetModified: Boolean;
var
dtDetails : TList;
i : integer;
bCambiado : Boolean;
begin begin
bCambiado := False; if ReadOnly then
if Assigned(dsDataTable.DataTable) then Result := False
begin else
bCambiado := (dsDataTable.DataTable.State = dsEdit) or Result := DataTableModified(dsDataTable.DataTable) or inherited GetModified;
DeltaValuesAreDifferent(dsDataTable.DataTable.Delta);
if (not bCambiado) then
begin
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
begin
bCambiado := bCambiado or
((TDADataTable(dtDetails.Items[i])).State = dsEdit) or
DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta);
if bCambiado then
Break;
end;
end;
end;
if (not bCambiado) then
bCambiado := inherited GetModified;
Result := bCambiado;
end; end;
procedure TfEditorDBBase.FormCloseQuery(Sender: TObject; procedure TfEditorDBBase.FormCloseQuery(Sender: TObject;

Binary file not shown.

Binary file not shown.

View File

@ -1,38 +1,50 @@
inherited fEditorItem: TfEditorItem inherited fEditorItem: TfEditorItem
Left = 423 Left = 423
Top = 273 Top = 273
Width = 686
Height = 535
Caption = 'fEditorItem' Caption = 'fEditorItem'
ClientHeight = 508
ClientWidth = 678
ExplicitWidth = 686
ExplicitHeight = 535
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 678 Width = 678
Visible = False Visible = False
ExplicitWidth = 678
inherited Image1: TImage inherited Image1: TImage
Left = 651 Left = 651
ExplicitLeft = 651
end end
end end
object pgPaginas: TPageControl [1] object pgPaginas: TPageControl [1]
Left = 0 Left = 0
Top = 76 Top = 76
Width = 678 Width = 678
Height = 406 Height = 413
ActivePage = pagGeneral ActivePage = pagGeneral
Align = alClient Align = alClient
TabOrder = 1 TabOrder = 1
ExplicitHeight = 406
object pagGeneral: TTabSheet object pagGeneral: TTabSheet
Caption = 'General' Caption = 'General'
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
end end
end end
inherited TBXDock: TTBXDock inherited TBXDock: TTBXDock
Width = 678 Width = 678
ExplicitWidth = 678
inherited tbxMain: TTBXToolbar inherited tbxMain: TTBXToolbar
ExplicitWidth = 524
inherited TBXItem5: TTBXItem inherited TBXItem5: TTBXItem
Visible = False Visible = False
end end
end end
inherited tbxMenu: TTBXToolbar inherited tbxMenu: TTBXToolbar
ExplicitWidth = 678
inherited TBXSubmenuItem4: TTBXSubmenuItem inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem10: TTBXItem inherited TBXItem10: TTBXItem
Visible = False Visible = False
@ -41,8 +53,10 @@ inherited fEditorItem: TfEditorItem
end end
end end
inherited StatusBar: TStatusBar inherited StatusBar: TStatusBar
Top = 482 Top = 489
Width = 678 Width = 678
ExplicitTop = 482
ExplicitWidth = 678
end end
inherited EditorActionList: TActionList inherited EditorActionList: TActionList
Top = 104 Top = 104

View File

@ -26,7 +26,7 @@ var
implementation implementation
uses uDataModuleBase; uses uDMBase;
{$R *.dfm} {$R *.dfm}

Binary file not shown.

View File

@ -6,7 +6,7 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_EnabledPackages>true</DCC_EnabledPackages> <DCC_EnabledPackages>true</DCC_EnabledPackages>
<DCC_UsePackage>BaseD10;Configuracion;FicherosEDI</DCC_UsePackage> <DCC_UsePackage>BaseD10;FicherosEDI</DCC_UsePackage>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\CargaEDI.exe</DCC_DependencyCheckOutputName> <DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\CargaEDI.exe</DCC_DependencyCheckOutputName>
</PropertyGroup> </PropertyGroup>
@ -50,9 +50,11 @@
<Excluded_Packages Name="$(BDS)\bin\dclwebsnap100.bpl">CodeGear WebSnap Components</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> <Excluded_Packages Name="$(BDS)\bin\dclsoap100.bpl">CodeGear SOAP Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\Bin\dclintraweb_90_100.bpl">VCL for the Web Design Package for CodeGear RAD Studio</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>

View File

@ -15,4 +15,4 @@ END
/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\WindowsXP.res */ /* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\WindowsXP.res */
/* C:\Varela_D2007\Source\CargaEDI\uCargaEDI.dfm */ /* C:\Varela_D2007\Source\CargaEDI\uCargaEDI.dfm */
/* C:\Varela_D2007\Source\CargaEDI\CargaEDI.res */ /* C:\Varela_D2007\Source\CargaEDI\CargaEDI.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf26.tmp */ /* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf3B.tmp */

Binary file not shown.

Binary file not shown.

View File

@ -47,7 +47,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
uCargarFicheros, uDataModuleBase; uCargarFicheros, uDMBase;
procedure TfCargaEDI.FormShow(Sender: TObject); procedure TfCargaEDI.FormShow(Sender: TObject);
begin begin

View File

@ -2,22 +2,26 @@ program AdminPV;
uses uses
Forms, Forms,
uLoginForm,
uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal},
uMenuUtils in 'uMenuUtils.pas', uSplash in 'uSplash.pas' {AppSplashForm},
uSplash in 'uSplash.pas' {SplashScreen},
uAcercaDe in 'uAcercaDe.pas' {fAcercaDe}, uAcercaDe in 'uAcercaDe.pas' {fAcercaDe},
uIntegerList in '..\Base\uIntegerList.pas'; uMenuUtils in 'Utiles\uMenuUtils.pas',
uBootStrap in 'uBootStrap.pas',
uNavPaneUtils in 'Utiles\uNavPaneUtils.pas',
uMainMenuController in 'uMainMenuController.pas',
uNavPaneController in 'uNavPaneController.pas',
uClienteUtils in 'Utiles\uClienteUtils.pas';
{$R *.res} {$R *.res}
begin begin
Application.Initialize; Application.Initialize;
Application.Title := 'Administración de puntos de venta'; Application.Title := 'Administración de puntos de venta';
Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal);
Application.MainFormOnTaskBar := True; uBootStrap.Initialize;
Application.Run; uBootStrap.Run; // <- Aquí dentro esta Application.Run
Application.Terminate; uBootStrap.Terminate;
Application.Terminate; //<- No descomentar para así ver los Memory Leaks
end. end.

View File

@ -8,7 +8,7 @@
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\AdminPV.exe</DCC_DependencyCheckOutputName> <DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\AdminPV.exe</DCC_DependencyCheckOutputName>
<DCC_EnabledPackages>true</DCC_EnabledPackages> <DCC_EnabledPackages>true</DCC_EnabledPackages>
<DCC_UsePackage>BaseD10;Configuracion;ControlesBaseD10;Usuarios;FicherosEDI;VentasProceso;VentasTerminadas;ReferenciaGenerica</DCC_UsePackage> <DCC_UsePackage>BaseD10;ControlesBaseD10;Parametros;ApplicationBase;FicherosEDI</DCC_UsePackage>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version> <Version>7.0</Version>
@ -42,10 +42,11 @@
<Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>VCLApplication</Borland.ProjectType> <Borland.ProjectType>VCLApplication</Borland.ProjectType>
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">1</VersionInfo><VersionInfo Name="Release">1</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.1.1.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">Administración de puntos de venta</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">Administración de puntos de venta</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">martes, 11 de marzo de 2008 18:44</VersionInfoKeys></VersionInfoKeys><Excluded_Packages> <BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">1</VersionInfo><VersionInfo Name="Release">1</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.1.1.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">Administración de puntos de venta</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">Administración de puntos de venta</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">miércoles, 12 de marzo de 2008 12:35</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclwebsnap100.bpl">CodeGear WebSnap Components</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> <Excluded_Packages Name="$(BDS)\bin\dclsoap100.bpl">CodeGear SOAP Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\Bin\dclintraweb_90_100.bpl">VCL for the Web Design Package for CodeGear RAD Studio</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\bcboffice2k100.bpl">CodeGear C++Builder Office 2000 Servers Package</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\bcbofficexp100.bpl">CodeGear C++Builder Office XP Servers Package</Excluded_Packages>
@ -56,17 +57,21 @@
<DelphiCompile Include="AdminPV.dpr"> <DelphiCompile Include="AdminPV.dpr">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\Base\uIntegerList.pas"/>
<DCCReference Include="uAcercaDe.pas"> <DCCReference Include="uAcercaDe.pas">
<Form>fAcercaDe</Form> <Form>fAcercaDe</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uMenuUtils.pas"/> <DCCReference Include="uBootStrap.pas"/>
<DCCReference Include="uMainMenuController.pas"/>
<DCCReference Include="uNavPaneController.pas"/>
<DCCReference Include="uPantallaPrincipal.pas"> <DCCReference Include="uPantallaPrincipal.pas">
<Form>fPantallaPrincipal</Form> <Form>fPantallaPrincipal</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uSplash.pas"> <DCCReference Include="uSplash.pas">
<Form>SplashScreen</Form> <Form>AppSplashForm</Form>
</DCCReference> </DCCReference>
<DCCReference Include="Utiles\uClienteUtils.pas"/>
<DCCReference Include="Utiles\uMenuUtils.pas"/>
<DCCReference Include="Utiles\uNavPaneUtils.pas"/>
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -12,11 +12,10 @@ STRINGTABLE
BEGIN BEGIN
END END
/* C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\WindowsXP.res */ /* c:\archivos de programa\codegear\rad studio\5.0\Lib\WindowsXP.res */
/* C:\Varela_D2007\Lib\JVCL\JvXPCore.res */ /* C:\Varela_D2007\Lib\JVCL\JvXPCore.res */
/* C:\Varela_D2007\Lib\JVCL\JvXPBar.res */ /* uSplash.dfm */
/* C:\Varela_D2007\Source\Cliente\uSplash.dfm */ /* uAcercaDe.dfm */
/* C:\Varela_D2007\Source\Cliente\uAcercaDe.dfm */
/* C:\Varela_D2007\Source\Cliente\uPantallaPrincipal.dfm */ /* C:\Varela_D2007\Source\Cliente\uPantallaPrincipal.dfm */
/* C:\Varela_D2007\Source\Cliente\AdminPV.res */ /* C:\Varela_D2007\Source\Cliente\AdminPV.res */
/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf24.tmp */ /* C:\Varela_D2007\Source\Cliente\AdminPV.drf */

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