|
|
|
представления и default
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вопрос новичка. Кажется, у меня большая проблема. Есть таблица заказов zakaz(id_zak, ...) работ по заказу job_zak (id_jzak, id_zak, ...). Также есть соответствующие им представления v_zakaz и v_jobzak. Устанавливаю им 5-ю буферизацию. В гриде выводится представление с заказами. Пользователь нажимает кнопочку "Добавить" или "Редактировать". Открывается окно редактирования заказа. Во вкладке этого окна - грид с представлением работ по заказу. У ключевых полей таблиц есть default ( id_zakaz.id и id_jobzak.id). И у таблиц есть триггеры на insert (которые увеличивают поля ( id_zakaz.id и id_jobzak.id). Примитивно, конечно, но работает. После того, как пользователь добавил/изменил заказ и наигрался с гридом работ по заказу, нажимает "Сохранить". Т.е. TableUpdate(.f.,.T.,"v_zakaz") и TableUpdate(.f.,.T.,"v_jobzak"). Но у меня вся проблема в том, что при таком раскладе я не могу заполнить поле v_jobzak.id_zak (ключ заказа в представлении работ по заказу). Внутри транзакции requery() делать нельзя. А триггер срабатывает только после обновления представления. Короче, "все пропало". С нетернением жду вашу критику и предложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 20:48:53 |
|
||
|
представления и default
|
|||
|---|---|---|---|
|
#18+
У Вас неправильная логика формирования очередного значения ID. Это должно происходить в DEFAULT соответствующего поля. Т.е. одновременно увеличивается счетчик в служебной таблице и возвращается очередное значение ID. Как это делается можете посмотреть на этом форуме (поиск по ключевому слову "NewId"). Также можно посмотреть примеры стандартных проектах примеров FoxPro: Solution.pjx (форма NewID.scx) и TasTrade.pjx. Modify Project (Home(2)+"Solution\Solution.pjx") Тогда никаких проблем. Вы создали новую запись. По Default, уже в буфере таблицы , еще ДО сброса данных (т.е. ДО триггера) будет сформировано новое значение id_zakaz.id. Его можно прочитать и записать в поле View v_jobzak.id_zak. Напрямую. Командой REPLACE. Кстати, я не совсем понял, зачем нужен View для одного заказа? Вот этот самый v_zakaz? Если хочется работать именно с ним, то добавьте функцию Default для поля id_jzak прямо во View. Далее логика работы как описано выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 21:56:41 |
|
||
|
представления и default
|
|||
|---|---|---|---|
|
#18+
View нужно для отображения всех заказов. А действительно, чего я в представление пишу, а потом обновляю? Наверное, можно писать прямо в таблицу. А вот стандартных примеров у меня нету. И даже не стандартных тоже. :) Где их можно взять? Или если не сложно, зашлите в мой почтовый ящик. Заранее благодарна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 22:19:21 |
|
||
|
представления и default
|
|||
|---|---|---|---|
|
#18+
Что-то я не соображу, как добавить функцию Default для поля во View. Подскажите, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2005, 13:25:17 |
|
||
|
представления и default
|
|||
|---|---|---|---|
|
#18+
k_svЧто-то я не соображу, как добавить функцию Default для поля во View. Закладка Fileds (где выбирается список поей) - Кнопка Properties (самая последняя между списками существующих и уже выбранных полей) - В верхнем ComboBox выбираете поле и устанавливаете для него нужные свойства, в том числе и Default. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 01:13:56 |
|
||
|
представления и default
|
|||
|---|---|---|---|
|
#18+
Hi k_sv! 1) Стандартные примеры есть в поставке фоска. Это надо ОЧЕНЬ постараться чтобы после инсталляции примеров не было. Папка Samples в каталоге где установлен фокс. 2) ПОИСК - это великая вещь, не надо считать что тебя оскорбляют посылая туда, тем более что даже дали ключевое слово. 3) Непосредственно на вопрос: программно - DBSETPROP("View.Field", "FIELD", "DefaultValue", "NewID('BaseTableName')") Визуально - в View дизайнере на первой вкладке (где поля выбираются) внизу есть кнопочка - "Properties" - нажимай и смотри. Естественно что в качестве значения для Default в поле View должно быть ТОЧНО то-же что и для поля соответствующей таблицы. Помимо этого данное поле должно быть помечено как обновляемое (и ключевое конечно тоже - для "шапки"! это НЕ взаимоисключающие свойства). Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2005, 01:40:30 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=310&tid=1593765]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 352ms |

| 0 / 0 |
