|
|
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Вопрос ньюба (или новичка, как хотите) :) Имеется ли в VFP такая возможность, как задание автоматического вычисления значения поля из, скажем, двух других? То бишь, к примеру: поле "Сумма" вычислялось автоматическим произведением полей "Кол-во" и "Цена". Я имею ввиду - задание такого условия в свойствах самой таблицы, а не ручное присвоение значения полю. And Justice For All! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 09:54:26 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Смотри в хелпе DEFAUL поля Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 10:23:24 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
При создании таблицы я указываю в DEFAULT VALUE поля произведение двух других полей. Но ведь от этого в него не вносится данное произведение... And Justice For All! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 10:48:58 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
вы попробуйте выполнить приведенный фрагмент кода и посмотрите на значение в третьем поле. Либо приведите свой код где это не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:05:22 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Мы наверное не поняли друг друга... Я имел ввиду именно автоматическое вычисление значения поля внутри таблицы, без всякого употребления кода. И меня интересует, есть ли в VFP такая возможность? And Justice For All! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:11:38 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
2 Alexander Warlord А вы читали ответы на www.foxclub.ru? 2 PaulWist А как на счет Код: plaintext ? sId останется нетронутым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:17:16 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
То есть, покопаться на тамошнем форуме? Попробую поискать. And Justice For All! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:25:32 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
2 Alexander Warlord Я подумал, что он это ты :) Смотри http://forum.foxclub.ru/read.php?f=29&i=9669&t=9669 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:36:54 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
:) ну у нас даже ники разные. К тому же, Warlord - мой всегдашний ник на всех форумах. Правда, иногда с некоторыми изменениями, как здесь )) А за ссылку спасибо. And Justice For All! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:45:39 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков 2 PaulWist А как на счет Код: plaintext ? sId останется нетронутым. Ну что можно сказать, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:48:09 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
2 PaulWist DEFAULT тогда ни к чему - в любом случае валидация будет происходить при любом изменении любого поля и в том числе при добавлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:51:40 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
2 Alexander Warlord автор:) ну у нас даже ники разные. К тому же, Warlord - мой всегдашний ник на всех форумах. Правда, иногда с некоторыми изменениями, как здесь )) Я на ники вообще не смотрю - увидел, что вопросы одинаковые, вот и подумал, что ты это он :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:56:06 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Позвольте ещё один вопрос "чайника" )) дабы не открывать новую тему из-за пустяка: что есть следующая конструкция: буква m. ... ? К примеру: CREATE TABLE ( m.lcName ) Просто очень часто видел, что такое используют практически все. Самому же никогда использовать не приходилось. Может, есть где почитать, что, как и для чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 11:57:35 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
m. - указание фоксу, что следующий за ним идентификатор следует трактовать как переменную, а не как поле текущей рабочей области: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:00:58 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков2 PaulWist DEFAULT тогда ни к чему - в любом случае валидация будет происходить при любом изменении любого поля и в том числе при добавлении. Во первых, CHECK приписал к исходному коду, во вторых - одно другому не мешает, а наоборот дополняет на случай ALTER TABLE (DROP DEFAULT&DROP CHECK ) и отключения либо одного либо другого. Хотя, вопрос риторический. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:01:36 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Анатолий Широковm. - указание фоксу, что следующий за ним идентификатор следует трактовать как переменную, а не как поле текущей рабочей области Так это используется только для таблиц? Или есть вообще какой-то принцип использования данной конструкции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:12:23 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Используется тогда, когда велика вероятность натолкнутся на конфликт с именем поля и библиотечном коде, когда нельзя сделать никаких предпосылок о возможном конфликте. Посему, рекомендую использовать m. всегда с переменными памяти - там где это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:19:46 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Не посчитайте назойливым )) но есть ли где-нибудь почитать об этом? В родном хелпе такого вроде нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:21:29 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
см. в указателе Controlling Access to Variables, в частности: Accessing Variables If a variable has the same name as a field, Visual FoxPro always gives precedence to the field name. You can reference the variable using m. or m-> plus the variable name, as in the following examples. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:44:05 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Alexander WarlordНе посчитайте назойливым )) но есть ли где-нибудь почитать об этом? В родном хелпе такого вроде нет. Что означает префикс (буква) "m." перед именем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:45:20 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Всем огромное спасибо! и удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:46:49 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
PaulWistСмотри в хелпе DEFAUL поля Код: plaintext 1. 2. Крайне некорректное решение! Значения DEFAULT вычисляются в порядке физического следования полей таблицы. В данном случае, slID физически следует за полями ID и ID1. Т.е. к моменту вычисления DEFAULT поля slID поля, необходимые для расчета будут уже заполнены. Но на каком основании делаются подобные допущения? Я бы не рискнул делать подобные предположения. Крайне неразумно в выражении DEFAULT опираться на какие-либо значения других полей. Нет никакой гарантии, что они будут заполнены на момент вычисления DEFAULT. Кроме того, уже указали, что DEFAULT вычисляется один раз при создании новой записи, если значения не были указаны явно! А надо вычислять в любой момент при модификации. Т.е. надо это прописать в RULE уровня записи. Друг-другу не мешают? После вычисления DEFAULT обязательно будет выполнено RULE. Т.е., как минимум, один и тот же расчет выполняется дважды. Как максимум, DEFAULT может противоречить RULE (не в данном случае, но тем не менее...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 12:54:18 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Вернусь к словам автора авторИмеется ли в VFP такая возможность, как задание автоматического вычисления значения поля из, скажем, двух других? То бишь, к примеру: поле "Сумма" вычислялось автоматическим произведением полей "Кол-во" и "Цена". Я имею ввиду - задание такого условия в свойствах самой таблицы, а не ручное присвоение значения полю. при первом прочтении, сам собой напрашивался ответ про DEFAULT (во всяком случае у меня), и только потом было пояснено, что же надо. Под твоими словами в последнем посте тоже подписываюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2005, 13:23:22 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Hi ВладимирМ! > Т.е. надо это прописать в RULE уровня записи. Угу, хотя в ОБЩЕМ случае хранить в таблице поле которое ВСЕГДА есть результат вычисления некоторой функции - это есть неправильно. Вот если это НЕ результат функции, а просто "авто-корректировка для помещения значения в нужный диапазон" тогда совсем другое дело. Ну т.е. если надо проверить что поле3 "между" поле1 и поле2, и если оно ВНЕ диапазона, то сменить на ближайшее допустимое значение (т.е. на верхнюю или нижнюю границу)... В принципе можно и на Rule уровня поля повесить (на ОБА поля конечно), но тогда надо предотвратить рекурсивное срабатывание правил - скажем через анализ наличия, и создание Private переменной... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 01:24:03 |
|
||
|
Автовычисление значения поля
|
|||
|---|---|---|---|
|
#18+
Сорри, что поднимаю этот вопрос снова... Пробовал и так, и эдак. Может кто-нибудь сможет и не поленится объяснить всё по шагам. Повторюсь, требуется всего-то автоматически задать в таблице занесение значения от суммирования (или произведения) двух полей в третье при: 1. занесении новых записей; 2. при редактировании старых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 13:04:36 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33115245&tid=1593925]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 452ms |

| 0 / 0 |
