:: Visual Foxpro, Foxpro for DOS
Вопрос по вызыванию формы из этой же формы
natashik319
Автор

Сообщений: 30
Дата регистрации: 16.05.2017
Всем добрый день! Стоит такая задача, нужно чтобы из формы вызывалась эта же форма. Например, я открываю форму, в которой есть информация о сборке. В гриде отображаются детали и информация в каких еще сборках была эта деталь. Ну и к примеру я хочу посмотреть информацию об одной из этих сборок. При нажатии на кнопку нужно, чтобы открылась эта же форма с информацией об интересующей сборке. У меня при открытие второго экземпляра получается, что первый экземпляр формы очищается, точнее грид очищается.
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
А источник у грида (курсор) как заполняется? И какое имя имеет?
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
natashik319
Автор

Сообщений: 30
Дата регистрации: 16.05.2017
of63
А источник у грида (курсор) как заполняется? И какое имя имеет?
Заполняется в отдельном методе, данные берутся из главной формы, сессия данных общая.
Не совсем поняла вопрос насчет имени курсора, точнее для чего оно?)
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Форма-то "та же самая", если имя курсора одинаковое, сессия общая, то содержимое курсоров не может быть разным...
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
natashik319
Автор

Сообщений: 30
Дата регистрации: 16.05.2017
of63
Форма-то "та же самая", если имя курсора одинаковое, сессия общая, то содержимое курсоров не может быть разным...
Да, я так и думала, но мне такое условие поставили...
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Просто установи у формы Privat data session


------------------
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Просто с DS не получится скорее всего
Можно генерировать случайно имя курсора динамически, и записывать его в грид, но грид будет стирать свои настройки, тоже не просто...
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
natashik319
Автор

Сообщений: 30
Дата регистрации: 16.05.2017
of63
Просто с DS не получится скорее всего Можно генерировать случайно имя курсора динамически, и записывать его в грид, но грид будет стирать свои настройки, тоже не просто...
Понятно.. жаль(
Ладно, спасибо)
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
natashik319
Понятно.. жаль(
Ладно, спасибо)

Да не надо печалиться. Всё значительно проще чем кажется.
Просто Grid нужно создавать в методе, а не в дизайне.
Один метод и потом несколько строк для каждой колонки.
Типа
.NewColumn('Дата', .RecordSource + '.Date', 80)
Для примитивного Grida вполне достаточно. А при сноровке и развитии будет и развитие и сноровка.
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
natashik319
Автор

Сообщений: 30
Дата регистрации: 16.05.2017
Taran

Да не надо печалиться. Всё значительно проще чем кажется.
Просто Grid нужно создавать в методе, а не в дизайне.
Один метод и потом несколько строк для каждой колонки.
Типа
.NewColumn('Дата', .RecordSource + '.Date', 80)
Для примитивного Grida вполне достаточно. А при сноровке и развитии будет и развитие и сноровка.
Хмм, надо подумать над этим вариантом) если не захотят уйти от общей сессии к приватной, то попробую так) спасибо!
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
на этом пути удобно осмысленно именовать колонки, например равным имени изображаемого поля, тогда можно автоматически настроить грид переписав имя колонки в качестве источника, и просто обращаться к колонке по имени...
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Это если Grid в дизайне + смена RecordSource.
Но тут куча кода понадобится для сохранения. А оно надо? На данном этапе развития.
Если изначально колонки создавать программно, то и имена осмысленные не нужны.
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
natashik319
Хмм, надо подумать над этим вариантом
Не надо. Это удаление гланд через задницу.
natashik319
если не захотят уйти от общей сессии к приватной
Именно для такого рода разделения информации и придуманы приватные датасессии.
Все эти динамические имена курсоров, конструирование гридов/колонок в коде на каждый чих, макро на макро - полная ересь.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Igor Korolyov
natashik319
Хмм, надо подумать над этим вариантом
Не надо. Это удаление гланд через задницу.
...
Именно для такого рода разделения информации и придуманы приватные датасессии.
Все эти динамические имена курсоров, конструирование гридов/колонок в коде на каждый чих, макро на макро - полная ересь.

Так и знал, что глубокоуважаемый ИК опять взбеленится.
Ну не нужны там макро абсолютно.

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

По скорости проектирования тоже не все однозначно.
Grid на десяток колонок у меня строится кодом. Буквально 11 строк. Зато все его параметры я вижу на одной странице кода. И Caption Header`a и ControlSource и ширину и пр...
Ну и довольно значимая часть форм и Grid`jd строится на основе метаданных.
Просто приложение изначально так построено.
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Taran
Это если Grid в дизайне + смена RecordSource.
Но тут куча кода понадобится для сохранения. А оно надо? На данном этапе развития.
Если изначально колонки создавать программно, то и имена осмысленные не нужны.

Т.е. с нуля колонки создать - это немного кода, а предподговленный грид дооформить - "куча"
Все в подпрограмме. Выглядит доофрмление, и установка источника примерно так - наполняется массив, массив передается настроечной подпрограмме (можете не комментировать ):
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Какой только фигней народ не страдает лишь бы не учить матчасть...
Для решения вопроса ТС, как уже было сказано, приватные сессии. Все остальное - извращения, не относящиеся к вопросу, хотя как бы за счет побочных эффектов и решающие поставленный вопрос.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: Вопрос по вызыванию формы из этой же формы
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
natashik319
Всем добрый день! Стоит такая задача, нужно чтобы из формы вызывалась эта же форма. Например, я открываю форму, в которой есть информация о сборке. В гриде отображаются детали и информация в каких еще сборках была эта деталь. Ну и к примеру я хочу посмотреть информацию об одной из этих сборок. При нажатии на кнопку нужно, чтобы открылась эта же форма с информацией об интересующей сборке. У меня при открытие второго экземпляра получается, что первый экземпляр формы очищается, точнее грид очищается.

Попробуйте так: для просмотра сделайте копию этой формы, удалите в ней все лишнее, в DE должны быть только нужные свои курсоры.
И, вообще - для просмотра, редактирования и т.п. лучше создавать свои формы, по возможности модальные.



Исправлено 1 раз(а). Последнее : lulgu, 15.12.17 18:47
Ratings: 3 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ssa
Какой только фигней народ не страдает лишь бы не учить матчасть...
Для решения вопроса ТС, как уже было сказано, приватные сессии. Все остальное - извращения, не относящиеся к вопросу, хотя как бы за счет побочных эффектов и решающие поставленный вопрос.
Угу, а остальные - лишь бы строчки лишней не написать, а все учить да учить матчасть...
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
of63
Просто с DS не получится скорее всего
С какой это стати?
А для чего тогда ДС?
Taran
Да не надо печалиться. Всё значительно проще чем кажется.
100%)))
И не обязательно так как ты говоришь.
Самое простое создать в дизайнере.
А уже при создании формы, рекордсорц=""
И промапить колонки.
Пописать конечно надо, но не много.

А уж со временем, коли нужда будет, лучше конечно свой грид...
Taran
Grid на десяток колонок у меня строится кодом. Буквально 11 строк.
Ну тут возможны разные подходы) У меня вообще строк нет)
Просто есть класс, для сущности, где он описан, и по нему хоть грид, хоть что.
Но это... долгий путь.
а написать
.RecordSource = ''
.Column1.ControlSource = данные1
.....
.ColumnN.ControlSource = данныеN
В состоянии любой новичок)


------------------
Ratings: 0 negative/0 positive
Re: Вопрос по вызыванию формы из этой же формы
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
of63
Т.е. с нуля колонки создать - это немного кода, а предподговленный грид дооформить - "куча"

Именно так, Олега, именно так.

У Grid`а есть метод CreateColumns.
Я захожу в него и пишу WITH THIS [ENTER]
Далее при нажатии точки мне IntteliSence подсказывает метод для создания колонки или чего еще.
Выбираю метод, далее опять подсказка по параметрам. Всё!
Мне не надо елозить мышкой по экрану, выбирать в окне свойств HEADER чтобы задать Caption.
Не надо прокручивать окно свойств до параметра WIDTH. И прочее.

В реальной жизни хочется сохранить порядок колонок, ширину, видимость. Для последующего использования.
Учесть права доступа к некоторым колонкам для отдельных юзверей.
Все это при наличии колонок доставляет хлопоты. По крайней мере порядок колонок.
При динамическом создании колонок они сразу отсортированы и имеют нужную ширину и видимость.
Всякие Dynamic также задаются в этой единственной команде создания колонки.
При желании внедрить метод в колонку она просто создается на основе конкретного класса, который также в PRG расписан.
Просто когда это все работает - возвращаться к дизайну Grid нет никакого желания.

Отчасти визуальная настройка Grid`а подобна использованию визардов в фоксе.
Но мы же ими не пользуемся как только чуток заматереем.

Ну и при нативной БД - накладные расходы на открытие таблиц.
Просто это мало кого волнует. Но когда счет идет на секунды, то ...

И еще.
Допустим есть некоторая штучка для поиска текста во всем своем коде и пр...
И замена найденного.
Когда это найденное находится в методе, а не в свойствах многие манипуляции становятся значительно проще.

Я не утверждаю, что не использую приватные ДС. Использую в конкретно того требующих случаях.
Допустим плагин какой, имеющий весьма отдаленное отношение к основной программе.
Пейджер допустим или SMS-менеджер...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 10 (Гостей: 10)

© 2000-2024 Fox Club 
Яндекс.Метрика