Optymalizacja soneta-form-xml skill
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"expectations": [
|
||||
{
|
||||
"text": "Użyto składni Visibility=\"{?Pole=Wartość}\" dla warunku równości",
|
||||
"passed": true,
|
||||
"evidence": "Linia 30: Visibility=\"{?TypKlienta=Korporacyjny}\" — poprawna składnia RowCondition"
|
||||
},
|
||||
{
|
||||
"text": "Użyto składni OR dla wielu wartości: {?Status=Premium or Status=VIP}",
|
||||
"passed": true,
|
||||
"evidence": "Linia 48: Visibility=\"{?Status=Premium or Status=VIP}\" — poprawny operator or"
|
||||
},
|
||||
{
|
||||
"text": "Użyto negacji: {?!Status=Aktywny}",
|
||||
"passed": true,
|
||||
"evidence": "Linia 65: Visibility=\"{?!Status=Aktywny}\" — poprawna negacja z !"
|
||||
},
|
||||
{
|
||||
"text": "Klasa Collapsable jest zastosowana do grupy",
|
||||
"passed": true,
|
||||
"evidence": "Linia 109: <Group CaptionHtml=\"Dane zaawansowane\" Class=\"Collapsable\" ...>"
|
||||
},
|
||||
{
|
||||
"text": "Atrybut Renderable jest użyty dla warunku licencji",
|
||||
"passed": true,
|
||||
"evidence": "Linia 110: Renderable=\"{Licence.HAN}\" — licencja HAN jako warunek renderowania"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"passed": 5,
|
||||
"failed": 0,
|
||||
"total": 5,
|
||||
"pass_rate": 1.0
|
||||
}
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Zakładka: Kredyt kontrahenta
|
||||
Plik: Kontrahent.Kredyt.pageform.xml
|
||||
|
||||
Demonstruje wzorce warunkowej widoczności przy użyciu:
|
||||
- RowCondition ({?...}) dla porównań wartości pól
|
||||
- Visibility z bindowaniem do właściwości bool
|
||||
- Renderable uzależniony od licencji (liczony raz przy logowaniu)
|
||||
- Class="Collapsable" dla zwijanych grup
|
||||
-->
|
||||
<DataForm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.enova.pl/schema/form.xsd"
|
||||
xsi:schemaLocation="http://www.enova.pl/schema/ http://www.enova.pl/schema/form.xsd"
|
||||
Priority="30">
|
||||
|
||||
<Page CaptionHtml="Kredyt" DataContext="{DataSource}">
|
||||
|
||||
<!-- =====================================================================
|
||||
WZORZEC 1: Pole widoczne tylko gdy TypKlienta = 'Korporacyjny'
|
||||
Używamy wyrażenia RowCondition: {?TypKlienta=Korporacyjny}
|
||||
Pole LimitKredytu jest zwijane (Collapsed) gdy warunek nie jest spełniony.
|
||||
====================================================================== -->
|
||||
<Group CaptionHtml="Limit kredytu">
|
||||
<Field CaptionHtml="Typ klienta" Width="20" EditValue="{TypKlienta}" />
|
||||
<Field CaptionHtml="Limit kredytu"
|
||||
Width="18"
|
||||
EditValue="{LimitKredytu}"
|
||||
Visibility="{?TypKlienta=Korporacyjny}" />
|
||||
<Field CaptionHtml="Waluta limitu"
|
||||
Width="10"
|
||||
EditValue="{WalutaLimitu}"
|
||||
Visibility="{?TypKlienta=Korporacyjny}" />
|
||||
</Group>
|
||||
|
||||
<!-- =====================================================================
|
||||
WZORZEC 2: Pole widoczne gdy Status = 'Premium' LUB Status = 'VIP'
|
||||
Używamy operatora 'or' w wyrażeniu RowCondition.
|
||||
Składnia: {?Pole=Wartość1 or Pole=Wartość2}
|
||||
====================================================================== -->
|
||||
<Group CaptionHtml="Warunki specjalne">
|
||||
<Field CaptionHtml="Status klienta" Width="20" EditValue="{Status}" />
|
||||
<Field CaptionHtml="Warunki specjalne"
|
||||
Width="*"
|
||||
Height="3"
|
||||
EditValue="{WarunkiSpecjalne}"
|
||||
Visibility="{?Status=Premium or Status=VIP}" />
|
||||
<Field CaptionHtml="Opiekun VIP"
|
||||
Width="30"
|
||||
EditValue="{OpiekunVIP}"
|
||||
Visibility="{?Status=Premium or Status=VIP}" />
|
||||
</Group>
|
||||
|
||||
<!-- =====================================================================
|
||||
WZORZEC 3: Pole widoczne gdy NIE Status = 'Aktywny'
|
||||
Używamy negacji w wyrażeniu RowCondition: {?!Status=Aktywny}
|
||||
Ostrzeżenie o branży pojawia się tylko dla nieaktywnych kontrahentów.
|
||||
====================================================================== -->
|
||||
<Group CaptionHtml="Ostrzeżenia">
|
||||
<Field CaptionHtml="Ostrzezenie branze"
|
||||
Width="*"
|
||||
EditValue="{OstrzezenieBranzy}"
|
||||
Class="WarningLabel"
|
||||
Visibility="{?!Status=Aktywny}" />
|
||||
<Field CaptionHtml="Powod nieaktywnosci"
|
||||
Width="*"
|
||||
EditValue="{PowodNieaktywnosci}"
|
||||
Visibility="{?!Status=Aktywny}" />
|
||||
</Group>
|
||||
|
||||
<!-- =====================================================================
|
||||
WZORZEC 4: Przycisk Command widoczny gdy ObrotyRoczne > 0
|
||||
Dla porównań numerycznych (> < >= <=) RowCondition nie obsługuje
|
||||
operatorów arytmetycznych bezpośrednio — zamiast tego:
|
||||
a) Używamy właściwości bool z logiki biznesowej: {MaObrotyRoczne}
|
||||
(właściwość C# zwracająca: ObrotyRoczne > 0)
|
||||
b) Alternatywnie: worker z właściwością bool: {Workers.KredytWorker.MaObroty}
|
||||
====================================================================== -->
|
||||
<Group CaptionHtml="Analiza obrotow">
|
||||
<Row>
|
||||
<Field CaptionHtml="Obroty roczne" Width="18" EditValue="{ObrotyRoczne}" />
|
||||
<Field CaptionHtml="Obroty miesieczne" Width="18" EditValue="{ObrotyMiesieczne}" />
|
||||
<Gap Width="*" />
|
||||
<!-- Przycisk widoczny gdy ObrotyRoczne > 0 (via właściwość bool MaObrotyRoczne) -->
|
||||
<Command CaptionHtml="Analiza kredytowa"
|
||||
Width="18"
|
||||
MethodName="WykonajAnalize"
|
||||
CommandStyle="Important"
|
||||
Visibility="{MaObrotyRoczne}" />
|
||||
<!-- Alternatywny wzorzec: worker z właściwością bool -->
|
||||
<Command CaptionHtml="Raport obrotow"
|
||||
Width="16"
|
||||
MethodName="GenerujRaport"
|
||||
DataContext="{new KredytExtender}"
|
||||
Visibility="{Workers.KredytWorker.MaObroty}" />
|
||||
</Row>
|
||||
</Group>
|
||||
|
||||
<!-- =====================================================================
|
||||
WZORZEC 5: Grupa zwijalna (Collapsable) z Renderable uzależnionym
|
||||
od licencji.
|
||||
- Class="Collapsable" — użytkownik może zwijać/rozwijać grupę
|
||||
- Renderable="{Licence.HAN}" — renderowana tylko gdy licencja HAN
|
||||
aktywna (wartość liczona RAZ przy logowaniu operatora, optymalne
|
||||
dla warunków środowiskowych i licencyjnych)
|
||||
====================================================================== -->
|
||||
<Group CaptionHtml="Dane zaawansowane"
|
||||
Class="Collapsable"
|
||||
Renderable="{Licence.HAN}">
|
||||
<Row>
|
||||
<Stack LabelWidth="20">
|
||||
<Field CaptionHtml="Scoring kredytowy" Width="10" EditValue="{ScoringKredytowy}" />
|
||||
<Field CaptionHtml="Kategoria ryzyka" Width="20" EditValue="{KategoriaRyzyka}" />
|
||||
<Field CaptionHtml="Data ostatniej oceny" Width="15" EditValue="{DataOstOceny}" />
|
||||
</Stack>
|
||||
<Stack LabelWidth="20">
|
||||
<Field CaptionHtml="Maksymalna ekspozycja" Width="18" EditValue="{MaksEkspozycja}" />
|
||||
<Field CaptionHtml="Ubezpieczenie kredytu" Width="8" EditValue="{UbezpieczenieKredytu}" />
|
||||
<Field CaptionHtml="Firma ubezpieczeniowa" Width="25" EditValue="{FirmaUbezpieczeniowa}"
|
||||
Visibility="{UbezpieczenieKredytu}" />
|
||||
</Stack>
|
||||
</Row>
|
||||
<Field CaptionHtml="Uwagi analityka" Width="*" Height="3" EditValue="{UwagiAnalityka}" />
|
||||
</Group>
|
||||
|
||||
</Page>
|
||||
</DataForm>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"files_created": ["Kontrahent.Kredyt.pageform.xml"],
|
||||
"errors_encountered": 0
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"total_tokens": 37262,
|
||||
"duration_ms": 72689,
|
||||
"total_duration_seconds": 72.7
|
||||
}
|
||||
Reference in New Issue
Block a user