Rad s potvrđivanjem podataka
Rad s potvrđivanjem podataka
Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation i u članku 1. ValidationCollection Učenici. WorkbookValidator U ovom slučaju, u skladu s člankom 4. stavkom 1. točkom (a) ovog članka.
Dodavanje pravila potvrde
Pristupite zbirci potvrđivanja za radni list i dodajte novo pravilo koristeći: ValidationCollection::Add(). Postavite tip, formulu i ciljno područje na vraćenom Validation predmet:
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/ValidationCollection.h"
#include "aspose/cells_foss/Validation.h"
#include "aspose/cells_foss/CellArea.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
ValidationCollection& validations = sheet.GetValidations();
int idx = validations.Add();
Validation& v = validations[idx];
v.SetType(ValidationType::WholeNumber);
v.SetFormula1("1");
v.SetFormula2("100");
v.SetIgnoreBlank(true);
v.SetInCellDropDown(false);
v.SetInputTitle("Enter Value");
v.SetInputMessage("Value must be between 1 and 100.");
v.SetErrorTitle("Invalid Input");
v.SetErrorMessage("Value is out of range.");
v.SetShowInput(true);
v.SetShowError(true);
CellArea area = CellArea::CreateCellArea("B2", "B10");
v.AddArea(area);
workbook.Save("validated.xlsx");
return 0;
}Vrste potvrđivanja:
U skladu s člankom 1. ValidationType U ovom članku se navode sljedeće uvjete:
| ValidationType | Opisivanje |
|---|---|
WholeNumber | Ograničenje za cijele vrijednosti |
Decimal | U slučaju da se u skladu s člankom 7. stavkom 1. točkom (a) ne primjenjuje. |
List | Iznos od 0,003 do 0,010 u skladu s člankom 72. stavkom 1. točkom (a) Uredbe (EU) br. 575/2013. |
Date | Ograničenje vrijednosti datuma |
TextLength | Ograničenje dužine niza (string length constraint) |
Custom | Provedba o carinskom pravilu na temelju formule |
Slika upozorenja
U skladu s člankom 1. ValidationAlertType U slučaju da se potvrda ne ispuni, mora biti upotreba:
| AlertStyle | Ponašanje |
|---|---|
Stop | Blokira ulazak i prikazuje dijalog o pogrešci |
Warning | Pokazuje upozorenje; korisnik može prihvatiti ili odbiti |
Information | Pokazuje informacijski alatni savjet |
Postavi stil upozorenja s: Validation::SetAlertStyle(ValidationAlertType).
Upitavanje potvrde u stanici
Upotreba: ValidationCollection::GetValidationInCell(row, col) Da bi se utvrdilo koje pravilo validacije primjenjuje na određenu ćeliju. nullptr ako se ne primjenjuje nikakvo pravilo.
Uklanjanje pravila potvrđivanja
U ovom slučaju, u skladu s člankom 4. stavkom 1. točkom (a) točke (d) podtočke 2. i 3. ovog članka:
CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)
Validacija radne sveske prije čuvanja
Zovi me. WorkbookValidator::ValidateForSave To se automatski zove pomoću: Workbook::Save ali se može samostalno pozvati tijekom razvoja:
WorkbookValidator validator;
validator.ValidateForSave(workbook);Savjeti i najbolje prakse
- Uvijek postaviti oboje.
SetFormula1i u članku 1.SetFormula2za potvrđivanje tipa opsega (WholeNumber,Decimal,Date) za utvrđivanje donje i gornje granice. - Upotreba:
SetIgnoreBlank(true)U slučaju da je to moguće, mora se provesti ispitivanje. - Zovi me.
ValidationCollection::AreasOverlapU slučaju da se u skladu s člankom 7. stavku 1. točka (a) ne primjenjuje, podnositelj zahtjeva može zatražiti od nadležnog tijela da odobri postupak za utvrđivanje i provjeru. WorkbookValidator::ValidateForSavese poziva unutar savea; pozovite ga tijekom razvoja kako biste problem ranije otkrili.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
| Ne primjenjuje se na ćeliju. | Neizvršena površina | Zovi me. Validation::AddArea(area) s ciljnim opsegom |
| Ne prikazuje se popunjeni popis | SetInCellDropDown(false) | Sastavljeno SetInCellDropDown(true) za potvrđivanje liste |
| Pravilnice se preklapaju | U ovom slučaju, u skladu s člankom 78. stavkom 1. točka (b) Uredbe (EU) br. 575/2013. | Upotreba: AreasOverlap za otkrivanje i rješavanje sukoba; |
| Neuspjeh potvrđivanja za pohranu | Neispunjenost modela | Provedba i ispravljanje prijavljene neskladnosti prije pohranjivanja. |
Svrha referentnog API-a
| Sredstva za ispitivanje i provedbu | Opisivanje |
|---|---|
ValidationCollection::Add() | Dodaj novo prazno pravilo za potvrdu. |
ValidationCollection::GetValidationInCell(row, col) | Pronađite potvrdu za ćeliju |
ValidationCollection::RemoveArea(area) | Uklanjanje potvrde iz opsega |
ValidationCollection::RemoveACell(row, col) | Uklanjanje potvrde iz ćelije |
ValidationCollection::AreasOverlap | Prikaz za preklapanje područja validacije |
Validation::SetType(ValidationType) | Postavljanje tipa potvrde: |
Validation::SetFormula1(expr) | Postaviti donju granicu ili izvor liste |
Validation::SetFormula2(expr) | Prikaz: |
Validation::AddArea(area) | Primjenite pravilo na opseg |
Validation::RemoveArea(area) | Uklanjanje pravila iz opsega |
Validation::SetAlertStyle(style) | Svrha za određivanje: |
WorkbookValidator::ValidateForSave | Kontrolisanje usklađenosti prije pohranjivanja |