powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как правильно работать с вычисляемыми полями?
7 сообщений из 7, страница 1 из 1
Как правильно работать с вычисляемыми полями?
    #39360482
Apprehension
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Обычная ситуация: в таблице есть поля для габаритов некоторого товара (length, width и height), но понадобится также и объем.

Вводя в таблицу специальное поле volume, мы, по сути, создаем избыточную информацию и рискуем, что данные в таблице могут и рассогласоваться. С другой стороны, теперь придется создавать специальное поле и особым образом его обрабатывать.

Способ, который мне известен, это добавить лишнее поле в запрос примерно так:
SELECT length, width, height, (length * width * height) as volume FROM table
Однако будет ли вычисляемое поле оперативно изменяться при изменении полей линейных размеров и не возникнут ли сложности с сохранением результатов?

Опять же, в Lazarus был особый вид полей, так и называемых: вычисляемые. Они не упоминались даже в тексте запросов (т.е. запрос был бы таким: SELECT length, width, height FROM table) и присутствовали только в списках полей инспекторах запроса. Но всякий раз, когда в программе происходило бы изменение обычных полей запроса, инициировалось специальное событие, в котором можно было прописать вычисления и присваивания для поля volume. Это, в том числе, позволяло обходиться без описания лишних retrieval arguments запроса (если они требовались для вычислений поля). Есть ли аналог в PowerBuilder?

А общий вопрос такой: как бы вы реализовали такую задачу?
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39360503
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apprehension, смотрите в сторону computed fields.
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39360782
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.12.2016 14:12, Apprehension пишет:

> SELECT length, width, height, (length * width * height) as volume FROM table

Можно и так.

> Однако будет ли вычисляемое поле оперативно изменяться при изменении
> полей линейных размеров

Само - нет, потребуются некоторые телодвижения.

> Опять же, в Lazarus был особый вид полей, так и называемых: вычисляемые.

Это эха по PowerBuilder-у, причём тут Lazarus ;)?

> Они не упоминались даже в тексте запросов (т.е. запрос был бы таким:
> SELECT length, width, height FROM table) и присутствовали только в
> списках полей инспекторах запроса. Но всякий раз, когда в программе
> происходило бы изменение обычных полей запроса, инициировалось
> специальное событие, в котором можно было прописать вычисления и
> присваивания для поля volume. Это, в том числе, позволяло обходиться без
> описания лишних retrieval arguments запроса (если они требовались для
> вычислений поля). Есть ли аналог в PowerBuilder?

В DW painter-е Insert -> Control -> Computed field.

> А общий вопрос такой: как бы вы реализовали такую задачу?

Если нужно сохранять резалтсет в текстовой файл - первый. Если нужно
редактировать инфу на экране - второй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39361182
Apprehension
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Кажется, это то самое...
Я иногда поминаю Лазарус, поскольку имею небольшой опыт работы на нем и потому провожу с ним аналогии :)

Еще вопрос: мне хочется, чтобы значение этого поля можно было выделять и копировать, но нельзя изменять.
Какие свойства мне нужно настроить и как?
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39361190
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apprehension
Еще вопрос: мне хочется, чтобы значение этого поля можно было выделять и копировать, но нельзя изменять.
Какие свойства мне нужно настроить и как?

Вряд-ли получиться у computed field не захватывает фокус , но можно попробовать выделять значение поля через контекстное меню
по клику на поле открыть контекстное меню
а по выбору copy скопировать значение в буфер обмена
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39361273
Apprehension
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pand
Вряд-ли получиться у computed field не захватывает фокус , но можно попробовать выделять значение поля через контекстное меню
по клику на поле открыть контекстное меню
а по выбору copy скопировать значение в буфер обмена

Да вот даже контекстное меню (по правому клику) не открывается... И еще - в других, обычных полях, вызвать контекстное меню получается только после того, как я в них захожу, а в вычисляемое заходить не получается.
...
Рейтинг: 0 / 0
Как правильно работать с вычисляемыми полями?
    #39361317
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
06.12.2016 15:09, Apprehension пишет:

> Да вот даже контекстное меню (по правому клику) не открывается... И еще
> - в других, обычных полях, вызвать контекстное меню получается только
> после того, как я в них захожу, а в вычисляемое заходить не получается.

Вот и сделай с помощью обычного поля ;). А ещё лучше - займись
чем-нибудь менее бессмысленным ;).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как правильно работать с вычисляемыми полями?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]