- Add 'Unificati' and 'Commerciali' as indexed root folders alongside the existing four, updating Indexer.CartelleRadice and the docs. - Replace the separate "Pulisci cartella raw" / "Pulisci cartella step" buttons with a single "Pulisci raw e step" that clears both under one confirmation; falls back to a folder picker when no path is known yet in the session instead of staying disabled. - "Trova componenti referenziati" now also writes a persistent summary (PRT/sub-assemblies found and copied, codes not found) to the main window's status line, not just the popup dialog, and reports clearly when no database is loaded instead of failing silently. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
82 lines
2.7 KiB
Markdown
82 lines
2.7 KiB
Markdown
# CadSearchGui
|
|
|
|
App Windows Forms (.NET 10) per indicizzare, cercare e recuperare i file CAD
|
|
Pro-ENGINEER/Creo di un disco/share di rete, e per trasformare l'estrazione
|
|
"Distinta Base" del gestionale (file `.xls`/`.xml`) in un CSV con il percorso
|
|
CAD di ogni componente.
|
|
|
|
## Funzionalità
|
|
|
|
1. **Indice CAD** — all'avvio carica automaticamente `cad_index.db` (se
|
|
presente accanto all'eseguibile). Se manca, si può selezionare un DB
|
|
esistente con **Apri DB...** o generarne uno nuovo con **Aggiorna
|
|
indice**, che scansiona il disco (di default `X:\`, cartelle
|
|
`__Accessori`, `__B.end`, `__Corpi`, `__Fondi`, `Unificati`, `Commerciali`) e indicizza tutti i file.
|
|
2. **Importa Distinta Base** — trascina (o scegli da file) l'estrazione
|
|
`.xls`/`.xml` del gestionale (foglio "Distinta Base", colonne
|
|
Componente/Descrizione): viene generato un CSV con anteprima in griglia.
|
|
3. **Crea cartella raw** — cerca nell'indice il percorso CAD di ogni
|
|
componente importato e copia i file trovati in una cartella `raw/`
|
|
accanto al file di distinta originale.
|
|
|
|
## Requisiti
|
|
|
|
- Windows
|
|
- [.NET 10 SDK](https://dotnet.microsoft.com/download) (per build/run da sorgente)
|
|
- Accesso alla share di rete con i file CAD (`X:\` di default) per
|
|
l'indicizzazione
|
|
|
|
## Build
|
|
|
|
```powershell
|
|
cd CadSearchGui
|
|
dotnet build -c Release
|
|
```
|
|
|
|
## Avvio
|
|
|
|
Da sorgente:
|
|
|
|
```powershell
|
|
cd CadSearchGui
|
|
dotnet run -c Release
|
|
```
|
|
|
|
Oppure l'eseguibile già compilato:
|
|
|
|
```powershell
|
|
cd CadSearchGui\bin\Release\net10.0-windows
|
|
.\CadSearchGui.exe
|
|
```
|
|
|
|
## Pubblicazione (eseguibile standalone)
|
|
|
|
Genera un `.exe` self-contained per Windows x64, senza bisogno del runtime
|
|
.NET installato sulla macchina di destinazione:
|
|
|
|
```powershell
|
|
cd CadSearchGui
|
|
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
|
|
```
|
|
|
|
L'eseguibile risultante è in `CadSearchGui\publish\CadSearchGui.exe`.
|
|
|
|
## Struttura del progetto
|
|
|
|
Tutto il codice è in `CadSearchGui/` (unico progetto nella solution, GUI e
|
|
indicizzazione integrate):
|
|
|
|
- `Program.cs` — entry point.
|
|
- `Form1.cs` — finestra principale (indice CAD, import Distinta Base, griglia
|
|
risultati); UI costruita interamente in codice, nessun designer visuale.
|
|
- `Indexer.cs` — scansione del disco e scrittura/aggiornamento del DB SQLite.
|
|
- `DistintaBaseImporter.cs` — parsing del file Distinta Base (SpreadsheetML
|
|
XML o Excel binario/OpenXML tramite ExcelDataReader) e generazione CSV.
|
|
- `ProgressForm.cs` — dialog di avanzamento durante l'aggiornamento indice.
|
|
|
|
Il database generato (`cad_index.db`), i file Excel/CSV della distinta
|
|
trascinati nella root e la cartella `raw/` sono rigenerabili e non sono
|
|
tracciati in git (vedi `.gitignore`).
|
|
|
|
Non ci sono test automatizzati nel repo.
|