rtf и update

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

rtf и update

Сообщение Gameus_ »

Подскажите плиз, можно ли из rtf отчета изменять данные в базе ? если можно, то приведите кусочек кода плиз...

сейчас имеется

Код: Выделить всё

.linkform RusPlPor2003_RTF1_new prototype is ’PLATDOCS’
.group ’ПЛАТЕЖНОЕ ПОРУЧЕНИЕ ЦБРФ - РТФ’
.NameInList ’Установка даты’
.var
aDate : Date;
.endvar
.fields 
aDate
NoDOK
PlPorNRec
.endfields 
.begin
RunDialog(Enter_date,aDate);
End.
Дата оплаты - ^
.{
.begin
#include platwrap.frv; 
SET plpor.datob := aDate;
UPDATE current plpor ;
end.
Платежное поручение номер ^ нрек ^
.{
.}
.{
.}
.{checkenter PlatDocsCycleVKassu
.}
.{checkenter PlatDocsCycleIzKassy
.}
.{
.{
.{
.}
.}
.}
.if DelimiterPlat
.end
.if PageSymbol
.{?Internal; true

.}
.end
.}
.endform
Как правильно сделать update и можно ли вообще это сделать....
Enter_date - диалог, возращающий дату
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Можно...но сделать это можно только в рамках логической таблицы.
Т.е. формируешь вью с нужным условием фильтрации.
.create view t1 as select ....

А далее, например :
.{table t1
.begin
t1.update ......
end.
.}
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

спасиб !
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

Баалин :(
сделал вьюху

Код: Выделить всё

.Create   view t1 from plpor where ((PlPorNRec /== plpor.nrec ));
как теперь сам апдейт сделать ?
(понедельник и правда тяжелый день)
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

я же написал...

.begin
// делаешь тут что надо
end.
.{table t1 // дергаем вььюху с нужным нрек-ом тебе
.begin
t1.update current plpor set
field1 := value1,
...
fieldn :=valuen;
end.
.}
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

можно и без вьюхи.
Update Plpor Where ((PlporNrec == PlPor.nrec )) set бла-бла-бла
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Без вьюхи не получится...
Gameus_
Местный житель
Сообщения: 209
Зарегистрирован: 18 окт 2006, 17:03
Откуда: Ростов на Дону Новочеркасск Новороссийск
Контактная информация:

Сообщение Gameus_ »

без вьюхи ругается, что не знает Update....
Den спасиб - это был мой первый опыт пользования update, сорь за тупые вопросы :)
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Хм... А у меня работает. View существует, но update прописан напрямую :)
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

Без вьюхи не получится...
Имеется в виду
t1.update current plpor set
можно и так update current plpor set

наличие .Create view обязательно.

Если в форме или интерфейсе несколько view
вот тогда обязательно необходимо использовать имя вьюхи в
update, insert, delete, getfirst ...
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Ну что то вроде того )
Это давний косяк fcom. Автоматически не добавляется почему то таблица в create view. Если же вы пишите на VIP-е, то там при любом обращении к таблице (неважно select,update,delete,insert), даже если она не описана в create view она автоматом туда добавляется...
Ответить