powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с курсорадаптером
15 сообщений из 15, страница 1 из 1
Помогите с курсорадаптером
    #37297125
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу найти причину, почему у меня грид пустой. Вот что я успела наваять В init.
WITH THIS

SET STEP ON
.AddProperty('lo_CA')
.lo_CA = CREATEOBJECT("CursorAdapter")

if vartype(.lo_CA)='O'
.lo_CA.Alias='fin'
.lo_CA.DataSourceType = 'ODBC'
.lo_CA.DataSource=PubCon
.lo_CA.SelectCmd = 'select * from test_fin order by fin_id, god'
.lo_CA.Tables = 'count.dbo.test_fin'
.lo_CA.keyFieldList = 'fin_id'

IF .grid1.Readonly= !mnr.d71.p3
FOR i = 1 TO .grid1.COLUMNCOUNT
IF .grid1.COLUMNS(i).CONTROLSOURCE="fin.PAYNUM" OR .grid1.COLUMNS(i).CONTROLSOURCE="fin.PAYDATE" then
.grid1.COLUMNS(i).readonly=.f.
ENDIF
ENDFOR
.lo_CA.UpdateNameList=" LPUCODE fin.LPUCODE, DATE fin.DATE, SUM fin.SUM, PRIM fin.PRIM, SKIND fin.SKIND, NDOC fin.NDOC, RF fin.RF, GOD fin.GOD, PRIZ fin.PRIZ, OSTATOK fin.OSTATOK"
.lo_CA.UpdatableFieldList="LPUCODE, DATE, SUM, PRIM, SKIND, NDOC, RF, GOD, PRIZ, OSTATOK"
ENDIF

IF .grid1.Readonly= !mnr.d71.p2
FOR i = 1 TO .grid1.COLUMNCOUNT
IF .grid1.COLUMNS(i).CONTROLSOURCE="fin.PAYNUM" OR .grid1.COLUMNS(i).CONTROLSOURCE="fin.PAYDATE" then
.grid1.COLUMNS(i).readonly=.f.
ENDIF
ENDFOR

.lo_CA.UpdateNameList="PAYDATE fin.PAYDATE, PAYNUM fin.PAYNUM"
.lo_CA.UpdatableFieldList="PAYDATE, PAYNUM"

ENDIF


if .lo_CA.cursorfill(.t.)
.Grid1.RecordSource=.lo_CA.Alias
.grid1.SetFocus()

else
messagebox('Îøèáêà ïðè âûïîëíåíèè ìåòîäà cursorfill ÊÀ')
return .f.
endif


ENDIF

ENDWITH
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298270
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите тестовую программку (файл PRG) примерно такого вида

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PubCon = ...

oCA = CREATEOBJECT("CursorAdapter")  
m.oCA.DataSourceType="ODBC"  
m.oCA.DataSource = PubCon 
m.oCA.SelectCmd = 'select * from test_fin order by fin_id, god'  
? m.oCA.CursorFill()  
BROWSE

В открывшемся Browse-окне хоть что-нибудь отображается?
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298557
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

В browse есть данные.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298630
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь выбросите все "лишнее" из метода инициализации, оставив только минимально необходимые настройки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ThisForm.AddProperty('lo_CA')
ThisForm.lo_CA = CREATEOBJECT("CursorAdapter")

ThisForm.lo_CA.Alias='fin'
ThisForm.lo_CA.DataSourceType="ODBC"  
ThisForm.lo_CA.DataSource = PubCon 
ThisForm.lo_CA.SelectCmd = 'select * from test_fin order by fin_id, god'  

ThisForm.Grid1.RecordSource = ""
ThisForm.lo_CA.CursorFill()
ThisForm.Grid1.RecordSource = ThisForm.lo_CA.Alias
ThisForm.Grid1.Columns( 1 ).ControlSource = ThisForm.lo_CA.Alias + ".PAYNUM"
ThisForm.Grid1.Columns( 2 ).ControlSource = ThisForm.lo_CA.Alias + ".PAYDATE"
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298631
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НадеждаМ,

.lo_CA.cursorfill(.t.) - указание параметра .t. - требует указывать CURSORSHEMA, при ее отсутствии выдается ошибка, отловить которую можно через AERROR.
Попробуйте CURSORFILL без параметров.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298795
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, вроде все в порядке.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298962
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как правильно обновить или добавить данные в источнике данных через курсорадаптер?

в click кнопки добавить написала
append blank
TABLEUPDATE() ?
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37298965
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в init формы указала:
.lo_CA.BufferModeOverride = 3
.lo_CA.AllowUpdate=.t.
.lo_CA.UpdateType=1
.lo_CA.keyFieldList = 'fin_id'
.lo_CA.UpdateNameList=" LPUCODE fin.LPUCODE, DATE fin.DATE, SUM fin.SUM, PRIM fin.PRIM, SKIND fin.SKIND, NDOC fin.NDOC, RF fin.RF, GOD fin.GOD, PRIZ fin.PRIZ, OSTATOK fin.OSTATOK"
.lo_CA.UpdatableFieldList=" LPUCODE, DATE, SUM, PRIM, SKIND, NDOC, RF, GOD, PRIZ, OSTATOK"
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37470842
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем. Продолжаю изучать СА. Добавила в тестовый проект вручную класс на основе cursoradapter, настроила его свойства. Вроде все нормально обновляется, добавляется, просматривается. Но только вот возник вопрос, можно ли один класс настроить на работу с двумя независимыми таблицами расположенными на одной форме? А то не хочется плодить нескоьлко классов.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37471399
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, возможно. Только вот, это довольно сложная задача. Имеет смысл этим заниматься только в том случае, если Вы пытаетесь сделать некий конструктор запросов. Ну, в смысле, пользователи сами будут конструировать запросы через некий интерфейс, а Вы, через этот универсальный класс, использовать то, что пользователи "наконструировали".

Если Вы пока только изучаете CursorAdapter, то проще (во всех смыслах) именно "плодить несколько классов". Свой класс CursorAdapter для каждой таблицы.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37472156
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМВ принципе, возможно. Только вот, это довольно сложная задача. Имеет смысл этим заниматься только в том случае, если Вы пытаетесь сделать некий конструктор запросов. Ну, в смысле, пользователи сами будут конструировать запросы через некий интерфейс, а Вы, через этот универсальный класс, использовать то, что пользователи "наконструировали".

Если Вы пока только изучаете CursorAdapter, то проще (во всех смыслах) именно "плодить несколько классов". Свой класс CursorAdapter для каждой таблицы.

Я пока только хочу лишь отобразить данные двух несвязанных таблиц через один CA и чтобы поиск по ним можно было делать.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37472396
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадеждаМЯ пока только хочу лишь отобразить данные двух несвязанных таблиц через один CA и чтобы поиск по ним можно было делать.
Не "мудрите". Делайте два CA.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37472678
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадеждаМВладимирМВ принципе, возможно. Только вот, это довольно сложная задача. Имеет смысл этим заниматься только в том случае, если Вы пытаетесь сделать некий конструктор запросов. Ну, в смысле, пользователи сами будут конструировать запросы через некий интерфейс, а Вы, через этот универсальный класс, использовать то, что пользователи "наконструировали".

Если Вы пока только изучаете CursorAdapter, то проще (во всех смыслах) именно "плодить несколько классов". Свой класс CursorAdapter для каждой таблицы.

Я пока только хочу лишь отобразить данные двух несвязанных таблиц через один CA и чтобы поиск по ним можно было делать.

можно вопрос, не просто так, интересно.

таблиц - две.

ну ладно, потом их стописят будет, возможно ...

а курсорадаптер, то почему именно один?
хочется?
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37472720
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошелмимоНадеждаМпропущено...


Я пока только хочу лишь отобразить данные двух несвязанных таблиц через один CA и чтобы поиск по ним можно было делать.

можно вопрос, не просто так, интересно.

таблиц - две.

ну ладно, потом их стописят будет, возможно ...

а курсорадаптер, то почему именно один?
хочется?

Да именно, хочется попробовать.
...
Рейтинг: 0 / 0
Помогите с курсорадаптером
    #37472728
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадеждаМпрошелмимопропущено...


можно вопрос, не просто так, интересно.

таблиц - две.

ну ладно, потом их стописят будет, возможно ...

а курсорадаптер, то почему именно один?
хочется?

Да именно, хочется попробовать.


аааа, - пробуйте.
хочется - это аргумент.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с курсорадаптером
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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