powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid всё время readOnly
12 сообщений из 12, страница 1 из 1
Grid всё время readOnly
    #34991142
alien_keeper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте, у меня такая проблема. В гриде 4 столбца(3 беруца из представления с помощью запроса, 1 пустой). Первые 3 редактировать нельзя, последний можно. Св-ва readOnly выставил правильно для всех столбцов, но всё равно не даёт редактировать последний столбец.
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34991301
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Что является источником данных для Grid. Этот источник сам по себе редактировать можно?
2. Что является источником данных для столбца? Вычисляемые выражения по определению нельзя редактировать. Только собственно поля таблицы-источника.
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34991512
alien_keeper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для грида SQL-запрос представления, которое не редактируеца, а для столбцов - первые 3 - это столбцы из запроса, а 4 - thisform.grid1.column4.ControlSource = ''. Пробовал везде readOnly=.F., всё равно не один столбец не редактируца :(
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34992274
Bl@ze¶ox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, как я понял:
Grid.RecordSourceType=SqlStatement(5)
Grid.RecordSource="SELECT Col1,Col2,Col3, EditField FROM someview"

Дело в том, что результат запроса - курсор, и причем только на чтение
Рекомендую лучше сделать так:

Dataenvironment.beforeopentables()
{
CREATE CURSOR ForGrid (COL1 тип,COL2 тип, COL3 тип, EditField тип)
}

Для грида

Grid.RecordSourceType="Alias"(не помню значение)
Grid.RecordSource="ForGrid"

а в курсор ForGrid данные брать из представления таким образом:
INSERT INTO ForGrid SELECT Col1,Col2,Col3,EditField FROM someview

потом для первых трех: Grid.Column#.ReadOnly=.T.
для последнего - .F.

После этого точно будет редактироваться...
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34993183
alien_keeper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Bl@ze¶ox: большое спасибо, так заработало, но осталаясь небольшая проблемка. Столбец, который можно редактировать, при загрузке грида должен быть пустым. Если знаеете как, буду сильно благодарен за помощь
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34993422
Bl@ze¶ox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу проблемы,
если тип поля символьный, то просто переписываем INSERT подобным образом:

INSERT INTO ForGrid SELECT Col1,Col2,Col3,'' as EditField FROM someview,
где '' -пустая строка
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34993633
alien_keeper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Bl@ze¶ox: огромное спасибо, очень мне помогли.
Похоже надо больше внимания уделить SQL-ю. Я про такое никогда не слышал. о_О
СПС :)
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34993669
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем таки е сложности?
CREATE CURSOR ForGrid (COL1 тип,COL2 тип, COL3 тип, EditField тип)

а в курсор ForGrid данные брать из представления таким образом:
INSERT INTO ForGrid SELECT Col1,Col2,Col3,EditField FROM someview

Чем не устраивает

SELECT Col1,Col2,Col3,"" AS EditField FROM someview INTO CURSOR ForGrid READWRITE
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34993746
Bl@ze¶ox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно и так, но тогда это все надо засовывать в метод DataEnvironment.AfterOpenTables()

Да и просто мне так привычнее мониторить курсоры, учитывая C/S.
Просто сила привычки, что для ввода новых данных нужно что-то иметь сначала, особо если нет локальных таблиц...
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34994324
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Grid.RecordSourceType=  5  - SqlStatement
Grid.RecordSource="SELECT Col1,Col2,Col3,CAST("" as V(10)) as EditField FROM someview INTO CURSOR curGrid READWRITE NOFILTER"
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34995069
Bl@ze¶ox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу возразить только то, что длина значания свойства в VFP9 без использования + составляет 255 символов, в остальном, в данном случае согласен с ВладимирМ...
...
Рейтинг: 0 / 0
Grid всё время readOnly
    #34995282
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bl@ze¶oxМогу возразить только то, что длина значания свойства в VFP9 без использования + составляет 255 символов
В смысле, при заполнении свойства в дизайнере. При программном заполнении - до 8К. И не только в VFP9, но и в младших версиях.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid всё время readOnly
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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