view_celle_multiple.py

Scopo

Questo modulo esplora le celle che contengono più pallet del previsto, organizzando i risultati in un albero:

  • corsia

  • cella duplicata

  • pallet contenuti nella cella

Flusso operativo

        flowchart TD
    A["open_celle_multiple_window()"] --> B["CelleMultipleWindow.__init__()"]
    B --> C["_build_layout()"]
    C --> D["_bind_events()"]
    D --> E["refresh_all()"]
    E --> F["_load_corsie()"]
    E --> G["_load_riepilogo()"]
    F --> H["query_json SQL_CORSIE"]
    G --> I["query_json SQL_RIEPILOGO_PERCENTUALI"]
    H --> J["_fill_corsie()"]
    I --> K["_fill_riepilogo()"]
    

Lazy loading dell’albero

        flowchart TD
    A["Espansione nodo tree"] --> B["_on_open_node()"]
    B --> C{"Nodo corsia o nodo cella?"}
    C -- Corsia --> D["_load_celle_for_corsia()"]
    D --> E["query_json SQL_CELLE_DUP_PER_CORSIA"]
    E --> F["_fill_celle()"]
    C -- Cella --> G["_load_pallet_for_cella()"]
    G --> H["query_json SQL_PALLET_IN_CELLA"]
    H --> I["_fill_pallet()"]
    

Schema di chiamata

        flowchart LR
    Refresh["refresh_all"] --> Corsie["_load_corsie"]
    Refresh --> Riep["_load_riepilogo"]
    Open["_on_open_node"] --> LoadCelle["_load_celle_for_corsia"]
    Open --> LoadPallet["_load_pallet_for_cella"]
    Export["export_to_xlsx"] --> Tree["tree dati dettaglio"]
    Export --> Sum["sum_tbl riepilogo"]
    

Note

  • L’albero è caricato a richiesta, non tutto in una sola query.

  • Questo riduce il costo iniziale e rende il modulo più scalabile.

  • L’export legge sia il dettaglio dell’albero sia la tabella di riepilogo.