General en cliente: escribir ficheros ini y log dentro de las carpetas de usuarios (C:\Documents and Settings)

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@361 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
David Arranz 2008-03-27 17:01:26 +00:00
parent b1d470e4fd
commit fe41545969
14 changed files with 256 additions and 80 deletions

View File

@ -4,7 +4,7 @@ interface
uses
SysUtils, Classes, Forms, uBizUsuarios, uBizEmpresas, uControllerBase,
uEmpresasController, JclFileUtils, uUsuariosController, uHostManager;
uEmpresasController, uUsuariosController, uHostManager;
type
TDoLoadModulesEvent = procedure;
@ -57,20 +57,19 @@ type
property EmpresaActiva : IBizEmpresa read GetEmpresaActiva;
property UsuarioActivo : IBizUsuario read GetUsuarioActivo;
property EmpresasController : IEmpresasController read GetEmpresasController;
property UsuariosController : IUsuariosController read GetUsuariosController;
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;
TAppFactuGES = class(TInterfacedObject, IAppFactuGES)
private
FAppInfo : TJclFileVersionInfo;
FEmpresasController : IEmpresasController;
FUsuariosController: IUsuariosController;
FEmpresaActiva: IBizEmpresa;
@ -143,7 +142,7 @@ implementation
uses
Dialogs, uDialogUtils, cxControls, uUsuariosViewRegister,
uEmpresasViewRegister;
uEmpresasViewRegister, uAppInfoUtils;
procedure TAppFactuGES.CambiarEmpresa(const AIDEmpresa: Integer);
var
@ -177,13 +176,12 @@ begin
FEmpresasController := NIL; // Se crea la primera vez que se usa
FAppInfo := TJclFileVersionInfo.Create(Application.ExeName);
FHostManager := THostManager.Create(NIL);
with FHostManager do
begin
OnAfterLoad := AfterLoadModule;
// Ruta por defecto de los módulos
BPLPath := ExtractFilePath(Application.ExeName) + '\';
BPLPath := ExtractFilePath(Application.ExeName) + PathDelim;
end;
end;
@ -198,7 +196,6 @@ begin
FUsuariosController := NIL;
FEmpresasController := NIL;
FreeAndNIL(FAppInfo);
inherited;
end;
@ -222,12 +219,12 @@ end;
function TAppFactuGES.GetAppFullName: String;
begin
Result := GetAppName + ' ' + GetAppVersion;
Result := uAppInfoUtils.GetAppFullName;
end;
function TAppFactuGES.GetAppName: String;
begin
Result := FAppInfo.ProductName;
Result := uAppInfoUtils.GetAppName;
end;
function TAppFactuGES.GetAppSplashForm: IAppSplashForm;
@ -237,7 +234,7 @@ end;
function TAppFactuGES.GetAppVersion: String;
begin
Result := FAppInfo.ProductVersion;
Result := uAppInfoUtils.GetAppVersion;
end;
function TAppFactuGES.GetEmpresaActiva: IBizEmpresa;

View File

@ -105,6 +105,7 @@ contains
uControllerDetallesBase in 'Controladores\uControllerDetallesBase.pas',
schBase_Intf in 'schBase_Intf.pas',
uDataModuleBase in 'uDataModuleBase.pas' {DataModuleBase: TDataModule},
uStringsUtils in 'Utiles\uStringsUtils.pas';
uStringsUtils in 'Utiles\uStringsUtils.pas',
uAppInfoUtils in 'Utiles\uAppInfoUtils.pas';
end.

View File

@ -44,6 +44,86 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">Libreria base de FactuGES</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">Base.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
@ -53,57 +133,6 @@
<DelphiCompile Include="Base.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Modulos\Almacenes\adortl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxDataD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxExportD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxGridD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxIntl6D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxLibraryD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\cxPageControlD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dbrtl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dclIndyCore.dcp" />
<DCCReference Include="..\Modulos\Almacenes\designide.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dsnap.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dxPSCoreD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\dxThemeD11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\GUISDK_D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\IndyCore.dcp" />
<DCCReference Include="..\Modulos\Almacenes\IndyProtocols.dcp" />
<DCCReference Include="..\Modulos\Almacenes\IndySystem.dcp" />
<DCCReference Include="..\Modulos\Almacenes\Jcl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JclVcl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JSDialog100.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvCmpD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvCoreD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvDlgsD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvMMD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvNetD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\JvSystemD11R.dcp" />
<DCCReference Include="..\Modulos\Almacenes\pckMD5.dcp" />
<DCCReference Include="..\Modulos\Almacenes\pckUCDataConnector.dcp" />
<DCCReference Include="..\Modulos\Almacenes\pckUserControl_RT.dcp" />
<DCCReference Include="..\Modulos\Almacenes\PngComponentsD10.dcp" />
<DCCReference Include="..\Modulos\Almacenes\PNG_D10.dcp" />
<DCCReference Include="..\Modulos\Almacenes\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\RemObjects_Indy_D11.dcp" />
<DCCReference Include="..\Modulos\Almacenes\rtl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\TB2k_D10.dcp" />
<DCCReference Include="..\Modulos\Almacenes\tbx_d10.dcp" />
<DCCReference Include="..\Modulos\Almacenes\vcl.dcp" />
<DCCReference Include="..\Modulos\Almacenes\vclactnband.dcp" />
<DCCReference Include="..\Modulos\Almacenes\vcldb.dcp" />
<DCCReference Include="..\Modulos\Almacenes\vcljpg.dcp" />
<DCCReference Include="..\Modulos\Almacenes\VclSmp.dcp" />
<DCCReference Include="..\Modulos\Almacenes\vclx.dcp" />
<DCCReference Include="..\Modulos\Almacenes\xmlrtl.dcp" />
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
@ -128,10 +157,55 @@
<Form>dmBase</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="Utiles\adortl.dcp" />
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
<DCCReference Include="Utiles\cxDataD11.dcp" />
<DCCReference Include="Utiles\cxEditorsD11.dcp" />
<DCCReference Include="Utiles\cxExportD11.dcp" />
<DCCReference Include="Utiles\cxExtEditorsD11.dcp" />
<DCCReference Include="Utiles\cxGridD11.dcp" />
<DCCReference Include="Utiles\cxIntl6D11.dcp" />
<DCCReference Include="Utiles\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="Utiles\cxLibraryD11.dcp" />
<DCCReference Include="Utiles\cxPageControlD11.dcp" />
<DCCReference Include="Utiles\DataAbstract_Core_D11.dcp" />
<DCCReference Include="Utiles\dbrtl.dcp" />
<DCCReference Include="Utiles\dclIndyCore.dcp" />
<DCCReference Include="Utiles\designide.dcp" />
<DCCReference Include="Utiles\dsnap.dcp" />
<DCCReference Include="Utiles\dxGDIPlusD11.dcp" />
<DCCReference Include="Utiles\dxPSCoreD11.dcp" />
<DCCReference Include="Utiles\dxThemeD11.dcp" />
<DCCReference Include="Utiles\GUISDK_D11.dcp" />
<DCCReference Include="Utiles\IndyCore.dcp" />
<DCCReference Include="Utiles\IndyProtocols.dcp" />
<DCCReference Include="Utiles\IndySystem.dcp" />
<DCCReference Include="Utiles\Jcl.dcp" />
<DCCReference Include="Utiles\JclVcl.dcp" />
<DCCReference Include="Utiles\JSDialog100.dcp" />
<DCCReference Include="Utiles\JvCmpD11R.dcp" />
<DCCReference Include="Utiles\JvCoreD11R.dcp" />
<DCCReference Include="Utiles\JvCtrlsD11R.dcp" />
<DCCReference Include="Utiles\JvDlgsD11R.dcp" />
<DCCReference Include="Utiles\JvMMD11R.dcp" />
<DCCReference Include="Utiles\JvNetD11R.dcp" />
<DCCReference Include="Utiles\JvPageCompsD11R.dcp" />
<DCCReference Include="Utiles\JvStdCtrlsD11R.dcp" />
<DCCReference Include="Utiles\JvSystemD11R.dcp" />
<DCCReference Include="Utiles\pckMD5.dcp" />
<DCCReference Include="Utiles\pckUCDataConnector.dcp" />
<DCCReference Include="Utiles\pckUserControl_RT.dcp" />
<DCCReference Include="Utiles\PngComponentsD10.dcp" />
<DCCReference Include="Utiles\PNG_D10.dcp" />
<DCCReference Include="Utiles\RemObjects_Core_D11.dcp" />
<DCCReference Include="Utiles\RemObjects_Indy_D11.dcp" />
<DCCReference Include="Utiles\rtl.dcp" />
<DCCReference Include="Utiles\TB2k_D10.dcp" />
<DCCReference Include="Utiles\tbx_d10.dcp" />
<DCCReference Include="Utiles\uAppInfoUtils.pas" />
<DCCReference Include="Utiles\uCalculosUtils.pas" />
<DCCReference Include="Utiles\uDataTableUtils.pas" />
<DCCReference Include="Utiles\uDateUtils.pas" />
@ -145,6 +219,13 @@
<DCCReference Include="Utiles\uPasswordUtils.pas" />
<DCCReference Include="Utiles\uSistemaFunc.pas" />
<DCCReference Include="Utiles\uStringsUtils.pas" />
<DCCReference Include="Utiles\vcl.dcp" />
<DCCReference Include="Utiles\vclactnband.dcp" />
<DCCReference Include="Utiles\vcldb.dcp" />
<DCCReference Include="Utiles\vcljpg.dcp" />
<DCCReference Include="Utiles\VclSmp.dcp" />
<DCCReference Include="Utiles\vclx.dcp" />
<DCCReference Include="Utiles\xmlrtl.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -31,15 +31,26 @@ implementation
{$R *.dfm}
uses
Forms, FactuGES_Intf, Variants, uDataModuleConexion;
Forms, FactuGES_Intf, Variants, uDataModuleConexion,
uSistemaFunc, SHFolder, uAppInfoUtils;
const
CONFIG_INI_FILE = 'config.ini';
{ TdmConfiguracion }
constructor TdmConfiguracion.Create(AOwner: TComponent);
var
AIniFile : String;
begin
inherited;
FIniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini' ) );
AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data
AIniFile := AIniFile + PathDelim + GetAppName + PathDelim;
if not DirectoryExists(AIniFile) then
CreateDir(AIniFile);
FIniFile := TIniFile.Create(AIniFile + CONFIG_INI_FILE);
end;
function TdmConfiguracion.DarValor(const CODIGO: String): Variant;

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

@ -39,14 +39,27 @@ function DarFechaFichero (Executable : String) : String;
procedure CopiarFichero(const Origen, Destino: string);
procedure DoDelTree( TheDir : String);
procedure Deltree(DirToKill : String; KillChoosenDir : Boolean);
function GetSpecialFolderPath(folder : integer) : string;
implementation
uses
SysUtils, Windows, Dialogs, JclFileUtils,
Messages, Classes, Graphics, Controls, Forms,
StdCtrls;
Messages, Classes, Graphics, Controls, Forms,
StdCtrls, SHFolder;
function GetSpecialFolderPath(folder : integer) : string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0..MAX_PATH] of char;
begin
if SUCCEEDED(SHGetFolderPath(0, folder, 0, SHGFP_TYPE_CURRENT, @path[0])) then
Result := path
else
Result := '';
end;
procedure EscribirEnFichero (NombreFichero, Texto : string);
var

View File

@ -42,7 +42,8 @@ implementation
uses
uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows,
JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion;
JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion,
SHFolder, uSistemaFunc, uAppInfoUtils;
{
*********************************** TdmBase ************************************
@ -58,16 +59,26 @@ begin
end;
procedure TdmBase.IniciarLog;
var
AIniFile : String;
begin
inherited;
FEscribirLog := TCriticalSection.Create;
AIniFile := GetSpecialFolderPath(CSIDL_LOCAL_APPDATA); //[All Users]\Application Data
AIniFile := AIniFile + PathDelim + GetAppName + PathDelim;
if not DirectoryExists(AIniFile) then
CreateDir(AIniFile);
JvLogFile.Active := False;
JvLogFile.FileName := ExtractFilePath(Application.ExeName) + 'ClientLog.txt';
JvLogFile.FileName := AIniFile + 'ClientLog.txt';
JvLogFile.AutoSave := True;
JvLogFile.Active := True;
JvLogFile.Clear;
end;
procedure TdmBase.InitStyleManager;
begin
if not USE_THEMES then

View File

@ -48,6 +48,7 @@
<DCC_Define>DEBUG;</DCC_Define>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
<DCC_SymbolReferenceInfo>2</DCC_SymbolReferenceInfo>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
@ -58,6 +59,14 @@
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD10.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\PluginSDK_D10R.bpl">PluginSDK for Delphi 10 (Runtime)</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
@ -240,7 +249,7 @@ boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=1
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=0
loFreeAllLeaks=1

View File

@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo Tecsitel\Resources\Iconos\Factuges.ico"
1 VERSIONINFO
FILEVERSION 1,0,2,0
PRODUCTVERSION 1,0,2,0
FILEVERSION 1,0,3,0
PRODUCTVERSION 1,0,3,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@ -13,10 +13,10 @@ BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "CompanyName", "Rodax Software S.L.\0"
VALUE "FileVersion", "1.0.2.0\0"
VALUE "FileVersion", "1.0.3.0\0"
VALUE "InternalName", "FactuGES\0"
VALUE "ProductName", "FactuGES\0"
VALUE "ProductVersion", "1.0.2.0\0"
VALUE "ProductVersion", "1.0.3.0\0"
END
END
BLOCK "VarFileInfo"

Binary file not shown.

View File

@ -60,6 +60,7 @@ end;
procedure Initialize;
begin
dmConexion := TdmConexion.Create(NIL);
dmConfiguracion := TdmConfiguracion.Create(NIL);
dmBase := TdmBase.Create(NIL);

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo Tecsitel\Resources\Iconos\Servidor.ico"
1 VERSIONINFO
FILEVERSION 1,0,2,0
PRODUCTVERSION 1,0,2,0
FILEVERSION 1,0,3,0
PRODUCTVERSION 1,0,3,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@ -12,9 +12,9 @@ BEGIN
BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "FileVersion", "1.0.2.0\0"
VALUE "ProductVersion", "1.0.2.0\0"
VALUE "CompileDate", "martes, 25 de marzo de 2008 18:11\0"
VALUE "FileVersion", "1.0.3.0\0"
VALUE "ProductVersion", "1.0.3.0\0"
VALUE "CompileDate", "jueves, 27 de marzo de 2008 13:33\0"
END
END
BLOCK "VarFileInfo"