Chiudi tutte le riviste con un'eccezioneSto cercando una riga di codice di script che mi permetta di chiudere tutte le riviste aperte tranne una finestra.
Acutally l'estrazione dell'elenco di nomi corretti non funziona. Non è quindi possibile abbinarlo al nome del giornale che dovrebbe rimanere aperto. Vedi sotto lo script ***.
CloseAllJournalsExcept = Function( {},
JournalName = "StaysOpen";
For( i = N Items( Window() ), i > 0, i--,
If( Window( i ) << GetName != JournalName, //***
Window( i ) << close window()
)
);
);
Grazie.
Ri: Chiudi tutte le riviste con un'eccezione
Uso findall (riviste) per creare un elenco di riviste e utilizzare loc () per rimuovere il custode dall'elenco. Quindi inviare il chiudi la finestra comando all'elenco. Di seguito, l'icona bloccata viene aggiunta a ciascun giornale per dire a JMP "questo giornale è bloccato, crea un altro giornale la prossima volta, anziché aggiungerlo a questo". Altrimenti è difficile fare un mucchio di riviste. Anche le riviste sono contrassegnate setDirty (0) quindi non vi è alcun prompt quando li si chiude. Potresti non volerlo per quello che tieni aperto.
myJrns = {};
For( i = 1, i <= 5, i += 1,
w = New Window( Char( i ), V List Box( Text Box( Char( i ) ) ) );
j = w << journalwindow;
w << closewindow;
j[Text Box( 1 )] << sibAppend( Icon Box( "Locked" ) ); // locked: just to make a new window each time
Insert Into( myJrns, j );
);
myJrns << setDirty( 0 ); // these were just created, make it easy to close them
// get a list of all open journals
alljournals = Find All( Journals );
// close all but the 2nd one just created...
// myJrns[...] is the list of journals just created
// myJrns[2] is the 2nd one that we decide to keep
// the allJournals list might be in a different order, so
// use loc() to find the matching index in allJournals
keeper = Loc( alljournals, myJrns[2] ); // returns a matrix
keeper = keeper[1]; // was a matrix of one element, now a scalar
// modify the allJournals list so we can close all of its items
Remove From( allJournals, keeper ); // remove the keeper from the list
allJournals << closewindow; // closes all the journals that remain in the list