Программирование на Атлантисе (VIP, FCOM, ARD), FastReport
Модераторы: m0p3e , edward_K , Модераторы
solkalin
Постоянный гость
Сообщения: 60 Зарегистрирован: 23 ноя 2011, 11:59
Сообщение
solkalin » 28 окт 2013, 12:03
Здравствуйте!
Подскажите пожалуйста почему возвращает ошибку "Операция запрещена. Таблица №1110"
Решила через печатную форму Акта на пересортицу "Реестр актов на пересортицу со спецификациями" менять цену ТМЦ к оприходованию пакетно.
Внутри родного кода прописала
Код: Выделить всё
.Begin
if ( bal_t2.GetFirst SpSopr2 = 0 )
c2 := True;
else
c2 := False;
End.
.{While (c2)
Ш@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@ &&&&&&&&&&&&& &&&&&&&&&&.&& &'&&&&&&&&&&&.&& @@@ &&&&&&&&&&.&& &'&&&&&&&&&&&.&& Ш
.Begin
if ( bal_t2.GetNext SpSopr2 = 0 )
c2 := True;
else
c2 := False;
[b] if bal_t2.SpSopr.Price<>bal_t2.SpSopr2.Price then { bal_t2.SpSopr2.Price:=bal_t2.SpSopr.Price; bal_t2.update Current SpSopr2; }[/b]
End.
.}
Но программа выдает ошибку.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188 Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb
Сообщение
edward_K » 28 окт 2013, 14:21
Для начала попробуйте IF c getnext переставить в конец программного блока. А так получается, что вы спозиционировались на следующую запись, первую вообще никогда не правит, а на последней получаете свою ошибку(вы уже ушли из доступных). logstrtofile вам поможет
solkalin
Постоянный гость
Сообщения: 60 Зарегистрирован: 23 ноя 2011, 11:59
Сообщение
solkalin » 30 окт 2013, 11:33
Попробовала разные способы.
Если менять значение в spsopr с nrec-ом для записи к оприходованию, то в таблице физической значение меняется, а в интерфейсе нет.
Если менять в spsopr2, то продолжает выдавать предыдущую ошибку. : (
m0p3e
Местный житель
Сообщения: 1386 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Сообщение
m0p3e » 30 окт 2013, 11:58
Ваш код поправленный:
Код: Выделить всё
.Begin
с2 := (bal_t2.GetFirst SpSopr2 = tsOk);
End.
.{While (c2)
Ш@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@ &&&&&&&&&&&&& &&&&&&&&&&.&& &'&&&&&&&&&&&.&& @@@ &&&&&&&&&&.&& &'&&&&&&&&&&&.&& Ш
.Begin
if bal_t2.SpSopr.Price<>bal_t2.SpSopr2.Price then { bal_t2.SpSopr2.Price:=bal_t2.SpSopr.Price; bal_t2.update Current SpSopr2; }
c2 := (bal_t2.GetNext SpSopr2 = tsOk);
End.
.}
1. Скорее всего изменять нужно не только SpSopr.Price. Например rPrice. А еще и валюта может быть...
2. Если после печати, не перерисовывается интерфейс, то и значения сами не изменятся.
Den
Местный житель
Сообщения: 1844 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:
Сообщение
Den » 30 окт 2013, 12:04
Человек, походу, хочет просто формой запущенной менять данные текущего browse-формата...
Алексей
Местный житель
Сообщения: 2896 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 30 окт 2013, 16:09
это можно перерисовки после закрытия формы не будет.
выйти из документа и зайти - появится. либо нажать "стрелки" обновить.
m0p3e
Местный житель
Сообщения: 1386 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Сообщение
m0p3e » 30 окт 2013, 17:29
Алексей писал(а): это можно перерисовки после закрытия формы не будет.
выйти из документа и зайти - появится. либо нажать "стрелки" обновить.
Это понятно, но без этих действий и при отсутствии в конце процедуры печати редрава/рерида - не будет.
solkalin
Постоянный гость
Сообщения: 60 Зарегистрирован: 23 ноя 2011, 11:59
Сообщение
solkalin » 31 окт 2013, 12:03
Спасибо, m0p3e !
Код работает. Утром повел себя так же как у меня до этого. В журнализацию попадала запись о том, что произошли изменения полей в spsopr. А в интерфейсе изменения не происходили.
Зашла в таблицу SpSopr. Нажала кнопку на панели "обновить". И с тех пор все нормально (я уж думала каждый раз придется обновлять вручную, может наша тестовая база глючила просто).
Еще раз спасибо за помощь!