Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

di il
7 risposte

Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

Ciao a tutti, vi chiedo una soluzione operativa che spero non sia già stata trattata nel mio caso che descrivo:
Per esigenze di front-end dovrei nascondere in una maschera dei pulsanti di opzione situati in una casella di opzioni in base allo stato di altri pulsanti di opzione all'interno di un'altra casella opzioni. In altre parole in una maschera ci sono 2 caselle di opzioni contenenti i pulsanti di opzione, una contiene le opzioni di tipologia report, l'altra contiene i filtri da adottare, i singoli pulsanti nella casella filtri tipologia devono essere visibili o nascosti in base alla scelta fatta in precedenza sui pulsanti nella casella tipologia.
Un esempio nello specifico, scegliendo le tipologie "spese" i pulsanti dei filtri tipologia devono essere tutti visibili, mentre se scelgo la tipologia "carta" i pulsanti filtri visibili (quindi selezionabili dagli utenti) sono solo lo "storico" mentre tutti gli altri diventano nascosti. Allego anche una foto del particolare nella maschera.
Vi ringrazio tantissimo per l'aiuto.
Ciao
MM
Allegati:
27957_6b6e39622642c80e700f2edd4f41e489.png
27957_6b6e39622642c80e700f2edd4f41e489.png

7 Risposte

  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    Secondo me stai sbagliando strumento...
    Se tu usassi ListBox con una definizione di tabella di riferimento sarebbe tutto gestibile con una query.
    Cosi invece sei costretto a scrivere codice... se poi domani aggiungi 1 Tipologia che fai...?
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    @Alex ha scritto:


    Secondo me stai sbagliando strumento...
    Se tu usassi ListBox con una definizione di tabella di riferimento sarebbe tutto gestibile con una query.
    Cosi invece sei costretto a scrivere codice... se poi domani aggiungi 1 Tipologia che fai...?
    Ciao @Alex e grazie per la pronta risposta.
    Ho fatto un po' di prove con la Casella di Riepilogo che consigliavi ma temo di non essermi spiegato bene nella mia prima richiesta di aiuto. Provo a riformularla meglio:
    Premesso che il DB è ad uno stato puramente di "visualizzazione record per mezzo di report" ovvero il DB è un contenitore di record di importi di varia natura che per mezzo di report devono essere stampati a video e su carta per mostrare e divulgare statistiche.
    Lo scopo del DB è appunto poter gestire svariati modi di richiamo dei report (es veloce: il Report Spese Esterne raggruppa i record per data e per tipo con riassunti e totali, mentre il Report Spese Interne raggruppa i record solo per data ecc.. senza totali e via così per gli altri report.
    La gestione della scelta dei report nella prima versione del programma avveniva per mezzo di una maschera che faceva solo da "pulsantiera" multipla, ovvero una 30ina di pulsanti dove ognuno apriva direttamente un report diverso, all'apertura della maschera veniva scelto il nome utente su menu a tendina e una volta scelto l'utente ogni tasto per mezzo di macro apriva il report richiesto configurato per l'utente scelto. Siccome il sistema utilizzato per la scelta poteva apparire all'utente come ridondante (molti tasti in posizioni diverse erano chiamati uguali) allora ho voluto eliminare tutti i pulsanti e creare quindi 2 caselle di opzioni con N pulsanti di opzioni ciascuna, con un unico pulsante esterno "Apri Report" che in base alla combinazione dei 2 pulsanti delle 2 caselle al click richiamava una macro unica dove tutte le combinazioni erano gestite al suo interno anche con rimandi di righe fino al richiamo del Report indicato.
    In tutto questo però, esteticamente nella maschera iniziale ci sono dei bottoni della prima casella che non hanno bisogno di avere visualizzati filtri di selezione nell'altra casella, quindi quando seleziono un bottone della prima casella di opzione che deve come dire essere diretto al tasto perchè non ha bisogno di altre opzioni, tutti i bottoni della seconda casella di opzioni devono nascondersi in automatico, tutto questo per non creare confusione agli operatori che se questo non accade, pensano che con la scelta di quel bottone della prima casella ci siano possibili altri filtri per il report (es, per data, per nome, per genere ecc ecc quando questo non la necessita perchè non è stato formattato per gruppi).
    Quindi riassumendo: nella prima casella ho 2 scelte A1 e A2, nella seconda ho 3 scelte B1 B2 e B3; A1 tiene visibile B1, B2 e B3, A2 tiene visibile solo B3 e mette B1 e B2 non visibili, se torno a A1 il B1 e B2 tornano visibili e via così, tutto questo avviene all'istante ovvero la visibilità dei tasti B1 B2 B3 avviene all'istante in base alla scelta dei tasti A1 e A2 quindi prima di premere il tasto che apre il report.
    Spero di essermi spiegato meglio e ringrazio oltre a te anche chi ha letto fin qui.
    Ciao. MM
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    In realtà ti eri spiegato bene... ma forse non hai capito il mio suggerimento...?

    Di solito quando si hanno queste Multi-Opzioni, che magari nel tempo possono richiedere flessibilità di Nuove Opzioni o rimozione di Obsolete.., dovrebbero essere analizzato il metodo di impostazione in modo da renderlo sostenibile a livello di TAbelle...!
    Tabella Report
    Tabella Metodi
    Tabella MetodiPerReport

    Relazione M-M tra le 3 Tabelle, un classico della 3° FN.

    A questo punto popolando opportunamente le 2 Tabelle esterne, quindi dei Report e dei Metodi puoi procedere ad assegnare ad ogni singolo Report i Metodi o le Opzioni Supportate...

    Proseguendo quindi avrai 2 ComboBox(oppure 2 ListBox, io preferisco le Combo) per effettuare la Selezione, di cui la 2° Bloccata in attesa della Selezione della 1° Che consentirà di selezionare il Report, fatta la scelta la 2° COmbo si popola con i dati recuperati dalla Tabella MetodiPerRelazioni con WHERE condition data dalla Valorizzazione della Selezione del Report(la 1° Combo)...!

    In questo modo un domani se devi aggiungere o modificare lo fai sulle Tabelle e non sul Codice.

    Questo è il Metodo corretto, quello che vuoi fare tu Funzionerebbe sicuramente ma non è TEcnicamente corretto in quanto rigidamente vincolato alla situazione attuale e richiede la modifica del Codice, quindi la ricompilazione del Client e la redistribuzione... cosa che valuto inuitile ed errata.

    Buon lavoro.
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    @Alex ha scritto:


    In realtà ti eri spiegato bene... ma forse non hai capito il mio suggerimento...?
    Ciao @Alex, esattamente non avevo capito il tuo suggerimento che hai poi ri-esposto in maniera per me più chiara. Purtroppo è dovuto alle mie conoscenze che al tuo livello che hai indicato sono ben di lunga limitate, pensavo all'inizio ci fosse un metodo più semplice (tipo di assegnare il colore bianco o nero dei pulsanti Metodo in base alla condizione dei pulsanti Report usando una espressione nel condizionale per ogni singolo come faccio con i report, ma purtroppo in maschera il pulsante "condizionale" quando seleziono dentro una casella di controllo rimane disattivato).
    Non mi scoraggio e ora cerco di imparare con i tutorial su come creare quanto mi hai suggerito (che immagino per te ai tuoi livelli sia una delle basi più semplici di questo programma), soprattutto su come associare ogni singola voce (riga) della tabella Report alle delle righe specifiche contenute nell'elenco completo della tabella Metodi che è lì che mi manca la nozione ovvero non so come associare ogni riga di una tabella a solo alcune righe in un'altra tabella, poi sempre con i tutorial imparare a creare la Boxlist o la combo per gestire come dicevi tu.
    Ti ringrazio molto per il suggerimento e per l'aiuto.
    Ciao. MM
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    Il mio è un suggerimento in ottica funzionale... ovvio che puoi sempre gestire come hai pensato usando dei SELECT CASE sul primo OptionGroup.
    Tuttavia devi far attenzione a.come vengono nominati intingoli controlli interni e rinominarli per snellire il codice... altrimenti serve sbrodolare tutta la casistica delle combinazioni con l'esplicitazione dei nomi...

    Buon lavoro.
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    @Alex ha scritto:


    In realtà ti eri spiegato bene... ma forse non hai capito il mio suggerimento...?
    ...
    ...
    Ciao Alex, questa notte ho trovato in rete un video che spiegava esattamente paripasso quanto tu hai mi hai suggerito, ho creato quindi 2 cbobox e funziona perfettamente però in metodo 2 campi a tendina. La mia necessità però è lavorarci in 2 caselle di pulsanti selezionabili quindi ora cercherò come creare le cbo sulle 2 caselle pulsanti.
    Comunque sia ti ringrazio molto ancora.
    A presto.
    MM
  • Re: Nascondere pulsante di opzione in base alla scelta di altro pulsante opzione

    @Alex ha scritto:


    Il mio è un suggerimento in ottica funzionale.
    Ciao @Alex, ho risolto il problema della non gestione nella macro delle scelte delle 2 cbo (troverai nei cancellati un post che ti avevo fatto stamattina che poi ho cancellato ora motivandone la cancellazione), il problema era il richiamo della colonna delle cbo che era errata, dovevo gestire le combinazioni al numero di riga delle cbo, l'ho scoperto inserendo un campo finto nella maschera dove riportavo la scelta della cbo e ho visto che appariva il numero di riga e non il testo che avevo scelto. Cambiate tutte le combinazioni e ora la macro funziona perfettamente.
    Quindi ora con 2 cbo a cascata di cui la seconda filtra le righe in base alla scelta sulla prima, il tasto Apri Report fa partire la macro che ha elencate tutte le combinazioni (per i 40 report diversi) e si apre il report corretto. E' quello che volevo. Ti ringrazio tantissimo davvero.
    Per correttezza dimmi se devo anteporre [RISOLTO] al post.
    CIao. MM
Devi accedere o registrarti per scrivere nel forum
7 risposte