- Split the import flow into explicit steps: import/preview CSV, then a separate "Crea cartella raw" button that looks up CAD paths and copies matched files into raw/ next to the source distinta file. - Redesign the top panel with grouped, auto-sized sections (database vs. import) instead of hand-tuned row heights, fixing overlap/clipping bugs; style the primary action button and polish the results grid. - Remember the last successfully loaded database path in %AppData%\CadSearchGui\ultimo_db.txt so it reloads automatically on future launches regardless of the working directory. - Ignore the /step/ working folder. - Add a README with build/run/publish instructions and project overview. 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`) 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.
|