:: Visual Foxpro, Foxpro for DOS
form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
Если я запускаю форму впервые из другой формы, фокс ругается object formname not found.
Если перед этим я запустил ее через главное меню, то все работает правильно без ошибок, как это исправить?
Ratings: 0 negative/0 positive
Re: form is not found
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
foxclub.ru


------------------
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
Аспид
http://foxclub.ru/articles/
Можно хотя бы на конкретную статью линк? В таком массиве нужную информацию тяжело отыскать
Ratings: 0 negative/0 positive
Re: form is not found
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ругается на какую строку кода. Угадать нам предлагаешь что ты там написал и что из этого неправильно?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
form1 вызывает form2 (добавить строку в грид form1), ругается на строку в конце кнопки сохранить form1.refresh(), чтобы обновить грид
form3 вызывает form4 (добавить строку в грид form3), угается на строку в конце кнопки сохранить form3.refresh()
Все отлично работает, но когда в form2 прописываю в кнопке DO form3, до этого её не открывая, ошибка object form3 not found при нажатии на сохранить в form4, которая вызывается из form3. При этом все данные записываются, все работает, но от этого ошибка не пропадает. Также, если до этого запустить form3 из меню проекта, ошибок нет
Ratings: 0 negative/0 positive
Re: form is not found
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
nestle49
но когда в form2 прописываю в кнопке DO form3, до этого её не открывая
"Прописываю в кнопке, открывая, прописываю в кнопке не открывая...".
Вы что-то пишете в кнопке во время исполнения программы?

И кого "её" - form2, кнопку или form3?

nestle49
ругается на строку в конце кнопки сохранить form1.refresh()
Ну, уберите эту строку и добавьте thisform.refresh() сразу после DO form2.
Аналогично поступите и с form3.refresh().
Можете рефрешить форму по условию нажатия кнопки "Сохранить", добавив в DO form2 опцию TO m.ret и анализируя ее значение.
В Unload формы Form2 добавьте Return <возвращаемое значение>, которое будет зависеть от нажатой кнопки для выхода (Сохранить или Отказаться).
Ratings: 0 negative/0 positive
Re: form is not found
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
nestle49
form1 вызывает form2 (добавить строку в грид form1), ругается на строку в конце кнопки сохранить form1.refresh(), чтобы обновить грид
form3 вызывает form4 (добавить строку в грид form3), угается на строку в конце кнопки сохранить form3.refresh()
Это у вас такой КОД... Ну что ж тогда удачи в решении проблем.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: form is not found
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
И что плохого вы наблюдаете (на форме или в гриде), если эти Refresh() просто убрать.

Igor Korolyov
Это у вас такой КОД... Ну что ж тогда удачи в решении проблем.
Я тоже подумал, что немного найдется охотников отвечать по такой "художественной прозе".
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
akvvohinc
И что плохого вы наблюдаете (на форме или в гриде), если эти Refresh() просто убрать.
Грид не обновляется.
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
[quote nestle49]ругается на строку в конце кнопки сохранить form1.refresh()[/quote]
Ну, уберите эту строку и добавьте thisform.refresh() сразу после DO form2.
[/quote]
Так не работает.
Ratings: 0 negative/0 positive
Re: form is not found
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Так не работает.

1) Формы form2 и form4 - модальные?

2) Передавайте ссылку на вызывающую форму вызываемой (DO form2 WITH thisform), запоминайте ее там в некотором свойстве (oParentform) и вместо form1.refresh() напишите thisform.oParentform.refresh().

3) А зачем делать Refresh всей формы, если требуется обновить только грид?



Исправлено 1 раз(а). Последнее : akvvohinc, 11.06.17 19:11
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
Спасибо, проблему удалось решить. Осталась последняя нерешенная.
Я выводу в гриде в столбце "Сотрудник" id_сотрудника, как вывести в данный столбец фамилии из другой таблицы-справочника сотрудников, соответствующих id из данной? Я пытался задать ControlSource в Column1, но не уверен, что это правильно и что я делал это правильно.
Ratings: 0 negative/0 positive
Re: form is not found
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
Я тоже предложу "неправильный", но рабочий способ с минимальными изменениями проги.
<колонка>.controlsource = "ICASE(SEEK(id,'table2','id'),table2.fio,'')"
table2, id, fio - алиас, индекс и поле таблицы с фамилиями.

Ну, или предварительно установите связь между этими таблицами по Id, тогда будет достаточно:
<колонка>.controlsource = "table2.fio"
Ratings: 0 negative/0 positive
Re: form is not found
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
akvvohinc
Ну ты телепатишь!!)))


------------------
Ratings: 0 negative/0 positive
Re: form is not found
nestle49

Сообщений: 11
Дата регистрации: 07.06.2017
akvvohinc
Я тоже предложу "неправильный", но рабочий способ с минимальными изменениями проги.
<колонка>.controlsource = "ICASE(SEEK(id,'table2','id'),table2.fio,'')"
table2, id, fio - алиас, индекс и поле таблицы с фамилиями.

Ну, или предварительно установите связь между этими таблицами по Id, тогда будет достаточно:
<колонка>.controlsource = "table2.fio"
Первый вариант выводит белый грид, второй выводит фамилии, но в каждой строке одну и ту же, а не соответствующую id
SEEK(id,'table2','id') - два id второй таблицы?



Исправлено 1 раз(а). Последнее : nestle49, 12.06.17 13:31
Ratings: 0 negative/0 positive
Re: form is not found
akvvohinc
Автор

Сообщений: 4203
Откуда: Москва
Дата регистрации: 11.11.2008
nestle49
Первый вариант выводит белый грид, второй выводит фамилии, но в каждой строке одну и ту же, а не соответствующую id
1-й вариант - ваша задача, чтобы написанный мною SEEK() находил запись в справочной таблице (в таблице2 должен быть тег Id по полю Id, поля Id в обеих таблицах должны иметь одинаковый тип и размерность (если они разные, то напишите, какие в каждой таблице).

2-й вариант - ваша задача правильно установить связь между таблицами по Id (SET RELATION).

Пока ни одну из этих задач вы не решите, результат не получите.

Цитата:
SEEK(id,'table2','id') - два id второй таблицы?
В этой функции:
первый id - это имя поля текущей (первой) таблицы;
второй id (как строка) - это имя тега/индекса таблицы-справочника, то есть имя индекса по полю id второй таблицы. Если у вас есть тег (индекс) по полю Id, но он имеет другое имя, то замените на свое.
Ratings: 0 negative/0 positive


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

On-line: 16 Владимир Максимов  (Гостей: 15)

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