Baseline: současný stav projektu Rozpisky

První commit — WPF aplikace pro generování výkresových rohových razítek
(.NET 10, SkiaSharp, ACadSharp, ClosedXML) včetně xUnit testů, DXF šablony,
log a dokumentace. Build výstupy (bin/, obj/, .vs/) jsou ignorovány.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 09:45:49 +02:00
co-authored by Claude Opus 5
commit a6377ab583
107 changed files with 349485 additions and 0 deletions
+408
View File
@@ -0,0 +1,408 @@
# Rozpisky rozhraní aplikace, datový model a budoucí funkcionality
Tento dokument popisuje **standalone aplikaci Rozpisky** z pohledu uživatele a dat: jaké má
obrazovky, co se v nich vyplňuje, jaké akce nabízí a jak je vnitřně uspořádaný datový model.
Navazuje na [`ROZPISKY.md`](ROZPISKY.md), který popisuje **vykreslovací/exportní jádro**
(kreslicí rozhraní `IProfileRenderer`, čtečka DXF šablony `DxfTemplate`, exporty PNG/PDF/DXF).
Aplikace je **standalone náhrada za původní excelový nástroj „Rozpisky 1.0.8"**. Z něj vychází
veškerá logika rozhraní i datový model. Tento dokument je proto současně i **přepisem původního
excelu** do podoby specifikace pro samostatnou aplikaci.
> **Styl WPF se zde neřeší** popisujeme rozhraní funkčně (obrazovky, pole, akce, tok dat).
> Vizuální styl bude dodán samostatně.
---
## 1. Účel a vztah k `ROZPISKY.md`
| Dokument | Co popisuje |
|---|---|
| [`ROZPISKY.md`](ROZPISKY.md) | **Jádro** jak se kreslí a exportuje (DXF → obrazovka / PNG / PDF / DXF). |
| `ROZHRANI.md` (tento) | **Aplikace** uživatelské rozhraní, datový model (projekt + seznam příloh), akce a roadmapa. |
| [`SZ_SM011_P10_Manual_v6.md`](SZ_SM011_P10_Manual_v6.md) | **Závazný manuál SŽ** (v06, 26. 1. 2026) struktura dokumentace, **kódové označení** (kap. 3) a **popisové pole / pravidla vyplnění** (kap. 4). Autoritativní zdroj pro význam polí a kódu. |
**Princip:** Uživatel jednou vyplní **údaje projektu** (společné všem výkresům) a postupně plní
**seznam příloh** (jeden řádek = jeden výkres = jedna rozpiska). Aplikace každý řádek spojí
s údaji projektu, naplní pole DXF šablony a umí jej zobrazit (náhled) a vyexportovat/vytisknout.
**Standalone-first:** aplikace nevyžaduje AutoCAD. Vstup je **DXF šablona + data**, výstup
**PNG / PDF / DXF** (engine z `ROZPISKY.md`). Integrace s AutoCADem (interop do `.dwg`, rozvržení,
CTB, tisk plotterem) je vedena **jen jako budoucí rozšíření** viz [sekce 8](#8-roadmapa-budoucích-funkcionalit).
---
## 2. Slovník pojmů
| Pojem | Význam |
|---|---|
| **Rozpiska** | Rohové razítko výkresu tabulka s údaji o projektu, příloze, autorech a revizích. |
| **Příloha** | Jeden výkres / list dokumentace. V seznamu = jeden řádek. |
| **Seznam příloh** | Tabulka všech příloh projektu (původní list `SEZNAM`). |
| **Rozvržení (layout)** | Pojmenované rozvržení výkresu (v AutoCADu paper-space layout). Jméno se generuje z identifikace přílohy. |
| **Orientační schéma** | Malé schéma v rozpisce naznačující polohu listu v rámci stavby (buňky `K1``K47`). |
| **Placeholder loga** | Vyhrazené místo v šabloně pro logo (objednatele/zhotovitele). Leží na netisknutelné hladině. |
| **Číselník** | Předvyplněný seznam hodnot (organizace, firmy, jména, profese, …) pro výběr v polích. |
| **Projektové pole** | Hodnota společná celému projektu (z údajů projektu). |
| **Řádkové pole** | Hodnota specifická pro jednu přílohu (ze seznamu příloh). |
---
## 3. Datový model
Model 1:1 odpovídá listům původního excelu. Entity:
### 3.1 Projekt (původní list `ÚDAJE`)
Údaje společné všem rozpiskám projektu. Část polí se **automaticky dohledává z číselníků**
(v excelu přes `VLOOKUP`).
| Pole | Popis | Zdroj |
|---|---|---|
| `stavba` | Název stavby / akce | ruční |
| `HIP` | Hlavní inženýr projektu | ruční |
| `investor` | Objednatel zakázky | číselník Organizace |
| `investorAdresa` | Adresa objednatele | **auto** z č. Organizace |
| `slozkaSZ` | Složka SŽ (zástupce objednatele) | ruční / číselník |
| `slozkaSZAdresa` | Adresa složky SŽ | **auto** z č. Organizace |
| `skod` | S-kód (číslo smlouvy dle SoD) | ruční |
| `cisloZakazky` | Číslo zakázky | ruční |
| `stupenDokumentace` | Stupeň dokumentace (např. DOS) | číselník Verze dokumentace |
| `smluvniDatumZpracovani` | Smluvní datum zpracování | ruční (datum) |
| `zhotovitelSOD` | Zhotovitel díla dle SoD | číselník Firmy |
| `adresaSOD` | Adresa zhotovitele | **auto** z č. Firmy |
| `telSOD` | Telefon zhotovitele | **auto** z č. Firmy |
| `emailSOD` | E-mail zhotovitele | **auto** z č. Firmy |
### 3.2 Příloha (řádek v seznamu, původní list `SEZNAM`)
Sloupce AAD; jeden řádek = jedna rozpiska. Souhrn:
| Sl. | Obsah | Sl. | Obsah |
|---|---|---|---|
| A | Označení části | O | Kontroloval (R1) |
| B | Označení dílčí části / řady | PU | R2R4 + kdo revidoval |
| C | Název objektu / dílčí části | V | Zhotovitel části |
| D | Číslo objektu / komplexu | W | Měřítko |
| E | Číslo přílohy typ | X | Formát × A4 |
| F | Číslo přílohy dílčí | Y | Kraj |
| G | Číslo přílohy pořadí | Z | Katastrální území |
| H | Název přílohy | AA | TUDU |
| I | Název dílčí části přílohy | AB | **Jméno rozvržení** (generováno) |
| J | Zkratka přílohy | AC | LTSCALE |
| K | Vypracoval | AD | CTB (styl tisku) |
| L | Odpovědný projektant | | |
| M | Specialista | | |
| N | Revize 1 (R1) | | |
> **Jméno rozvržení** (`AB`) je **poloautomatické**, řízené zaškrtávacím polem **Příloha objektu**
> (první sloupec seznamu, výchozí = zaškrtnuto):
> - **zaškrtnuto** → jméno se generuje dle manuálu SŽ **kap. 2.7.7.9** (číslo objektu bez teček,
> mezer a pomlček; složky podobjekt / typ / dílčí / pořadí přílohy oddělené `_`):
> `SO131.45.01` + `D1` + `1` + `001` = `SO1314501_D1_1_001`; u podobjektu `SO1314501_01_D1_1_001`;
> u skupiny `SK11311_D1_1_001`. Needituje se;
> - **odškrtnuto** → uživatel zadá jméno ručně (při přepnutí se předvyplní vygenerovanou hodnotou).
>
> Slouží jako jméno layoutu / základ názvu exportovaného souboru. Řádky se shodným jménem rozvržení
> (kolize názvu exportu) se v seznamu zvýrazní.
>
> Samostatné zaškrtávací pole **Rozpiska** (výchozí = zaškrtnuto) řídí, zda název PDF při exportu
> dostane příponu `_rozpiska` (např. `SO1314501_D1_1_001_rozpiska.pdf`). Je nezávislé na polích
> **Příloha objektu** a **Desky objektu** i rozpiska na spisové desky objektu může příponu dostat,
> pokud je pole zaškrtnuté.
### 3.3 Revize (původní list `REVIZE`)
Tabulka revizí: **REVIZE** (kód/číslo verze, např. `000`), **DATUM**, **POPIS**, **KONTROLOVAL**.
Na revize se odkazují řádkové revizní sloupce přílohy (R1R4) a revizní pole v rozpisce.
> **Revize jsou interní data projektu** patří vždy ke **konkrétní zakázce**, ukládají se spolu
> s projektem (ne do externí číselníkové databáze, viz [3.4](#34-číselníky)). Pravidla vyplnění
> revizí popisuje manuál SŽ, kap. 4.3.4 (viz [3.7](#37-kódové-označení-přílohy-47-pozic-pole-k1k47)).
### 3.4 Číselníky
| Číselník | Sloupce | Použití |
|---|---|---|
| **Organizace** | název, adresa | objednatel + složka SŽ (auto adresy) |
| **Firmy / zhotovitelé** | firma, adresa, telefon, e-mail | zhotovitel díla i objektu (auto kontakty) |
| **Jména** | jméno | vypracoval / odpovědný / specialista / kontroloval |
| **Profese** | profese | profesní zařazení |
| **Verze dokumentace** | verze | stupeň dokumentace |
| **Části** | označení, název části | části/objekty v seznamu |
> **Číselníky jsou sdílená data napříč projekty a žijí v samostatné databázi vedle `.exe`.**
> V původním Excelu šlo o samostatné listy s daty (označení dokumentace, data firem apod.).
> Ve standalone aplikaci se z nich stane **externí databázový soubor uložený vedle spustitelného
> souboru** (např. `cisleniky.db` / `.json` ve složce aplikace), aby ho šlo **průběžně doplňovat
> a sdílet** mezi projekty bez zásahu do aplikace. (Na rozdíl od revizí, které jsou interní
> k zakázce viz [3.3](#33-revize-původní-list-revize).)
### 3.5 Konfigurace
| Položka | Popis |
|---|---|
| `CestaExportu` | Kořenová cesta pro export (např. `C:\temp`). |
| `SlozkaExportu` | Podsložka exportu. |
| `MERITKOAUTOMATICKY` | Automatické měřítko. |
| `LTSCALE` | Měřítko typů čar (per výkres). |
| CTB | Styl tisku (per výkres). |
| Nastavení tiskárny | Pro tiskové akce. |
> Tato konfigurace **nejsou pole rozpisky** řídí export/tisk a generování rozvržení.
### 3.6 Mapování `pole aplikace ↔ DXF ATTDEF tag`
Šablona [`Rozpiska.dxf`](Rozpiska.dxf) obsahuje **101 polí (`ATTDEF`)**. Tag pole = klíč do
`values` při vyplnění (viz `DxfTemplate.Replay(g, values)` v `ROZPISKY.md`). Mapování na zdroj dat:
**Projektová pole (z údajů projektu):**
| DXF tag | Zdroj |
|---|---|
| `NAZEV_AKCE` | `stavba` |
| `SO_HIP` | `HIP` |
| `OBJEDNATEL_NAZEV` | `investor` |
| `OBJEDNATEL_ADRESA` | `investorAdresa` |
| `OBJEDNATEL_ZASTUPCE_NAZEV` | `slozkaSZ` |
| `OBJEDNATEL_ZASTUPCE_ADRESA` | `slozkaSZAdresa` |
| `S_KOD` | `skod` |
| `ZAK_CISLO` | `cisloZakazky` |
| `STUP_DOK` | `stupenDokumentace` |
| `DATUM` | `smluvniDatumZpracovani` |
| `ZHOTOVITEL_DILA_NAZEV` | `zhotovitelSOD` |
| `ZHOTOVITEL_DILA_ADRESA` | `adresaSOD` |
| `ZHOTOVITEL_DILA_TELEFON` | `telSOD` |
| `ZHOTOVITEL_DILA_EMAIL` | `emailSOD` |
**Řádková pole (z přílohy / seznamu).** Význam upřesněn dle grafické podoby popisového pole
(manuál SŽ, kap. 4.2.1 a 4.3.7):
| DXF tag | Význam / zdroj |
|---|---|
| `CAST` | Označení části dokumentace (např. `D`) SEZNAM A |
| `CAST_NAZEV` | Název části / profesní skupina (např. „Dokumentace objektů") |
| `OBJEKT_NAZEV` | Název objektu / dílčí části SEZNAM C |
| `RADA` | **řada** objektu (např. `SO131`) SEZNAM B |
| `USEK` | **úsek** složka označení objektu (kap. 2.5 / 3.2.4) |
| `RAZENI` | **řazení** složka označení objektu (kap. 2.5 / 3.2.4) |
| `PODOBJEKT` | **podobjekt** (např. `01`) kap. 3.2.5 |
| `DILCI_CAST` | dílčí část / řada přílohy (např. `D130`) |
| `TYP` | typ přílohy (např. `D.1`) SEZNAM E |
| `CISLO_PRILOHY` | číslo přílohy (3 cifry, např. `003`) SEZNAM G |
| `PRILOHA` | Název přílohy SEZNAM H |
| `PRILOHA_CAST` | Název dílčí části přílohy SEZNAM I |
| `SO_VYPRACOVAL_PRILOHA` | Zpracovatel přílohy SEZNAM K |
| `SO_ZODP_PROJEKTANT` | Odpovědný projektant SEZNAM L |
| `SO_SPECIALISTA` | Specialista SEZNAM M |
| `MERITKO` | Měřítko SEZNAM W |
| `FORMATY` | Formáty (× A4) SEZNAM X |
| `KRAJ` | Kraj SEZNAM Y |
| `KATASTRALNI_UZEMI` | Katastrální území SEZNAM Z |
| `TUDU` | TUDU SEZNAM AA |
| `ZHOTOVITEL_OBJEKTU_NAZEV` | Zhotovitel části / objektu SEZNAM V |
| `ZHOTOVITEL_OBJEKTU_ADRESA/TELEFON/EMAIL` | **auto** z č. Firmy podle `V` |
> Čtveřice `RADA` / `USEK` / `RAZENI` / `PODOBJEKT` tvoří dohromady **označení objektu**
> (např. `SO131 .15 .12 .01`); přesné rozčlenění čísla objektu řeší manuál kap. 2.5 a 3.2.4.
**Revizní pole (z přílohy R1R4 + list `REVIZE`):**
**4 revizní řádky** (sloupce *Revize / Datum / Popis / Kontroloval*, manuál kap. 4.3.4),
plněné z interní tabulky revizí ([3.3](#33-revize-původní-list-revize)):
| DXF tag | Zdroj |
|---|---|
| `REVIZE1CISLO`..`4CISLO` | číslo / kód verze revize (např. `000`) |
| `REVIZE1DAT`..`4DAT` | datum revize |
| `REVIZE1`..`REVIZE4` | popis revize |
| `SO_KONTROLOVAL1`..`4` | kdo kontroloval |
**Strojově čitelný kód:** `K1``K47` = **47 pozic kódového označení přílohy** (manuál kap. 3.1.5),
zobrazených znak po znaku v popisovém poli. **Negenerují se ručně aplikace je sestaví** z ostatních
polí (S-kód, stupeň dokumentace, část, objekt, podobjekt, typ, příloha, revize) viz
[3.7](#37-kódové-označení-přílohy-47-pozic-pole-k1k47).
**Orientační schéma:** samostatné **grafické pole** (pole 2, manuál kap. 4.3.2) schéma stavby
s barevným zvýrazněním polohy objektu; **není to `ATTDEF`**, ale obrazová oblast.
**Loga:** `Rozpiska_logo1``Rozpiska_logo5` **nejsou `ATTDEF`**, ale geometrické placeholdery
na netisknutelných hladinách (viz [sekce 6](#6-loga-a-orientační-schéma)).
> **Pozn. k mapování:** Význam polí byl upřesněn dle **manuálu SŽ** (kap. 3 a 4) původní excelová
> makra (VBA) se v `.xlsx` nedochovala, ale grafická podoba a pravidla vyplnění popisového pole jsou
> v manuálu závazné. Skupiny hladin `Rozpiska_pole_1``8` odpovídají různým stylům (velikost/zarovnání)
> textu polí viz [sekce 7](#7-metadata-polí-zalamování-styl-víceřádkovost).
### 3.7 Kódové označení přílohy (47 pozic, pole `K1``K47`)
Strojově čitelný kód (manuál SŽ kap. 3) má **pevných 47 pozic** rozdělených do 6 skupin; v rozpisce
se zobrazuje znak po znaku v polích `K1``K47`. **Aplikace ho generuje** z ostatních polí, ručně se
neopravuje. Neobsazená alfanumerická pozice = `X`, oddělovač = `_`.
| Skupina | Pozice | Význam | Zdroj polí |
|---|---|---|---|
| 1 | 111 | Identifikace stavby (S-kód / označení investora) | `S_KOD` |
| 2 | 1316 | Stupeň dokumentace (4 znaky, např. `DPSX`) | `STUP_DOK` |
| 3 | 1821 | Část / číselná řada (`D` + řada) | `CAST`, `RADA` |
| 4 | 2334 | Objekt + podobjekt (`SO`/`PS` + číslo + podobjekt) | `RADA`,`USEK`,`RAZENI`,`PODOBJEKT` |
| 5 | 3643 | Typ přílohy + číslo přílohy (`D1``_YYY`) | `TYP`, `CISLO_PRILOHY` |
| 6 | 4547 | Verze / revize (`P`/`0`/`V` + pořadí) | `REVIZEnCISLO` |
Příklad (manuál kap. 4.2.1):
`S123456789X _ DPSX _ D130 _ SO131_15_12 _ 01 _ D1 _ 2 _ 003 _ 000`
(v rozpisce bez mezer, každý znak v jedné buňce `K1``K47`).
> Detailní pravidla pozic jsou v manuálu kap. 3.2.13.2.8; generátor kódu je proto vlastní
> funkční blok aplikace (vstup = strukturovaná pole přílohy, výstup = 47 znaků).
---
## 4. Uživatelské rozhraní
Popsáno funkčně (bez vizuálního stylu).
### 4.1 Hlavní okno
Sekce odpovídající původním listům excelu + panel akcí:
- **Údaje projektu** formulář (viz 4.2).
- **Seznam příloh** mřížka (viz 4.3). Hlavní pracovní plocha.
- **Revize** tabulka revizí projektu.
- **Číselníky** správa hodnot (organizace, firmy, jména, profese, verze, části).
- **Nastavení** cesty exportu, šablona, tisk/konfigurace.
### 4.2 Formulář „Údaje projektu"
Pole dle [sekce 3.1](#31-projekt-původní-list-údaje). Výběr objednatele / zhotovitele z číselníku
**automaticky doplní** adresu a kontakty (náhrada excelového `VLOOKUP`).
### 4.3 Mřížka „Seznam příloh"
- Tabulka (DataGrid), kde **jeden řádek = jedna rozpiska**; sloupce dle [sekce 3.2](#32-příloha-řádek-v-seznamu-původní-list-seznam).
- Vybraná pole nabízejí výběr z **číselníků** (jména, firmy, kraj, části…).
- **Editace dat probíhá přímo v mřížce.**
- Sloupec **Jméno rozvržení** je poloautomatický viz [sekce 3.2](#32-příloha-řádek-v-seznamu-původní-list-seznam)
(řízeno polem **Příloha objektu**); duplicitní jména se zvýrazní.
### 4.4 Náhled rozpisky
- **Náhled se otevírá dvojklikem na řádek** seznamu → otevře se **samostatné okno** s náhledem
dané rozpisky.
- Náhled vykresluje engine z `ROZPISKY.md` (`IProfileRenderer` / `SkiaProfileRenderer`)
živě, ve výkresových milimetrech.
- Okno umožní přepnout: **vyplněné hodnoty** (`Replay(g, values)`) ↔ **předpis / názvy polí**
(`Replay(g)`).
- Z okna náhledu lze danou rozpisku rovnou vyexportovat / vytisknout.
---
## 5. Funkcionality / akce
Přehled vychází z ribbonu původního excelu; sloupec „Standalone chování" popisuje ekvivalent
v samostatné aplikaci.
| Akce (původně) | Standalone chování | Stav |
|---|---|---|
| **Uprav rozpisku** | Editace dat řádku v mřížce; **náhled dvojklikem na řádek** (samostatné okno, [4.4](#44-náhled-rozpisky)). Tlačítko „uprav" odpadá. | plán |
| **Uprav rozpisky** | Hromadné přegenerování / kontrola všech rozpisek (např. po změně údajů projektu). | plán |
| **Vytiskni rozpisku** | Export / tisk **jedné** rozpisky (PDF/PNG) přes `Exporters` (`PdfA4`, `PngA4`). | plán |
| **Vytiskni rozpisky** | **Dávkový** export/tisk všech rozpisek do `CestaExportu\SlozkaExportu`, název dle „Jména rozvržení". | plán |
| **Aktualizuj rozvržení** | Standalone ekvivalent: vygenerování/aktualizace výstupů (DXF/PDF) per rozvržení. (AutoCAD varianta → [roadmapa](#8-roadmapa-budoucích-funkcionalit).) | plán |
| **Vytiskni rozvržení** | Tisk rozvržení (přes vlastní engine / PrintDialog). (AutoCAD varianta → roadmapa.) | plán |
| **Tisk seznamu** | Tisk přehledu seznamu příloh. | plán |
| **Export seznamu (Otevřená verze)** | Export seznamu příloh do otevřeného `.xlsx`. | plán |
| **Navigace (Předchozí/Další)** | Navigace mezi sekcemi / řádky. | volitelné |
| **O programu** | Informace o aplikaci a verzi. | plán |
---
## 6. Loga a orientační schéma
- Šablona má **5 placeholderů na loga** (`Rozpiska_logo1``Rozpiska_logo5`).
- Placeholdery leží na **netisknutelných hladinách** (`!!NOPRINT`): jejich geometrie se **nevykresluje**,
ale aplikace o nich **musí vědět** (z dat šablony), aby do nich uměla posadit logo viz
`RectForLayer` / `g.Image(...)` v `ROZPISKY.md`.
- Logo se přiřazuje podle role: **loga institucí financujících stavbu** (pole 1, manuál kap. 4.3.1
nepovinné), **objednatel/investor**, **zhotovitel díla**, **zhotovitel části/objektu** (manuál
kap. 4.3.5/4.3.6). Načítá se ze souboru (`File.ReadAllBytes("logo.png")`).
- **Orientační schéma** je **samostatné grafické pole** (pole 2, manuál kap. 4.3.2) schéma stavby
s červeným zvýrazněním polohy dotčeného objektu (u liniových staveb klad listů). Nepovinné u malých
staveb. **Není to** pole `K1``K47` (to je strojový kód, viz [§ 3.7](#37-kódové-označení-přílohy-47-pozic-pole-k1k47)).
- Pole pro **otisk razítek** / razítko oprávněné osoby (pole 3, kap. 4.3.3) zůstává v elektronické
verzi obvykle prázdné.
---
## 7. Metadata polí (zalamování, styl, víceřádkovost)
Pole rozpisky nejsou jen „text na souřadnici". Aby výstup odpovídal šabloně, je třeba u každého
pole znát (viz požadavek v [`ROZPISKY.md`](ROZPISKY.md)):
- **velikost textu** (výška) daná stylem/atributem,
- **styl** atributu,
- **víceřádkovost** zda byl atribut víceřádkový,
- **šířku** pole pro **zalamování** dlouhého textu (adresy, dlouhé názvy),
- **zarovnání** (H/V).
Skupiny hladin `Rozpiska_pole_1``8` zřejmě odpovídají různým stylům polí. Tato metadata se mají
číst ze šablony (z `ATTDEF`) a nést spolu s hodnotou.
> **Dopad do jádra:** současná signatura `IProfileRenderer.Text(...)` v `ROZPISKY.md` nenese šířku
> ani příznak víceřádkovosti. Navrhuje se ji **rozšířit o šířku pole + zalamování** (resp. nést
> metadata pole z `DxfTemplate`), aby šlo dlouhé hodnoty správně zalomit. Tím se zároveň řeší
> rozpor mezi požadavkem na víceřádková pole a stávajícím omezením „jen jednořádkový `TEXT`".
---
## 8. Roadmapa budoucích funkcionalit
Orientační fázování (priorita shora dolů):
**Fáze 1 MVP (standalone):**
- Načtení DXF šablony a zjištění polí/placeholderů.
- Datový model: projekt + seznam příloh (v paměti).
- Mřížka seznamu, formulář údajů projektu.
- Náhled rozpisky dvojklikem na řádek.
- Export **jedné** rozpisky do PNG/PDF.
**Fáze 2 data a produktivita:**
- Číselníky + automatické doplnění adres/kontaktů (VLOOKUP).
- Revize.
- **Uložení/načtení projektu** (formát viz [otevřené otázky](#9-otevřené-otázky)).
- Import z původního `.xlsx` (přemostění starých dat).
- **Dávkový export** všech rozpisek.
**Fáze 3 výstupy:**
- Tisk (PrintDialog) jednotlivě i dávkově.
- Tisk / export **seznamu příloh** (i „Otevřená verze" do `.xlsx`).
- Loga ze souborů, orientační schéma.
**Fáze 4 kvalita výstupu:**
- **Víceřádková pole a zalamování** (viz [sekce 7](#7-metadata-polí-zalamování-styl-víceřádkovost)).
- Podpora více DXF šablon.
- Nastavení (cesty, měřítko, CTB, tiskárna).
**Budoucí blok AutoCAD integrace (interop):**
- Vyplnění a tisk rozpisek **přímo ve výkresech `.dwg`**.
- Práce s **rozvrženími (layouty)**, **CTB** styly, **LTSCALE**, tisk plotterem.
- Výstup zpět do `.dwg`.
- *(Mimo standalone jádro aktivuje se jen při dostupném AutoCADu.)*
---
## 9. Otevřené otázky
- **Formát uložení** rozdělené úložiště:
- **Projekt** (údaje + seznam příloh + **revize**) = interní data jedné zakázky → formát k rozhodnutí
(JSON / SQLite / vlastní).
- **Číselníky** (organizace, firmy, jména, profese, verze, části) = **externí databáze vedle `.exe`**,
sdílená a doplňovatelná napříč projekty ([3.4](#34-číselníky)) → formát k rozhodnutí.
- **Generátor 47-pozičního kódu** doimplementovat dle manuálu kap. 3.2.13.2.8 vč. okrajových případů
(sdružené objekty `SK`/`PK`, kap. 3.3; pracovní vs. definitivní verze).
- **Orientační schéma** jak se obrázek schématu získá/přiřadí k příloze (vstup uživatele vs. generování).
- **WPF styl** dodá uživatel samostatně; zde neřešen.
- **Import z původního `.xlsx`** mapování listů `ÚDAJE`/`SEZNAM`/`REVIZE` + číselníků do modelu.
- **Více DXF šablon** jedna pevná vs. volitelné šablony (základní pole / pole celé stavby / vložená
příloha, manuál kap. 4.2.14.2.3).
- **Lokalizace** zatím čeština.