Я, похоже, обнаружил неплохое решение ранжирования данных - вам необходимо
только установить различные начальный и конечный диапазоны последнего поля,
определенного вашим индексом, после чего введенное в любое поле индекса значение
будет проигнорировано. Также вы не сможете покинуть ранжируемое поле, если
редактируемая запись пуста.
Попытаюсь изложить все попроще... Скажем, у меня есть индекс Field1; Field2;
Field3, затем;
SetRangeStart; Table1Field1.Value := x1; Table1Field2.Value := y1; Table1Field3.Value := z1; SetRangeEnd; Table1Field1.Value := x2; Table1Field2.Value := y2; Table1Field3.Value := z2; ApplyRange;
|
Правила...
x1 должен равняться x2, если y или z определен
y1 должен равняться y2, если z определен
x должен быть определен, если y или z определены
y должен быть определен, если x определен
если x1 = x2 и никаких других критериев не определено, тогда y1 и
y2 должны быть соответственно min/max значениями y
если x1 = x2 и y1 = y2 и никаких других критериев не определено,
тогда z1 и z2 должны быть соответственно min/max значениями z
Я не знаю, поняли вы это или нет, но надеюсь это поможет...
|