Files
Rozpisky/docs/ROZHRANI.md
T
marekandClaude Opus 5 7e7097c360 Doku: jak se chová skrytí dodávané položky číselníku
Skrytí se neruší smazáním přejmenovaného záznamu (rozdíl nedrží historii
operací) – vrátí ho až zapsání téže hodnoty znovu. U vícepolových číselníků
je potřeba trefit všechna pole, jinak zůstane jako vlastní záznam.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 11:31:54 +02:00

434 lines
24 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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í mimo projekt.** V původním Excelu šlo
> o samostatné listy s daty (označení dokumentace, data firem apod.). Ve standalone aplikaci jsou
> uložené ve **dvou vrstvách JSON** (na rozdíl od revizí, které jsou interní k zakázce
> viz [3.3](#33-revize-původní-list-revize)):
>
> | Vrstva | Soubor | Role |
> |---|---|---|
> | dodávaná | `ciselniky.vychozi.json` vedle `.exe` | výchozí obsah dodaný s programem, jen ke čtení; každá instalace ho obnoví |
> | uživatelská | `ciselniky.user.json` v `%APPDATA%\Rozpisky` | jen **rozdíl** proti dodávané: `Vlastni` (přidané a upravené položky) + `Skryte` (klíče odklizených dodávaných položek) |
>
> Při načtení se vrstvy slučují: dodávané pořadí zůstává, upravená položka se přepíše na svém
> místě, vlastní se řadí za ně. Při uložení se rozdíl dopočítá znovu. Smysl rozdělení: uživatel
> číselníky průběžně doplňuje (ručně i samoučením jmen z projektů) a **přeinstalace novou verzí
> mu je nesmí přepsat** zároveň smí nová verze dodávaný číselník libovolně měnit.
> Klíč položky: `Nazev` (organizace, firmy, kraje), `Hodnota` (jména, verze), `Oznaceni` (části);
> porovnává se bez ohledu na velikost písmen.
>
> **Skrytí se neruší smazáním.** Uživatelská vrstva nedrží historii operací, jen výsledný rozdíl.
> Přejmenování dodávané položky = její klíč do `Skryte` + nový záznam do `Vlastni`; smazáním toho
> nového záznamu ubude jen druhá půlka a původní dodávaná položka zůstane skrytá. Není jak rozlišit
> „přejmenoval jsem a pak smazal" od „smazal jsem dodávanou položku" obojí končí stejným stavem.
> Zpět ji vrátí **zapsání téže hodnoty znovu**: klíč se objeví ve stavu, vypadne ze `Skryte`,
> a shoduje-li se obsah s dodávaným, nezapíše se ani do `Vlastni` záznam je tím opět plně pod
> správou programu. U víc­polových číselníků (organizace, firmy) to znamená trefit **všechna** pole,
> jinak zůstane jako vlastní záznam a nová verze programu mu už data neaktualizuje.
### 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`](../Rozpisky/Podklady/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é.
- **Kde loga leží** ve dvou složkách `loga\`, stejná hierarchie jako u číselníků
([3.4](#34-číselníky)): dodávaná vedle `.exe` a uživatelská v `%APPDATA%\Rozpisky\loga`, kterou
přeinstalace nepřepisuje. Hledá se nejdřív mezi uživatelskými, takže logo stejného jména přebíjí
dodávané. Nabídka v Údajích projektu je sjednocením obou; složku otevře tlačítko
v Nastavení. Bez toho by uživatel, který si do číselníku přidá firmu s vlastním logem, musel
soubor kopírovat do instalační složky a o to logo při aktualizaci přijít.
---
## 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** formát a umístění.~~ **Vyřešeno:** dvě vrstvy JSON dodávaná vedle `.exe`,
uživatelská (rozdíl) v `%APPDATA%\Rozpisky` ([3.4](#34-číselníky)).
- **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.