Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@15723 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2007-10-18 11:13:15 +00:00
parent 8abe900362
commit fdcdb2c058
3 changed files with 62 additions and 43 deletions

View File

@ -762,7 +762,7 @@ void CampoSetup::NormalSetup()
//SOLO se sta aggiornando una versione antecedente alla 10.0 scrive la variabile Type nel campo.ini.. //SOLO se sta aggiornando una versione antecedente alla 10.0 scrive la variabile Type nel campo.ini..
//..ovvero deve testare se Type = 0 //..ovvero deve testare se Type = 0
if (CampoIniMain.GetInt("Type") == 0) if (CampoIniMain.GetInt("Type") == 0)
CampoIniMain.Set("Type", uInstallationType + 1); CampoIniMain.Set("Type", CampoIniMain.GetInstallationTypeNumber());
} }
// 5) COMPILAZIONE\AGGIORNAMENTO INSTALL.INI CON DISKPATH // 5) COMPILAZIONE\AGGIORNAMENTO INSTALL.INI CON DISKPATH
@ -807,18 +807,26 @@ void CampoSetup::NormalSetup()
{ {
const wxFileName strExe(strPrgLocPath, wxT("ba0.exe")); const wxFileName strExe(strPrgLocPath, wxT("ba0.exe"));
wxString strLnk; wxString strLnk;
switch (uInstallationType)
CampoIniFile CampoIniMain(strPrgLocPath + "/campo.ini", "Main");
int nInstType = CampoIniMain.GetInstallationTypeNumber();
switch (nInstType)
{ {
case 1: case 1:
strLnk = "Campo (Server)"; strLnk = "Campo";
break; break;
case 2: case 2:
strLnk = "Campo (Server)";
break;
case 3:
strLnk = "Campo (Client)"; strLnk = "Campo (Client)";
break; break;
default: default:
strLnk = "Campo"; strLnk = "Campo";
break; break;
} }
//crea comunque l'icona
CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe, strLnk); CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe, strLnk);
} }
@ -846,8 +854,10 @@ void CampoSetup::NormalSetup()
// 10) CHIUDE IL SETUP LANCIANDO BA1 -6 PER INSTALLAZIONE MODULI // 10) CHIUDE IL SETUP LANCIANDO BA1 -6 PER INSTALLAZIONE MODULI
//------------------------------------------------------------- //-------------------------------------------------------------
//lanciare ba1.exe -6 in uscita //lanciare ba1.exe -6 in uscita
wxSetWorkingDirectory(strPrgLocPath); if (wxSetWorkingDirectory(strPrgLocPath))
wxExecute("ba1 -6 /uADMIN"); wxExecute("ba1 -6 /uADMIN");
else
ErrorBox("Impossibile installare i moduli. Cartella di destinazione irraggiungibile!");
} }

View File

@ -41,18 +41,13 @@ wxString GetDefaultDestination()
} }
//Magico metodo per stabilire se una directory e' condivisa ed e' su un disco locale!! //Magico metodo per stabilire se una directory e' condivisa ed e' su un disco locale!!
bool IsSharedLocal (const wxString& strDir) bool IsSharedDirectory (const wxString& strDir)
{ {
bool found = false; bool found = false;
wxString strDataDir = strDir.Lower(); wxString strDataDir = strDir.Lower();
strDataDir.Replace ("/", "\\"); strDataDir.Replace ("/", "\\");
UINT nDataDriveType = GetDriveType(strDataDir.Left(3));
//l'area dati e' su un disco locale?
if (nDataDriveType == DRIVE_FIXED)
{
NET_API_STATUS res = ERROR_MORE_DATA; NET_API_STATUS res = ERROR_MORE_DATA;
while (res==ERROR_MORE_DATA && !found) while (res==ERROR_MORE_DATA && !found)
{ {
@ -63,9 +58,9 @@ bool IsSharedLocal (const wxString& strDir)
{ {
for (DWORD i = 0; i < nEntriesRead; i++) for (DWORD i = 0; i < nEntriesRead; i++)
{ {
/*Oh ignaro programmatore, questa parte commentata utilizza funzioni native di windows che non si sono riuscite.. /*Oh ignaro programmatore, questa parte commentata utilizza funzioni native di windows che non si sono riuscite..
..a far funzionare! Se osi, prova la tua forza rendendole utili! ..a far funzionare! Se osi, prova la tua forza rendendole utili!
//la directory dei dati deve essere leggibile,scrivibile,e filecreabile //la directory dei dati deve essere leggibile,scrivibile,e filecreabile
int Result = NetShareGetInfo(NULL, shi[i].shi502_netname, 502, (LPBYTE *)&shi[i]); int Result = NetShareGetInfo(NULL, shi[i].shi502_netname, 502, (LPBYTE *)&shi[i]);
if (shi[i].shi502_permissions & (PERM_FILE_READ | PERM_FILE_WRITE | PERM_FILE_CREATE))*/ if (shi[i].shi502_permissions & (PERM_FILE_READ | PERM_FILE_WRITE | PERM_FILE_CREATE))*/
{ {
@ -82,7 +77,7 @@ bool IsSharedLocal (const wxString& strDir)
NetApiBufferFree(shi); NetApiBufferFree(shi);
} //if(res ==... } //if(res ==...
} //while (res==ERROR_MORE_DATA... } //while (res==ERROR_MORE_DATA...
} //if (nDataDriveType...
return found; return found;
} }
@ -147,15 +142,16 @@ int CampoIniFile::GetInstallationTypeNumber() const
int nType = GetInt("Type"); int nType = GetInt("Type");
if (nType < 1 || nType > 3) if (nType < 1 || nType > 3)
{ {
nType = 1; //di base e' standalone
const bool bTestDataBase = GetBool("TestDatabase"); const bool bTestDataBase = GetBool("TestDatabase");
const bool bTestPrograms = GetBool("TestPrograms"); const bool bTestPrograms = GetBool("TestPrograms");
nType = 1; //di base e' standalone
if (bTestDataBase) //se puo' manipolare i dati e' StandAlone o Server.. if (bTestDataBase) //se puo' manipolare i dati e' StandAlone o Server..
{ {
//ma e' Standalone o Server? //ma e' Standalone o Server?
//se la directory dei dati e' condivisa in scrittura e' un server (almeno al 99%) //se la directory dei dati e' condivisa in scrittura e' un server (almeno al 99%)
const wxString strStudy = Get("Study"); const wxString strStudy = Get("Study");
if (IsSharedLocal(strStudy)) if (IsSharedDirectory(strStudy))
nType = 2; //e' server nType = 2; //e' server
} }
else //..senno' e' client else //..senno' e' client

View File

@ -1111,22 +1111,35 @@ bool CampoWizardPage8::TransferDataToWindow()
bool CampoWizardPage8::ForwardValidate() bool CampoWizardPage8::ForwardValidate()
{ {
//controllo esistenza directory vuota per i programmi in locale //controlli su directory selezionate
//1) directory di installazione programmi
const wxString strPrgLocPath = Get(801); const wxString strPrgLocPath = Get(801);
//la directory di installazione programmi deve essere su un disco locale (sei un client!)
UINT nPrgDriveType = GetDriveType(strPrgLocPath.Left(3));
if (nPrgDriveType != DRIVE_FIXED)
return ErrorBox("La cartella selezionata per l'installazione dei programmi deve trovarsi su un disco locale!");
//controllo esistenza directory vuota per i programmi in locale
wxDir dirPrgLocPath(strPrgLocPath); wxDir dirPrgLocPath(strPrgLocPath);
if (dirPrgLocPath.Exists(strPrgLocPath) && (dirPrgLocPath.HasFiles() || dirPrgLocPath.HasSubDirs())) if (dirPrgLocPath.Exists(strPrgLocPath) && (dirPrgLocPath.HasFiles() || dirPrgLocPath.HasSubDirs()))
return ErrorBox("La cartella selezionata per l'installazione dei programmi NON e' valida! Selezionarne un'altra!"); return ErrorBox("La cartella selezionata per l'installazione dei programmi NON e' valida! Selezionarne un'altra!");
//controllo esistenza directory e programmi sul server //2) directory di origine dei programmi sul server
const wxString strPrgNetPath = Get(803); const wxString strPrgNetPath = Get(803);
if (!CheckPrgDir(strPrgNetPath)) if (!CheckPrgDir(strPrgNetPath))
return ErrorBox("La cartella selezionata come origine dei programmi NON e' valida!"); return ErrorBox("La cartella selezionata come origine dei programmi NON e' valida!");
//controllo esistenza dati sul server... //3) directory dati sul server
const wxString strDataPath = Get(805); const wxString strDataPath = Get(805);
//la cartella dei dati deve essere in remoto,senno' sei una postazione locale o un server
UINT nDataDriveType = GetDriveType(strDataPath.Left(3));
if (nDataDriveType != DRIVE_REMOTE)
return ErrorBox("La cartella dei dati deve trovarsi su un server remoto e non su un disco locale!");
//la cartella dei dati deve contenerli ed essere scrivibile
if (!CheckDataDir(strDataPath)) if (!CheckDataDir(strDataPath))
return ErrorBox("La cartella selezionata come area dati NON e' valida o non accessibile in scrittura!"); return ErrorBox("La cartella selezionata come area dati NON e' valida o non accessibile in scrittura!");
//setta alla pagina riassuntiva i valori della pagina attuale //setta alla pagina riassuntiva i valori della pagina attuale
GetWizard().SetPrgLocPath(strPrgLocPath); GetWizard().SetPrgLocPath(strPrgLocPath);
GetWizard().SetPrgNetPath(strPrgNetPath); GetWizard().SetPrgNetPath(strPrgNetPath);