powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP7 MDI. Как сделать?
5 сообщений из 5, страница 1 из 1
VFP7 MDI. Как сделать?
    #32292962
Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех.
Помогите сориентироваться или пошлите меня к документации.

Есть две таблицы, в одной - структура предприятия, в другой - штатное расписание структурных единиц.
Появляется Форма1 - древовидная структура. Двойным щелчком выбираем структурный элемент. На диске создается курсор с куском второй таблицы, относящейся к выбранному элементу. На него натравливается Форма2, которая как-то редактирует его. По выходу из Формы2 спрашиваем сохранять/нет, и либо вносим содержимое курсора в исходную базу, либо удаляем его прямо так.
Если в Форме1 снова выбран элемент, Форма2 по которому уже открыта, просто активируем Форму2.

Ответьте, PLS, как задать Форме2 открываемый курсор? Я уже замучился добавлять его в DataEnv, просто use тоже как-то непонятно срабатывает.
Close Data вырубает все базы одновременно...
Должно жить столько окон от Форма2, сколько нужно пользователю. Имя окна и имя курсора для него задаются, ясное дело, уникально.

HELP!!!
-=RubbeR=-
...
Рейтинг: 0 / 0
VFP7 MDI. Как сделать?
    #32292986
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
do form2 with 'cursorname'

*!* Form2.Init
lparameters lcCursor
use (lcCursor) in  0 


Только привязку конролов к данным приедтся делать вручную в Form.Init, да и для хранения имени курсора неплохо бы выделить отдельное свойство.

ЗЫ MDI тут не причем.
...
Рейтинг: 0 / 0
VFP7 MDI. Как сделать?
    #32292998
Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, я делаю так:
1. В первой форме создаю файл tabNN.dbf с выборкой.
2. Передаю форме2 параметр NN, она задает
THISFORM.name="w"+ALLTRIM(STR(NN)) - это для уникальности окна и если что повторной активации.
THISFORM.tname="tab"+ALLTRIM(STR(NN)) - это имя таблицы, которую нужно открыть. Поле tname добавлено при создании формы.
Если я сделаю "USE &THISFORM.tname in 0", то как отнесется следующая рядомсозданная Форма2 c другим NN? область 0 этой формы и 0 предыдущей не пересекутся?

-=RubbeR=-
...
Рейтинг: 0 / 0
VFP7 MDI. Как сделать?
    #32293026
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
USE Command
IN nWorkArea 
Specifies the work area in which the table is opened. You can close a table in a
specific work area by issuing USE with the IN clause and the work area number.
The IN clause supports  0  as a work area. Including  0  opens a table in the lowest
available work area. For example, if tables are open in work areas  1  through  10 ,
the following command opens the customer table in work area  11 : 
USE customer IN  0 


Все будет нормально, только макроподстановку не используй в данном случае, а то нарвешься на ошибку.

Код: plaintext
USE (THISFORM.tname) in  0 
...
Рейтинг: 0 / 0
VFP7 MDI. Как сделать?
    #32293732
Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, вроде прокатило.

-=RubbeR=-
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP7 MDI. Как сделать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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