Страница 1 из 1
подскажите куда копать чтобы реализовать изменяемое поле ...
Добавлено: 01 фев 2012, 19:01
denisag
Поискал по форуму не нашел ничего похожего (наверное плохо искал
)
В общем задача: добавить в интерфейс в который выводится временная таблица еще одно поле которое будет называться 'xxx', изначально будет пустым, но в нем можно проставлять цифровые значения (целые).
В общем как то так для начала.
Какие операторы нужны, пример применения если можно
Заранее спасибо.
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 01 фев 2012, 20:19
edward_K
видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 01 фев 2012, 20:44
spark
edward_K писал(а):видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
Я думаю, что речь идет просто о добавлении во временную таблицу еще одного поля, выводе его на форму и обработке его изменения
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 01 фев 2012, 20:50
denisag
Да, похоже это то что я искал. Спасибо!
Только один момент - как поле добавить пустое?
Например как добавить поле к таблице в MSSQL я знаю - alter table.... add ..., но это если эта таблица физически существует
а как это реализуется с временной таблицей в галактике?
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 01 фев 2012, 20:58
denisag
spark писал(а):edward_K писал(а):видимо речь про spinButton - поиск в viprogr.chm рулит, пример там же.
Я думаю, что речь идет просто о добавлении во временную таблицу еще одного поля, выводе его на форму и обработке его изменения
вот это точнее)
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 02 фев 2012, 06:31
Алексей
так ... таблица же временная, т.е. описана вами в проекте... что мешает добавить искомое поле? или речь о докомпиляции стандартного интерфейса?
можно сделать свою таблицу в памяти, которая по crec будет ссылаться на запись в уже существующей и во второе поле писать нужное вам значение...
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 02 фев 2012, 12:07
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 этого поля после его изменения?
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 02 фев 2012, 12:37
edward_K
вам надо перехватить стандартный cmUpdateRecord или cmCheckField - события нужно перехватывать в tableevent главной таблицы окна. Мессаги вам помогут.
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 02 фев 2012, 14:15
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;
Но условие не отрабатывает и сообщение не выводится
я чего то не учел?
Re: подскажите куда копать чтобы реализовать изменяемое поле
Добавлено: 02 фев 2012, 15:28
edward_K
а главная таблица окна какая? и message то сделайте в начале события. + если делаете докомпиляцию, то нужно
inherited :: HandleEvent (cm?????); - чтобы стандартный обработчик сработал.