TXLSXDataValidations spravuje vstupní omezení Excelu pro TXLSXWorksheet.DataValidations a každé pravidlo je TXLSXDataValidation
Deklarace
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1: WideString): Integer;
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1, AFormula2: WideString): Integer;
function AddList(const ARange, AItems: WideString): Integer;
procedure TXLSXDataValidation.SetPrompt(const ATitle, AText: WideString);
procedure TXLSXDataValidation.SetError(const ATitle, AText: WideString; AStyle: TXLSXDvErrorStyle = xlsxDvErrStop);
Členové pravidla
| Range and ValidationType | Cílové buňky a typ ověření: celé číslo, desetinné číslo, seznam, datum, čas, délka textu nebo vlastní |
| Op, Formula1 and Formula2 | Porovnávací operátor a jedno či dvě kritériové vyjádření |
| AllowBlank | Povolí prázdnou hodnotu, zatímco pravidlo ověřování zůstává zachováno |
| PromptTitle and Prompt | Vstupní zpráva zobrazená při výběru cílové buňky |
| ErrorTitle, ErrorMessage and ErrorStyle | Výstraha při neplatném vstupu a její ikona stop, warning či information |
| ShowDropDown | Řídí, zda seznamové ověření zobrazí svou šipku výběru |
| ImeMode | Režim IME vstupu OOXML pro podporované CJK klienty |
Cílové oblasti pravidel
Od 2.384.76 přijímají cíle v rámci listu jednotlivé buňky, obdélníky buněk, celé sloupce jako $B:$D a celé řádky jako $5:$8; obrácené koncové body se normalizují a více oblastí oddělují mezery, tabulátory nebo konce řádků
Absolutní a smíšené reference si zachovávají původní text Range; párování používá řádky 1 až 1048576 a sloupce A až XFD, přeskakuje poškozené oblasti nebo oblasti mimo mřížku a platné sousední oblasti téhož pravidla zůstávají aktivní, aniž by setter vyhodil novou výjimku
Reference kvalifikované listem a externí reference nejsou cílové oblasti; každé pravidlo patří ke svému listu a znaky dolaru musí stát na obvyklých pozicích odkazu A1
Vyhledávání pravidel, mazání buněk a oblastí, ověření jedné buňky i audity ověření uložených buněk používají stejnou geometrii cíle; parsování cíle nemění podporu vzorců zdroje seznamu
Od 2.384.77 transformují úpravy řádků a sloupců také cíle pravidel přes celé řádky a sloupce v rámci mřížky listu; rozsah pokrývající každý řádek nebo sloupec zůstává při úpravě této osy kompletní, zatímco úpravy druhé osy cíl posunou, zmenší nebo odstraní
Klonování oblastí zachovává smlouvu úplného pokrytí: každá cílová oblast musí být před zkopírováním pravidla celá uvnitř zdrojového obdélníku a samotný částečný průnik pravidlo nekopíruje; takové cíle lze klonovat ze zdroje celého řádku nebo celého sloupce, pokud cíl zůstane v mřížce
Cíle ověření přes celé řádky a sloupce zůstávají během úprav jedním pravidlem, přičemž vzorec se přizpůsobí podle první přeživší kotvy; to nerozšiřuje stávající podporu interoperability ODS pro vlastní boolean a skalární vzorce
Příklad
var Index: Integer;
begin
Index := Sheet.DataValidations.AddList('D2:D100', 'New,Active,Closed');
Sheet.DataValidations[Index].SetPrompt('Status', 'Select a permitted status');
Sheet.DataValidations[Index].SetError('Invalid status', 'Choose a value from the list');
end;Rozsah v ODS
Export ODS odvodí platnou základní adresu první buňky z první podporované cílové oblasti, včetně celých řádků a sloupců; poškozené úvodní oblasti se základními adresami nestávají
Export vlastního boolean ověření zůstává nepodporovaný a skalární prahové vzorce si zachovávají stávající omezení syntaxe vzorců; oprava cílových oblastí nevytváří externí interoperabilitu pro relativní ověřovací vzorce
Viz také