Ana içeriğe geç

Tablo İçeriği

TableContent widget'ı, kullanıcıların tablo yapısındaki satırları ve sütunları yönetmesine olanak tanıyan, veri girişi için tablo biçiminde bir arayüz sağlar.

Bu widget, karmaşık kurallar ve gelişmiş kullanılabilirlik gerektiren veri girişi görevleri için en uygunudur. Büyük veri kümelerini görüntülemek için daha verimli olan DataTable widget'ı önerilir.

XML Alanları

Koleksiyon ve Satır Seçimi

  • XPath koleksiyon bağlamını belirtir. ItemXPath satır olarak gösterilen öğeleri seçer; her doğrudan alt öğe bir satır olduğunda * kullanın.
  • RowIdXPath kararlı bir satır kimliği sağlar. FilterXPath görüntülenen satırları sınırlar, SortXPath satırları sıralar ve ItemsRootXPath alternatif bir koleksiyon kökü seçer.

Komutlar ve Yenileme

  • AllowNewXPath, AllowDeleteXPath, AllowDeleteAllXPath, AllowMovingXPath, ve AllowMoveUpDownXPath ekleme, silme, temizleme, taşıma ve move-up/down eylemlerini denetler. İfadeleri geçerli kullanıcı ve veri durumunu yansıtmalıdır.
  • AddNewLabel satır ekleme açıklamasını sağlar. ShowBlankSlate ve BlankSlate boş koleksiyon için gösterilecek içeriği tanımlar. Diğer form değerleri filtrelemeyi, sıralamayı veya komutların kullanılabilirliğini etkiliyorsa MonitoredXPaths kullanın.

Sütunlar ve Satır Düzenleyicisi

  • Her Column şunu kullanır: Width, MinWidth, ve MaxWidth genişliğini sınırlandırmak ve Align içeriğini hizalamak için. Label üstbilgidir, Controls tablo içi denetimlerdir, Footer altbilgi içeriğidir ve sütun Rules söz konusu sütuna koşullu davranış uygular.
  • Editor genişletilmiş satır düzenleme formudur. RowRules satır düzeyinde biçimlendirme veya doğrulama uygular, RowScript bir satır için çalışır ve DataExchange şu alanları import/export tanımlar.

Temel Özellikler

  • Yaygın tablo işlemlerini destekler: satır ekleme, silme ve taşıma.
  • Expandable/collapsible her satır için ek giriş alanları sağlayan düzenleyiciler.
  • Tablo import/export işlevselliği.

Veri Modeli

TableContent widget'ı, tablo satırlarını depolamak için sıra türünde bir veri modeli kullanır. Tablodaki her satır, satırın verilerini içeren yeni bir veri modeli öğesiyle temsil edilir.

Tablo Sütunları

Tablolar istediği sayıda sütun içerebilir ve her sütunda bir veya daha fazla widget bulunabilir. Sütun genişlikleri yüzde olarak belirtilebilir; minimum ve maksimum genişlik sınırları da yüzde olarak ayarlanabilir.

Sütun başlıkları ve altbilgileri veri şablonlarınıdestekleyerek hesaplanan değerlerin görüntülenmesini sağlar. Sütunlara ayrıca doğrulama ve biçimlendirme kuralları uygulanabilir.

Benzersiz Satır Kimlikleri

Her satıra otomatik olarak benzersiz kimlikler atamak için XPath ifadesini kullanarak RowIdXPath özelliğini belirtin. Benzersiz bir tanımlayıcı oluşturmak için bu ifade her satırda değerlendirilir.

Satır Filtreleme

Varsayılan olarak veri modelindeki tüm satırlar görüntülenir. Belirli ölçütlere göre satırları filtrelemek için boole değerine dönüşen bir XPath ifadesini FilterXPath özelliğinde belirtin. Yalnızca bu ifade sonucunun true olduğu satırlar görüntülenir.

Tablo İşlemi Kuralları

TableContent widget'ı, XPath ifadeleri kullanarak tablo işlemlerini denetlemenizi sağlar. Bir işlemi devre dışı bırakmak için ilgili XPath ifadesini false() veya 0.

  • AllowMovingXPath: Satırların taşınıp taşınamayacağını denetler. XPath ifadesinin bağlamı, tablonun bağlı olduğu XPath'tir.
  • AllowNewXPath: Yeni satır eklenip eklenemeyeceğini denetler. Bağlam, tablonun bağlı olduğu XPath'tir.
  • AllowDeleteXPath: Tek tek satırların silinip silinemeyeceğini denetler. Bağlam, incelenen satırın XPath'idir.
  • AllowDeleteAllXPath: Tüm satırların bir kerede silinip silinemeyeceğini denetler. Bağlam, tablonun bağlı olduğu XPath'tir.

Satıra Özel Kurallar

Sütun düzeyindeki kurallara ek olarak, satıra özel kurallar RowRules özelliği kullanılarak tanımlanabilir. Bu kurallar tablodaki her satır için değerlendirilir.

Satır Düzenleyicisi

TableContent widget'ındaki her satırın, genişletilip daraltılabilen ilişkili bir düzenleyici bölmesi vardır. Bu bölmeye, alan kısıtlamaları nedeniyle ana tablo sütunlarına sığmayan ek widget'lar eklenebilir.

Satır Betiği

TableContent widget'ında ayrıca satırları varsayılan değerlerle başlatmaya veya diğer satır değerlerine göre hesaplamalar yapmaya yönelik satır betiği özelliği bulunur. Betik, tabloya yeni bir satır eklendiğinde çalıştırılır.

Oluşturulan yeni satır, betiğe $NewChild değişkeni aracılığıyla aktarılır.

Örnek

Aşağıdaki satır betiği, tabloya eklenen her yeni satıra bir satır numarası atar:

1
$NewChild.SetValue('RowNumber', $Xml.Count('Rows/Row') + 1);

Tablo İçeriği Örneği

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
<TableContent XPath="List">
    <Rules/>
    <ItemXPath><![CDATA[*]]></ItemXPath>
    <RowIdXPath><![CDATA[]]></RowIdXPath>
    <FilterXPath><![CDATA[]]></FilterXPath>
    <SortXPath><![CDATA[]]></SortXPath>
    <ItemsRootXPath><![CDATA[]]></ItemsRootXPath>
    <AllowMovingXPath><![CDATA[]]></AllowMovingXPath>
    <AllowMoveUpDownXPath><![CDATA[]]></AllowMoveUpDownXPath>
    <AllowNewXPath><![CDATA[]]></AllowNewXPath>
    <AllowDeleteXPath><![CDATA[]]></AllowDeleteXPath>
    <AllowDeleteAllXPath><![CDATA[]]></AllowDeleteAllXPath>
    <AddNewLabel>
        <Content><![CDATA[Add New Row]]></Content>
    </AddNewLabel>
    <MonitoredXPaths />
    <BlankSlate />
    <RowScript>
        <Content><![CDATA[]]></Content>
    </RowScript>
    <DataExchange AllowImport="True" AllowExport="True">
        <Columns>
            <Column Caption="col1" Type="Text">
                <XPath><![CDATA[Field]]></XPath>
            </Column>
        </Columns>
    </DataExchange>
    <RowRules>
        <FormattingRule BackgroundColor="" Color="#00F">
            <Condition>
                <Content><![CDATA[return $Xml.Evaluate('Field') == '1';]]></Content>
            </Condition>
        </FormattingRule>
        <ValidationRule>
            <Condition>
                <Content><![CDATA[return $Xml.Evaluate('Field') == 'error';]]></Content>
            </Condition>
            <Label>
                <Content><![CDATA[An Error Message]]></Content>
            </Label>
        </ValidationRule>
    </RowRules>
    <Columns>
        <Column Width="0" MaxWidth="0" MinWidth="0" Align="Left">
            <Rules/>
            <Label>
                <Content><![CDATA[Column 1]]></Content>
            </Label>
            <Controls>
                <TextBox XPath="Field" MaxLength="255" InputMask="" Type="Text" Size="Medium" RequiredForGroup="">
                    <PlaceHolder><![CDATA[]]></PlaceHolder>
                    <Hints><![CDATA[]]></Hints>
                    <Rules />
                </TextBox>
            </Controls>
            <Footer>
                <Content><![CDATA[Column 1 Footer]]></Content>
            </Footer>
        </Column>
        <Column Width="0" MaxWidth="0" MinWidth="0" Align="Left">
            <Rules>
                <FormattingRule Hidden="True" Disabled="Inherit">
                    <Condition>
                        <Content><![CDATA[return true;]]></Content>
                    </Condition>
                </FormattingRule>
            </Rules>
            <Label>
                <Content><![CDATA[Column 2]]></Content>
            </Label>
            <Controls>
                <Label Style="">
                    <Content><![CDATA[Hidden Column]]></Content>
                </Label>
            </Controls>
            <Footer>
                <Content><![CDATA[Column 2 Footer]]></Content>
            </Footer>
        </Column>
    </Columns>
    <Editor>
        <RowContent>
            <Rules/>
            <Label>
                <Content><![CDATA[Field]]></Content>
            </Label>
            <Columns>
                <Column>
                    <Controls>
                        <TextBox XPath="Field" MaxLength="255" InputMask="" Type="Text" Size="Medium" RequiredForGroup="">
                            <PlaceHolder><![CDATA[]]></PlaceHolder>
                            <Hints><![CDATA[]]></Hints>
                            <Rules />
                        </TextBox>
                    </Controls>
                </Column>
            </Columns>
        </RowContent>
    </Editor>
</TableContent>