powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать имя поля в LV?
6 сообщений из 6, страница 1 из 1
Как передать имя поля в LV?
    #33483027
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно во вьюшке получить подсуммы, объединяя записи по ключевым полям. Поскольку структура файла такова, что имеется только ключевое поле и куча однотипных полей типа value01, value02 и т.п. Т.к. таких полей много, то облом выписывать сразу для всех:
SELECT..... sum(filename.value01), sum(filename.value02) и т.д.
Тем более, что всегда требуется только одно из полей. Мне бы хотелось передавать в LV его наименование, как параметр для макроподстановки. Но в качестве параметра удается передавать значения, но не название поля.
Обругивается конструкция SUM(?&parameter).

Можно ли каким-то образом выкрутиться? Или проблема в синтаксисе?
...
Рейтинг: 0 / 0
Как передать имя поля в LV?
    #33483029
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искаженьице в формулке пошло...
Код: plaintext
1.
SUM(?&fieldname_parameter)
...
Рейтинг: 0 / 0
Как передать имя поля в LV?
    #33483654
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
View - это НЕ динамическая конструкция. Это СТАТИЧЕСКАЯ конструкция. Примерно как таблица. Поэтому забудь про всякие "динамические" выкрутасы с макроподстановками в отношении View.

Нет. В принципе, можно делать и динамические View. Но! Это требует понимания того, что именно и почему ты делашь и к каким последствиям это приведет.

Извини, но пока я не вижу у тебя такого понимания. Речь не идет о знании команд и функций - это как раз можно объяснить. Речь идет о том, ЗАЧЕМ необходимо делать те или иные действия. Т.е. так называемой "идеологии языка программирования".

К сожалению, этому практически невозможно научить. Это надо прочувствовать самому. Приходит с опытом. Например, мне на такое осознание идеологии нового языка требуется примерно 1,5...2 года

Делай обычные команды Select-SQL. Можно написать достаточно универсальные процедурки, где и подставляй нужные тебе имена полей, передавая их как параметры в эти функции.
...
Рейтинг: 0 / 0
Как передать имя поля в LV?
    #33483738
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Видимо, при переносе на DescTop ты скопировал не ярлык проекта, а именно
сам файл проекта. Физически, это означает, что ты перенес файл PJX в
другую директорию. Кстати, при открытии проекта он должен был тебя
спросить: изменить ли директорию проекта?

Не спросил. И файл coom.pjx не перенесся. Где был, там и остался. Проверял через поиск и проводник. Правда, одно и тоже мы понимаем под DESCTOP?

Код: plaintext
1.
Нажми правой кнопкой мыши на тот объект, который ты перенес на DescTop и
посмотри, что это такое: ярлык или собственно файл PJX

Принципиальных различий не нашел. А как отличить ярлык от самого файла проекта?

Прилагаю комбин.иллюстрацию.
В первом случае: при Modify COOM.DBC VFP запрашивает путь к DBC
Во втором случае путь не запрашивается.
Если я пытаюсь Modify Form1, то путь к своим формам VFP помнит. Открывает все сразу.
Структурно все расположено так:
C:\COOM\COOM.PJX
C:\COOM\DATA\COOM.DBC
C:\COOM\FORMS\Form1.SCX

Либо я опять чего-то не понял, но налицо неравноправие DBC и SCX. :)
...
Рейтинг: 0 / 0
Как передать имя поля в LV?
    #33483741
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, это сообщение по ошибке сюда попало.
...
Рейтинг: 0 / 0
Как передать имя поля в LV?
    #33483963
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi men dea!

1) Надо бы не ?& а наоборот - &? - иначе прямо при создании представления
будет использовано текущее значение макро-выражения и ожидаемого эффекта не
получится...
2) В VFP8 такое представление через "прямую" команду CREATE SQL VIEW ...
сделать не получится - там слегка порушили процесс синтаксического разбора,
и эта версия в принципе не пропускает макро ни в какую часть запроса для LV.
Впрочем если в другой версии сделать представление, то в VFP8 оно будет
работать как положено. Если другой версии нету, то придётся залезать руками
в dbc файл и там править поле Properties - поле бинарное и обращаться с ним
нужно бережно - проще всего будет исправить запрос если его общая длинна -
т.е. число символов не изменится (т.е. если править мемо-поле в режиме
"замены" - не "сдвигая" ничего).
3) В VFP9 всё работает как и должно - но из-за ужесточившегося движка
необходимо объявлять ту самую макро-переменную и на этапе создания
представления, и на этапе его открытия (даже если открытие происходит в
режиме NODATA).
4) Естественно что всё это есть недокументированная особенность работы
движка, и никаких гарантий на то что оно будет работать в следующей версии
(в т.ч. и в VFP9 SP2) нет и быть не может. В VFP9 SP1 в самой среде всё
работает (в рантайме, т.е. в exe я не пробовал). Также мне сомнительно что
это будет правильно работать в более сложных случаях... В VFP9 есть уже
другие способы динамического конструирования запросов (в частности при
посредстве CursorAdapter-ов), и актуальность макро в LV уже не так велика.
Также если у тебя LV не редактируемый (а я с трудом могу представить себе
как может работать правка в агрегирующем LV) - то нет и смысла большого
морочится с макро - пользуйся простым запросом и всё.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать имя поля в LV?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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