powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нумерация в отчёте
23 сообщений из 48, страница 2 из 2
Нумерация в отчёте
    #36037098
прошелмимо,

Ага!
Я использовал прямой доступ к таблице и set filter, но мне сказали что это не правильно, правильно через курсоры.
Вот я создал курсор в сорсе таблицы: SELECT pn, notdel, prof, fio, sym1, sym2, sym FROM zpl nofilt ORDER BY notdel, pn INTO CURSOR arEdit
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037111
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читайте все, что найдете по слову курсорадаптер

пример я выкладывал
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037123
прошелмимо,
Так мне что значит курсорадаптер в ДЕ надо создать?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037131
Так читаю, а как в фоксе с гридом использовать ХЗ...
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037158
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там примеры для поиграться

http://www.sql.ru/forum/actualthread.aspx?tid=666763&hl=%ea%f3%f0%f1%ee%f0%e0%e4%e0%ef%f2%e5%f0

авторТак мне что значит курсорадаптер в ДЕ надо создать?
желаете проблем - да,

займетесь созданием библиотек классов,
создадите взаимосвязанные универсальные настраиваемые классы - проблем меньше +
сократите трудозатраты на разработку своих проектов
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037263
прошелмимо,

Присваиваю рекордсорсу запрос с условием, так он мне browse - выводит(
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037284
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторрекордсорсу запрос с условием

вначале давайте определимся:
Вы будете работать с КАД или к гриду запрос пристраивать?

вначале Вы ставили вопрос от том,
что Вы желаете редактировать курсор и изменения сохранять
назад в источники

сейчас Вы вновь пытаетесь просто к гриду что-то прикрутить.

что мы будем с Вами делать?
просто курсор к гриду прикручивать?
или создавать механизм с использованием КАД?

мой мозг уже месяц плавится на этом форуме.
я не могу понять:
1. набежали тролли и пудряд мозги?
или
2. фокспро это удел студентов, женщин и детей?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037297
прошелмимо,

2-й пункт лучше! _)
Так а я разве не с курсором работаю?:
thisform.grid1.RecordSource="SELECT pn, notdel, prof, fio, sym, sym1, sym2 FROM zpl nofilt order by notdel, pn into CURSOR arSork"

Вроде курсор!?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037309
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гы, все, я убьюсь о стол -
нафик, нафик ...
все, без меня, я ушел, почти совсем.
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037312
прошелмимо,
Стой поясни!!!
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037318
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСтой поясни!!!

чего пояснять?
я не понимаю Вас, что Вы хотите.
+ оч. все похоже на "развод":
Вы или просто не желаете понимать или
просто все делаете специально - понять
умом Ваши посты невозможно.
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037341
прошелмимо, :-)
Есть таблица zpl
В ней отделы работники должности и тд и тп.
Необходимо: передать данные в курсор, из курсора в таблицу.
Далее с курсором использовать фильтр через комбобокс.
Редактирую данные в таблице, после чего мне нужно сохранить изменения в таблице zpl
Всё.
Я понимаю как работает из таблицы данные уходят в курсор, там я с ними работаю, меняю, то сё.
После чего данные переписываються обратно в таблицу. Но как это в VFP сделать?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037365
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо как это в VFP сделать?

курсорадаптер

если Вы работаете с КАД,
то не нужно в грид прописывать запрос,
запрос прописывается в св-во объекта-КАДа.

примеры я показал,
что еще необходимо?

для того, чтобы понять как работать с КАД нужно посмотреть пример и немного
почитать,
затем самому поиграться и применить полученный опыт в своей разработке.
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037388
прошелмимо,
Какой пример? То что ссылку дал. так там каша какая то!
Ты напиши как курсор создать и заполнить из таблицы!
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037575
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо что ссылку дал. так там каша какая то!

идем по ссылке в конец топика и ищем

К сообщению приложен файл (nativ.zip - 6Kb) cкачать
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037706
прошелмимо,
Посмотрел, и что? Там только кусочки для меня бессмысленного кода!

oCad = createobject('myCAD')
if vartype(oCad)='O'
oForm = createobject('myForm',oCad)
oForm.show(1)
else
messagebox('Ошибка при инициализации КА')
endif

Это курсор?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037803
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К. АлександрПосмотрел, и что? Там только кусочки для меня бессмысленного кода!

oCad = createobject('myCAD')
if vartype(oCad)='O'
oForm = createobject('myForm',oCad)
oForm.show(1)
else
messagebox('Ошибка при инициализации КА')
endif

Это курсор?
ЫЫЫ. Уж на что я, мягко говоря, далеко не гуру, но
1) К. Александр, КЕАЬбЫЕААбЫЕАЦ
2) Прошелмимо, преклоняюсь перед Вашим терпением (в контексте не только этой, но и пары-тройки недавно появившихся тем).
3) /me ищет в рюкзаке кислотные стрелы и свиток огненного меча
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037855
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТам только кусочки для меня бессмысленного кода!

фокспро - это среда визуальной разработки.

Основное примущ-во фокспро - это прекрасный дизайнер для
визуальной разработки классов.

на основе разработанных классов можно легко, быстро, с минимальными
трудозатратами разрабатывать приложения.
Приложения можно делать быстро, а руками бить мало.
Но для этого нужно начать понимать и знать
приемы и способы разработки классов,
а также знать и понимать способы их применения в своих приложениях
(каким образом и когда ....)

авторoCad = createobject('myCAD')
этой командой поднимается(создается) объект на основании класса,
который заранее создан и настроен в визуальной библиотеке.
Класс myCAD пронаследован от базового класса, создан, настроен
и затем сохранен в библиотеке визуальных классов.
Это класс-посредник - который забирает выборки и сохраняет назад
в источники изменения (умеющий это делать, созданный разработчиками фокспро,
наделенный многими возможностями, а мы его наделяем своими свойствами,
какими? нужно посмотреть и почитать, для чего нужны эти св-ва)
Именно такой стиль (визуальный) разработки дает преимущ-ва в фокспро -
быстро разрабатываем - удобно сопровождать.

Далее
Код: plaintext
oForm = createobject('myForm',oCad)
гы, начинаем все сначала ...
в виз-й библиотеке ранее разработали класс myForm,
командой поднимаем объект и ему передаем объект-КАд,
который будет все знать и сам работать с источником ...

ну и т.д. и т.п. ....

авторТам только кусочки для меня бессмысленного кода!
вопрос: а к какому стилю разработки(приемам, способам) приучены Вы
(известны Вам) и Вы используете?

ок., Вы упоминули про ДЕ формы и т.д.,
стандартное решение - это положить кад в ДЕ и настроить его билдером,
есть много примеров,
но необходимо так-же немного почитать.
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36037996
прошелмимо,
1. Вопрос назрел! А зачем ты его создаёшь в программе? если ты его уже создал. аномалия.
2. Как всё таки курсор создать? И использовать его в гриде
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36038002
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К. АлександрЯ использовал прямой доступ к таблице и set filter, но мне сказали что это не правильно, правильно через курсоры.
Вот я создал курсор в сорсе таблицы: SELECT pn, notdel, prof, fio, sym1, sym2, sym FROM zpl nofilt ORDER BY notdel, pn INTO CURSOR arEdit
Поскольку разговор пошел "лесом" (вы с прошелмимо говорите о разных вещах, поэтому друг друга не понимате), то попробую вернуться к исходной постановке задачи.

Использование SET FILTER и прямое редактирование таблиц-источников не то, чтобы не правильно, просто это решение, которое очень сильно ограничивает разработчика. Обычно SET FILTER используют как "сиюминутное" решение, лишь бы заткнуть проблему. Если всеръез заниматься некогда.

Чтобы получить бОльший простор для маневра и используемых инструментов действительно, лучше вместо SET FILTER делать выборку из таблицы. Правда, здесь следует оговорится, что в этой выборке должно быть как можно меньше записей. Не следует в результирующую выборку перегонять всю таблицу-источник, как это сделали вы в данном примере. Это просто бессмысленно.

Другими словами, использовать в качестве источника данных выборку (курсор) имеет смысл тогда, когда, во-первых, есть условие WHERE и, во-вторых, по этому условию отсекается бОльшая часть записей. Желательно, чтобы в результирующей выборке оказалось не более нескольких сотен записей.

Grid .

В качестве источника данных Grid может выступать только и исключительно таблица. Или курсор, как временная таблица. По умолчанию, в качестве типа источника данных Grid.RecordSourceType указывается Alias .

Тут следует уточнить, что алиас - это вообще не таблица и не курсор. Это некий псевдоним (идентификатор) рабочей области . Некоего "пространства", где "живет" определенный "набор данных".

В рабочей области может быть открыта как собственно таблица (файл DBF), так и курсор. Т.е. вообще-то, вы могли сделать следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
* Init-формы
SELECT pn, notdel, prof, fio, sym1, sym2, sym ;
FROM zpl nofilt ;
ORDER BY notdel, pn ;
INTO CURSOR arEdit

ThisForm.Grid1.RecordSource = ""
ThisForm.Grid1.RecordSource = "zpl"

При настройке по умолчанию Grid.RecordSourceType = 1 (Alias) это и будет означать указание в качестве источника данных Grid - курсора. Ведь под именем алиаса "zpl" скрывается как раз курсор.

Остальные значения настройки Grid.RecordSourceType предназначены для того, чтобы указать некие объекты, из которых FoxPro сам, автоматически, сможет сформировать эти самые курсоры. В частности, то, что использовали вы, указав Grid.RecordSourceType = 4 (SQL Statement) означает, что для формирования курсора надо выполнить команду, записанную в свойстве Grid.RecordSource.

Однако лучше все-таки оставить настройку Grid.RecordSourceType в значении по умолчанию и "подсовывать" Grid в качестве источника нужные алиасы.

Откуда вы можете подсунуть эти самые алиасы? Ну, вы можете просто вручную его написать, если будете твердо уверены, что к моменту инициализации Grid этот алиас будет существовать. А откуда возьмется эта уверенность? Ну, от того, как именно вы напишите программу. От вашей дисциплинированности.

Зависимость от вашей дисциплинированности несколько уменьшает использование DataEnvironment. Если таблица включена в DataEnvironment, то при выборе Grid.RecordSource в раскрывающемся списке будут отображены все алиасы, под которыми будут работать эти таблицы. Причем, в режиме "по умолчанию" вам гарантируется тот факт, что соответствующий алиас будет существовать к моменту инициализации Grid.

А можно ли включить в DataEnvironment не таблицу, а некую выборку из нее? Можно. Но не любую выборку, а такую выборку, которая была "вложена" в некий специфический объект FoxPro. Ведь в DataEnvironment вы добавляете некие объекты. Что именно?

Во-первых, это может быть Local View. Это выборка (курсор), но уже "обернутая" в некую "оболочку". С ней можно работать как с обычной таблицей. Создается Local View в контейнере базы данных в окне проекта внутри ветки контейнера базы данных после Tables идут как раз Local View.

Несмотря на всю не любовь прошелмимо к этим объектам, как к устаревшим, я все-таки рекомендовал бы начать обучение именно с них. Они очень удобны именно в качестве инструмента для обучения. Там все просто и наглядно. А вот когда с ними разберетесь, переходите к классам CursorAdapter.

Классы CursorAdapter - это то самое, во-вторых, которое также можно указать в DataEnvironment. Правда специфическим способом. Через пункт меню Builder выпадающего меню. Ну, а о собственно классе CursorAdapter вас уже прошелмимо просветит...
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36038017
ВладимирМ,

SELECT pn, notdel, prof, fio, sym1, sym2, sym ;
FROM zpl nofilt ;
ORDER BY notdel, pn ;
INTO CURSOR arEdit
thisform.grid1.RecordSource="arEdit"

И вот это:

CREATE CURSOR arEdit (pn i(4), notdel c(10), fio c(25), prof c(254), sym1 n(10), sym2 n(10), sym n(10))
INSERT INTO arEdit (pn, notdel, fio, prof, sym1, sym2, sym);
SELECT pn, notdel, fio, prof, sym1, sym2, sym FROM zpl ORDER BY notdel, pn
thisform.grid1.RecordSource="arEdit"

Одно и то же?
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36038019
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. Вопрос назрел! А зачем ты его создаёшь в программе? если ты его уже создал. аномалия.

аномалия, гы, магнитная ....
в коде, какой-то последовательности команд создаются объекты,
объекты создаются на основании предсозданных в библиотеке классов

автор2. Как всё таки курсор создать? И использовать его в гриде
курсор создается в самом классе курсорадаптере - там есть определенные
настройки и методы .
Эти настройки и вызов определенных методов настраиваем визуально в библиотеке визуальных
классов.
Для этого есть визуальный дизайнер классов.

В примере все показано как создается курсор и как его использовать.
Вам необходимо по-очереди рассмотреть все объекты в менеджере проекта.

+
Достаточно включить отладчик и пройти по шагам весь код.
...
Рейтинг: 0 / 0
Нумерация в отчёте
    #36038044
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОдно и то же?

нет


авторSELECT pn, notdel, prof, fio, sym1, sym2, sym ;
FROM zpl nofilt ;
ORDER BY notdel, pn ;
INTO CURSOR arEdit
thisform.grid1.RecordSource="arEdit"

фокспро делает следующие действия:
1. из источника zpl отбирает поля и упорядочивает опред.образом во временный нередактируемый курсор arEdit
2. далее гриду Вы указываете, что отображать он будет данные из курсора "arEdit"

авторCREATE CURSOR arEdit (pn i(4), notdel c(10), fio c(25), prof c(254), sym1 n(10), sym2 n(10), sym n(10))
INSERT INTO arEdit (pn, notdel, fio, prof, sym1, sym2, sym);
SELECT pn, notdel, fio, prof, sym1, sym2, sym FROM zpl ORDER BY notdel, pn
thisform.grid1.RecordSource="arEdit"
фокспро делает следующие действия:
1. создает пустой редактируемый курсор arEdit
2. заполняете курсор arEdit упорядоченными данными из zpl
3. далее гриду Вы указываете, что отображать он будет данные из курсора "arEdit"
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нумерация в отчёте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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