Zobrazit plnou verzi příspěvku: SKLÁDÁNÍ NÁZVU Z PRÁDNÝCH VLASTNOSTÍ

Lukáš Záruba
14.12.2018, 19:16
Zdravím,Mám ilogic, který mi skládá popis nebo název dílů z uživatelských i-vlastností a třeba jednoho či několika parametrů. iProperties.Value("Summary", "Title")= iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "PREDNAZEV2")&" "&iProperties.Value("Custom", "TYP")&" "&iProperties.Value("Custom", "MAT")&" - "&iProperties.Value("Custom", "ROZMER_KRYTU")Problém nastává když mám pravidlo složené s několika i-vlastností jedna nebo několik jich je prázdných. V názvu to potom napíše mezeru. Potřebuji do vzorce vložit nějaký zástupný symbol, který řekne inventoru prázdné i-vlastnosti neřeš!Jde to nějak? 

Vladimír Michl
14.12.2018, 19:32
Je potřeba jednotlivě ošetřit možné chyby přístupu k neexistujícím vlastnostem - např. pomocí Try/Catch:[CODE]Try Nazev = iProperties.Value("Custom", "PREDNAZEV") Catch End TryTry Rozmer = iProperties.Value("Custom", "ROZMER_KRYTU") Catch End TryMsgBox(iProperties.Value("Summary", "Title") & "-" & Nazev & "-" & Rozmer)[/CODE]

Lukáš Záruba
14.12.2018, 20:51
Ale Já potřebuji aby mi toto pravidlo vyplnilo I-vlastnost "NÁZEV" a to tak aby mi ho složil z následujících i-vlastností nebo parmetrů. Až sem pravidlo funguje skvěle! Už v základní šabloně mám připravené uživatelské i-vlattnosti "PREDNAZEV"; "PREDNAZEV2"; "TYP" a parametr DÉLKA.iProperties.Value("Summary", "Title")= iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "PREDNAZEV2")&" "&iProperties.Value("Custom", "TYP")&""&iProperties.Value("Custom", "MAT")&" - "&iProperties.Value("Custom", "DÉLKA")problém nastane když použiju toto pravidlo a hodnota třeba u "PREDNAZEV2" je prázná viz výstřižek. potom mi to složí název a místo vynechání vloží mezeru:"PREDNAZEV" "Zde místo vynechání hodí mezeru" "TYP" - "DÉLKA"Potřebuji to upravit tak aby se při skládání názvu inventor podíval zda není zadaná i-vlatnost či parametr prázný a v tom případě ho vynechal.

Vladimír Michl
14.12.2018, 22:25
Ano, rozumím, ale ten princip právě platí i pro tento případ. Jednak je třeba ošetřit případ, kdy ty vlastnosti vůbec neexistují a jednak pak můžete ošetřit i jejich prázdnou hodnotu ("vynechat" znamená přiřadit hodnotu "").Např. tedy:[CODE]Rozmer=""Try Rozmer = iProperties.Value("Custom", "ROZMER_KRYTU") & " " Catch End TryiProperties.Value("Summary", "Title")= Rozmer & ….[/CODE]

Lukáš Záruba
15.12.2018, 09:16
ZDRAVÍM, Mnohokrát děkuji již mi to funguje:Try
Nazev1 = iProperties.Value("Custom", "N1")
Catch
End Try
Try
NMezera1 = iProperties.Value("Custom", "N1-M")
Catch
End Try
Try
Nazev2 = iProperties.Value("Custom", "N2")
Catch
End Try
Try
NMezera2 = iProperties.Value("Custom", "N2-M")
Catch
End Try
Try
Nazev3 = iProperties.Value("Custom", "N3")
Catch
End Try
Try
NMezera3 = iProperties.Value("Custom", "N3-M")
Catch
End Try
Try
Rozmer1 = iProperties.Value("Custom", "R1")
Catch
End Try
Try
RMezera1 = iProperties.Value("Custom", "R1-M")
Catch
End Try
Try
Rozmer2 = iProperties.Value("Custom", "R2")
Catch
End Try
Try
RMezera2 = iProperties.Value("Custom", "R2-M")
Catch
End Try
iProperties.Value("Summary", "Title") = (Nazev1 &""& NMezera1 &""& Nazev2 &""& NMezera2 &""& Nazev3 &""& NMezera3 &""& Rozmer1 &""& RMezera1 &""& Rozmer2 &""& RMezera2)Nyní ní mohu mít jeden univerzální vzorec který mi vyplní správně název bez ohledu na to z kolika slov nebo rozměrů se skládá. Do teď jsem měl spousty vzorců uloženy jako fragment a používal jsem je dle potřeby. 
Lukáš Záruba2018-12-15 09:19:24