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

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

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

Ответить
denisag
Постоянный гость
Сообщения: 59
Зарегистрирован: 02 дек 2011, 14:28

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

Сообщение denisag »

Поискал по форуму не нашел ничего похожего (наверное плохо искал ;-) )
В общем задача: добавить в интерфейс в который выводится временная таблица еще одно поле которое будет называться 'xxx', изначально будет пустым, но в нем можно проставлять цифровые значения (целые).
В общем как то так для начала.
Какие операторы нужны, пример применения если можно ;-)
Заранее спасибо.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение edward_K »

видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
spark
Местный житель
Сообщения: 478
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение spark »

edward_K писал(а):видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
Я думаю, что речь идет просто о добавлении во временную таблицу еще одного поля, выводе его на форму и обработке его изменения
denisag
Постоянный гость
Сообщения: 59
Зарегистрирован: 02 дек 2011, 14:28

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение denisag »

Да, похоже это то что я искал. Спасибо!
Только один момент - как поле добавить пустое?
Например как добавить поле к таблице в MSSQL я знаю - alter table.... add ..., но это если эта таблица физически существует ;-)
а как это реализуется с временной таблицей в галактике?
denisag
Постоянный гость
Сообщения: 59
Зарегистрирован: 02 дек 2011, 14:28

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение denisag »

spark писал(а):
edward_K писал(а):видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
Я думаю, что речь идет просто о добавлении во временную таблицу еще одного поля, выводе его на форму и обработке его изменения
вот это точнее)
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение Алексей »

так ... таблица же временная, т.е. описана вами в проекте... что мешает добавить искомое поле? или речь о докомпиляции стандартного интерфейса?
можно сделать свою таблицу в памяти, которая по crec будет ссылаться на запись в уже существующей и во второе поле писать нужное вам значение...
denisag
Постоянный гость
Сообщения: 59
Зарегистрирован: 02 дек 2011, 14:28

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение denisag »

Речь идет о докомпиляции.
Есть способ в MS SQL:

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

select a.1 b.1 b.2.. c.1, '' as EmptyField from a, b, c
так получаем поле EmptyField с пустыми строками
Но в Випере он не сработал.
Я добавил поле во временной таблице и добавил '' as EmptyField в своя прямой SQL, в итоге получил ошибку о несовпадении полей таблиц.


Ага, вот как можно null as EmptyField - получаем искомое пустое поле ;-)

Сделал в своем Fields так:

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

tmpVozvratMC.WANTTORETURN 'Вернуть шт.':[5],noProtect; 
Менять дает, но не запоминает изменение,
как прикрутить update этого поля после его изменения?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение edward_K »

вам надо перехватить стандартный cmUpdateRecord или cmCheckField - события нужно перехватывать в tableevent главной таблицы окна. Мессаги вам помогут.
denisag
Постоянный гость
Сообщения: 59
Зарегистрирован: 02 дек 2011, 14:28

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение denisag »

В общем воспользовался я cmCheckField так как хочу проверять условие,
Описал вот так

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

tableEvent table tmpVozvratMC
cmcheckfield:
{
if curfield = tmpVozvratMC.WANTTORETURN {
if getinlinecurpos(tmpVozvratMC.WANTTORETURN) > (tmpVozvratMC.OTGRUZ - tmpVozvratMC.VOZVRAT)
{
message('Нельзя вернуть больше чем доступно для возврата');
abort
}
}
}
cmupdaterecord: update current tmpVozvratMC;
end; 
Но условие не отрабатывает и сообщение не выводится
я чего то не учел?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: подскажите куда копать чтобы реализовать изменяемое поле

Сообщение edward_K »

а главная таблица окна какая? и message то сделайте в начале события. + если делаете докомпиляцию, то нужно
inherited :: HandleEvent (cm?????); - чтобы стандартный обработчик сработал.
Ответить