Estendere IN.DE con IN.DE
copia linkCome realizzare un'applicazione che estende IN.DE
In questo articolo vengono indicati i passi per creare un wizard tramite IN.DE stesso. Un wizard è un'applicazione in grado di interfacciarsi con l'ambiente di sviluppo di Instant Developer per personalizzarne il comportamento.
I prerequisiti per questo tipo di wizard sono i seguenti:
- L'applicazione deve funzionare nella stessa postazione di lavoro in cui è in esecuzione IN.DE.
- L'applicazione deve essere compilata in ambiente C#, anche utilizzando una licenza di tipo Express.
Il primo wizard
Vediamo ora come realizzare il primo wizard passo passo:
- Crea un nuovo progetto.
- Scarica il progetto EsempiMS indicato nel paragrafo Vedi Anche ed aprilo.
- Importa dal progetto appena aperto le librerie INDE Extension e INDE TreeWalker nel nuovo progetto.
- Modifica le proprietà dell'applicazione togliendo il flag "Mantieni compatibilità": i componenti sono disponibili per il linguaggio C# e la compatibilità con Java ne vieterebbe l'utilizzo.
- Implementa l'evento AfterLogin dell'applicazione con il codice seguente:
// Evento notificato dall'applicazione dopo che è stato effettuato l'accesso al
// sistema
// ****************************************************************************
event NuovaApplicazione.AfterLogin()
{
try
{
INDEExtension INDE = null // Oggetto IN.DE
int DocID = 0 // Puntatore del documento attivo
//
// Mi connetto a IN.DE
INDE.Connect()
//
// Recupero il puntatore del documento attivo
DocID := INDE.GetActiveDocument()
//
// Se c'è un documento attivo
if DocID > ZERO
{
int PrjID = 0 // Puntatore del progetto
string NomeProgetto = "" // Nome del progetto
//
// Recupero il puntatore del progetto
PrjID := INDE.GetRootObject(DocID)
//
// Leggo il nome del progetto
NomeProgetto := INDE.GetPropString(PrjID, Nome, ??)
//
// Comunico all'utente il nome del progetto
NuovaApplicazione.MessageBox(FormatMessage(Il nome del progetto attivo è
"|1"., NomeProgetto, ??, ??, ??, ??))
}
else
{
NuovaApplicazione.MessageBox(Non c'è nessun progetto aperto.)
}
}
catch
{
NuovaApplicazione.MessageBox(Si è verificato un errore.)
}
}
- Salva e compila il progetto avviando l'applicazione.
Integrazione con IN.DE
Oltre che richiamare il wizard appena creato tramite riga di comando, puoi associarlo ad un menù di IN.DE attraverso il configuratore dei wizard (vedi Configurazione dei wizard). In questo caso l'applicazione viene aperta all'interno dell'IDE di Instant Developer invece che in un browser esterno; inoltre come query string viene aggiunto un parametro ObjID valorizzato con il puntatore all'oggetto attualmente selezionato nel progetto (es. "http://localhost:1308/Applicazione/Applicazione.aspx?ObjID=XXXXXXXX"). Il parametro ObjID è particolarmente importante in caso di wizard collegato al menù contestuale di un'oggetto; in questo caso infatti è necessario comunicare al wizard per quale oggetto è stato invocato.
Un esempio completo
Nell'articolo Esempio 1: Gestione del glossario viene mostrato un wizard che permette di estrarre tutti i nomi delle tabelle e dei campi di un database per creare un glossario che permetterà poi di uniformare i DB Code degli oggetti del database.
Note
E' possibile realizzare wizard anche solo con un file HTML e codice Javascript, come descritto nell'articolo Estendere con il Javascript.
Ultima modifica: 23/03/2021 / Validità: da 7.1.3300