Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid всё время readOnly / 12 сообщений из 12, страница 1 из 1
06.12.2007, 14:12
    #34991142
alien_keeper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Здраствуйте, у меня такая проблема. В гриде 4 столбца(3 беруца из представления с помощью запроса, 1 пустой). Первые 3 редактировать нельзя, последний можно. Св-ва readOnly выставил правильно для всех столбцов, но всё равно не даёт редактировать последний столбец.
...
Рейтинг: 0 / 0
06.12.2007, 14:43
    #34991301
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
1. Что является источником данных для Grid. Этот источник сам по себе редактировать можно?
2. Что является источником данных для столбца? Вычисляемые выражения по определению нельзя редактировать. Только собственно поля таблицы-источника.
...
Рейтинг: 0 / 0
06.12.2007, 15:26
    #34991512
alien_keeper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Для грида SQL-запрос представления, которое не редактируеца, а для столбцов - первые 3 - это столбцы из запроса, а 4 - thisform.grid1.column4.ControlSource = ''. Пробовал везде readOnly=.F., всё равно не один столбец не редактируца :(
...
Рейтинг: 0 / 0
06.12.2007, 17:45
    #34992274
Bl@ze¶ox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Допустим, как я понял:
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
07.12.2007, 09:43
    #34993183
alien_keeper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
2 Bl@ze¶ox: большое спасибо, так заработало, но осталаясь небольшая проблемка. Столбец, который можно редактировать, при загрузке грида должен быть пустым. Если знаеете как, буду сильно благодарен за помощь
...
Рейтинг: 0 / 0
07.12.2007, 11:12
    #34993422
Bl@ze¶ox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Не вижу проблемы,
если тип поля символьный, то просто переписываем INSERT подобным образом:

INSERT INTO ForGrid SELECT Col1,Col2,Col3,'' as EditField FROM someview,
где '' -пустая строка
...
Рейтинг: 0 / 0
07.12.2007, 12:11
    #34993633
alien_keeper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
2 Bl@ze¶ox: огромное спасибо, очень мне помогли.
Похоже надо больше внимания уделить SQL-ю. Я про такое никогда не слышал. о_О
СПС :)
...
Рейтинг: 0 / 0
07.12.2007, 12:20
    #34993669
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Зачем таки е сложности?
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
07.12.2007, 12:38
    #34993746
Bl@ze¶ox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Можно и так, но тогда это все надо засовывать в метод DataEnvironment.AfterOpenTables()

Да и просто мне так привычнее мониторить курсоры, учитывая C/S.
Просто сила привычки, что для ввода новых данных нужно что-то иметь сначала, особо если нет локальных таблиц...
...
Рейтинг: 0 / 0
07.12.2007, 14:57
    #34994324
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Код: 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
07.12.2007, 18:07
    #34995069
Bl@ze¶ox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Могу возразить только то, что длина значания свойства в VFP9 без использования + составляет 255 символов, в остальном, в данном случае согласен с ВладимирМ...
...
Рейтинг: 0 / 0
07.12.2007, 19:13
    #34995282
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid всё время readOnly
Bl@ze¶oxМогу возразить только то, что длина значания свойства в VFP9 без использования + составляет 255 символов
В смысле, при заполнении свойства в дизайнере. При программном заполнении - до 8К. И не только в VFP9, но и в младших версиях.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid всё время readOnly / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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