powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
81 сообщений из 81, показаны все 4 страниц
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33784786
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем! Люди добрые! Помогите, пожалуйста! Делаю курсовую по FoxPro 2.6 на основе примера про гостиницу из книги А. А. Попова "Создание приложений для FoxPro 2.5/2.6 в DOS и Windows", который рассматривается со страницы 453. Книгу я скачал из Инета, но там оказалось очень много синтаксических ошибок из-за ошибок сканера. Потом соовсем недавно удалось взять эту книгу в читальном зале политеха под залог. Дописав недостающие моменты и исправив ошибки сканера, у меня появилась синтаксическая ошибка на несколько строк. А теперь подробнее. Задание и требования к курсовой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Требования к курсовым работам
Независимо от конкретной проблемы, можно выделить некоторые формальные требования, на которых защищается квалификация разработчика.
 1 .	Устойчивость программы. Программа не должна терять работоспособности ни при каких, даже некорректных действиях пользователя. Всякие действия, грозящие потерей информации, выполняются только после повторного подтверждения. Вводимая информация там, где это возможно, подвергается логическому контролю.
 2 .	Обеспечение целостности баз данных. При любых действиях пользователя базы не должны терять целостности (некорректность индексов, потеря ссылок в связях после удаления – добавления записей и т.д.).
 3 .	Функциональная полнота. Должны быть реализованы все потребности пользователя.
 4 .	Терминологическая среда и интерфейс. В диалоговых средствах используются только термины, понятные пользователю, и не используются термины разработчика («запись», «индексация» и т.д.). Появление служебных англоязычных сообщений СУБД недопустимо. Язык диалога – с соблюдением норм вежливости, цветовая гамма – по общепринятым рекомендациям.
 5 .	Использование клавиатуры. На любом этапе нажатие любой клавиши (особенно функциональных) должно игнорироваться или вызывать предусмотренные действия (описанные в средствах помощи). Привязка действий к клавишам должна быть общепринятой: F1 – помощь; Enter – согласие, завершение ввода; Esc – отказ, возврат к предыдущему узлу ветви алгоритма (с восстановлением экранной формы); Tab – переход к следующему полю, окну и т.д.; Shift-Tab – возврат к предыдущему полю и т.д.
 6 .	Средства помощи. В любой момент по нажатии клавиши F1 должен выдаваться текст помощи.
 7 .	Входные и выходные документы. Экранные формы для ввода и корректировки должны быть максимально «похожими» на привычные пользователю документы; результаты работы не только отображаются на экране, но и выводятся в текстовой файл в привычной форме с возможностью корректировки и распечатки. 
 8 .	Средства документации. Программы снабжаются документацией в виде отчета (требования к оформлению отчета см. в файле Report_kurs.doc).
Программный продукт должен обеспечивать выполнение следующих операций над базами. 
 1 .	Должно быть несколько связанных баз данных с использованием (по необходимости) связей «один к одному», «один ко многим».
 2 .	Для облегчения просмотра и поиска используется упорядоченность с помощью индексации или (в крайнем случаи) сортировки. 
 3 .	Вся информация поддается просмотру и редактированию. 
Информация, поддающаяся стандартизации, хранится в отдельных базах-справочниках, также поддающихся корректировке (с соблюдением целостности).
Задание
Код: plaintext
Администратор гостиницы. Список номеров: класс, число мест. Список гостей: паспортные данные, даты приезда и отъезда, номер. Поселение гостей: выбор подходящего номера (при наличии свободных мест), регистрация, оформление квитанции. Отъезд: выбор всех постояльцев, отъезжающих сегодня, освобождение места или оформление задержки с выпиской дополнительной квитанции. Возможность досрочного отъезда с перерасчетом. Поиск гостя по произвольному признаку.
А вот пример из книги, который я доводил до ума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
SET TALK OFF 
SET DATE GERMAN 
ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F1 ACTIVATE WIND el && Вьиэов окна первого этажа 
ON KEY LABEL F2 ACTIVATE WIND e2 && Вызов окна второго этажа 
USE gost INDEX gost 
r=RECNO() 
DEFINE WINDOW gost FROM  0 , 0  TO  8 , 62 ; 
       TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW el FROM  10 , 16  TO  19 , 42 ; 
       TITLE 'Fl Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  9 , 4  TO  18 , 30 ; 
       TITLE 'F2 Этаж 2' COLOR n/gb && Окно второго этажа 
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE()); 
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',; 
     r=IIF(r=RECNO(),'>',' ') :h='',; 
     mes :h='Место' :p='9999',; 
     fam :h='Фамилия' : 14 ,; 
     pol :h='Пол'; 
         :v=(pol='M'.ОR.ро1='Ж').AND.pl(LEFT(mes, 3 ),pol); 
         :e='Только М или Ж',; 
     pri :h='Прибытие',; 
     otb :h='Отбытие',;
     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
ACTIVATE WINDOW e1 && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  2 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
         .................
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  2 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
         .................
READ CYCLE 
DEACTIVATE WINDOW el,e2,F10 
RELEASE WINDOWS el,e2,F10 
ON KEY 

FUNCTION ttt &&-----------ФУЯКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
&& человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN 
Ошибка (синтаксическая ошибка) в строках
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE()); 
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',; 
     r=IIF(r=RECNO(),'>',' ') :h='',; 
     mes :h='Место' :p='9999',; 
     fam :h='Фамилия' : 14 ,; 
     pol :h='Пол'; 
         :v=(pol='M'.ОR.ро1='Ж').AND.pl(LEFT(mes, 3 ),pol); 
         :e='Только М или Ж',; 
     pri :h='Прибытие',; 
     otb :h='Отбытие',;
     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
Проверяю по книге - вроде всё так. А ошибка есть, а где непонятно... Да, кстати, к этой программе нужны ещё дополнительные файлы, поэтому в архиве всё, что нужно. Прошу Вас, помогите мне довести до ума пример и на его основе сделать курсовую
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33784789
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой! Кажется файл не получилось присоединить. Кто знает как это делается?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33784802
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в .OR. была русская буква О
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE()); 
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',; 
     r=IIF(r=RECNO(),'>',' ') :h='',; 
     mes :h='Место' :p='9999',; 
     fam :h='Фамилия' : 14 ,; 
     pol :h='Пол'; 
         :v=(pol='M' .OR. роl='Ж') .AND. pl(LEFT(mes, 3 ),pol) ; 
         :e='Только М или Ж',; 
     pri :h='Прибытие',; 
     otb :h='Отбытие',;
     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33784980
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Но ошибка всё равно есть. Давай я тебе на мыло сброшу архив с программой и со всем остальным. Какое у тебя мыло?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33785434
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушай, ну пройдись по каждому символу. Синтаксическая ошибка - это и есть синтаксическая ошибка. Где-то, какой-то символ неправильно написал. У тебя в слове из 3 букв пять ошибок

:v=(pol='M'.ОR.ро1='Ж').AND.pl(LEFT(mes,3),pol);

Вместо латинской буквы "O" в слове "OR" - русская
Вместо латинской буквы "L" во втором "pol" - цифра 1

Идем в функцию PL()

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина)
PARAMETERS m,p
nr=KECNO() && Запоминается номер текущей записи

Вместо латинской буквы "R" в функции RECNO() стоит русская "К"

Наверняка еще полно подобных же ляпов.

Только не надо мне слать свой проект! Разбор синтаксических ошибок - это твоя работа. Не можешь "проглотить" все сразу - копируй отдельный фрагменты и компилируй по частям.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33785819
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах! Забыл написать. Ошибку я исправил ещё вчера. Просто переписал заново этот отрывок из книги. Теперь проблема заключается в следующем. Не могу понять как искать посетителей по признакам. Кроме того почему-то не открывается окно первого этажа. Вот программа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
SET TALK OFF 
SET DATE GERMAN 
ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F1 ACTIVATE WIND el && Вьиэов окна первого этажа 
ON KEY LABEL F2 ACTIVATE WIND e2 && Вызов окна второго этажа 
USE gost INDEX gost 
r=RECNO() 
DEFINE WINDOW gost FROM  0 , 0  TO  8 , 62 ; 
       TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW el FROM  10 , 16  TO  19 , 42 ; 
       TITLE 'Fl Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  9 , 4  TO  18 , 30 ; 
       TITLE 'F2 Этаж 2' COLOR n/gb && Окно второго этажа 
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
         .................
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
         .................
READ CYCLE 
DEACTIVATE WINDOW el,e2,F10 
RELEASE WINDOWS el,e2,F10 
ON KEY 

FUNCTION ttt &&-----------ФУЯКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
&& человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN 
Давай я тебе пришлю архив со всеми файлами и ты поможешь мне сделать курсовую.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786072
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я от жизни отстал... А что, на 1-ом заочном курсе сразу несколько языков учить заставляют? 8-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786288
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты кто? Школьник или студент? Если школьник, то всё веселье у тебя ещё впереди. :-) А если студент, то тебе крупно повезло, что на первом курсе один язык программирования учил. Но это ещё смотря какой институт (а может и во всех так)! Я вот, например, учусь в АлтГТУ на специальность прикладная информатика в экономике. О как! :-) Так я знаю на базовом уровне Турбо Паскаль и С++, а FoxPro, этот е... долбанный, уже некогда учить, т.к. в среду экзамен по матеМАТике, а в понедельник по экономике! Поэтому, с Фоксом разбираться, ну просто, не хватает ни времени, ни сил. Ребята! Ну сжальтесь над человеком, помогите кто чем может! До 18-го сделать надо, а ещё и отчёт делать! БЛИИИИИИИИИИИИИИН! :-(((((((((
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786373
-Guest-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автора FoxPro, этот е... долбанный
не плюй в колодец, студент
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786433
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokА ты кто? Школьник или студент?
Третьего не дано? :-)))

parenyokЯ вот, например, учусь в АлтГТУ на специальность прикладная информатика в экономике. О как!
Та ты шо???!!! ;-) Ну, серьезная специальность... Но сильно нос не задирай! ОК?

parenyok...До 18-го сделать надо...
А целый семестр чем занимался? :-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786436
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Насчет отношения к Фоксу тебе уже ответили! :-(
Добавлю только, что приходя просить помощи, негоже ТАК отзываться об инструменте, которым по жизни пользуются потенциальные "помогатели"!

P.P.S. А с учетом твоей будущей специальности тем более стОит пересмотреть отношение...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786487
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
Для – автора ветки.
Почитать здесь
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786493
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
Для автора ветки
Почитать здесь
Исправлена ссылка
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786526
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokАх! Забыл написать. Ошибку я исправил ещё вчера. Просто переписал заново этот отрывок из книги. Теперь проблема заключается в следующем. Не могу понять как искать посетителей по признакам. Кроме того почему-то не открывается окно первого этажа.
Лучше бы сказал, что это пример со страницы 277. Книга Попова периздавалась многократно. С точностью до страницы. Хотя формат несколько менялся.

Предположительно, на клавишу F1 осталось навешана функция вызова файла справки. Вот это-то и надо отключить командой вроде

SET HELP OFF
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33786831
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Guest- автора FoxPro, этот е... долбанный
не плюй в колодец, студент А я и не плюю. ВладимирМ parenyokАх! Забыл написать. Ошибку я исправил ещё вчера. Просто переписал заново этот отрывок из книги. Теперь проблема заключается в следующем. Не могу понять как искать посетителей по признакам. Кроме того почему-то не открывается окно первого этажа.
Лучше бы сказал, что это пример со страницы 277. Книга Попова периздавалась многократно. С точностью до страницы. Хотя формат несколько менялся.Ну у меня на 277-ой странице описана программа KADR3.PRG. Я же не могу угадывать на какой странице какого издания описана прога про гостиницу. ВладимирМПредположительно, на клавишу F1 осталось навешана функция вызова файла справки. Вот это-то и надо отключить командой вроде

SET HELP OFFОх! Написал... После SET TOLK OFF - всё также. Поменял F1 на F3 - бесполено! Короче, полный облом! -)Для автора ветки
Почитать здесь
Исправлена ссылкаМ-да... Такое почитаешь, так забоишься вообще на форум лезть. RedrikP.S. Насчет отношения к Фоксу тебе уже ответили! :-(
Добавлю только, что приходя просить помощи, негоже ТАК отзываться об инструменте, которым по жизни пользуются потенциальные "помогатели"!

P.P.S. А с учетом твоей будущей специальности тем более стОит пересмотреть отношение...Я к Фоксу ничего плохого не имею!!! Хорошо! Представь себе такую ситуацию. Ты попадаешь в институт, тебе по информатике задают делать лабы (причем на разных семестрах - на разных языках программирования!). Ты спокойно их делаешь, т.к. книг по языкам, нужных тебе, навалом! Ты покупаешь книгу, читаешь и делаешь. Если что-то не получается - прибегаешь к помощи форума. И вдруг, на втором семестре ты узнаёшь, что тебе необходимо сделать курсовую на очередном языке программирования. Ты, облазив все книжные магазины города, узнаёшь, что такой книги нет! Есть только для более старшей версии (например, курсовую надо делать на том же FoxPro 2.6 DOS, а в магазинах только Visual FoxPro!) Ты ищешь книгу в инете. Находишь тебуемую и читаешь. Потом с ужасом узнаёшь, что там полно синтаксических ошибок! Т.к. ты ни хрена не шаришь в FoxPro 2.6 Dos (Я К ПРИМЕРУ ГОВОРЮ!!!), ты... Твои действия и "пожелания" преподу и языку? Redrik parenyokА ты кто? Школьник или студент?
Третьего не дано? :-)))Значит отмучился. ПОЗДРАВЛЯЮ!!!

Redrik parenyokЯ вот, например, учусь в АлтГТУ на специальность прикладная информатика в экономике. О как!
Та ты шо???!!! ;-) Ну, серьезная специальность... Но сильно нос не задирай! ОК?Ха... А я и не задираю! Если честно, то мне эта экономика до фени! Я туды пошёл из-за информатики, т.к. я (повторюсь) инвалид 1-0й группы 3-ей степени и работать мне только программистом! А экономист из меня всё равно что из Шуры народный артист! :-)

Redrik parenyok...До 18-го сделать надо...
А целый семестр чем занимался? :-(Хэ... "Чем"? Делал контрольные по математике, английскому, рефераты по истории, делопроизводству, экономике (причём не один!).
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33794175
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok
1 ...работать мне только программистом!
2 ...Делал контрольные по математике, английскому, рефераты по истории, делопроизводству, экономике...
Хм... Все же стОит больше внимания уделять основному!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33801637
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так. Ситуация изменилась! Препод мне разрешил сдать курсовую в сентябре! И дал курсовую, которую сделал мой одногрупник, чтобы я её переделал под свою. Но у меня там появились проблемки. Сперва приведу текст программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
SET CENTURY ON
set date to german
set bell to  300 , 1 
set clock on && включение часов
*close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

   ЯЯЯЯЯ             
   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ
   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я
   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ
   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я
   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я
                                                             Я                        


                              Добро пожаловать!
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELP.PRG').or.file('HELP.TXT')
 on key labe F1 do HELP.TXT
 endi
*set defa to KURS

set cloc on
set color to  w,w/b, r/w && установка цвета - белый на синем,	
set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  0 , 713 
defi wind EWIND from  0 , 0  to  4 , 79  color gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления

k=td1( 20 ,date())
@  10 , 1  say'   ЯЯЯЯЯ                                                              '
@  11 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я   Я    Я  Я     Я  Я    Я        ЯЯ  ' 
@  12 , 1  say'   Я     Я   Я  Я          Я     Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я      Я    Я' 
@  13 , 1  say'   Я     Я   Я  Я          Я     Я   Я Я  ЯЯЯЯ   Я   Я Я  Я    Я     ЯЯЯЯЯ'
@  14 , 1  say'   Я     Я   Я  Я          Я     Я  Я  Я  Я    Я  Я  Я  Я  Я    Я      Я    Я'
@  15 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ     Я     ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯ  Я    Я'
@  16 , 1  say'                                                                              Я         '               

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad gosti of mainmenu prompt'\<Список гостей' at  5 , 7 ;
message 'Ввод, просмотр и редакторование данных по количеству гостей в гостинице.'
define pad etaji of mainmenu prompt'\<Этажи' at  5 , 25 ;
message 'Просмотр и ввод новых блюд в базу данных'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
on selection pad gosti of mainmenu do guests.prg
on selection pad etaji of mainmenu do floor.prg
on selection pad pom of mainmenu do help.txt 
on selection pad vih of mainmenu activate wind w5
 
acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51' 
@ 2 , 27  say'Сегодня: '+k               
acti menu mainmenu




************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
**** Процедура выхода ****
         **** процедура выхода в FOXPRO *****
proc end
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU

**** процедура выхода в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU

return sd
Проблема в том, что не включаются часы (хотя раньше включались). После запуска программы высвечивается ошибка в строке
Код: plaintext
@ 2 , 27  say'Сегодня: '+k
Оператор / операнд типа несовпадения.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33801670
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот поэтому:
Код: plaintext
k=td1( 20 ,date())
Т.е. в k у тебя значение, возвращаемое td1(). Так как возврат какого-либо результата в этой функции не прописан, то возвращается .t.
Добавь в эту функцию
Код: plaintext
return sd
и, если я правильно понял, получишь нужный результат.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33802376
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил. Теперь при первом запуске программы часы есть (в этом участке программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
text && вывод на экран заставки, начало text

   ЯЯЯЯЯ             
   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ
   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я
   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ
   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я
   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я
                                                             Я                        


                              Добро пожаловать!
endtext && завершение вывода, endtext
А дальше уже часов нет.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33802678
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понимаю, ты хочешь, чтобы за тебя тут оладили твою программу?
И еще. Так тебе часы или дату надо? В посте прошибку несовпадения типов речь вроде была про дату. Теперь про часы.

автор
Код: plaintext
SET CLOCK TO  0 , 713 


Как ты думаешь где будут показываться твои часы?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33803455
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во! Всё. Убрал из этой строки 3-у и всё стало нормально, хотя почему-то меняется вид часов с 12-и часового на 24-х часовой и цвет. Но я думаю это не соовсем важно, хотя и очень непонятно. И ещё, если я запускаю программу несколько раз, то с каждым разом разный фон получается. И при выходе из программы не все её окна закрываются.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811246
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста исправить ошибку в программе. Вот программа, в которой открываются этажи в гостиннице:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
SET TALK OFF 
SET DATE GERMAN 
*ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F6 ACTIVATE WIND el && Выэов окна первого этажа 
ON KEY LABEL F7 ACTIVATE WIND e2 && Вызов окна второго этажа 
ON KEY LABEL F8 ACTIVATE WIND e3 && Вызов окна третьего этажа 

*USE floor.dbf INDEX floor 
r=RECNO() 
*DEFINE WINDOW floor FROM  0 , 0  TO  8 , 62 ; 
*      TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW el FROM  8 , 16  TO  17 , 36 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  9 , 40  TO  18 , 60 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  12 , 30  TO  21 , 58 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
*BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
*FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
*     r=IIF(r=RECNO(),'>',' ') :h='',;
*     mes :h='Место' :p='9999',;
*     fam :h='Фамилия' : 14 ,;
*     pol :h='Пол';
*         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
*         :e='Только М или Ж',;
*     pri :h='Прибытие',;
*     otb :h='Отбытие',;
*     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
*@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
ACTIVATE WINDOW e3   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-301----302----303---304--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-305----306--      --307--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3012')

READ CYCLE 
DEACTIVATE WINDOW el,e2,e3*,F10 
RELEASE WINDOWS el,e2,e3*,F10 
ON KEY 

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
&& человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN
Проблема в том, что окно первого этажа не открывается. После запуска программы выводится ошибка в строке
Код: plaintext
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
о том, что Окно 'E1' не определено. Никак не пойму в чём дело. В размерах окна? Да вроде бы всё в порядке. Кстати, окно второго этажа почему-то уже окна третьего, хотя размеры аналогичные. :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811256
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста исправить ошибку в программе. Вот программа, в которой открываются этажи в гостиннице:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
SET TALK OFF 
SET DATE GERMAN 
*ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F6 ACTIVATE WIND el && Выэов окна первого этажа 
ON KEY LABEL F7 ACTIVATE WIND e2 && Вызов окна второго этажа 
ON KEY LABEL F8 ACTIVATE WIND e3 && Вызов окна третьего этажа 

*USE floor.dbf INDEX floor 
r=RECNO() 
*DEFINE WINDOW floor FROM  0 , 0  TO  8 , 62 ; 
*      TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW el FROM  8 , 16  TO  17 , 36 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  9 , 40  TO  18 , 60 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  12 , 30  TO  21 , 58 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
*BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
*FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
*     r=IIF(r=RECNO(),'>',' ') :h='',;
*     mes :h='Место' :p='9999',;
*     fam :h='Фамилия' : 14 ,;
*     pol :h='Пол';
*         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
*         :e='Только М или Ж',;
*     pri :h='Прибытие',;
*     otb :h='Отбытие',;
*     opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
*@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
ACTIVATE WINDOW e3   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-301----302----303---304--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-305----306--      --307--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3012')

READ CYCLE 
DEACTIVATE WINDOW el,e2,e3*,F10 
RELEASE WINDOWS el,e2,e3*,F10 
ON KEY 

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
&& человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN
Проблема в том, что окно первого этажа не открывается. После запуска программы выводится ошибка в строке
Код: plaintext
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
о том, что Окно 'E1' не определено. Никак не пойму в чём дело. В размерах окна? Да вроде бы всё в порядке. Кстати, окно второго этажа почему-то уже окна третьего, хотя размеры аналогичные. :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811438
dmitryx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так оно и не определено. А определено у тебя окно с именем el. Ошибки распознавания видимо ;)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811823
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу! Блин, точно! Спасибо! Как уже надоели эти ошибки сканера! Сразу-то и не разберёшь чё там i или 1. Теперь у меня почему-то не открывается файл помощи. Вот текст программы HELP.PRG, который я скопировал из курсовой моего одногрупника:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
set proc to menuden.prg
if file('help.txt')
close alte to 
do ModiDisp with 'help.TXT'
else
set alte to help.txt
set alte on
?'Файл помощи удален!!! Разбирайся сам.'
close alte to 
do ModiDisp with 'help.TXT'
endif
set proc to 
return
По идее эта программа, как я понял, должна открывать файл помощи - help.txt, если он существует, а если нет - выдавать сообщение: "Файл помощи удален!!! Разбирайся сам.". В курсовой моего одногрупника всё открывается, а у меня выскакивает ошибка в строке
Код: plaintext
do ModiDisp with 'help.TXT'
типа файл MODIDISP.PRG не существует. Хотя он там и не нужен. В чём дело?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33811989
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!!! Сам сообразил! Просто поменял строку
Код: plaintext
set proc to menuden.prg
и всё! Yes!!! Ещё маленько и курсовая будет готова! Теперь проблема такая. В этой программе:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
set century on
set date to german
set bell to  300 , 1 
set clock off && включение часов
close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

   ЯЯЯЯЯ             
   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ
   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я
   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ
   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я
   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я
                                                             Я                        


                              Данные о посетителях.
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELP.PRG').or.file('HELP.TXT')
 on key labe F1 do HELP.TXT
 endif
*set defa to KURS

set clock on
set color to  w,w/b, r/w && установка цвета - белый на синем,	
set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  0 , 71 
defi wind EWIND from  0 , 0  to  4 , 79  color gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления
k=td1( 20 ,date())
               
@  10 , 1  say'   ЯЯЯЯЯ                                                              '
@  11 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ  ЯЯЯЯЯ  Я     Я  Я    Я  Я     Я  Я    Я     ЯЯ  ' 
@  12 , 1  say'   Я     Я   Я  Я       Я    Я    ЯЯ  Я    Я  Я    ЯЯ  Я    Я   Я    Я' 
@  13 , 1  say'   Я     Я   Я  Я       Я    Я   Я Я  ЯЯЯЯЯЯ  Я   Я Я  Я    Я   ЯЯЯЯЯЯ'
@  14 , 1  say'   Я     Я   Я  Я       Я    Я  Я  Я  Я    Я  Я  Я  Я  Я    Я   Я    Я'
@  15 , 1  say'   Я     ЯЯЯЯЯ  ЯЯЯЯ    Я    ЯЯЯ   Я  Я    Я  ЯЯЯ   Я  ЯЯЯЯЯЯЯ  Я    Я'
@  16 , 1  say'                                                             Я        '               

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad gosti of mainmenu prompt'\<Список гостей' at  5 , 7 ;
message 'Ввод, просмотр и редакторование данных по количеству гостей в гостинице.'
define pad etaji of mainmenu prompt'\<Этажи' at  5 , 25 ;
message 'Просмотр этажей гостиницы'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'

on selection pad gosti of mainmenu do guests.prg
on selection pad etaji of mainmenu do floor.prg
on selection pad pom of mainmenu do help.txt 
on selection pad vih of mainmenu activate window w5

acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51'
@ 2 , 27  say'Сегодня: '+k 
acti menu mainmenu


************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
return sd
**** Процедура выхода ****
         **** процедура выхода в FOXPRO *****
proc end
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU

**** процедура выхода в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc in w5
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU

return sd
Не работают функции выхода в FoxPro и Windows, которые я взял из этой программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
set safety off
CLEA
CLOSE ALL
set date germ
set clock on
defi wind w5 from  1 , 0  to  30 , 73  doub shad title ' "М Е Н Ю" ';
footer'Учёт компьютерной техники'
acti wind W5
do zast
defi menu m  SHADOW 
defi pad n1 of m prom '  БД  ' at  1 , 3   COLOR scheme  4  
defi pad n2 of m prom 'Просмотр ведомостей'at  1 , 15  COLOR scheme  4   
defi pad n4 of m prom 'Сервис'at  1 , 40  COLOR scheme  4  
defi pad n5 of m prom ' Выход 'at  1 , 55  COLOR scheme  4  
on sele pad n1 of m acti popup a1 
on sele pad n2 of m acti popup a2
on sele pad n4 of m acti popup a4 
on pad n5 of m acti popup a5

**** A1 ****
defi popup a1 from  2 , 3  SHADOW COLOR scheme  4 
defi bar  1  of a1 prom'Ввод д нных '
defi bar  2  of a1 prom'Просмотр'
on bar  1  of a1 acti popup c1 
on bar  2  of a1 acti popup c2 
defi popup c1 from  3 , 17  SHADOW COLOR scheme  4 
defi bar  1  of c1 prom'Поступление ПК'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of c1 prom'Друг я оргтехник 'color ,,,, 4 */ 9 , 4 */ 9 
on sele bar  1  of c1 do C:\FOXPRO\agu\vvod.PRG
on sele bar  2  of c1 do C:\FOXPRO\agu\drosv.PRG

defi popup c2 from  4 , 17  SHADOW COLOR scheme  4 
defi bar  1  of c2 prom'Оргтехник 'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of c2 prom'Х р ктеристик  компов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  3  of c2 prom'Д нные для  мортиз ции'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  4  of c2 prom'Д нные о монитор х'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  5  of c2 prom'Амортиз ция з  прошл.мес.'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  6  of c2 prom'Амортиз ция з  отчетн.мес.'color ,,,, 4 */ 9 , 4 */ 9 
on sele bar  1  of C2 do dros
on sele bar  2  of c2 do har
on sele bar  3  of c2 do b
on sele bar  4  of c2 do mon
on sele bar  5  of c2 do bd3
on sele bar  6  of c2 do bd4

**** A2 ****
defi popup a2 from  2 , 15  SHADOW COLOR scheme  4   
defi bar  1  of A2 prom'Ведомость о н личии ПК по р бочим мест м'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of A2 prom'Переход'message 'Перед формиров нием вед-ти  мортиз ции ОБЯЗАТЕЛЬНО выполни эту ком нду!' 
defi bar  3  of A2 prom'Н числение  мортиз ции н  комп.техн.'message 'Ты не з был  ктивизиров ть ком нду ПЕРЕХОД?'
defi bar  4  of A2 prom'Ведомость о н личии мониторов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  5  of A2 prom'Ведомость о н личии комп.техники'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of A2 do C:\FOXPRO\agu\VED.PRG
on sele bar  2  of A2 do C:\FOXPRO\agu\perehod.PRG
on sele bar  3  of A2 do C:\FOXPRO\agu\am.PRG
on sele bar  4  of A2 do C:\FOXPRO\agu\monitor.PRG
on sele bar  5  of A2 do C:\FOXPRO\agu\dros1.PRG
**** А4 **** 
defi popup a4 from  2 , 40  SHADOW COLOR scheme  4 
defi bar  1  of a4 prom 'Печ ть'
defi bar  2  of a4 prom 'Созд ние резервной копии '
defi bar  3  of a4 prom 'Поиск'

on bar  1  of a4 acti popup b1
on bar  2  of a4 acti popup b2
on sele bar  3  of a4 do PO
         ***b1
defi popup b1 from  3 , 40  SHADOW COLOR scheme  4 
defi bar  1  of b1 prom'Ведомость о н личии ПК по р бочим мест м'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of b1 prom'Н числение  мортиз ции н  комп.техн.'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  3  of b1 prom'Ведомость о н личии мониторов'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  4  of b1 prom'Ведомость о н личии комп.техники'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of b1  do pech1 
on sele bar  2  of b1  do p2 
on sele bar  3  of b1  do p3 
on sele bar  4  of b1  do p4 
       ***b2
defi popup b2 from  4 , 40  SHADOW COLOR scheme  4 
defi bar  1  of B2 prom 'Созд ть'
defi bar  2  of B2 prom 'Восст новить '

on sele bar  1  of b2  do sozd
on sele bar  2  of b2 do vost
**** A5 ****
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do CANCEL
on sele bar  2  of a5 do quit
acti wind w5      
acti menu m
                    ***Процедуры просмотр  БД
proc mon
use C:\FOXPRO\agu\mon.dbf
BROW FIEL INVM:H='Инв.ь монитор ',naim:H='М рк ',invn:H='Инв.ь сист.блок ',RABM:H='Р бочее место',thar:h='Тех.х р-ки';
TITLE'Д нные о монитор х'
pack
return

proc dros
use C:\FOXPRO\agu\dros.dbf
BROW FIEL invn:H='Инвент.ь',vid:h='Вид оргтехн-ки',naim:h='Н именов ние',rabm:h='Р боч.место';
TITLE'Другие ОС' 
pack
return

proc har 
use C:\FOXPRO\agu\har.dbf
BROW FIEL invn:H='Инвент.ь',video:H='Видеок рт ',cpu:H='Процессор',;
mathe:H='М тери-я пл т ',hdd:H='Жест.диск',fdd:H='Floppy disk',;
ram:H='ОЗУ',cd:H='cd-привод',setkar:H='Сетев я к рт ',;
npk:H='ь ПК',rabm:H='Р боч. место';
TITLE'Х р ктеристик  компов' 
pack
retu    

proc b 
use C:\FOXPRO\agu\b.dbf
BROW FIEL invn:H='Инвент.ь',ps:H='Первон ч ль.ст-сть',;
dve:H='Д т  ввод  в эксплу-ию',spi:H='Срок полез.исп-ия';
TITLE'Д нные для  мортиз ции'
pack
retu    

proc bd3 
use C:\FOXPRO\agu\bd3.dbf
BROW FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер';
TITLE'Амортиз ция з  прошлый месяц' 
pack
retu    

proc bd4 
use C:\FOXPRO\agu\bd4.dbf
BROW FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер';
TITLE'Амортиз ция з  отчетный месяц' 
pack
retu    
****процедур  копиров ния****
proc SOZD
define window E from  10 , 15  to  15 , 60  title '"КОПИРОВАНИЕ"';
shad  color  4 / 1 , 8 / 3 , 3 / 5  
ACTI WIND E
A= 0 
b= 0 
@  1 , 10  GET A FUNC '* СОХРАНИТЬ НА ДИСКЕТЕ'
@  2 , 10  GET B FUNC '* СОХРАНИТЬ НА ДИСКЕ С'
READ
IF A= 1 
clos data 
do nd
do ZAST
COPY FILE DROS.dbf TO a:\DROS.dbf
COPY FILE HAR.dbf TO a:\HAR.dbf
COPY FILE B.dbf TO a:\B.dbf
COPY FILE MON.dbf TO a:\MON.dbf
COPY FILE BD3.dbf TO a:\BD3.dbf
COPY FILE BD4.dbf TO a:\BD4.dbf
ENDIF
if b= 1 
clos data 
do nd 
do ZAST
set default to c:\foxpro\AGU
COPY FILE DROS.dbf TO c:\DROS.dbf
COPY FILE HAR.dbf TO c:\HAR.dbf
COPY FILE B.dbf TO c:\B.dbf
COPY FILE MON.dbf TO c:\MON.dbf
COPY FILE BD3.dbf TO c:\BD3.dbf
COPY FILE BD4.dbf TO c:\BD4.dbf
endif
DEAC WIND E
do zast
retu
             ***Процедур  восст новления р.к.
PROCEDURE vost
hide menu M
hide popup b2 
hide popup a4
DEFINE WINDOW w FROM  10 , 14  ;
TO  13 , 64  SHADOW DOUBLE COLOR SCHEME  5 						 
ACTIVATE WINDOW w SAME
@  1 , 15  SAY "и н жмите Enter." ;
SIZE  1 , 16 ,  0 
@  0 , 2  SAY "Вст вте дискету c резерв. копией в дискoвод А:" ;
SIZE  1 , 43 ,  0 
READ CYCLE
RELEASE WINDOW all
use
 DELETE FILE DROS.dbf
 DELETE FILE HAR.dbf
 DELETE FILE B.dbf
 DELETE FILE MON.dbf
 DELETE FILE BD3.dbf
 DELETE FILE BD4.dbf
COPY FILE a:\DROS.dbf TO c:\foxpro\AGU\DROS.dbf
COPY FILE a:\HAR.dbf TO c:\foxpro\AGU\HAR.dbf
COPY FILE a:\B.dbf TO c:\foxpro\AGU\B.dbf
COPY FILE a:\MON.dbf TO c:\foxpro\AGU\MON.dbf
COPY FILE a:\BD3.dbf TO c:\foxpro\AGU\BD3.dbf
COPY FILE a:\BD4.dbf TO c:\foxpro\AGU\BD4.dbf
show menu M 
show popup b2
show popup a4 
DEAC WIND w
retur
**** процедур  фон  меню ****
PROC zast
@  5 , 1   say'      '                                                                         
@  6 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  7 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  8 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  9 , 1   say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                               
@  10 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  11 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                   
@  12 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                              
@  13 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                              
@  14 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                            
@  15 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                            
@  16 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                         
@  17 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  18 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                           
@  19 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                         
@  20 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                 
@  21 , 1  say'      °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'                                                            
@  22 , 1  say'      '                                                          
?'       ' 
?'                           СЕГОДHЯ: '+dtoc(date())+''
RETU
         **** процедур  выход  в FOXPRO *****
proc cancel
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU
          **** Процедур  поиск  ****
PROC PO
define window find from  1 , 1  to  23 ,  60  title ;
'
...поиск...' double 
acti wind find
store SPACE( 15 ) to U
@  17 , 10  say'ESC-Выход'
@  1 , 9  say'Инв.ь,процессор или р бочее место:' get U  picture  ('xxxxxxxxxxxxxxx')
@  4 , 12  say'      Где иск ть?'
read
k= 0 
@  5 , 5   prompt 'БД Х р ктеристик  компов'
@  7 , 5   prompt 'БД Д нные о ПК'
@  9 , 5   prompt 'БД Мониторы '
@  11 , 5  prompt 'БД Амортиз ция з  прошлый месяц'
@  13 , 5  prompt 'БД Амортиз ция з  отчетный месяц'
@  15 , 5  prompt '         Отмен        '
menu to k
do case
case k= 1 
use C:\FOXPRO\agu\har.dbf
brow title 'Х р ктеристик  компов';
field invn:h='Инв.ь',;
video:H='Видеок рт ',;
cpu:H='Процессор',;
hdd:H='Ж.диск',;
ram:H='ОЗУ',;
npk:H='ь ПК',;
rabm:H='Р б.место' FOR cpu=U .OR. U=invn.OR.u=rabm

case k= 2 
use C:\FOXPRO\agu\b.dbf
brow title 'Д нные о ПК';
field invn:H='Инвент.ь',;
ps:H='Первон ч.ст-сть',;
dve:H='Д т  ввод  в экс-ию',;
spi:H='Срок полез.исп.' FOR U=invn

case k= 3 
use C:\FOXPRO\agu\mon.dbf
brow title 'Мониторы';
field INVM:H='Инв.ь монитор ',;
naim:H='Н именов ние',;
invn:H='Инв.ь сист.блок ',;
RABM:H='Р бочее место',;
thar:h='Тех.х р-ки' FOR U=invn.OR.u=rabm

case k= 4 
use C:\FOXPRO\agu\bd3.dbf
brow title 'Амортиз ция з  прошлый месяц' FIEL n:H='Аморт.з  прошл.мес.',amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',invn:H='Инвент.номер' FOR U=invn
case k= 5 
use C:\FOXPRO\agu\bd4.dbf
brow title 'Амортиз ция з  отчетный месяц';
fields n:H='Аморт.з  прошл.мес.',;
amm1:H='Аморт.з  мес.',;
am1:H='Аморт.включ я отчетн.мес.',;
invn:H='Инвент.номер' FOR U=invn
case k= 6 
deacti wind find
endcase
do wixod 
retu
proc wixod
define window w1 from  7 ,  25  to  12 ,  55  ;
double color scheme  9 
acti wind w1
k= 0 
@  1 , 2  say'     Продолжить поиск? '
@  3 , 2   prompt'  Нет   '
@  3 , 20  prompt'  Д     '
menu to k
do case
case k= 1 
hide wind w1
deacti wind w1
do po
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu    
           **** процедур  выход  в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU
******
proc nd
close all
set talk off
clear
DEFI WINDOW W1 FROM  9 , 13  TO  13 , 64  title"КОПИРОВАНИЕ"DOUBLE SHADOW COLOR  0 / 5 , 1 / 2 , 3 / 4 
acti wind w1 in w5
i= 1 
I1= 0 
@ 1 , 0  SAY '                                                 'color N/n
do while i< 49 
@ 1 ,i say ''  color b+/n
@ 1 , 0  get i1 pict '999'+'%'
=inkey( 0 . 0001 )
i=i+ 1 
I1=I1+ 2 . 16 
enddo
deac wind w1
clear
           **** процедур  печ ти ****
PROCEDURE pech1
type C:\FOXPRO\AGU\VED.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p2
type C:\FOXPRO\AGU\AM.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p3
type C:\FOXPRO\AGU\MONITOR.TXT to print
CLEAR
CLOSE ALL
retur
PROCEDURE p4
type C:\FOXPRO\AGU\DROS1.TXT to print
CLEAR
CLOSE ALL
retur
Блин. Не получилось кодировку нормальную сделать... Вот. Там написаны две процедуры выхода в FoxPRO и в Windows, а где они используются и как у себя их разместить я не понял.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812077
dmitryx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедуры эти вызываются из меню. Где их разместить это тебе решать, можно в главном файле проекта или в отдельной библиотеке процедур и функций. А вообще до сентября времени много - успеешь Попова с начала и до конца прочитать, чтобы не возникало подобных вопросов =)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812422
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryxПроцедуры эти вызываются из меню.Хэк... :-) Ну это я понял. ;-) dmitryxГде их разместить это тебе решать, можно в главном файле проекта или в отдельной библиотеке процедур и функций.Ты меня не понял. Я не пойму как сослаться на эти процедуры, чтобы у меня было также как в программе. Т.е. после нажатия на кнопку "Выход" появлялось меню: "В FoxPro" и "В Windows" и соответственно выполнялось. dmitryxА вообще до сентября времени много - успеешь Попова с начала и до конца прочитать, чтобы не возникало подобных вопросов =)Слушай, я, конечно, извиняюсь, но ты не наглей! Во-первых, в этой книге больше 600 страниц! Во-вторых, оригинала у меня уже нет, т.к. эта была не моя книга, а для читального зала политеха и при этом она одна во всём городе Барнауле! А по электронной многого не сделаешь, т.к. там, как мы тут выяснили, до фига синтаксических ошибок, разбирать которые новичку очень трудоёмкое занятие! А, в-третьих, мне уже дали задание по математике и английскому на третий семестр. И я хочу их по-быстрее сделать, чтобы потом было время сделать лабы и написать рефераты.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812512
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok...ты не наглей...
Ты понял ЧТО сказал??? :-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812741
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паренек, если тебе надо, чтоб тебе помогли сделать курсовую, но при этом тебе не хочется ничему научиться, то тебе здесь не помогут. Особенно если ты так себя ведешь.
Как ты думаешь, что побуждает обитателей данной конференции отвечать на вопросы новичков? Денег они за это не получают. За себя скажу: лично мне приятно, когда молодой человек в результате такого общения что-то полезное усвоит, это и есть моя единственная мотивация. При этом подразумевается, что спрашивающий сам проделает большую часть работы, пропустит то, что ему присоветуют, через себя, обобщит опыт, полученный при разборе конкретного примера в знание.
А вот людей, которые за чужой счет жить пытаются, я не люблю.
Если тебе не интересно то, для чего затевалась твоя курсовая, и ты даже открытым текстом пишешь, что появление FoxPro в твоей биографии есть досадная помеха, а не повод чему-то научиться, то зачем ты сюда пришел?
Вот ты пишешь ВладимируМ: "Давай я тебе пришлю архив со всеми файлами и ты поможешь мне сделать курсовую." Ну и кого ты пытаешься обмануть? Себя? Ведь такие вещи называются не помощью, вот ты так и написал бы: "Давай я тебе пришлю архив со всеми файлами и ты сделаешь за меня курсовую." Так честно. Но поможет ли тебе кто-нибудь? Да, вероятно, если ты найдешь способ заинтересовать человека, убедишь его потратить свое время на тебя. Как ты это можешь сделать? Ну поскольку нематериальная мотивация у тебя не вышла, остается материальная. Кто-нибудь, из тех, кто делает курсовики за деньги, обязательно тебе поможет, если договоритесь, конечно. Я - нет. Хотя были времена и обстоятельства, когда я этим не гнушался, каюсь, был грех. Но это в прошлом. Моя теперешняя позиция такова: если человек выдает результат чужого умственного труда за свой в ВУЗе, то он и потом будет это делать. Если потом он окажется моим коллегой, мне от этого будет хуже, и этого мне уже никто не скомпенсирует. Ну и не только это соображение, есть и другие. Короче, учиться надо своим умом.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33812997
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyok...ты не наглей...
Ты понял ЧТО сказал??? :-(Я-то понял. А тебе слово ИЗВИНИ ничего не говорит???!!! :-|
UrriПаренек, если тебе надо, чтоб тебе помогли сделать курсовую, но при этом тебе не хочется ничему научиться, то тебе здесь не помогут.Во-первых, ты глубоко заблуждаешься!!! Я хочу научиться! У тебя, конечно же сразу возникнет вопрос: "А чё ж не учишься?". Я отвечу, ещё раз, т.к. я уже свою ситуацию объяснял. На этот раз объясню подробно! Я живу в Барнауле, в городе, где имеется всего лишь одна единственная оригинальная книга Попова в читальном зале политеха. Т.к. я инвалид 1-ой группы 3-ей степени, то не могу придти в политех и провести там целый день, выискивая то, что мне надо! Поэтому, мама взяла мне книгу под залог на 4 дня, оставив там 500 рублей. Дальше её необходимо было продлять. Продление обходилось 50 копеек в час. Я решил, что оставлю книгу до среды, т.к. в среду у меня был экзамен по математике и были занятия у препода по информатике. Освободившись, препод минут 15 думал как довести до ума пример из книги Попова про гостиницу! ПРЕПОД!!! Потом дал мне курсовую моего одногрупника и сказал, чтобы я на её основе сделал свою. Теперь Redrik надеюсь ты понимаешь почему я сказал "...не наглей..." (причём не тебе!!!). Из всего выше сказанного следует отметить, что если даже мой препод не смог довести до ума пример из книги, причём имея оригинал(!!!), то неужели я не имею права задать пару вопросов, на которые Вам ответить - это всё равно, что конфету развернуть! Может быть я немного преувеличил, но я думаю многие знают как решить мою проблему с процедурами, но не отвечают, дабы показать свою гордость, типа "вот он спрашивает о том, что и сам может прочитать в книге! А нет, тратит своё и чужое время..." Интересно, как бы ты, Urri, поступил бы на моём месте? UrriОсобенно если ты так себя ведешь.Хм... А как я себя веду, позволь спросить?
UrriКак ты думаешь, что побуждает обитателей данной конференции отвечать на вопросы новичков? Денег они за это не получают.Во-первых, жалость. Во-вторых, если вопрос не сложный для того, кто несколько лет работает с FoxPro, то почему бы и не ответить? Вот ты, лично, что ожидал увидеть, зайдя на эту тему? UrriЗа себя скажу: лично мне приятно, когда молодой человек в результате такого общения что-то полезное усвоит, это и есть моя единственная мотивация. При этом подразумевается, что спрашивающий сам проделает большую часть работы, пропустит то, что ему присоветуют, через себя, обобщит опыт, полученный при разборе конкретного примера в знание.Хм... А что, про меня этого не скажешь?! :-( UrriА вот людей, которые за чужой счет жить пытаются, я не люблю.А я, что, такой? 8-О UrriЕсли тебе не интересно то, для чего затевалась твоя курсовая, и ты даже открытым текстом пишешь, что появление FoxPro в твоей биографии есть досадная помеха,Погоди-погоди! Это где ж я такое писал??? Urriа не повод чему-то научиться, то зачем ты сюда пришел?Я думаю, что всё вышесказанное ПОЛНОСТЬЮ отвечает на этот вопрос. UrriВот ты пишешь ВладимируМ: "Давай я тебе пришлю архив со всеми файлами и ты поможешь мне сделать курсовую." Ну и кого ты пытаешься обмануть? Себя? Ведь такие вещи называются не помощью, вот ты так и написал бы: "Давай я тебе пришлю архив со всеми файлами и ты сделаешь за меня курсовую." Так честно.Во-первых, у меня дефект речи и со мной очень тяжело общаться. Из-за этого я не могу более полно выражать свои мысли. Моё предложение ВладимируМ следует понимать следующим образом. Я ему высылаю этот архив с контретной проблемой. Он смотрит, помогает исправить ошибку и высылает мне архив обратно с доработанной программой и пояснениями о том почему у меня была ошибка. Дальше я продолжаю делать курсовую до тех пор, пока у меня не появится очередная непонятная проблема. В этом случае я отсылаю ему вновь архив и он мне её исправляет. Так, я примерно за неделю доделал бы курсовую, т.к. там мне немного осталось. UrriНо поможет ли тебе кто-нибудь? Да, вероятно, если ты найдешь способ заинтересовать человека, убедишь его потратить свое время на тебя.Если ты смеешь так говорить, то я вообще не понимаю что тебя заставило зайти на эту тему??? UrriКак ты это можешь сделать? Ну поскольку нематериальная мотивация у тебя не вышла, остается материальная. Кто-нибудь, из тех, кто делает курсовики за деньги, обязательно тебе поможет, если договоритесь, конечно. Я - нет. Хотя были времена и обстоятельства, когда я этим не гнушался, каюсь, был грех. Но это в прошлом. Моя теперешняя позиция такова: если человек выдает результат чужого умственного труда за свой в ВУЗе, то он и потом будет это делать. Если потом он окажется моим коллегой, мне от этого будет хуже, и этого мне уже никто не скомпенсирует. Ну и не только это соображение, есть и другие. Короче, учиться надо своим умом.Вот как да? И как тебе только не стыдно такое говорить? М-да... Если ты мне такое говоришь, то я думать боюсь, что ты бы сказал моему преподу, который даже пример из книги довести до ума не смог!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813079
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя вообще не понимаю что тебя заставило зайти на эту тему???А то, что когда-то я именно с примерами из книги Попова разбирался, и разобрался же! И если бы ты спросил как надо, я бы, конечно, помог. Впрочем, никто тебе не мешает исправиться. Задай вопрос так, чтобы я на него захотел ответить - и я отвечу.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813099
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
parenyok
Во-первых, у меня дефект речи и со мной очень тяжело общаться. Из-за этого я не могу более полно выражать свои мысли. Моё предложение ВладимируМ следует понимать следующим образом. Я ему высылаю этот архив с контретной проблемой. Он смотрит, помогает исправить ошибку и высылает мне архив обратно с доработанной программой и пояснениями о том почему у меня была ошибка. Дальше я продолжаю делать курсовую до тех пор, пока у меня не появится очередная непонятная проблема. В этом случае я отсылаю ему вновь архив и он мне её исправляет. Так, я примерно за неделю доделал бы курсовую, т.к. там мне немного осталось.

А при чем здесь, на форуме – дефект речи, тут вроде как нужно - письменно, а не устно излагать свои мысли. И вообще, тебе не приходила в голову такая мысль, что у ВладимираМ есть еще и работа, за которую ему деньги платят. (Если тебе не известно, то знай – за ответы на форуме – денег не платят!)

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

И поэтому, полностью согласен с - Urri
Urri
Задай вопрос так, чтобы я на него захотел ответить…
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813145
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, всего на полчасика опоздал... Так хотелось свои 5 коп. насчет "дефекта речи" ввернуть... :-)))

parenyok! Жалость - препаскуднейшее из чЮйств человеческих! Забудь это слово!
Тем более не нужно постоянно пытаться вызывать это чувство в свой адрес!
Проблема не в том, инвалид ты или здоров, как бык... Тем более - в инете!
Проблема в умении вежливо себя вести, и уж тем более тогда, когда просишь помощи! А ты, как уже подметили, действуешь на грани наглости...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813154
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Уважемый parenyok будьте, пожалуйста, вежливы к участникам форума
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813232
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urri авторя вообще не понимаю что тебя заставило зайти на эту тему???А то, что когда-то я именно с примерами из книги Попова разбирался, и разобрался же!Ну вот ты разобрался, а препод не смог! А если даже препод не смог, то, что уж говорить обо мне. UrriИ если бы ты спросил как надо, я бы, конечно, помог. Впрочем, никто тебе не мешает исправиться. Задай вопрос так, чтобы я на него захотел ответить - и я отвечу.Хорошо, постараюсь. Переделывая курсовую своего одногрупника под свою, я захотел изменить опцию выхода из программы, для чего использовал программу, в которой как раз были две процедуры выхода в FoxPro и в Windows. Но, к сожалению, я никак не могу найти то место в программе, где они вызываются. Ну как, получилось? :-(
-)А при чем здесь, на форуме – дефект речи, тут вроде как нужно - письменно, а не устно излагать свои мысли.Читай внимательней!!! parenyok
...у меня дефект речи и со мной очень тяжело общаться. Из-за этого я НЕ МОГУ БОЛЕЕ ПОЛНО ВЫРАЖАТЬ СВОИ МЫСЛИ ... Это значит, что все те высказывания, которые Redrik назвал "действуешь на грани наглости", просто неудачные шутки! Просто все те, с которыми я переписывался, понимали, где я шучу, а где говорю всерьёз. Для этого есть специальные обозначения - смайлики называются, которыми пользуются практически все юзеры инета! Я здесь, вроде бы, везде, где шутил, использовал смайлики. Уж не знаю, в чём я так провинился? :-( -)И вообще, тебе не приходила в голову такая мысль, что у ВладимираМ есть еще и работа, за которую ему деньги платят. (Если тебе не известно, то знай – за ответы на форуме – денег не платят!)А на форуме он зарегился для чего? -)Помочь в решении твоих проблем (какими бы критичными они не были для тебя) здесь могут исключительно на добровольной основе. Но стиль изложения твоих постов (где-то даже, на грани наглости) – совершенно не вдохновляет делать – это.

И поэтому, полностью согласен с - Urri
Urri
Задай вопрос так, чтобы я на него захотел ответить…
Ну я выше попробовал перезадать вопрос. Надеюсь, получилось...
RedrikЭх, всего на полчасика опоздал... Так хотелось свои 5 коп. насчет "дефекта речи" ввернуть... :-)))А что такое? Что? Если человек страдает такой болезню как инвалидность, то над ним и посмеяться не стыдно? :-/ Redrikparenyok! Жалость - препаскуднейшее из чЮйств человеческих! Забудь это слово!Ох, ну и бессердечный же ты! :-< RedrikТем более не нужно постоянно пытаться вызывать это чувство в свой адрес!М-да... Посмотрел бы я на тебя, очутись ты в подобной ситуации! Redrik
Проблема не в том, инвалид ты или здоров, как бык... Тем более - в инете!
Проблема в умении вежливо себя вести, и уж тем более тогда, когда просишь помощи! А ты, как уже подметили, действуешь на грани наглости...Ой! Ну извините меня великодушно. Ну пошутил пару раз неудачно. И что, теперь всем форумом будете меня ненавидеть? :-(((
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813251
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отбрасывая "шелуху", одно из двух:
1. Я тебе не верю!
2. Тебя жутко разбаловали постоянным сочувствием!

И не надо тут давить на "бессердечность", не зная собеседника! :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33813512
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо.

Как вообще вызываются процедуры? Вот так:
Код: plaintext
DO имя_процедуры [IN имя_процедурного_файла]
Как твои процедуры выхода называются?
END и QUIT (кстати, и то и другое - это команды FoxPro, а свои процедуры так называть если и не недопустимо, то очень плохо - переименуй хотя бы в MY_END и MY_QUIT).

Ты можешь поиском пользоваться в текстовом редакторе? Ну и попробуй в основной программе хоть где-нибудь найти строки END и QUIT. Наверное, не найдешь. ;-)

Далее ты начнешь вдумчиво читать код и анализировать, что же делает каждая команда. Наконец, ты найдешь вот это:
Код: plaintext
1.
2.
3.
4.
5.
...
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
...
on selection pad vih of mainmenu activate window w5
...
Что это? По меню Выход у тебя активизируется окно w5. (Кстати, где оно до этого определяется?)

А что должно быть? Выход?

Ну и что надо написать после:
Код: plaintext
on selection pad vih of mainmenu ...
?

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

Как вообще вызываются процедуры? Вот так:
Код: plaintext
DO имя_процедуры [IN имя_процедурного_файла]
Как твои процедуры выхода называются?
END и QUIT (кстати, и то и другое - это команды FoxPro, а свои процедуры так называть если и не недопустимо, то очень плохо - переименуй хотя бы в MY_END и MY_QUIT).

Ты можешь поиском пользоваться в текстовом редакторе? Ну и попробуй в основной программе хоть где-нибудь найти строки END и QUIT. Наверное, не найдешь. ;-)

Далее ты начнешь вдумчиво читать код и анализировать, что же делает каждая команда. Наконец, ты найдешь вот это:
Код: plaintext
1.
2.
3.
4.
5.
...
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
...
on selection pad vih of mainmenu activate window w5
...
Что это? По меню Выход у тебя активизируется окно w5. (Кстати, где оно до этого определяется?)

А что должно быть? Выход?

Ну и что надо написать после:
Код: plaintext
on selection pad vih of mainmenu ...
?

Я ответил.
Код: plaintext
on selection pad vih of mainmenu do konec.and.do vihod
(konec и vihod - процедуры выхода в FoxPro и в Windows соответственно)? У меня в этом случае в этой строке появляется синтаксическая ошибка, почему-то. Просмотрев код программы, из которой я взял процедуры выхода, я вот что нашёл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
.....................
defi menu m  SHADOW 
..........................
defi pad n5 of m prom ' Выход 'at  1 , 55  COLOR scheme  4  
...............................
on pad n5 of m acti popup a5
...............................
**** A5 ****
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do CANCEL
on sele bar  2  of a5 do quit
..................................
         **** процедур  выход  в FOXPRO *****
proc cancel
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU
.............................................         
           **** процедур  выход  в Windows *****
proc quit
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU
...........................................
У себя я сделал вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
set century on
set date to german
set bell to  300 , 1 
set clock off && выключение часов
close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

   Я Я Я                                                                 
   Я     Я Я Я  Я Я Я  Я Я Я  Я     Я  Я     Я  Я     Я  Я    Я     Я Я   
   Я     Я   Я  Я        Я    Я    ЯЯ  Я     Я  Я    ЯЯ  Я    Я   Я     Я 
   Я     Я   Я  Я        Я    Я   Я Я  Я Я Я Я  Я   Я Я  Я    Я   Я Я Я Я
   Я     Я   Я  Я        Я    Я  Я  Я  Я     Я  Я  Я  Я  Я    Я   Я     Я
   Я     Я Я Я  Я Я Я    Я    Я Я   Я  Я     Я  Я Я   Я  Я Я Я Я  Я     Я
                                                               Я                        


                              Данные о посетителях.
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELP.PRG').or.file('HELP.TXT')
 on key labe F1 do HELP.TXT
 endif
*set defa to KURS

set clock on
set color to  w,w/b, r/w && установка цвета - белый на синем,	
set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  0 , 71 
defi wind EWIND from  0 , 0  to  4 , 79  color gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления
k=td1( 20 ,date())
                
@  10 , 1  say'   Я Я Я                                                                 '
@  11 , 1  say'   Я     Я Я Я  Я Я Я  Я Я Я  Я     Я  Я     Я  Я     Я  Я    Я     Я Я  ' 
@  12 , 1  say'   Я     Я   Я  Я        Я    Я    ЯЯ  Я     Я  Я    ЯЯ  Я    Я   Я     Я' 
@  13 , 1  say'   Я     Я   Я  Я        Я    Я   Я Я  Я Я Я Я  Я   Я Я  Я    Я   Я Я Я Я'
@  14 , 1  say'   Я     Я   Я  Я        Я    Я  Я  Я  Я     Я  Я  Я  Я  Я    Я   Я     Я'
@  15 , 1  say'   Я     Я Я Я  Я Я Я    Я    Я Я   Я  Я     Я  Я Я   Я  Я Я Я Я  Я     Я'
@  16 , 1  say'                                                               Я         '               

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad gosti of mainmenu prompt'\<Список гостей' at  5 , 7 ;
message 'Ввод, просмотр и редакторование данных по количеству гостей в гостинице.'
define pad etaji of mainmenu prompt'\<Этажи' at  5 , 25 ;
message 'Просмотр этажей гостиницы'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'

********Добавлено****************
defi popup a5 from  2 , 55  SHADOW COLOR scheme  4 
defi bar  1  of a5 prom 'FoxPro'color ,,,, 4 */ 9 , 4 */ 9 
defi bar  2  of a5 prom 'Windows'color ,,,, 4 */ 9 , 4 */ 9 

on sele bar  1  of a5 do conec
on sele bar  2  of a5 do vihod
*********************************
on selection pad gosti of mainmenu do guests.prg
on selection pad etaji of mainmenu do floor.prg
on selection pad pom of mainmenu do help.txt 
on selection pad vih of mainmenu do acti poput a5 *Изменённая строка

acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51'
@ 2 , 27  say'Сегодня: '+k 
acti menu mainmenu


************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
return sd
**** Процедура выхода ****
         **** процедура выхода в FOXPRO *****
proc konec
define window vf from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vf in w5 
A= 0 
B= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В FOXPRO ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
DEACTI WIND ALL
CANCEL
else
DEAC WIND vf
ENDIF
RETU

**** процедура выхода в Windows *****
proc vihod
*para mpoup, mprompt, mbar
define window vnc from  7 , 13  to  15 , 58   title '"ВНИМАНИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc in w5
A= 0 
b= 0 
@  1 , 2  SAY 'ВЫ ДЕЙСТВИТЕЛЬНО ХОТИТЕ ВЫЙТИ В Windows ?' 
@  4 , 11  GET A FUNC '*   ДА' 
@  4 , 29  GET B FUNC '*  НЕТ' 
READ
IF A= 1 
deacti wind m1
quit
else
DEAC WIND vnc
ENDIF
RETU

return sd
Но всё равно в изменённой строке, почему-то, выдаётся синтаксическая ошибка. Помогите, пожалуйста, что я сделал не так.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33815865
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
on selection pad vih of mainmenu acti popup a5 &&Изменённая строка
* Вроде так
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33817538
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой! Спасибо!!! Вот до чего невнимательность доводит! :-) Но ошибка всё равно есть. Странно! :'-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33825684
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу ты, блин! Неправильно строку прочитал! Там же do-то нету, а я всё с этим do маялся! Уф! Теперь операции выхода работают! Теперь проблема в следующем. Не могу запустить файл помощи (свой). Вот текст программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
set proc to floor.prg 
if file('help.txt') 
close alte to 
do ModiDisp with 'help.txt' 
else 
set alte to help.txt 
set alte on 
?'Файл помощи удален!!! Разбирайся сам.' 
close alte to 
do ModiDisp with 'help.TXT'  
endif 
set proc to 
return
Ошибка в строке do ModiDisp with 'help.txt' (в первой сверху) "Файл MODIDISP.PRG не существует.". Но он там и не нужен, т.к. я этот файл (help.prg) из курсовой одногрупника скопировал к себе. Сначала у меня также появлялась эта ошибка. Подредактировав первую строку, у меня файл помощи стал открываться. Но после добавления функций выхода - опять эта ошибка появилась. Помогите, пожалуйста, исправить эту ошибку.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33826306
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторWhen you execute a procedure with DO <procedure name>, FoxPro searches for the procedure in a specific order.
► First, the file containing DO <procedure name> is searched.
► Second, a procedure file opened with SET PROCEDURE (if one is set) is searched.
► Third, FoxPro looks through the programs in the execution chain. Program files are searched beginning with the most recently executed program and continuing back to the first executed program.
► Fourth, a procedure file opened with SET LIBRARY (if one is set) is searched.
► Fifth, FoxPro searches for a stand-alone program file. If a program file with the same name as the file name specified with DO is found, the program is executed. If a matching program file name isn't found, an error message "File doesn't exist" is returned.

Если ты даешь команду "do ModiDisp", то процедура ModiDisp должна быть в одном из указанных мест.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828129
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!! :-P Нашёл в одной программе из курсовой одногрупника процедуру ModiDisp, поставил себе и файл помощи запустился! :-P Уфф! Теперь проблема в следующем. Вот программа, в которой описываются БД гостей в гостинице и все операции над ней:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  20 , 95 ; 
titl '<<< Список гостей >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
brow ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT
rele wind SFEDIT
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELP.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
return
Проблема в процедуре редактирования записей БД гостей.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
****************** Процедура редактирования записей БД гостей ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
Программа запускается, окно редактирования открывается, но вот данные после редактирования не изменяются. Конечно по заданию курсовой эта процедура не нужна, но всё-таки хочется, чтобы она у меня была. Также проблема в процедуре добавления гостя.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
return
После вызова этого окна, оно появляется но после ввода характеристик гостя также ничего не изменяется.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828688
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найди отличия:
Код: plaintext
1.
2.
3.
4.
5.
6.
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33828925
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не изменяется где? В окне browse после закрытия окна редактирования?
Или в самой табличке? А что будет, если закрыть окно browse после редактирования и переоткрыть его? Изменения появятся?
Если да, то вот самая простая (если надо срочно исправить) технология:
обрами команду browse следующей конструкцией:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
private p_end
p_end = .F.
do while not p_end
  browse...
enddo
...
Далее измени on key labe F10 keyboard '{Ctrl+END}' на
Код: plaintext
on key labe F10  do do_vih
Добавь процедуру do_vih туда же, к остальным процедурам (red_v, dob, del)
Код: plaintext
1.
2.
3.
procedure do_vih
  p_end = .T.
  keyboard '{Ctrl+END}'
return
И еще в каждую из процедур red_v, dob, del перед операторами return добавь по строчке
Код: plaintext
1.
2.
3.
4.
proc dob
...
keyboard '{Ctrl+END}'
return
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33830706
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikНайди отличия:
Код: plaintext
1.
2.
3.
4.
5.
6.
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
Отличия (перед тем как их перечислять, отмечу, что я также скопировал эту программу из курсовой одногрупника и переделываю под свою!):
1) 1-ая процедура удаления, а 2-ая - процедура ввода БД гостей;
2) Кнопки "Ок" и "Отмена" находятся на разных местах, т.к. я также захотел поменять их местоположение, но для процедуры удаления пока ещё не дошёл.
3) всвязи с различием процедур, используются соответствующие команды.
Вроде всё... А я не понял, к чему ты мне привёл эти две процедуры? Тест на сообразительность? :-)
UrriНе изменяется где? В окне browse после закрытия окна редактирования?
Или в самой табличке?Извини. Я не понял про что ты спрашиваешь. У меня открывается окно, в котором список гостей. Я вызываю окно редактирования. После того, как я вношу изменения, у меня в первом окне ничего не меняется. UrriА что будет, если закрыть окно browse после редактирования и переоткрыть его? Изменения появятся?Нет...
Если да, то вот самая простая (если надо срочно исправить) технология:
обрами команду browse следующей конструкцией:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
private p_end
p_end = .F.
do while not p_end
  browse...
enddo
...
Далее измени on key labe F10 keyboard '{Ctrl+END}' на
Код: plaintext
on key labe F10  do do_vih
Добавь процедуру do_vih туда же, к остальным процедурам (red_v, dob, del)
Код: plaintext
1.
2.
3.
procedure do_vih
  p_end = .T.
  keyboard '{Ctrl+END}'
return
И еще в каждую из процедур red_v, dob, del перед операторами return добавь по строчке
Код: plaintext
1.
2.
3.
4.
proc dob
...
keyboard '{Ctrl+END}'
return
[/quot]Добавил. Почему-то выдаётся синтаксическая ошибка в строке
Код: plaintext
on key labe F10  do do_vih
Может, что не так сделал. Вот отредактированная программа. Если найдёшь какие-то неточности, пожалуйста, укажи.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  20 , 95 ; 
titl '<<< Список гостей >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10 do do_vih
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
private p_end
p_end = .F.
do while not p_end
browse ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT
rele wind SFEDIT
enddo
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELP.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
keyboard '{Ctrl+END}'
return
******************************************************************
procedure do_vih
p_end = .T.
keyboard '{Ctrl+END}'
return
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831056
Uггi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831290
Uггirele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.

Urri, я конечно дико извиняюсь, но как это будет выполняться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
?
Ведь по тексту выходит, что i=0 ВСЕГДА!!! Поэтому команда gather from s не выполнится НИКОГДА!!!

2 parenyok:
По приведенному фрагменту: прочитай в Попове раздел "Средства управления в стиле Windows" подраздел "триггерные кнопки"... И разбери приведенный там пример...
Кроме того, есть такой инструмент как ДЕБАГГЕР (отладчик, по русски говоря). Выполняешь программу пошагово (по клавише F8 в FPD) и смотришь где и что у тебя меняется; что выполняется, а что нет. После этого долго думешь - а почему это получилось не так, как ты хотел... И читаешь умные книжки... И еще думаешь.... И только после этого идешь спрашивать...
И приводи только тот фрагмент, который ты отлаживаешь, и где, как ты думаешь, у тебя возникла ошибка - в противном случае твоя ошибка останется незамеченной...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831311
Ужас, летящий на крыльях ночи
Кроме того, есть такой инструмент как ДЕБАГГЕР (отладчик, по русски говоря). Выполняешь программу пошагово (по клавише F8 в FPD) и смотришь где и что у тебя меняется; что выполняется, а что нет. После этого долго думешь - а почему это получилось не так, как ты хотел... И читаешь умные книжки... И еще думаешь.... И только после этого идешь спрашивать...


Одна прописная истина помогла мне в свое время:
"Компьютерная программа выполняет то, что ей приказали сделать, а не то, что бы Вы хотели, чтобы она сделала..."
Например, фрагмент
Код: plaintext
1.
2.
3.
4.
5.
i= 0 
....
if i= 1 
gather from s
ENDIF
не выполнится никогда просто потому, что i<>1 ...
Выловить такие ошибки и помогает ДЕБАГГЕР...
Очень жаль, что во время написания контрольных работ на С++ ты не научился пользоваться таким полезным инструментом... Но еще не все потеряно...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831443
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночи Uггirele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.

Urri, я конечно дико извиняюсь, но как это будет выполняться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
?
Ведь по тексту выходит, что i=0 ВСЕГДА!!! Поэтому команда gather from s не выполнится НИКОГДА!!!
Вот в это я не вникал как-то ;-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831445
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по поводу дебагера (включить который в нужном месте, кстати, можно, поставив туда set step on) - очень поддерживаю.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831690
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 parenyok
Теперь понял, что я тебя не на сообразительность испытывал, а на понимание то, что уже сказал "ужас..."?

Код: plaintext
1.
2.
i= 0 
a= 0 
b= 0 

Какой смысл менять a и b , а потом проверять i на предмет его неравенства 0 ?!

Или в C++ такие фокусы проходят? ;-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831693
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokНу сжальтесь над человеком, помогите кто чем может! До 18-го сделать надо, а ещё и отчёт делать! БЛИИИИИИИИИИИИИИН! :-(((((((((
Речь, кажись, шла о 18-ом июня ...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831960
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Uггirele wind SFEDIT
enddo

Местами поменяй.
А так вроде все как надо.Поменял... Не помогло... :-((

А по поводу того, что вы мне тут наговорили, я хочу опубликовать все тексты программ (их 5) из курсовой своего одногрупника, которую препод очень похвалил.
Итак, текст 1-ой программы - MMM.PRG (главная программа):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
parameters progr
clea
clea all
set prin off
set cons on
set talk off
set conf on
set safe off
set esca off
SET CENTURY ON
set date to german
set bell to  300 , 1 
set clock off && выключение часов
close all && зыкрытие всех баз данных
set cursor off && выключение курсора
set talk off && отмена выдачи протокола 
set deleted on
clear && очистка экрана
define window p1 from  10 , 39  to  12 , 41 
define window m from  16 , 14  to  18 , 67  doubl float  color scheme  7             
activate window p1
store  12  to i,i1
store  40  to j,j1
&& цикл разворачивания окна
do while i# 0 .or.j# 0 .or.i1# 24 .or.j1# 79  
f= 0 
i=iif(i> 0 ,i- 1 , 0 )
j=iif(j> 0 ,j- 2 , 0 )
i1=iif(i1< 24 ,i1+ 1 , 24 )
j1=iif(j1< 79 ,j1+ 2 , 79 )
zoom window p1 norm at i,j to i1,j1
enddo
text && вывод на экран заставки, начало text

 ЯЯЯ       ЯЯЯ   
  ЯЯ      ЯЯ  
  ЯЯ     ЯЯ 
  ЯЯ  ЯЯ         ЯЯЯ     ЯЯЯ  ЯЯЯЯ     ЯЯЯЯ   ЯЯЯЯ     ЯЯЯЯ     ЯЯЯ  ЯЯ
  ЯЯ    ЯЯ        ЯЯ     ЯЯ     ЯЯ     ЯЯ      ЯЯ       ЯЯ    ЯЯ     ЯЯ
  ЯЯ     ЯЯ       ЯЯ     ЯЯ      ЯЯ   ЯЯ       ЯЯ       ЯЯ     ЯЯ    ЯЯ
  ЯЯ      ЯЯ      ЯЯ ЯЯЯ ЯЯ        ЯЯЯ         ЯЯ ЯЯЯЯЯ ЯЯ       ЯЯ  ЯЯ
  ЯЯ       ЯЯ           ЯЯ       ЯЯ   ЯЯ       ЯЯ       ЯЯ      ЯЯ   ЯЯ
  ЯЯ        ЯЯ         ЯЯ       ЯЯ     ЯЯ      ЯЯ       ЯЯ     ЯЯ    ЯЯ
 ЯЯЯ        ЯЯЯ     ЯЯЯЯ      ЯЯЯЯ     ЯЯЯЯ   ЯЯЯЯ     ЯЯЯЯ  ЯЯЯЯ    ЯЯЯ 







                        Приятно Вам поработать!
endtext && завершение вывода, endtext

save screen to jonny && сохраняем экран в переменную jonny
activate wind m
@ 0 , 5  say'Для пpодолжения pаботы нажмите любую клавишу.'
read

clear windows && убирает из памяти все окна
set cursor on && включение курсора
SET COLOR TO gr


*set defa to c:\

do menugl 

proc menugl
*--- помощь, если есть файл помощи ---*
 if file('HELPM.PRG').or.file('HELPM.FXP')
 on key labe F1 do HELPM.PRG
 endi
*set defa to KR

set cloc on
*set color to  w,w/b, r/w && установка цвета - белый на синем,	
*set color to  1 / 2 ,b/g+,gr+/rb+ 
&& а для часов красный на белом
SET CLOCK TO  3 , 70 
defi wind EWIND from  0 , 0  to  4 , 79  colo gr+/r,gr+/r,gr+/r 
set hours to  24  && установка  24  часового исчисления
k=td1( 20 ,date())
@  10 , 1  say' ЯЯЯ       ЯЯЯ   '
@  11 , 1  say'  ЯЯ      ЯЯ  '
@  12 , 1  say'  ЯЯ     ЯЯ '
@  13 , 1  say'  ЯЯ  ЯЯ         ЯЯЯ     ЯЯЯ  ЯЯЯЯ     ЯЯЯЯ   ЯЯЯЯ     ЯЯЯЯ     ЯЯЯ  ЯЯ'
@  14 , 1  say'  ЯЯ    ЯЯ        ЯЯ     ЯЯ     ЯЯ     ЯЯ      ЯЯ       ЯЯ    ЯЯ     ЯЯ'
@  15 , 1  say'  ЯЯ     ЯЯ       ЯЯ     ЯЯ      ЯЯ   ЯЯ       ЯЯ       ЯЯ     ЯЯ    ЯЯ'
@  16 , 1  say'  ЯЯ      ЯЯ      ЯЯ ЯЯЯ ЯЯ        ЯЯЯ         ЯЯ ЯЯЯЯЯ ЯЯ       ЯЯ  ЯЯ'
@  17 , 1  say'  ЯЯ       ЯЯ           ЯЯ       ЯЯ   ЯЯ       ЯЯ       ЯЯ      ЯЯ   ЯЯ'
@  18 , 1  say'  ЯЯ        ЯЯ         ЯЯ       ЯЯ     ЯЯ      ЯЯ       ЯЯ     ЯЯ    ЯЯ'
@  19 , 1  say' ЯЯЯ        ЯЯЯ     ЯЯЯЯ      ЯЯЯЯ     ЯЯЯЯ   ЯЯЯЯ     ЯЯЯЯ  ЯЯЯЯ    ЯЯЯ' 

define menu mainmenu in screen color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\KR1
define pad new of mainmenu prompt'\<Склад продуктов' at  5 , 7 ;
message 'Ввод,просмотр и редакторование данных по количеству продуктов на складе'
define pad kask of mainmenu prompt'\<БД Блюд' at  5 , 25 ;
message 'Просмотр и ввод новых блюд в базу данных'
define pad spr of mainmenu prompt'\<Формирование меню' at  5 , 35 ;
message 'Печать меню и накладной на израсходованные продукты'
define pad pom of mainmenu prompt'\<Помощь' at  5 , 55 ;
message 'Помощь в работе с программой'
define pad vih of mainmenu prompt'\<Выход' at  5 , 64 ;
message 'Выход из программы'
on selection pad new of mainmenu do skladpro.prg
on selection pad kask of mainmenu do bluda.prg
on selection pad spr of mainmenu activate popup sprpop
on selection pad pom of mainmenu do helpm.prg 
on selection pad vih of mainmenu do end 
 
define popup sprpop from  6 , 35  color ,r/bg,r/bg,,gr+/w,rb/w,gr+/bg
define bar  1  of sprpop prompt' Меню на ужин     ' message 'Формирование меню и накладной на определенное кол.людей '
define bar  2  of sprpop prompt' Меню на день     ' 
on selection bar  1  of sprpop do formenu 
on selection bar  2  of sprpop do menuden

acti wind EWIND
@ 0 , 15  say 'Курсовая работа студента 1 курса гр.9ПИЭ-51' 
@ 2 , 27  say'Сегодня: '+k               
acti menu mainmenu


**** Процедура выхода ****
proc end
hide menu mainmenu && скрытие меню
set cursor off 
define window en from  9 , 16  to  11 , 60  shadow color r/w
activate window en 
@  0 , 1  say'Подтверждение выхода из программы - Enter'
read
  if lastkey()<> 13  
deactivate window en 
return
else
quit
endif

************************************************
function td1
para m,k
dn=alltrim(STR(day(k)))
g=alltrim(STR(year(k)))
ms=month(k)
dime s( 12 )
s( 1 )='ЯHВАРЯ'
s( 2 )='ФЕВРАЛЯ'
s( 3 )='МАРТА'
s( 4 )='АПРЕЛЯ'
s( 5 )='МАЯ'
s( 6 )='ИЮHЯ'
s( 7 )='ИЮЛЯ'
s( 8 )='АВГУСТА'
s( 9 )='СЕHТЯБРЯ'
s( 10 )='ОКТЯБРЯ'
s( 11 )='HОЯБРЯ'
s( 12 )='ДЕКАБРЯ'
sd=padr((dn+s(ms)+' '+g),m)
return sd
Текст 2-ой программы - SKLADPRO.PRG (склад продуктов):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
********************************************************************************
****************** Работа с БД продуктов ***************
close data
*SET DEFAULT TO C:\kr
sele a
use product.dbf
push key clea
defi wind SFEDIT from  5 , 8  to  20 , 65 ; 
titl '<<< БД продуктов >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
brow ;
      fiel naim:h='Hаименование': 25 ,;
           kol:h='Количество': 15 ,;
           sum:h='Цена': 12 ;
           noed noap in wind SFEDIT
rele wind SFEDIT
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELPM.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД продуктов ***************
proc dob
push key clear
defi wind dobav from  7 , 8  to  16 , 70 ; 
titl '<<< Ввод продукта на склад >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 4 )
store  0  to s( 1 ),s( 3 )
store  0 . 0  to s( 4 )
store space( 15 ) to s( 2 )
if eof()
s( 1 )= 1 
else
INDEX ON id TAG id
go BOTTOM
s( 1 )=id+ 1 
endif
@  1 , 5  say'Hаименование'
@  3 , 2  say'Количество (кг/шт)'
@  3 , 40  say'Цена'
@  1 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'###.###'
@  3 , 47  get s( 4 ) pict'9999.99' 
i= 0 
@  6 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  7 , 8  to  16 , 70 ; 
titl '<<< Редактирование продукта на складе >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 4 )
s( 1 )=id
s( 2 )=naim
s( 3 )=kol
s( 4 )=sum
@  1 , 5  say'Hаименование'
@  3 , 2  say'Количество (кг/шт)'
@  3 , 40  say'Цена'
@  1 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'###.###'
@  3 , 47  get s( 4 ) pict'9999.99' 
i= 0 
@  6 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
return
Текст 3-ей программы - BLUDA.PRG (БД блюд):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
********************************************************************************
****************** Работа с БД блюд ***************
close data
*SET DEFAULT TO C:\kr
sele c
use rasklad
sele b
use nazblud.dbf
push key clea
defi wind SFEDIT from  5 , 8  to  20 , 65 ; 
titl '<<< Список блюд  >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'COLOR SCHEME  5 
*color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del1
pack
brow ;
      fiel naimblud:h='Hаименование': 55 ;
      noed noap in wind SFEDIT
rele wind SFEDIT
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
clos data
on key labe F1 do HELPM.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД блюд ***************
proc dob
push key clear
defi wind dobav from  7 , 8  to  16 , 70 ; 
titl '<<< БЛЮДО >>>'foot 'Выход - Esc' color w,r/w+
*color , , W+/B,W+/B,W
acti wind dobav
dime s( 3 )
store  0  to s( 1 )
store space( 20 ) to s( 2 )
store space( 138 ) to s( 3 )
if eof()
s( 1 )= 1 
else
INDEX ON id TAG id
go BOTTOM
s( 1 )=id+ 1 
endif
@  1 , 2  say'Hаименование'
@  3 , 2  say'Рецепт'
@  1 , 15  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 15  get s( 3 ) 
i= 0 
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
append blank
gather from s
push key clear
sele c
set filter to idblud=s( 1 )
dime k( 4 )
store  0  to k( 1 ),k( 2 ),k( 3 )
k( 4 )= 0 . 0 
rele wind dobav
defi wind raskl from  9 , 15  to  14 , 50 ; 
titl '<<< '+s( 2 )+' >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B  
defi wind raskl1 from  15 , 15  to  18 , 50 
acti wind raskl1  
acti wind raskl
on key labe f5 do dobraskl
on key labe F8 do del
on key labe F10  keyboard '{Ctrl+END}'
brow;
      fiel kolpr:h='Количество продукта (кг/шт/л)':w=tov();
noed in wind raskl 
endif
rele wind r1
rele wind raskl1
rele wind raskl
rele wind dobav
set filter to
pop key
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del1
return


proc dobraskl
push key clear
define window w1 from  10 , 15  to  17 , 63  title '"Выбор продукт"' double shadow color  0 / 3 , 7 / 1 , 0 / 2 
activate window w1
w= 0 
@  1 , 2  get w pict '@*hN Выберите продукт'VALID tovar() color r/bg
@  3 , 2  say 'Введите количество' get k( 4 ) PICT '###.###'
i= 0 
@  5 , 28  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1  
k( 2 )=s( 1 )
append blank
gather from k
endif
rele wind w1
pop key
return

proc tovar
sele a
use product.dbf
go top
if eof()
wait 'Словаpь пуст-добавил запись. Введите пожалуйста данные. ' window nowait
else
defi popup p prompt FIELD naim from  1 , 5  to  10 , 40 ;
titl 'Список продуктов на складе' SHAD COLOR  0 / 3 
on sele popup p do vib  
acti popup p
ENDIF
SELE c
retu
proc vib
k( 3 )=id
@  1 , 23  say naim color r/bg
deac popup p
retu



********************************************************************************
****************** Процедура редактирования записей БД блюд ***************
proc red_v
if !eof()
push key clear
defi wind red from  7 , 8  to  16 , 70 ; 
titl '<<< БЛЮДО >>>'foot 'Выход - Esc'color w,r/w+

* color , , W+/B,W+/B,W+/B 
acti wind red
dime s( 3 )
s( 1 )=id
s( 2 )=naimblud
s( 3 )=recept
@  1 , 2  say'Hаименование'
@  3 , 2  say'Рецепт'
@  1 , 15  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 15  get s( 3 ) 
i= 0 
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
gather from s
push key clear
sele c
set filter to idblud=s( 1 )
dime k( 4 )
store  0  to k( 1 ),k( 2 ),k( 3 )
k( 4 )= 0 . 0 
rele wind red
defi wind raskl from  9 , 15  to  14 , 50  titl padc(s( 2 ), 30 ,"=") 
defi wind raskl1 from  15 , 15  to  17 , 50 
acti wind raskl1
acti wind raskl
on key labe f5 do dobraskl
on key labe F8 do del
on key labe F10  keyboard '{Ctrl+END}'
brow fiel kolpr:h='Количество продукта (кг/шт/л)':w=tov();
noed in wind raskl 
deactiv wind r1
rele wind raskl
rele wind raskl1
rele wind dobav
set filter to
endif
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10  keyboard '{Ctrl+END}'
on key labe F8 do del1
rele wind red
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
delete
endif
rele wind vnc
pop key
endif
return
********************************************************************
****************** Процедура удаления записей БД блюд ***************
proc del1
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF i= 1 
sele c
set filter to idblud=b.id
go top
do while !eof()
delete
skip
enddo
sele b
delete
endif
rele wind vnc
pop key
endif
return
********************************************************************

procedure tov
idproduc1=idproduc
sele a
use product.dbf
push key clea
acti wind raskl1
locate for id=idproduc1
clear 
@ 0 , 0  say naim
CONTINUE
sele c
show gets
acti wind raskl
pop key
return .T. 
deac wind raskl
deac wind raskl1
Текст 4-ой программы - MENUDEN.PRG (меню блюд):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
*SET DEFAULT TO C:\kr
set alte to menuden.txt
set alte on
close data
sele a
use nazblud.dbf
sele c
use rasklad
sele b
use product

define window w1 from  10 , 15  to  15 , 63  title '"Данные о количестве персон"' double shadow color  0 / 3 , 7 / 1 , 0 / 2 
activate window w1
per= 1 
store '    ' to god
@  1 , 2  say 'Введите количество персон 'get per 
i= 0 
@  3 , 28  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1  
if per> 0 
sele a
go top
do while !eof()
replace vibor with  0 
skip
enddo
go top
push key clea
defi wind SFEDIT from  5 , 8  to  15 , 65 ; 
titl '<<< Список блюд  >>>' foot ' F4_УБРАТЬ F5_ДОБАВИТЬ      F12_СФОРМИРОВАТЬ F10_ВЫХОД 'COLOR SCHEME  5 
*COLO  w,gr+/br  
defi wind EDIT from  16 , 8  to  22 , 65 ; 
titl '<<< Рецепт >>>' COLOR SCHEME  5 
*COLO  w,gr+/br   
acti wind EDIT
acti wind SFEDIT
on key labe F10  keyboard '{Ctrl+END}'
on key labe F12 do MD
on key labe F5  do dd
on key labe F4  do uu
brow ;
      fiel naimblud:h='Hазвания блюд': 40 :w=tov1(),;
           vibor:h='Использовать';  
      noed noap in wind SFEDIT
rele wind SFEDIT
rele wind EDIT
set deleted on
on key labe f12
on key labe f5
on key labe f4
on key labe f10
clos data
else
wAIT 'Количество людей не может быть 0' WINDOW
endif
endif
deac wind w1
 on key labe F1 do HELPM.PRG
retu


proc dd
dime pro1( 1000 )

sele b 
go top
do while !eof()
pro1(id)= 0 
skip
enddo

sele a
id11=id
go top
do while !eof()
if vibor<> 0 
sele c
go top
do while !eof()
if ((idblud=a.id).and.(a.id<>id11))
pro1(idproduc)=pro1(idproduc)+kolpr*per
endif
skip
enddo
endif
sele a
skip
enddo
sele a
LOCATE FOR id=id11

sele c
go top
k1= 0 
do while !eof()
if idblud=a.id
sele b
go top
LOCATE FOR id=c.idproduc
if (c.kolpr*per>kol-pro1(id))
k1=k1+ 1 
endif
endif
sele c 
skip
enddo
if k1= 0 
sele a
replace vibor with  1 
else
define window w1 from  10 , 5  to  17 , 74  title '"ВHИМАHИЕ"' double shadow color  0 / 3 , 7 / 1 , 0 / 2 
acti wind w1	             
@  1 , 2  say 'Количество товара на складе необходимого для приготовления блюда'
@  2 , 2  say PADC(rtrim(a.naimblud), 65 ,"*")
@  3 , 2  say '                      недостаточно!!! ' 
@  4 , 2  say '    Пополните запасы и можете включить это блюдо в список' 
read cycle 
deac wind w1
endif
return

proc uu
push key clea
if !eof()
replace vibor with  0 
endif
pop key
return


proc tov1
push key clea
acti wind EDIT
clear 
@ 0 , 0  say recept
show gets
acti wind sfEDIT
pop key
return 
deac wind sfedit
deac wind edit

 ***********************************************************
**Процедура формирования меню на ужин(накладная на расходы)**
 ***********************************************************
proc md 
*SET DEFAULT TO C:\kr
set alte to menuden.txt
set alte on
close data
sele a
use nazblud.dbf
sele c
use rasklad
sele b
use product
push key clea
koli= 0 
sele a
go top
do while !eof()
if vibor= 1 
koli=koli+ 1 
endif
skip
enddo

dime blude( 1000 ),r( 1000 )
sele a
go top
do while !eof()
if vibor= 1 
blude(id)= 0 
endif
skip
enddo

sele b
go top
do while !eof()
R(id)=kol
skip
enddo

sele a
go top
do while !eof() 
if vibor= 1 
sele c
go top
k1= 0 
do while !eof()
if idblud=a.id
sele b
go top
LOCATE FOR id=c.idproduc
R(id)=kol-c.kolpr*per
REPLACE KOL WITH R(id)
*endif
endif
sele c 
skip
enddo
sele a
endif
skip
enddo
?padc('МЕHЮ HА УЖИH', 77 ,"*")
?
?
?
SELE A
GO TOP
i= 0 
DO WHILE !EOF()
if vibor= 1 
i=i+ 1 
?padc(I, 1 )+'. '+PADR(RTRIM(NAIMBLUD), 70 )
ENDIF
SKIP
ENDDO
?
?
?
?'Hакладная расходов меню на день в количестве '+padr(per, 5 )+'персон'
?'Ъ--------------------В----------В-----------В-----------В--------------ї'
?'і    Hаименование    іК-во(кг/л)і Цена(руб.)іСумма(руб.)і Итого(руб.)  і'
?'Г--------------------Б----------Б-----------Б-----------Б--------------ґ'
SELE A
GO TOP
DO WHILE !EOF()
store  0 . 0  to sumb,sumvs
if vibor= 1 
*IF BLUDE(ID)<> 0 
?'і'+PADC(NAIMBLUD, 70 )+'і'
?'ЖННННННННННННННННННННСННННННННННСНННННННННННСНННННННННННСННННННННННННННµ'
sele c
go top
k1= 0 
do while !eof()
if idblud=a.id
sele b
go top
LOCATE FOR id=c.idproduc
?'і'+padc(naim, 20 )+'і'+padc(c.kolpr, 10 )+'і'+padc(sum, 11 )+'і'+padc(sum*c.kolpr, 11 )+'і'+padc(per*c.kolpr*sum, 14 )+'і'
sumb=sumb+sum*c.kolpr
sumvs=sumvs+sum*c.kolpr*per
sele c
endif 
skip
if eof()
?'ЖННННННННННННННННННННПННННННННННПНННННННННННШНННННННННННШННННННННННННННµ'
?'іИтого по блюду                             і'+padc(sumb, 11 )+'і'+padc(sumvs, 14 )+'і' 
?'Г-------------------------------------------Б-----------Б--------------ґ'
endif
enddo
sele a
ENDIF
*endif
skip
ENDDO
?'А----------------------------------------------------------------------Щ'
?
?
?
?'Hакладная на расходы'
?'Ъ--------------------В----------В-----------В--------------ї'
?'і       Товар        іК-во(кг/л)і Цена(руб.)і Итого(руб.)  і'
?'Г--------------------Е----------Е-----------Е--------------ґ'
sele b
go top
do while !eof()
sele c
go top
koli= 0 
do while !eof()
*LOCATE FOR b.id=idproduc
*DO WHILE FOUND()
if b.id=idproduc
sele a
go top
do while !eof()
if ((c.idblud=id).and.(a.vibor<> 0 ))   
   koli=koli+(c.kolpr*per)
endif
skip
enddo   
  * CONTINUE
  endif
  sele c
  skip
ENDDO
sele b
if koli<> 0 . 0 
?'і'+padc(naim, 20 )+'і'+padc(koli, 10 )+'і'+padc(sum, 11 )+'і'+padc(sum*koli, 14 )+'і'
endif
skip
enddo
?'А--------------------Б----------Б-----------Б--------------Щ'

CLOSE alte TO
*SET DEFAULT TO C:\kr
do ModiDisp with 'menuden.txt'
return
****************************************************************************************
*--- пpосмотp печатной фоpмы ---*
proc ModiDisp
para FFIL
defi wind KORR from  0 , 0  to  24 , 79  titl 'ESC_выйти  F9_печать l' ;
foot FFIL COLOR w,r/br 
acti wind KORR
on key labe F9 do ModiPrin with FFIL
modi comm (FFIL) wind KORR noedit
on key labe F9
rele wind KORR
retu
*****************************************************************************************
*--- печать из modi comm ---*
proc ModiPrin
para FFIL
on key labe ESC
 for YY= 1  to  3 
  if !prin()
  wait 'принтер не готов !' wind
  else
  exit
  endi
 endf 
 if !prin()
 retu
 endi
rele wind l
set cons off
type (FFIL) to print 
set cons on
retu
**************************************************************************
И наконец, текст 5-ой программы - HELPM.PRG (файл помощи работы с курсовой):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
set proc to menuden.prg
if file('help.txt')
close alte to 
do ModiDisp with 'help.TXT'
else
set alte to help.txt
set alte on
?'Файл помощи удален!!! Разбирайся сам.'
close alte to 
do ModiDisp with 'help.TXT'
endif
set proc to 
return
Вот. Здесь всё работает. Кто не верит, может опубликовать своё мыло и тот получит по лбу... Шутка! Получит все файлы курсовой (т.к. без остальных файлов многие пункты работать не будут.), проверит и выскажет своё мнение. Надеюсь я ответил на все ваши вопросы. Если нет спрашивайте, что вас интересует.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33832273
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, ребятки, еще раз убеждаюсь, что фоксятники - наиболее уравновешенный и терпеливый народ ;-)))
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33832293
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз, теперь я (поскольку вник ;-))
Какая разница между
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
и
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get a function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33832635
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriЕще раз, теперь я (поскольку вник ;-))
Какая разница между
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
и
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get a function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
?Разница в этом:
Код: plaintext
1.
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
Код: plaintext
@  7 , 40  get a function '*h\! ОК;Отмена' size  1 , 8 , 2 
А позволь спросить. Где (т.е. в какой процедуре) ты увидел вторую строчку и на что ты намекаешь. Ведь я эту строку заменил на:
Код: plaintext
1.
2.
3.
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена'
И объясни, пожалуйста, почему у одногрупника процедуры редактирования и ввода работают, а у меня нет.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33832754
parenyok UrriЕще раз, теперь я (поскольку вник ;-))
Какая разница между
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
и
Код: plaintext
1.
2.
3.
4.
5.
...
i= 0 
@  7 , 40  get a function '*h\! ОК;Отмена' size  1 , 8 , 2 
read cycle 
if i= 1 
...
?Разница в этом:
Код: plaintext
1.
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
Код: plaintext
@  7 , 40  get a function '*h\! ОК;Отмена' size  1 , 8 , 2 
А позволь спросить. Где (т.е. в какой процедуре) ты увидел вторую строчку и на что ты намекаешь. Ведь я эту строку заменил на:
Код: plaintext
1.
2.
3.
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена'
И объясни, пожалуйста, почему у одногрупника процедуры редактирования и ввода работают, а у меня нет.
Ну, раз ты разницу понял, то приступим к объяснению того, почему у сокурсника работает, а у тебя нет :)
Смысл строки:
Код: plaintext
1.
@  7 , 40  get i function '*h\! ОК;Отмена' size  1 , 8 , 2 
в том, что организуется, по простому говоря, массив из двух кнопок (ОК и Отмена). Номер выбранного элемента (1 или 2) возвращается в переменную i, которой изначально присвоено значение 0. А затем переменная i "принимает решение" удалять записи или нет...

Теперь твой фрагмент:
Код: plaintext
1.
2.
3.
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена'
Здесь у тебя формируется уже не один, а два массива кнопок, содержащие по одному элементу. Первая команда get возвращает 1 в перемнную А если элемент первого массива выбран; вторая команда get возвращает 1 в перемнную В если элемент второго массива выбран. При этом, решение добавлять ли (редактировать ли) данные "принимает" переменная i, которая изначально поставлена на "отрицательный ответ"...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833107
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. А если я заменю везде строку if i=1 на if a=1, будет работать, нет? А про b можно не писать, да? Т.к. она автоматически будет отменять. Блин! У меня так и появляется ошибка в строке
Код: plaintext
on key labe F10  do do_vih
Придётся закомментарить всё, что мне Urri советовал... :-((((
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833179
parenyokПонятно. А если я заменю везде строку if i=1 на if a=1, будет работать, нет? А про b можно не писать, да? Т.к. она автоматически будет отменять.
Во-первых, не везде, а только там, где ты успел поменять...
А во-вторых, чего проще - взять и попробовать... Хотя бы в одном месте...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833231
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пацаны! Я буду плакать. :'-( Закоментарил все советы Urrl'а, заменил if i=1 на if a=1 и вот что получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  20 , 95 ; 
titl '<<< Список гостей >>>' foot ' F8_удаление  F7_редактирование F5_добавить F10_ВЫХОД 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f7 do red_v
on key labe f5 do dob
on key labe F10 do keyboard '{Ctrl+END}' *do_vih 
on key labe F8 do del
on key labe HOME go top
on key labe END go bott
pack
*private p_end
*p_end = .F.
*do while not p_end
browse ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
*enddo
           noed noap in wind SFEDIT

rele wind SFEDIT
set deleted on
on key labe f5
on key labe f7
on key labe f10
on key labe F8
on key labe HOME
on key labe END
clos data
 on key labe F1 do HELP.PRG
retu
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
proc dob
push key clear
defi wind dobav from  4 , 8  to  17 , 50 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 6 )
store space( 15 ) to s( 1 )
store space( 10 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 2 ) to s( 6 )
if eof()
s( 1 )= 1 
else
go BOTTOM
endif
@  1 , 0  say'ФИО'
@  2 , 0  say'Номер паспорта'
@  3 , 0  say'Пол'
@  4 , 0  say'Дата приезда'
@  5 , 0  say'Дата отъезда'
@  6 , 0  say'Номер'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxx' 
@  2 , 20  get s( 2 ) pict'9999999999999'
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999'
@  6 , 20  get s( 6 ) pict'99'
*i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
*@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
read cycle 
if a= 1 
append blank
gather from s
ENDIF
rele wind dobav
pop key
*keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура редактирования записей БД продуктов ***************
proc red_v
if !eof()
push key clear
defi wind red from  4 , 8  to  17 , 50 ; 
titl '<<< Редактирование гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind red
dime s( 6 )
s( 1 )=fam
s( 2 )=pas
s( 3 )=pol
s( 4 )=pri
s( 5 )=otb
s( 6 )=num
@  1 , 5  say'ФИО'
@  2 , 2  say'ь паспорта'
@  3 , 2  say'Пол'
@  4 , 2  say'Дата прибытия'
@  5 , 2  say'Дата отбытия'
@  6 , 2  say'ь гостя'
@  1 , 20  get s( 1 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'99.99.9999' 
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99'
*i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
*@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
*keyboard '{Ctrl+END}'
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  7 , 15  to  12 , 56   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
@  0 , 12  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
*@  2 , 7  get i function '*h\! ОК;Отмена' size  3 , 13 , 3 
READ
IF a= 1 
delete
endif
rele wind vnc
pop key
endif
*keyboard '{Ctrl+END}'
return
******************************************************************
*procedure do_vih
*p_end = .T.
*keyboard '{Ctrl+END}'
*return
И всё равно синтаксическая ошибка в строке
Код: plaintext
on key labe F10 do keyboard '{Ctrl+END}' *do_vih
Ну что ему ещё надо-то??? :'-(((((((
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833379
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё лучше! Решил закомментарить строку
Код: plaintext
on key labe F10 do keyboard '{Ctrl+END}' *do_vih
Запускаю программу, а мне в ответ ошибка в строках:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
browse ;
      fiel fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           num:h='ь гостя': 7 ;
*enddo
"Неузнанное ключевое слово/фраза в команде". Из-за строки чтоли? :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833527
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин!!! Это такая форма спама??? <8-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833621
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял. Где спам?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833793
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это опять я. Проблема такая. Сначала я решил сделать эту программу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
SET TALK OFF 
SET DATE GERMAN 
ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F6 ACTIVATE WIND e1 && Выэов окна первого этажа 
ON KEY LABEL F7 ACTIVATE WIND e2 && Вызов окна второго этажа 
ON KEY LABEL F8 ACTIVATE WIND e3 && Вызов окна третьего этажа 

USE guests INDEX guests 
r=RECNO() 
DEFINE WINDOW floor FROM  0 , 0  TO  8 , 62 ; 
      TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW e1 FROM  5 , 49  TO  14 , 78 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  15 , 19  TO  24 , 48 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  15 , 49  TO  24 , 78 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
    * opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW floor NOWAIT WHEN ttt()
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
ACTIVATE WINDOW e3   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-301----302----303---304--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-305----306--      --307--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3012')

READ CYCLE 
DEACTIVATE WINDOW e1,e2,e3,F10 
RELEASE WINDOWS e1,e2,e3,F10 
ON KEY 

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN
без открытия окна базы. Но потом подумал и решил сделать обратное. Приведённая программа должна открывать 4 окна - окно базы и 3 этажа, но открываются только этажи. После попытки запустить программу, появляется синтаксическая ошибка в строках:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
    * opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW floor NOWAIT WHEN ttt()
После комментирования первой строки, ошибка пропадает, программа запускается (3 этажа), но окно базы не открывается. А при попытке его вызвать, появляется ошибка в строке
Код: plaintext
READ CYCLE
"ОКНО 'F10 не определено.". Хотя я ж его вот определил:
Код: plaintext
1.
DEFINE WINDOW floor FROM  0 , 0  TO  8 , 62 ; 
      TITLE 'F10 Номера' && Окно-список номеров 
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833971
parenyokЭто опять я.
... После попытки запустить программу, появляется синтаксическая ошибка в строках:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
    * opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW floor NOWAIT WHEN ttt()
После комментирования первой строки, ошибка пропадает, программа запускается (3 этажа), но окно базы не открывается. А при попытке его вызвать, появляется ошибка в строке
Код: plaintext
READ CYCLE
"ОКНО 'F10 не определено.". Хотя я ж его вот определил:
Код: plaintext
1.
DEFINE WINDOW floor FROM  0 , 0  TO  8 , 62 ; 
      TITLE 'F10 Номера' && Окно-список номеров 

Ну и наворотил же ты....
Итак, начнем разгребать "Авгиевы конюшни"...
1. Знак ";" (точка с запятой) в Фоксе - это признак продолжения команды на следующей строке, а не символ завершения команды (как в Паскале или С).
2. Знак "*" (звездочка, умножение) поставленный в начале строки перед командой, а не внутри числового выражения - служит признаком комментария. Это эквивалентно знаку "//" (двойной слэш) в С/С++, поставленному в начале строки.
3. Знак "&&" (двойной амперсанд) служит признаком комментария с места его установки до конца строки. Это эквивалентно знаку "//" (двойной слэш) в С/С++, поставленному в середине строки.
4. Установка знаков комментирования внуть команды в Фоксе не допускается (в отличие от С++, где вполне можно записать: if (a!=/*b*/c) и это обработается правильно...)
Поэтому, совершенно справедливо, что команда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
    * opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW floor NOWAIT WHEN ttt()
выдает тебе ошибку - там комментарий находится внутри команды!!!
То же самое и с фрагментом, где ты вставил закомментированный enddo внутрь browse...
То же самое и с командой on key label F10, где ты прицепил к команде закомментированную команду: do vih....
Мой тебе совет - отвыкай от С-шной привычки ставить комментарии внутри команды. Это никогда добром не кончается....

Теперь по другому вопросу: "Окно не определено".
Здесь тоже все верно - комнпьютер никогда не ошибается - он действует прямолинейно.
В программах под Виндой есть (и в Фоксе, как творении Мелкомягких, это тоже есть) два типа окон:
- окна-классы
- окна-объекты.
В твоей программе ты сначала определяешь окно-класс (команда: define window), задаешь ему некоторые начальные значения. А затем уже создаешь окно-объект (экземпляр окна-класса) командой activate window или указанием window <имя окна-класса> в команде browse.
Дак вот, имя окна-класса и окна-объекта может отличаться. За имя окна-объекта может приниматься несколько символов из его заголовка (опция title)(кстати, именно на этом факте основана функция FindWindow() в С++), а может - имя окна-классаЮ если опция title не указана нигде. Имя же окна-класса ты задаешь при его создании (define window floor ...).
Именно поэтому у тебя не было окна F10 в момент выполнения команды deactivate window... - у тебя было окно floor! И компьютер это определил.

А все началось из-за комментария внутри команды browse!!!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33833994
parenyokНе понял. Где спам?

Про СПАМ
Информационный шум (спам).
Развитие Сети привело к тому, что одной из основных проблем пользователей стал избыток информации. Поэтому сетевое сообщество выработало специальные правила, направленные на ограждение пользователя от ненужной/незапрошенной информации (спама). В частности, являются недопустимыми:
1. Массовая рассылка сообщений посредством электронной почты и других средств персонального обмена информацией (включая службы немедленной доставки сообщений, такие как SMS, IRC и т.п.), иначе как по явно и недвусмысленно выраженной инициативе получателей.
2. Отправка электронных писем и других сообщений , содержащих вложенные файлы и/или имеющих значительный объем, без предварительно полученного разрешения адресата ...


Более подробно смотри тут
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33834772
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночиНу и наворотил же ты....
Итак, начнем разгребать "Авгиевы конюшни"...
1. Знак ";" (точка с запятой) в Фоксе - это признак продолжения команды на следующей строке, а не символ завершения команды (как в Паскале или С).
.....................................................
4. Установка знаков комментирования внуть команды в Фоксе не допускается (в отличие от С++, где вполне можно записать: if (a!=/*b*/c) и это обработается правильно...)
Поэтому, совершенно справедливо, что команда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
    * opl :h='Оплачено';
    COLOR SCHEME  10  WINDOW floor NOWAIT WHEN ttt()
выдает тебе ошибку - там комментарий находится внутри команды!!!Так. Хотя я сейчас специально посмотрел пример про гостиницу у Попова, и у него там в строке
Код: plaintext
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE());
стоит ";"! См. стр. 455. Интересно почему? 8-\ Короче, убрал я эту ":" и закомментаренную строку "opl :h='Оплачено';" (хотя это тоже странно. Когда я пришёл в политех, чтобы мне помогли довести пример из книги до ума, у меня как раз в этом отрывке была ошибка "Переменная "OPL" не найдена". Потом выяснилось, что оказывается у меня в самой базе данных гостей отсутствует колонка "OPL". Мне её закомментировали (строку) и программа запустилась.)

Ужас, летящий на крыльях ночиТо же самое и с фрагментом, где ты вставил закомментированный enddo внутрь browse...
То же самое и с командой on key label F10, где ты прицепил к команде закомментированную команду: do vih....Хммм... Хотя когда я мучился с опциями выхода и комментировал внутри строки активации этой опции различные команды, то всё было нормально... А, понял! Приведённый выше отрывок программы - это всё одна команда, да? И поэтому в ней нельзя делать комментарии. Всё, понял.
Ужас, летящий на крыльях ночиМой тебе совет - отвыкай от С-шной привычки ставить комментарии внутри команды. Это никогда добром не кончается....Ох-ох-ох! :-)
Ужас, летящий на крыльях ночиА все началось из-за комментария внутри команды browse!!!Спасибо за объяснения! Вот теперешний вид программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
SET TALK OFF 
SET DATE GERMAN 
ON KEY LABEL F10 ACTIVATE WINDOW F10 && Вызов окна баэы 
ON KEY LABEL F6 ACTIVATE WIND e1 && Выэов окна первого этажа 
ON KEY LABEL F7 ACTIVATE WIND e2 && Вызов окна второго этажа 
ON KEY LABEL F8 ACTIVATE WIND e3 && Вызов окна третьего этажа 

USE guests INDEX guests 
r=RECNO() 
DEFINE WINDOW gost FROM  0 , 0  TO  8 , 62 ; 
       TITLE 'F10 Номера' && Окно-список номеров 
DEFINE WINDOW e1 FROM  5 , 49  TO  14 , 78 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  15 , 19  TO  24 , 48 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  15 , 49  TO  24 , 78 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
BROWSE TITLE 'F10      Номера    Сегодня:'+DTOC(DATE())
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
     COLOR SCHEME  10  WINDOW gost NOWAIT WHEN ttt()
ACTIVATE WINDOW e1                           && Открытие окна первого этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-101----102----103---104--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-105----106--      --107--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('1012')
@  1 , 4  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALID ms('1013')
ACTIVATE WINDOW e2   &&Открытие окна второго этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-201----202----203---204--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-205----206--      --207--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('2012')
ACTIVATE WINDOW e3   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-301----302----303---304--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-305----306--      --307--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('3012')

READ CYCLE 
DEACTIVATE WINDOW e1,e2,e3,gost 
RELEASE WINDOWS e1,e2,e3,gost
ON KEY 

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW gost REFRESH 
RETURN 
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
SEEK m && Поиск в BROWSE-окне выбранного на плане места 
r=RECNO() 
SHOW WINDOW gost REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
LOCATE FOR mee=m.AND.!EMPTY(pol).AND.pol#p 
IF FOUND() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol='M','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   GO nr && Возврат к исходной записи 
ENDIF 
RETURN
Твои замечания учтены, да? Но теперь, почему-то, происходят сущие чудеса! Запускаю программу. Запускается ТОЛЬКО окно базы. Вызываю окно первого этажа - окно базы пропадает, открывается ПУСТОЕ окно первого этажа, и выскакивает ошибка, но уже в строках
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
такого содержания: "Неузнанный командный глагол". Далее, в окне ошибки жму "Ignore" и происходит чудо - открываются все окна этажей, но без окна базы! А при попытке его вызвать опять появляется ошибка в строке "READ CYCLE" "Окно F10 не определено.". Может быть я где-то перестарался?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33834964
parenyokСпасибо за объяснения! Твои замечания учтены, да? Но теперь, почему-то, происходят сущие чудеса! Запускаю программу. Запускается ТОЛЬКО окно базы. Вызываю окно первого этажа - окно базы пропадает, открывается ПУСТОЕ окно первого этажа, и выскакивает ошибка, но уже в строках
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
FIEL d=IIF(DATE()>opl.AND.!EMPTY(fam),'Долг','') :h='Долг',;
     r=IIF(r=RECNO(),'>',' ') :h='',;
     mes :h='Место' :p='9999',;
     fam :h='Фамилия' : 14 ,;
     pol :h='Пол';
         :V=(pol='М'.OR.pol='Ж').AND.pl(LEFT(mes, 3 ),pol);
         :e='Только М или Ж',;
     pri :h='Прибытие',;
     otb :h='Отбытие',;
такого содержания: "Неузнанный командный глагол". Далее, в окне ошибки жму "Ignore" и происходит чудо - открываются все окна этажей, но без окна базы! А при попытке его вызвать опять появляется ошибка в строке "READ CYCLE" "Окно F10 не определено.". Может быть я где-то перестарался?
Нет, недостарался. сейчас у тебя лишняя запятая в
Код: plaintext
     otb :h='Отбытие',;
Объясняю почему: запятая в browse отделяет описания полей друг от друга.
то есть, формат команды такой: browse field1,field2,...,fieldN window...
В твоем конкретном случае (если абстрагироваться от "мишуры") это выглядит примерно так: browse field1,field2,...,fieldN , window...
Разницу видишь?
Поэтому Фокс пытается воспринять COLOR SCHEME 10 WINDOW gost NOWAIT WHEN ttt() как описание еще одного поля, которое он должен отобразить, "путается" в получившейся (не по его вине) "каше" и выдает ошибку....
Внимательней надо быть... И хелпы читать хотя бы иногда... Я понимаю, что на английском... Но есть же словари... В том числе - электронные...
P.S. Чтобы не было спекуляций: я в школе и ВУЗе учил французский язык. Даже сдал по нему кандидатский минимум. Тем не менее, читаю англоязычные хелпы (MSDN) "с листа". Не дословно, конечно, но пОнятого для работы программистом хватает... Чего и тебе желаю...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33835194
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Дубль два

parenyokНу сжальтесь над человеком, помогите кто чем может! До 18-го сделать надо, а ещё и отчёт делать! БЛИИИИИИИИИИИИИИН! :-(((((((((
Речь, кажись, шла о 18-ом июня ...

2. parenyok!!! А ты никогда не слыхал про штуковину под названием "архиватор"? А еще на форумах можно файлики в сообщения "вкладывать"!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33835269
Redrik1. Дубль два

parenyokНу сжальтесь над человеком, помогите кто чем может! До 18-го сделать надо, а ещё и отчёт делать! БЛИИИИИИИИИИИИИИН! :-(((((((((
Речь, кажись, шла о 18-ом июня ...

так-то оно так... Но несколькими постами ниже он сказал (почти дословно): "удалось договориться с преподавателем на сентябрь" . Так что, крепись...
На С-шном форуме в свое время его в игнор пустили, так он другую тему поднял... И не одну...
В общем, как говорится, "ты его в дверь, а он в окно"
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33835323
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночи[quot Redrik]Так что, крепись...
Спасибо! Постараюсь... ;-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33835621
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночиНет, недостарался. сейчас у тебя лишняя запятая в
Код: plaintext
     otb :h='Отбытие',;
Точно... Но фокусы продолжаются... :'(
Redrik1. Дубль два

parenyokНу сжальтесь над человеком, помогите кто чем может! До 18-го сделать надо, а ещё и отчёт делать! БЛИИИИИИИИИИИИИИН! :-(((((((((
Речь, кажись, шла о 18-ом июня ...

2. parenyok!!! А ты никогда не слыхал про штуковину под названием "архиватор"? А еще на форумах можно файлики в сообщения "вкладывать"!Про 18-е июня тебе уже ответили. ;) А про такую штуковину здоровскую, которая архиватором обзывается я уже 7 лет знаю. И я не слепой, вижу, что на каждом создании нового сообщения, у меня есть такая замечательная строчка: "Приложить файл", которой я пытался пользоваться уже 3 раза, но безуспешно. Или ты первые 2 мои сообщения не читал?! Я бы с радостью бы этой строкой пользовался, но чё-то, как-то не получается. ;) Поэтому, я недавно написал, что кто хочет, может опубликовать своё мыло, чтобы я переодически отправлял ему свой архив, в котором все программы курсовой. Короче, всё как я предлагал ВладимируМ. Так будет намного быстрее. Ужас, летящий на крыльях ночи
На С-шном форуме в свое время его в игнор пустили, так он другую тему поднял... И не одну...
В общем, как говорится, "ты его в дверь, а он в окно" Так, так, так! Это что за разговорчики??? Если ты всё прочёл, что я там писал, но так и не понял главного, то специально для тебя ещё раз говорю: " Я не прошу писать за меня программы, а прошу лишь исправить ошибки! ". А если человек просит помощи, и ты знаешь на его вопрос ответ, то почему бы и не помочь? Очень надеюсь, что после этого сообщения отношение ко мне не изменится в худшую сторону.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33836098
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokТак будет намного быстрее.
И эта тема скорее закроется? И другая, ей подобная, не начнется? ;-)

parenyokТак, так, так! Это что за разговорчики???
На "специфичность" твоего юмор тебе уже намекали! :-(

parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33837152
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyokТак будет намного быстрее.
И эта тема скорее закроется? И другая, ей подобная, не начнется? ;-)Да вот, представь себе - закроется тутже и не начнётся никогда! Т.к. FoxPro - это не С++ и не Turbo Pascal, которым достаточно только один единственный файл - текст программы. Я это говорю к тому, что куда проще скопировать к себе текст программы, внести в неё изменения, которые ты считаешь нужным и проверить её на работоспособность. Если получилось исправить ошибку, смело пиши свой совет, а если нет, попробуй другой путь. А тут вы все мне просто советуете, что мне нужно сделать, но не факт, что ошибка исправится (конечно, бывали случаи, что сразу ошибка исправлялась. Просто вы её сразу видели (как это было с часами)) Если бы тут можно было вложить в сообщение файл, то, конечно, я бы вложил. И многие из вас бы скачивали его и полностью (а главное быстро) бы мне ошибку исправили. На данный момент мне в курсовой осталось:
1) добиться того, чтобы открывались все окна (окно базы и окна трёх этажей (хотя, наверное, всё-таки, надо 4 этажа сделать... Ну 4-й этаж я сам сделаю.);
2) добиться работоспособности процедур редактирования и ввода БД гостей;
3) организовать поселение гостей: выбор подходящего номера (при наличии свободных мест), регистрация, оформление квитанции.
4) отъезд: выбор всех постояльцев, отъезжающих сегодня, освобождение места или оформление задержки с выпиской дополнительной квитанции.
5) возможность досрочного отъезда с перерасчетом.
6) поиск гостя по произвольному признаку.

Здесь не очень много. Я думаю, что для того кто очень хорошо знает FoxPro, здесь работы максимум на неделю. Поэтому, я вас очень прошу, пожалуйста, кто-нибудь, кто хорошо знает FoxPro, опубликуйте, пожалуйста, своё мыло и с тем я буду переписываться по почте и вскоре сделаю курсовую.
Redrik parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???Нет. Добиваться работоспособности программы...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33837171
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Redrik parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???Нет. Добиваться работоспособности программы...
А ты будешь сидеть и плевать в потолок... Вместо того, чтобы
...добиваться работоспособности программы...
И что же в таком случае для тебя означает "писать программы"?
И как ты в дальнейшем планируешь свою карьеру с таким подходом к выполнению работы....
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33837311
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
i= 0 
a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if i= 1 
gather from s
ENDIF
Ты считаешь, что для исправления ТАКОГО ТИПА ошибок нужно "очень хорошо знать фокспро"??? В Паскале или Си ты с ТАКИМИ вещами справляешься???

авторЯ думаю, что для того кто очень хорошо знает FoxPro, здесь работы максимум на неделю
Это уже не похоже на шутку... Даже с учетом твоего "юмора"...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33838170
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C...................СТАААААААС!!!!!! Какими судьбами???!!! Ты чё не отвечал-то на мои письма? И чё у тебя с мылом? Последний раз отослал тебе письмо, а мне прислали: "Такого мыла больше не существует!" (не дословно, конечно. :-))) Или чё - ввёл моё мыло в чёрный список? :'-( Станислав C. parenyok Redrik parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???Нет. Добиваться работоспособности программы...
А ты будешь сидеть и плевать в потолок... Вместо того, чтобы
...добиваться работоспособности программы...Опять 25! Чтоб...! Я что, создал тему "Сделайте за меня курсовую на FoxPro 2.6 DOS!" и в ней написал: "Здорова, пиплы! Кому тут делать нечего? Сделайте-ка за меня курсовую по Фоксу! Вот задание: ...", да??? Я СКОЛЬКО УЖЕ ГОВОРИТЬ ДОЛЖЕН, ЧТО МНЕ НЕ НАДО, ЧТОБЫ ВЫ ТУТ СИДЕЛИ И ПИСАЛИ ЗА МЕНЯ КУРСОВУЮ, А ПОМОГЛИ ИСПРАВИТЬ ОШИБКИ И КОЕ-ГДЕ ПОМОГЛИ НАПИСАТЬ ОДНУ-ДВЕ ФУНКЦИИ!!! <8-\/> Блин! До чего же люди пошли!? И я же не с нуля задал вопрос, а с контретной проблемой!!! Станислав C.И что же в таком случае для тебя означает "писать программы"?Что? Взять книгу, в которой всё понятно объясняется, сесть, изучить её и писать себе програмки! А если что-то не получается - обратиться на форум, что я и сделал, изучая С++!
Станислав C.И как ты в дальнейшем планируешь свою карьеру с таким подходом к выполнению работы....Выучиться, ввести в поисковнике "Работа программиста" или ещё что-нибудь в этом роде, найти работу с тем языком программирования, который мне ближе, и работать себе. Redrik
авторЯ думаю, что для того кто очень хорошо знает FoxPro, здесь работы максимум на неделю
Это уже не похоже на шутку... Даже с учетом твоего "юмора"...А что, нет? Или для того, чтобы сделать поиск гостя по произвольному признаку, нужно как минимум 5 дней?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33838318
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Станислав C. parenyok Redrik parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???Нет. Добиваться работоспособности программы...
А ты будешь сидеть и плевать в потолок... Вместо того, чтобы
...добиваться работоспособности программы...Опять 25! Чтоб...! Я что, создал тему "Сделайте за меня курсовую на FoxPro 2.6 DOS!" и в ней написал: "Здорова, пиплы! Кому тут делать нечего? Сделайте-ка за меня курсовую по Фоксу! Вот задание: ...", да??? Я СКОЛЬКО УЖЕ ГОВОРИТЬ ДОЛЖЕН, ЧТО МНЕ НЕ НАДО, ЧТОБЫ ВЫ ТУТ СИДЕЛИ И ПИСАЛИ ЗА МЕНЯ КУРСОВУЮ, А ПОМОГЛИ ИСПРАВИТЬ ОШИБКИ И КОЕ-ГДЕ ПОМОГЛИ НАПИСАТЬ ОДНУ-ДВЕ ФУНКЦИИ!!! <8-\/> Блин! До чего же люди пошли!? И я же не с нуля задал вопрос, а с контретной проблемой!!! Станислав C.И что же в таком случае для тебя означает "писать программы"?Что? Взять книгу, в которой всё понятно объясняется, сесть, изучить её и писать себе програмки! А если что-то не получается - обратиться на форум, что я и сделал, изучая С++!
Станислав C.И как ты в дальнейшем планируешь свою карьеру с таким подходом к выполнению работы....Выучиться, ввести в поисковнике "Работа программиста" или ещё что-нибудь в этом роде, найти работу с тем языком программирования, который мне ближе, и работать себе.
Последний раз, чтобы не было больше спекуляций:
Работа программиста (на любом языке программирования) заключается в следующем:
1. Составить алгоритм решения проблемы, затем детализировать алгоритм до нужной степени детализации
2. Закодировать алгоритм
3. Исправить синтаксические ошибки
4. Выявить и Исправить логические ошибки
5. Отдать программу пользователям


На форуме тебе могут подсказать лишь решение проблемы (алгоритм, возможно даже датализированный) и, может быть, даже частично(!) ее закодируют (сделают тебе "рыбу"/шаблон для функции/процедуры)...

Выявить синтаксические ошибки тебе поможет компилятор (или интерпретатор)+ дебаггер, выявить логические ошибки тебе поможет дебаггер+окна с отладочной информацией+составленный ТОБОЙ(!) алгоритм решения исходной задачи...
Остальное ты должен сделать сам - иначе ты не будешь работать на одном месте дольше испытательного срока... Уж поверь мне...

Просить что-то большее от форума - бесполезно...

Насчет книги:
по программированию под ДОСом - книга Попова - САМАЯ ТОЛКОВАЯ!!! Недаром она выдержала несколько изданий!!! Бери ее, читай, изучай...
Если вышлешь мне твой почтовый адрес (пожалуй, открою для тебя на пару дней свой электронный ящик), то я даже вышлю тебе книгу. Правда по FoxPro 2.0, но она на 99,8% похожа на ту, что для версии 2.5/2.6 (у меня есть оба варианта и я имел возможность их сравнить...)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33838444
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: По просьбе участников данный топик закрывается... Если есть желание сравнить СУБД, то для этого есть соответствующий раздел форума... Приношу извинения за возможно причиненные неудобства...
...
Рейтинг: 0 / 0
81 сообщений из 81, показаны все 4 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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