powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
68 сообщений из 68, показаны все 3 страниц
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33840797
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.
SET TALK OFF 
SET DATE GERMAN 
ON KEY LABEL F10 ACTIVATE WINDOW gost && Вызов окна баэы 
ON KEY LABEL F6 ACTIVATE WIND e1 && Выэов окна первого этажа 
ON KEY LABEL F7 ACTIVATE WIND e2 && Вызов окна второго этажа 
ON KEY LABEL F8 ACTIVATE WIND e3 && Вызов окна третьего этажа 

USE guests.dbf
* 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 && Окно третьего этажа 

*noed noap in wind gost
*rele wind gost
*set deleted on

ACTIVATE WINDOW gost
pack
browse;
  fiel d=iif(date()>opl.and.!empty(fam),'Долг',' ') :h='Долг', ;
       r=iif(r=recno(),'>',' ') :h=' ', ;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3 , ;
           :v=(pol='М'.or.pol='Ж').and.pl(left(mes, 3 ),pol), ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       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 gost,e1,e2,e3 
RELEASE WINDOWS gost,e1,e2,e3
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.
9.
10.
11.
12.
13.
browse;
  fiel d=iif(date()>opl.and.!empty(fam),'Долг',' ') :h='Долг', ;
       r=iif(r=recno(),'>',' ') :h=' ', ;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3 , ;
           :v=(pol='М'.or.pol='Ж').and.pl(left(mes, 3 ),pol), ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       color scheme  10  window gost nowait when ttt()
Что только я с ними не делал. И переписывал, и копировал подобный участок из другой программы, и всяко разно их изменял. Всё бесполезно. Для понимания ситуации скажу, что происходит после запуска программы. Во-первых, открывается пустое browse-окно, после чего появляется синтаксическая ошибка, в приведённых выше строках. Во-вторых, после нажатия на кнопку "Ignore" в окне ошибки, появляются три окна этажей. Т.е. проблема лишь в открытии browse-окна. Пожалуйста, помогите исправить эту ошибку.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33840942
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Svetlana Semenenko - 2 !!!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33841067
parenyokПривет, всем! Мне очень сильно нужна Ваша помощь! Переделываю курсовую одногрупника под свою... Проблема заключается в том, что при запуске программы выдаётся синтаксическая ошибка в строках:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
browse;
  fiel d=iif(date()>opl.and.!empty(fam),'Долг',' ') :h='Долг', ;
       r=iif(r=recno(),'>',' ') :h=' ', ;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3 , ;
           :v=(pol='М'.or.pol='Ж').and.pl(left(mes, 3 ),pol), ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       color scheme  10  window gost nowait when ttt()
Что только я с ними не делал. И переписывал, и копировал подобный участок из другой программы, и всяко разно их изменял. Всё бесполезно. Для понимания ситуации скажу, что происходит после запуска программы. Во-первых, открывается пустое browse-окно, после чего появляется синтаксическая ошибка, в приведённых выше строках. Во-вторых, после нажатия на кнопку "Ignore" в окне ошибки, появляются три окна этажей. Т.е. проблема лишь в открытии browse-окна. Пожалуйста, помогите исправить эту ошибку.

Ты опять начал... А посидеть-подумать, книжки почитать....

Ладно, укажу тебе на ошибки:
номер раз:
Код: plaintext
1.
2.
3.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
здесь после слова PARAMETERS поставлена лишняя точка

номер два:
Код: plaintext
1.
2.
3.
4.
5.
FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
здесь использована неизвестная функция KECNO() . Если ты хотел написать RECNO() , то так и надо писать...

номер три:
Код: plaintext
1.
2.
  browse;
  fiel d=iif(date()>opl.and.!empty(fam),'Долг',' ') :h='Долг', ;
здесь текущая дата сравнивается с датой оплаты (поле opl). А если такого поля у тебя нет, то с чем ты сравниваешь?

номер четыре:
Для работы функции ms нужен индекс (по полю mes , если я не ошибаюсь), а ты его закомментировал... Скорее всего его у тебя и не было никогда... Ну так сделай... Кроме того, записи у тебя в таблице guests есть? Если нет, то у тебя и будет "пустое browse окно"...

Последний совет:
Возьми книгу Попова, загрузи FoxPro и начинай выполнять все упражнения, начиная с первой страницы.
Чем хорош Фокс, так это тем, что большинство команд (не менее 95 %) можно выполнять из командного окна и наблюдать за результатом их выполнения. Кстати, я так и учился: надо мне в программе сделать, например, меню, я иду к Попову, смотрю соответствующий раздел, выполняю приведенный в книге пример, затем, когда разберусь, переношу идею в свою программу...

parenyokЧто только я не делал. И переписывал, и копировал подобный участок из другой программы, и всяко разно их изменял. Всё бесполезно.
Когда что-то делаешь - 100 раз подумай... А бездумно "тыкать клавиши" может и годовалый ребенок...
Если Фокс "нормальный", то с ним идет файл помощи. Как правило на английском, но, если повезет, то найдешь и на русском. Вызывается помощь по клавише, как ни странно, F1. Потом ищешь нужную тебе команду и читаешь описание, формат вызова команды, принципы работы и разбираешь приведенный небольшой пример, иллюстрирующий ее работу...
Кстати, именно так и разбираются программисты в чужом, незнакомом коде...
Если ты на самом деле хочешь стать программистом, а не просто получить "корочки" и положить их на полку, то тебе придется наконец заняться изучением данного конкретного языка и его фичей...

parenyok... проблема лишь в открытии browse-окна.
Я, конечно, извиняюсь. Но такое ощущуение, что проблема не в browse, а гораздо глубже (Да простит мне это высказывание модератор)...

parenyokПожалуйста, помогите исправить эту ошибку.
К сожалению, ЭТА ошибка уже неисправима...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33841233
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночи
Ты опять начал...Да вот, представь себе! Опять начал. После того как кто-то (не будем показывать пальцем!) настучал модератору! Ужас, летящий на крыльях ночиА посидеть-подумать, книжки почитать....А что, по виду программы не видно, что я сидел, ДУМАЛ??? 8-\

Ладно, укажу тебе на ошибки:
номер раз:
Код: plaintext
1.
2.
3.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS.m 
здесь после слова PARAMETERS поставлена лишняя точка[/quot]Виноват... Там должна быть запятая, да? Ужас, летящий на крыльях ночиномер два:
Код: plaintext
1.
2.
3.
4.
5.
FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=KECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
здесь использована неизвестная функция KECNO() . Если ты хотел написать RECNO() , то так и надо писать...Опять ошибки сканера, блин! Ужас, летящий на крыльях ночиномер три:
Код: plaintext
1.
2.
  browse;
  fiel d=iif(date()>opl.and.!empty(fam),'Долг',' ') :h='Долг', ;
здесь текущая дата сравнивается с датой оплаты (поле opl). А если такого поля у тебя нет, то с чем ты сравниваешь?Есть...
Ужас, летящий на крыльях ночи
номер четыре:
Для работы функции ms нужен индекс (по полю mes , если я не ошибаюсь), а ты его закомментировал... Скорее всего его у тебя и не было никогда... Ну так сделай...Э-э-э... Сделал (в БД добавил символьную переменную "MES" из 4-х символов и в программе перед "fam..." добавил "mes :h="Место' :p='9999',;") только почему-то не получается его заполнить. Ужас, летящий на крыльях ночиКроме того, записи у тебя в таблице guests есть?Хэ... А как же, ё-моё.
Ужас, летящий на крыльях ночиПоследний совет:
Возьми книгу Попова, загрузи FoxPro и начинай выполнять все упражнения, начиная с первой страницы.Даже уже говорить ничего не хочу по этому поводу! Задолбал уже! Ужас, летящий на крыльях ночиЧем хорош Фокс, так это тем, что большинство команд (не менее 95 %) можно выполнять из командного окна и наблюдать за результатом их выполнения. Кстати, я так и учился: надо мне в программе сделать, например, меню, я иду к Попову, смотрю соответствующий раздел, выполняю приведенный в книге пример, затем, когда разберусь, переношу идею в свою программу...Высылай мне оригинал книги, скажи моему преподу, чтобы мне продлил сдачу курсовой ещё на пару месяцев, тогда я прочту книгу и сделаю курсовую сам.
Ужас, летящий на крыльях ночи parenyokЧто только я не делал. И переписывал, и копировал подобный участок из другой программы, и всяко разно их изменял. Всё бесполезно.
Когда что-то делаешь - 100 раз подумай... А бездумно "тыкать клавиши" может и годовалый ребенок...Значит я бездумно тыкал, да?! Ужас, летящий на крыльях ночи
parenyok... проблема лишь в открытии browse-окна.
Я, конечно, извиняюсь. Но такое ощущуение, что проблема не в browse, а гораздо глубже (Да простит мне это высказывание модератор)...Сообщение модератору: Уважаемый модератор! Объясните, пожалуйста, как присоединять файлы к сообщениям. Ужас, летящий на крыльях ночи
parenyokПожалуйста, помогите исправить эту ошибку.
К сожалению, ЭТА ошибка уже неисправима...Что значит "уже"???
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33841263
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УУУУУУРРРРРРРРРРААААААААААААААА!!!!!!!!!!!!!!!!!!!! Получилось файл приложить!!!!!!!!!!!! Надо его просто в корне диска создааааааать!!!!!!! Вот теперь-то дела пойдут гораздо быстрее!!!!!!!!!!!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33841728
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokВысылай мне оригинал книги...
Я тебе открывал свой e-mail на выходные (чтобы ты сообщил мне твой почтовый адрес) - ты не воспользовался шансом получить книгу по почте БЕСПЛАТНО!!! Ты сам виноват...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33841894
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyokВысылай мне оригинал книги...
Я тебе открывал свой e-mail на выходные (чтобы ты сообщил мне твой почтовый адрес) - ты не воспользовался шансом получить книгу по почте БЕСПЛАТНО!!! Ты сам виноват...Хэ... Ты, между прочим, мне книгу высылал отсканированную , а я просил оригинал !!! В интернете оригинала нет, а если и есть, то только на компе Попова, которому совершенно не нужно её опубликовывать, чтобы тутже упал спрос на неё в магазинах... Или чё, Стас, ты даже хотел мне её лично отослать не по электронной почте, чтоли?! :-0 Хм.. Ну надо же, а! Хотя с другой стороны, чё у тебя книг Попова полный шкаф, что ты каждому готов книгу прислать? Интересно-интересно... Стас, ну я помню ты соглашался мне сделать курсовую. Говорил, что до 31-го мая сделаешь точно, а потом сказал, что на следующей неделе будешь по-свободнее и посмотришь и пропал. А сейчас она у меня практически готова, тем более я даже разобрался как файлы присоединять. Ну, сейчас-то, посмотри, пожалуйста, почему открывается пустое browse-окно.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33843574
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Станислав C. parenyokВысылай мне оригинал книги...
Я тебе открывал свой e-mail на выходные (чтобы ты сообщил мне твой почтовый адрес) - ты не воспользовался шансом получить книгу по почте БЕСПЛАТНО!!! Ты сам виноват...Хэ... Ты, между прочим, мне книгу высылал отсканированную , а я просил оригинал !!! В интернете оригинала нет, а если и есть, то только на компе Попова, которому совершенно не нужно её опубликовывать, чтобы тутже упал спрос на неё в магазинах... Или чё, Стас, ты даже хотел мне её лично отослать не по электронной почте, чтоли?! :-0 Хм.. Ну надо же, а! Хотя с другой стороны, чё у тебя книг Попова полный шкаф, что ты каждому готов книгу прислать? Интересно-интересно... Стас, ну я помню ты соглашался мне сделать курсовую. Говорил, что до 31-го мая сделаешь точно, а потом сказал, что на следующей неделе будешь по-свободнее и посмотришь и пропал. А сейчас она у меня практически готова, тем более я даже разобрался как файлы присоединять. Ну, сейчас-то, посмотри, пожалуйста, почему открывается пустое browse-окно.
после небольшой "доработки напильником" программа приняла следующий вид (см. вложение). Как она работает - разбирайся сам...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33843911
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас. Я, конечно, дико извиняюсь, но у меня почему-то перестал работать файл базы (GUESTS.DBF). Даже вызвать его не могу! После запуска твоей программы и даже при вызове файла(!!!), выскакивает ошибка: "Не база данных файла.". Объясни, пожалуйста, в чём дело. Никогда такого не было. На всякий случай присоединю архив.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33844026
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokСтас. Я, конечно, дико извиняюсь, но у меня почему-то перестал работать файл базы (GUESTS.DBF). Даже вызвать его не могу! После запуска твоей программы и даже при вызове файла(!!!), выскакивает ошибка: "Не база данных файла.". Объясни, пожалуйста, в чём дело. Никогда такого не было. На всякий случай присоединю архив.
Добро пожаловать в "конфликт версий"... Просто мой файл был создан в Visual FoxPro (ну не держу я дома досовского Лиса). А ты его пытаешься открыть именно в FPD...
А вот программа (prg-файл, но не fxp-файл) полностью совместима, ибо "Визуальные" примочки я не использовал...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33844063
Фотография alena_T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyokВысылай мне оригинал книги...
Я тебе открывал свой e-mail на выходные (чтобы ты сообщил мне твой почтовый адрес) - ты не воспользовался шансом получить книгу по почте БЕСПЛАТНО!!! Ты сам виноват...
извиняюсь что вмешиваюсь, но ...
я тоже хочу книгу..
Станислав, не могли бы вы мне ее переслать???
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33844170
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alena_T Станислав C. parenyokВысылай мне оригинал книги...
Я тебе открывал свой e-mail на выходные (чтобы ты сообщил мне твой почтовый адрес) - ты не воспользовался шансом получить книгу по почте БЕСПЛАТНО!!! Ты сам виноват...
извиняюсь что вмешиваюсь, но ...
я тоже хочу книгу..
Станислав, не могли бы вы мне ее переслать???
Так мне придется типографию открывать
Поясню ситуацию:
1. у меня есть электронный вариант книги, но он содержит много "ляпов" (связанных с тем, что при сканировании неверно распознались некоторые буквы, а те, кто выложил книгу в свободный доступ, поленились все это откорректировать).
Поэтому, такой вариант я отсылать не буду: найдете поиском, если возникнет такая потребность....
2. у меня есть два издания этой книги: старое (для версии 2.0) и новое (для версии 2.5/2.6). Старое издание я могу выслать по почте (по-простому, подарить), если будет известен почтовый адрес....
Но я не миллионер, и смогу "осчастливить" только кого-то одного...
Если нужна книга - сбрось мне на "мыло" (см. в профиле) твой почтовый адрес (индекс, город, адрес) и я без задержек вышлю книгу. Опять же, чтобы без обид, старое издание для версии FPD 2.0... Но издания на 95 % похожи...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33845328
Как дети малые. Книги в инете, уже лет 7, точно, валяются. И не только эти.
Не ленитесь. По Фоксу материала в инете, не меньше чем по остальным языкам.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33845922
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау!!! Спасибо, Стас, за помощь! Теперь все окна открываются! Так. Теперь у меня по-прежнему не работают функции ввода и редактирования БД гостей. Я там заметил одну неточность, подправил, но всё равно проблема не изчезла. Стас. Если тебе не в тягость, посмотри, пожалуйста. По выше описанной проблеме см. файл EXTERIOR.PRG.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33846297
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Ужас, летящий на крыльях ночиПоследний совет:
Возьми книгу Попова, загрузи FoxPro и начинай выполнять все упражнения, начиная с первой страницы.
Даже уже говорить ничего не хочу по этому поводу! Задолбал уже!


Народ!!! Прекратите маяться дурью!!! Стыдно читать...

Если человек не способен исправить синтаксис типа KECNO(), то это либо клиника, либо тупой стёб!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33846699
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokЕсли тебе не в тягость, посмотри, пожалуйста. По выше описанной проблеме см. файл EXTERIOR.PRG.
Станислав С. say:
Даже уже говорить ничего не хочу по этому поводу! Задолбал уже!

Станислав С. say extra:
Доступ к бесплатной помощи НЕДОСТУПЕН!!! РАЗБИРАЙСЯ САМ!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33847658
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyok Ужас, летящий на крыльях ночиПоследний совет:
Возьми книгу Попова, загрузи FoxPro и начинай выполнять все упражнения, начиная с первой страницы.
Даже уже говорить ничего не хочу по этому поводу! Задолбал уже!


Народ!!! Прекратите маяться дурью!!! Стыдно читать...

Если человек не способен исправить синтаксис типа KECNO(), то это либо клиника, либо тупой стёб! Станислав C. parenyokЕсли тебе не в тягость, посмотри, пожалуйста. По выше описанной проблеме см. файл EXTERIOR.PRG.
Станислав С. say:
Даже уже говорить ничего не хочу по этому поводу! Задолбал уже!

Станислав С. say extra:
Доступ к бесплатной помощи НЕДОСТУПЕН!!! РАЗБИРАЙСЯ САМ!
Ну неужели Вам никогда не приходилось сталкиваться с проблемой, что что-то не получается и не приходилось просить помощи на форуме??? Кстати, по поводу файла с проблемой - файл не EXTERIOR.PRG, а GUESTS.PRG. Стас! А скажи-ка мне, пожалуйста. Если бы ты оказался на моём месте, то как бы ты поступил???
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33847812
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УРА! УРА! УРА! Сам разобрался в проблеме! А в чём она была не скажу, т.к. сами прекрасно знали!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33847818
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УРА! УРА! УРА! Сам разобрался в проблеме! А в чём она была не скажу, т.к. сами прекрасно знали!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33847862
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokСтас! А скажи-ка мне, пожалуйста. Если бы ты оказался на моём месте, то как бы ты поступил???
Это, конечно, off, но все-таки отвечу.
Я каждый день нахожусь "на твоем месте", каждый день я отлаживаю какую-то программу (то на С++, то на Clipper'e, то на FoxPro, то на встроенном языке нашей корпоративной системы) и очень часто мне нужно разобраться в чужом, неизвестном коде.
Что я делаю:
1. Прописываю логику вызова процедур/функций: откуда, когда и какая функция вызывается, строю "дерево" вызовов функций.
2. Отслеживаю необходимую мне "ветку" вызовов.
2.1. Пытаюсь понять работу функции "верхнего уровня" - вызывающей функции.
2.2. Когда понял логику ее работы, перехожу к функции более "низкого" уровня - вызываемой функции и так "до самого низа"
3. В функции, в которой возникли сомнения и "непонятки", ставлю точки останова и прохожу эту функцию "по шагам", пытаясь понять как она работает. Естественно, что при прохождении "по шагам" контролируется состояние переменных - где какая переменная изменилась и т.д.
4. Если не понимаю работу какой-то встроенной / библиотечной функции, то читаю хелп и разбираю приведенный там пример (если есть).
5. Если в хелпе примера нет, то создаю простое тестовое приложнение (при работе в С++) или выполняю команду в командном окне (при работе в FoxPro), смотрю на результат. Меняю параметры команды, выполняю и снова смотрю на результат. Анализирую... Долго думаю...

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

Как-то раз пришлось таким образом разобраться и подстроить под свои нужды известный OpenSource FTP-клиент Putty: убрать запрос ввода данных и передавать их из моей программы автоматически, разбить одну функцию на две без потери функциональности, организовать вывод логов в файл и др. На это у меня ушло около двух недель...

Putty, написанный на С++, это, конечно не приложение, написанное на FoxPro, но тут важен сам принцип, подход к решению проблемы...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33847983
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте, пацаны! А есть в Фоксе такая команда, которая закрывает только одно окно? Например, у меня открыто окно БД гостей, и когда я нажму на кнопку "Выход", у меня это окно закроется. Мне нужна лишь команда или процедура. Конечно, можно воспользоваться кнопкой ESC на клаве, но всё-таки...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33848040
parenyokСлушайте, пацаны! А есть в Фоксе такая команда, которая закрывает только одно окно? Например, у меня открыто окно БД гостей, и когда я нажму на кнопку "Выход", у меня это окно закроется. Мне нужна лишь команда или процедура. Конечно, можно воспользоваться кнопкой ESC на клаве, но всё-таки...
Хелп/книга Попова (даже электронный вариант) по командам: Activate Window, Deactivate Window, Release Window
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33848054
Ужас, летящий на крыльях ночи parenyokСлушайте, пацаны! А есть в Фоксе такая команда, которая закрывает только одно окно? Например, у меня открыто окно БД гостей, и когда я нажму на кнопку "Выход", у меня это окно закроется. Мне нужна лишь команда или процедура. Конечно, можно воспользоваться кнопкой ESC на клаве, но всё-таки...
Хелп/книга Попова (даже электронный вариант) по командам: Activate Window, Deactivate Window, Release Window
Да, есть еще Hide Window
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33848086
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyokСтас! А скажи-ка мне, пожалуйста. Если бы ты оказался на моём месте, то как бы ты поступил???
Это, конечно, off, но все-таки отвечу.
Я каждый день нахожусь "на твоем месте", каждый день я отлаживаю какую-то программу (то на С++, то на Clipper'e, то на FoxPro, то на встроенном языке нашей корпоративной системы) и очень часто мне нужно разобраться в чужом, неизвестном коде.
Что я делаю:
1. Прописываю логику вызова процедур/функций: откуда, когда и какая функция вызывается, строю "дерево" вызовов функций.
2. Отслеживаю необходимую мне "ветку" вызовов.
2.1. Пытаюсь понять работу функции "верхнего уровня" - вызывающей функции.
2.2. Когда понял логику ее работы, перехожу к функции более "низкого" уровня - вызываемой функции и так "до самого низа"
3. В функции, в которой возникли сомнения и "непонятки", ставлю точки останова и прохожу эту функцию "по шагам", пытаясь понять как она работает. Естественно, что при прохождении "по шагам" контролируется состояние переменных - где какая переменная изменилась и т.д.
4. Если не понимаю работу какой-то встроенной / библиотечной функции, то читаю хелп и разбираю приведенный там пример (если есть).
5. Если в хелпе примера нет, то создаю простое тестовое приложнение (при работе в С++) или выполняю команду в командном окне (при работе в FoxPro), смотрю на результат. Меняю параметры команды, выполняю и снова смотрю на результат. Анализирую... Долго думаю...

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

Как-то раз пришлось таким образом разобраться и подстроить под свои нужды известный OpenSource FTP-клиент Putty: убрать запрос ввода данных и передавать их из моей программы автоматически, разбить одну функцию на две без потери функциональности, организовать вывод логов в файл и др. На это у меня ушло около двух недель...

Putty, написанный на С++, это, конечно не приложение, написанное на FoxPro, но тут важен сам принцип, подход к решению проблемы...Хорошо... А то, что ты в конце апреля согласился было сделать мне курсовую (хотя после того, что происходило на С-шном форуме, я долго не решался тебя об этом попросить.), а потом вдруг бесследно пропал. А сейчас мне осталось чуть-чуть сделать и курсовая будет готова, и ты мне сейчас не хочешь помочь. Это ты как объяснишь? Как-то странно получается. Тебе не кажется?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33848287
[quot parenyok А то, что ты в конце апреля согласился было сделать мне курсовую (хотя после того, что происходило на С-шном форуме, я долго не решался тебя об этом попросить.), а потом вдруг бесследно пропал. А сейчас мне осталось чуть-чуть сделать и курсовая будет готова, и ты мне сейчас не хочешь помочь. Это ты как объяснишь? Как-то странно получается. Тебе не кажется?[/quot]
Нет, не кажется... Если помнишь, я и не горел желанием делать эту работу за тебя и сказал, примерно следующее:"Если у тебя есть кто-то, кто сделает эту курсовую, то проси лучше его..." И ты ответил:"Да, такой человек есть..."

Сейчас же тебе дали готовое решение, которое надо лишь немного переделать... Поэтому я тебе помогать НЕ БУДУ... Ибо ты - будущий программист и должен САМ преодолевать возникающие трудности...

Кроме того, представленное решение (представленная тобой программа "Гостиница") не соответствует тем требованиям, которые заявлены для курсовой работы. А именно - не проверяется непротиворечивость базы данных, т.е. нет проверки на наличие двух одинаковых записей, на наличие двух записей, ссылающихся на одно место в одном номере и т.д.
Мой вердикт такой: программа требует серьезной доработки. А у меня нет времени и желания делать ее ЗА ТЕБЯ...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33848620
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время для написание длинных объяснений у тебя есть, а на то, чтобы мне помочь исправить очевидные для тебя ошибки - нет, да? Ну чтож, видно придётся мне искать другой форум, на котором у людей есть время не только на работу и поиск новых тем тех, кому много раз отказывали в помощи и написании в них оскорбительных писем, но и на помощь людям, нуждающимся в помощи. Последняя просьба. Может быть у кого-нибудь есть программы, в которых используются подобные функции, которые необходимы для моего задания:
Задание

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

М-да... Прочитав ещё раз задание, я понял, что занимаюсь полной фигнёй! Поэтому, если мне никто помогать не хочет, то выложите, пожалуйста, некоторые программы, в которых используется то, что мне надо для того, чтобы полностью выполнить задание курсовой.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33849038
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На совет внимательно почитать Попова:
parenyokДаже уже говорить ничего не хочу по этому поводу! Задолбал уже!
И после вот такое:
parenyokоскорбительных писем
Ну и ну... :-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33852813
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedrikНа совет внимательно почитать Попова:
parenyokДаже уже говорить ничего не хочу по этому поводу! Задолбал уже!
И после вот такое:
parenyokоскорбительных писем
Ну и ну... :-(Просто я по поводу книги уже неоднократно говорил, а если человек продолжает издиваться, то не остаётся другого выхода, как писать ему подобные сообщения.

М-да... Я вот тут подумал насчёт книги и решил, что надо было всё-таки сказать Стасу свой почтовый адрес. Стас, ты отправил уже книгу или у меня ещё есть шанс?

И всё-таки по поводу примеров программ. Есть у кого-нибудь что-нибудь, нет?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33856110
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите, пожалуйста, какая команда осуществляет поиск в БД по определённому признаку? Например, по фамилии, паспорту и т.д.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33856123
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть подходящий индекс - SEEK
если нет - LOCATE
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33856302
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.
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.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  18 , 95 ; 
titl '<<< Список гостей >>>' foot 'F3-поиск F5-добавить F8-удалить  F7-редактировать Esc-выход 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f3 do poisk
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 
browse;
      fiel mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT

rele wind SFEDIT
set deleted on
on key labe f3
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 , 70 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 8 )
store space( 5 ) to s( 1 )
store space( 20 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 10 ) to s( 6 )
store space( 10 ) to s( 7 )
store space( 2 ) to s( 8 )
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'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) 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
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( 8 )
s( 1 )=mes
s( 2 )=fam
s( 3 )=pol
s( 4 )=pas
s( 5 )=pri
s( 6 )=otb
s( 7 )=opl
s( 8 )=num
@  1 , 0  say'Место'
@  2 , 0  say'ФИО'
@  3 , 0  say'Пол'
@  4 , 0  say'Номер паспорта'
@  5 , 0  say'Дата приезда'
@  6 , 0  say'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  10 , 23  to  15 , 50   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  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
return
******************************************************************
          **** Процедура поиска ****
procedure poisk
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 
@  3 , 5   prompt 'Месту в гостинице'
@  5 , 5   prompt 'Фамилии'
@  7 , 5   prompt 'Полу'
@  9 , 5   prompt 'Паспорту'
@  11 , 5   prompt 'Дате прибытия'
@  13 , 5  prompt 'Дате отбытия '
@  15 , 5  prompt 'Дате оплаты'
@  17 , 5  prompt 'ь гостя'
menu to k
do case
case k= 1 
use guests.dbf
brow title 'БД гостя';
       mes :h='Место': 5 , ;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3 , ;
           :w=(pol='М' or pol='Ж') and pl(left(mes, 3 ),pol), ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       
case k= 2 
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 poisk
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu    
решил сделать процедуру поиска. Скопировал её из другой программы и переделываю под свою. Только я не пойму как написать процедуру поиска так, чтобы при выборе признака, например, "по фамилии", выводилось окно, в котором пользователь бы вводил ФИО гостя и производился бы поиск. Объясните, пожалуйста. На всякий случай вот архив с курсовой.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33856681
parenyok Только я не пойму как написать процедуру поиска так, чтобы при выборе признака, например, "по фамилии", выводилось окно, в котором пользователь бы вводил ФИО гостя и производился бы поиск. Объясните, пожалуйста.
Все очень просто:
1. Делаешь окно (зто ты умеешь уже )
2. в символьную переменную считывашь значение, которое надо найти
3. делаешь поиск:
- если есть индекс по полю, то делаешь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
r=recno()
go top
&&cString должна быть дополнена пробелами до длины индексного выражения
if seek(cString)
 r=recno()
 show window F10 refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif
-если нет индекса по полю, то :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 r=recno()
go top
locate for <fieldname>==cString 
if found()
 r=recno()
 show window F10 refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33861735
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.
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.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
sele a
use guests.dbf
push key clea
defi wind SFEDIT from  1 , 00  to  18 , 95 ; 
titl '<<< Список гостей >>>' foot 'F3-поиск F5-добавить F8-удалить  F7-редактировать Esc-выход 'color w,r/br,gr+/rb+,gr+/br 
acti wind SFEDIT
on key labe f3 do poisk
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 
browse;
      fiel mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind SFEDIT

rele wind SFEDIT
set deleted on
on key labe f3
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 , 70 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 8 )
store space( 5 ) to s( 1 )
store space( 20 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 10 ) to s( 6 )
store space( 10 ) to s( 7 )
store space( 2 ) to s( 8 )
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'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) 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
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( 8 )
s( 1 )=mes
s( 2 )=fam
s( 3 )=pol
s( 4 )=pas
s( 5 )=pri
s( 6 )=otb
s( 7 )=opl
s( 8 )=num
@  1 , 0  say'Место'
@  2 , 0  say'ФИО'
@  3 , 0  say'Пол'
@  4 , 0  say'Номер паспорта'
@  5 , 0  say'Дата приезда'
@  6 , 0  say'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  10 , 23  to  15 , 50   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  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
return
******************************************************************
          **** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  23 , 60 ;
title 'Поиск гостей' foot 'Esc - Выход' 
acti wind find
store SPACE( 20 ) to U
@  1 , 9  say'Искать по:'
* get U  picture  ('xxxxxxxxxxxxxxx')
*@  4 , 12  say'      Где искать?'
*read

k= 0 
@  3 , 5   prompt 'Месту в гостинице'
@  5 , 5   prompt 'Фамилии'
@  7 , 5   prompt 'Полу'
@  9 , 5   prompt 'Паспорту'
@  11 , 5   prompt 'Дате прибытия'
@  13 , 5  prompt 'Дате отбытия '
@  15 , 5  prompt 'Дате оплаты'
@  17 , 5  prompt 'ь гостя'
menu to k

do case
case k= 1 
use guests.dbf
defi wind mes from  5 , 20  to  15 , 70 ;
title 'Поиск по месту в гостинице' foot 'Esc - Выход'
acti wind mes
store SPACE( 5 ) to U
@  1 , 1  say'Введите место гостя:' get U  picture  ('xxxxx')
read

r=recno()
go top
locate for <mes>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 2 
use guests.dbf
defi wind fam from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind fam
store SPACE( 20 ) to U
@  1 , 1  say'Введите фамилию или ФИО гостя целеком:';
get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
read

r=recno()
go top
locate for <fam>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 3 
use guests.dbf
defi wind pol from  5 , 20  to  15 , 70 ;
title 'Поиск по полу' foot 'Esc - Выход'
acti wind pol
r=recno()
store SPACE( 1 ) to U
@  1 , 1  say'Введите пол гостя:' get U  picture  ('x')
read

if U<>'М'.or.U<>'Ж'
   wait window nowait "Ошибка!!! Введите "М" или "Ж"!"
   go r
endif

r=recno()
go top
locate for <pol>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 4 
use guests.dbf
defi wind pas from  5 , 10  to  15 , 90 ;
title 'Поиск по номеру паспорта' foot 'Esc - Выход'
acti wind pas
store SPACE( 10 ) to U
@  1 , 1  say'Введите ь паспорта гостя:';
get U  picture  ('9999999999')
read

r=recno()
go top
locate for <pas>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 5 
use guests.dbf
defi wind pri from  5 , 10  to  15 , 90 ;
title 'Поиск по дате прибытия' foot 'Esc - Выход'
acti wind pri
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату прибытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for <pri>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 6 
use guests.dbf
defi wind otb from  5 , 10  to  15 , 90 ;
title 'Поиск по дате отбытия' foot 'Esc - Выход'
acti wind otb
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату отбытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for <otb>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif

case k= 7 
use guests.dbf
defi wind opl from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind opl
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату оплаты гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for <opl>==cString 
if found()
 r=recno()
 show window SFEDIT refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif


brow title 'БД гостя';
       mes :h='Место': 5 , ;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3 , ;
           :w=(pol='М' or pol='Ж') and pl(left(mes, 3 ),pol), ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       
case k= 8 
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 poisk
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu
Но теперь почему-то выдаётся ошибка в строке
Код: plaintext
locate for <fam>==cString
(и других подобных ей) "Потеря выражения". Почему? Не могу понять.

P.S. Как ты заметишь, я маленько изменил твою функцию поиска
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 r=recno()
go top
locate for <fieldname>==cString 
if found()
 r=recno()
 show window F10 refresh
else
  wait window nowait "Error: Desired item is not found!!!"
  go r
endif
, т.к. я решил, что в строке:
Код: plaintext
locate for <fieldname>==cString
запись fieldname означает имя области в БД (fam, pol, pas и т.д.). Также изменил строку
Код: plaintext
show window F10 refresh
, т.к. в этой программе у меня окно browse-окно не F10, а SFEDIT. Скажи, пожалуйста, правильно ли я сделал. И ещё. Правильно ли я написал предупреждение о том, если пользователь неправильно заполнит поисковый запрос на пол гостя:
Код: plaintext
1.
2.
3.
if U<>'М'.or.U<>'Ж'
   wait window nowait "Ошибка!!! Введите "М" или "Ж"!"
   go r
endif
Если не правильно, скажи, пожалуйста как будет правильно.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33862174
parenyokЕсли не правильно, скажи, пожалуйста как будет правильно.
У меня просто нет слов

1.Объясняю для тех, кто "в танке":
<fieldname> - это имя поля (которое должно писаться БЕЗ УГЛОВЫХ СКОБОК!!! )
cString - выражение для поиска. (Конкретно в твоем случае это будет переменная U )

таким образом, выражение для поиска должно быть преобразовано к виду:
Код: plaintext
locate for mes==u

2. Зачем ты открываешь файл каждый раз при поиске. Хватит того, что он уже у тебя открыт. Вместо use guests в процедуре поиска надо сделать select guests

3. Если я правильно понял, то
Код: plaintext
1.
2.
3.
4.
if U<>'М'.or.U<>'Ж'
   wait window nowait "Ошибка!!! Введите "М" или "Ж"!"
   go r
endif
должно быть:
Код: plaintext
1.
2.
3.
4.
if not U$'МЖ'
   wait window nowait "Ошибка!!! Введите "М" или "Ж"!"
   go r
endif
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33862752
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо тебе большое!!! Спасибо!!! Осталось только маленько доработать и всё будет зашибись! Но мои "причуды" тоже можно понять. Так. Теперь я хотел бы сделать так, чтобы результаты поиска выводились в отдельном окне. Ну, окно-то я сделаю! А результаты поиска как? Прости, пожалуйста, за глупый вопрос, а в процедуре поиска, строка:
Код: plaintext
 show window SFEDIT refresh
и означает показать окно SPEDIT после поиска? А если я, например, напишу:
Код: plaintext
1.
2.
defi wind result from  5 , 00  to  20 , 80 ;
title 'Результаты поиска' foot 'Esc-Выход'
acti wind result
А в процедуре поиска:
Код: plaintext
 show window result refresh
, то получится то, что я хочу? Сейчас попробую...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33862790
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М-да... Сделал как я думал - не получается. Выводится пустое окно "Результаты поиска".
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33867663
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.
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.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
set talk on
sele a
use guests.dbf
push key clea
defi wind gosti from  1 , 00  to  18 , 95 ; 
titl '<<< Список гостей >>>' foot 'F3-поиск F5-добавить F8-удалить  F7-редактировать Esc-выход 'color w,r/br,gr+/rb+,gr+/br 
acti wind gosti
on key labe f3 do poisk
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 
browse;
      fiel mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind gosti

rele wind gosti
set deleted on
on key labe f3
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 , 70 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 8 )
store space( 5 ) to s( 1 )
store space( 20 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 10 ) to s( 6 )
store space( 10 ) to s( 7 )
store space( 2 ) to s( 8 )
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'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) 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
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( 8 )
s( 1 )=mes
s( 2 )=fam
s( 3 )=pol
s( 4 )=pas
s( 5 )=pri
s( 6 )=otb
s( 7 )=opl
s( 8 )=num
@  1 , 0  say'Место'
@  2 , 0  say'ФИО'
@  3 , 0  say'Пол'
@  4 , 0  say'Номер паспорта'
@  5 , 0  say'Дата приезда'
@  6 , 0  say'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  10 , 23  to  15 , 50   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  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
return
******************************************************************
          **** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  23 , 60 ;
title 'Поиск гостей' foot 'Esc - Выход' 
acti wind find
store SPACE( 20 ) to U
@  1 , 9  say'Искать по:'
* get U  picture  ('xxxxxxxxxxxxxxx')
*@  4 , 12  say'      Где искать?'
*read

k= 0 
@  3 , 5   prompt 'Месту в гостинице'
@  5 , 5   prompt 'Фамилии'
@  7 , 5  prompt 'Дате прибытия'
@  11 , 5  prompt 'Дате отбытия'
@  13 , 5  prompt 'Дате оплаты'
menu to k

do case
case k= 1 
select guests

defi wind mes from  5 , 20  to  15 , 70 ;
title 'Поиск по месту в гостинице' foot 'Esc - Выход'
acti wind mes
store SPACE( 5 ) to U
@  1 , 1  say'Введите место гостя:' get U  picture  ('xxxxx')
read

r=recno()
go top
locate for mes==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 2 
select guests
defi wind fam from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind fam
store SPACE( 20 ) to U
@  1 , 1  say'Введите фамилию или ФИО гостя целеком:';
get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
read

r=recno()
go top
locate for fam==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif


case k= 5 
select guests
defi wind pri from  5 , 10  to  15 , 90 ;
title 'Поиск по дате прибытия' foot 'Esc - Выход'
acti wind pri
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату прибытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for pri==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 6 
select guests
defi wind otb from  5 , 10  to  15 , 90 ;
title 'Поиск по дате отбытия' foot 'Esc - Выход'
acti wind otb
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату отбытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for otb==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 7 
select guests
defi wind opl from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind opl
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату оплаты гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for opl==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif
       
case k= 8 
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 poisk
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu
, я вызываю окно поиска. Там выбираю "По месту в гостинице", ввожу 11031, нажимаю Enter. Далее появляется окно списка гостей, но строка с введённым местом не выделена. Снова жму Enter, появляется окно с вопросом "Продолжить поиск". И если нажать Esc, то выделится строка с введённым местом. Скажите, пожалуйста, как сделать так, чтобы после введения поиска у меня появлялось окно "Список гостей" с выделенной строкой. На всякий случай, присоединю архив.

P.S. Кстати, можете меня поздравить! Это моё 100-е сообщение в этом форуме!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33872009
parenyok... я вызываю окно поиска. Там выбираю "По месту в гостинице", ввожу 11031, нажимаю Enter. Далее появляется окно списка гостей, но строка с введённым местом не выделена. Снова жму Enter, появляется окно с вопросом "Продолжить поиск". И если нажать Esc, то выделится строка с введённым местом. Скажите, пожалуйста, как сделать так, чтобы после введения поиска у меня появлялось окно "Список гостей" с выделенной строкой.
Точно также, как при отображении поэтажного плана: ввести "вычисляемое поле" (т.е. выражение t=iif(r=recno(),'>',' ') ) в browse окно. Тогда у тебя всегда текущая запись будет "выделена" знаком ">"

parenyok
P.S. Кстати, можете меня поздравить! Это моё 100-е сообщение в этом форуме!
Сомнительный повод для поздравлений... Вот если бы ты в этих сообщениях давал кому-нибудь ценные советы, тогда да...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33872209
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черный плащ (бывш. Ужас, летящийТочно также, как при отображении поэтажного плана: ввести "вычисляемое поле" (т.е. выражение t=iif(r=recno(),'>',' ') ) в 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.
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.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
set talk on
sele a
use guests.dbf
push key clea
defi wind gosti from  1 , 00  to  18 , 95 ; 
titl '<<< Список гостей >>>' foot 'F3-поиск F5-добавить F8-удалить  F7-редактировать Esc-выход 'color w,r/br,gr+/rb+,gr+/br 
acti wind gosti
on key labe f3 do poisk
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 
r=recno()
browse;
    fiel   t=iif(r=recno(),'>',' '):h=' ',;
           mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap in wind gosti

rele wind gosti
set deleted on
on key labe f3
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 , 70 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 8 )
store space( 5 ) to s( 1 )
store space( 20 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 10 ) to s( 6 )
store space( 10 ) to s( 7 )
store space( 2 ) to s( 8 )
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'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) 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
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( 8 )
s( 1 )=mes
s( 2 )=fam
s( 3 )=pol
s( 4 )=pas
s( 5 )=pri
s( 6 )=otb
s( 7 )=opl
s( 8 )=num
@  1 , 0  say'Место'
@  2 , 0  say'ФИО'
@  3 , 0  say'Пол'
@  4 , 0  say'Номер паспорта'
@  5 , 0  say'Дата приезда'
@  6 , 0  say'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  10 , 23  to  15 , 50   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
store  0  to i
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  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
return
******************************************************************
          **** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  23 , 60 ;
title 'Поиск гостей' foot 'Esc - Выход' 
acti wind find
store SPACE( 20 ) to U
@  1 , 9  say'Искать по:'
* get U  picture  ('xxxxxxxxxxxxxxx')
*@  4 , 12  say'      Где искать?'
*read

k= 0 
@  3 , 5   prompt 'Месту в гостинице'
@  5 , 5   prompt 'Фамилии'
@  7 , 5   prompt 'Дате прибытия'
@  11 , 5  prompt 'Дате отбытия'
@  13 , 5  prompt 'Дате оплаты'
@  15 , 5  prompt 'Отмена'
menu to k

do case
case k= 1 
select guests

defi wind mes from  5 , 20  to  15 , 70 ;
title 'Поиск по месту в гостинице' foot 'Esc - Выход'
acti wind mes
store SPACE( 5 ) to U
@  1 , 1  say'Введите место гостя:' get U  picture  ('99999')
read

r=recno()
go top
locate for mes==U 
if found()
 r=recno()
 show window gosti refresh
rele wind find
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 2 
select guests
defi wind fam from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind fam
store SPACE( 20 ) to U
@  1 , 1  say'Введите фамилию или ФИО гостя целеком:';
get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
read

r=recno()
go top
locate for fam==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif


case k= 3 
select guests
defi wind pri from  5 , 10  to  15 , 90 ;
title 'Поиск по дате прибытия' foot 'Esc - Выход'
acti wind pri
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату прибытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for pri==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 4 
select guests
defi wind otb from  5 , 10  to  15 , 90 ;
title 'Поиск по дате отбытия' foot 'Esc - Выход'
acti wind otb
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату отбытия гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for otb==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 5 
select guests
defi wind opl from  5 , 10  to  15 , 90 ;
title 'Поиск по фамилии' foot 'Esc - Выход'
acti wind opl
store SPACE( 10 ) to U
@  1 , 1  say'Введите дату оплаты гостя:';
get U  picture  ('99.99.9999')
read

r=recno()
go top
locate for opl==U 
if found()
 r=recno()
 show window gosti refresh
read
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif
       
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 poisk
case k= 2 
deacti wind w1
deacti wind find
close data
endcase
retu

parenyok
P.S. Кстати, можете меня поздравить! Это моё 100-е сообщение в этом форуме!
Сомнительный повод для поздравлений... Вот если бы ты в этих сообщениях давал кому-нибудь ценные советы, тогда да...[/quot]Просто... захотелось... маленько уважения... внимания...
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33872578
parenyok Черный плащ (бывш. Ужас, летящийТочно также, как при отображении поэтажного плана: ввести "вычисляемое поле" (т.е. выражение t=iif(r=recno(),'>',' ') ) в 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.
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.
...
r=recno()
browse;
    field  t=iif(r=recno(),'>',' '):h=' ',;
           mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap nodel in wind gosti when ttt() 

rele wind gosti
...
**** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  13 , 30 ;
title ' Поиск гостей ' foot 'Esc - Выход' 

defi wind mes from  5 , 20  to  10 , 70  ;
title " Пaрaмeтpы поискa " ;
foot 'Esc - Выход'

acti wind find
@  1 , 9  say'Искать по:'
@  3 , 5  get k function"*RVT ;
Месту в гостинице;Фамилии;Дате прибытия;Дате отбытия;Дате оплаты;Отмена";
DEFAULT  1 
read
deactivate window find
acti wind mes
do case
case k= 1 
select guests
store SPACE( 5 ) to U
@  1 , 1  say'Введите место гостя:' get U  picture  ('99999')
read
deactivate wind mes
r=recno()
go top
locate for mes==U 
if found()
 r=recno()
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 2 
select guests
store SPACE( 20 ) to U
@  1 , 1  say 'Введите фамилию'
@  2 , 1  say 'или ФИО гостя целиком:';
get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
read
deactivate wind mes
r=recno()
go top
locate for fam==U 
if found()
 r=recno()
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 3 
select guests
store Ctod("") to U
@  1 , 1  say'Введите дату прибытия гостя:';
get U  picture  ('99.99.9999')
read
deactivate wind mes
r=recno()
go top
locate for pri==U 
if found()
 r=recno()
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 4 
select guests
store ctod("") to U
@  1 , 1  say'Введите дату отбытия гостя:';
get U  picture  ('99.99.9999')
read
deactivate wind mes
r=recno()
go top
locate for otb==U 
if found()
 r=recno()
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif

case k= 5 
select guests
store ctod("") to U
@  1 , 1  say'Введите дату оплаты гостя:';
get U  picture  ('99.99.9999')
read
deactivate wind mes
r=recno()
go top
locate for opl==U 
if found()
 r=recno()
else
  wait window nowait "Поиск не дал результатов!!!"
  go r
endif
       
case k= 6 
deacti wind find,mes
endcase
release windows find,mes
retu

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW gosti REFRESH 
RETURN 
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33872695
parenyokСпасибо, большое! Но почему-то не помогло... Посмотри, пожалуйста, может что не так:

Я тебе скажу. :)
Во всякой более или менее сложной программе существует (явно или неявно) бесконечный цикл, ожидающий ввода пользователя.
В программе про поэтажный план гостиницы роль этого цикла играла команда READ CYCLE . В твоей текущей программе эту роль играет BROWSE-окно .
Поэтому, все твои функции должны возвращать управление именно ему (а оно уже само будет рефрешиться).
Если тебе нужен поиск с продолжением, то используется следующая технология:
1. вводится глобальная переменная-флаг, которая будет отслеживать выбрал ли пользователь продолжение поиска
2. в командах locate используется ключевое слово REST (остаток).

Т.е. должно быть примерно так (требуется отладка):
Код: 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.
public Continue_search && глобальная переменная для продолжения поиска
Continue_search=.f. && поиск пока не продолжаем
Public last_search  && глобальная переменная для сохранения последнего поиска
last_search= 0       && пока поиска не було / новый поиск
......
on key label F3 do wixod
.....
r=recno()
browse;
    field  t=iif(r=recno(),'>',' '):h=' ',;
           mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата прибытия': 13 ,;
           otb:h='Дата отбытия': 12 ,;
           opl:h='Оплачено до': 11 ,;
           num:h='ь гостя': 7 ;
           noed noap nodel in wind gosti when ttt() 

rele wind gosti
...
**** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  13 , 30 ;
title ' Поиск гостей ' foot 'Esc - Выход' 

defi wind mes from  5 , 20  to  10 , 70  ;
title " Пaрaмeтpы поискa " ;
foot 'Esc - Выход'
if Last_search= 0 
  acti wind find
  @  1 , 9  say'Искать по:'
  @  3 , 5  get k function"*RVT ;
  Месту в гостинице;Фамилии;Дате прибытия;Дате отбытия;Дате оплаты;Отмена";
  DEFAULT  1 
  read
  Last_search=k
  select guests
  r=recno()
  go top
  deactivate window find
else
  k=last_search
  select guests
endif

acti wind mes
do case
   case k= 1 
       store SPACE( 5 ) to U
       @  1 , 1  say'Введите место гостя:' get U  picture  ('99999')
       read
       deactivate wind mes
       locate rest for mes==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 2 
       store SPACE( 20 ) to U
       @  1 , 1  say 'Введите фамилию'
       @  2 , 1  say 'или ФИО гостя целиком:';
             get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
       read
       deactivate wind mes
       locate rest for fam==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 3 
       store Ctod("") to U
       @  1 , 1  say'Введите дату прибытия гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for pri==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 4 
       store ctod("") to U
       @  1 , 1  say'Введите дату отбытия гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for otb==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 5 
       store ctod("") to U
       @  1 , 1  say'Введите дату оплаты гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for opl==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 6 
       deacti wind find,mes
       Last_search= 0 
endcase
release windows find,mes
retu

procedure Wixod
define window vopros from  1 , 1  to  10 , 30 
activate window vopros
@  2 , 1  say "Продолжить поиск?"
@  3 , 1  get v function "*RHT Продолжить; Новый поиск; Завершить" default  1 
read
deactivate window vopros
do case
   case v= 1  
     if !Continue_search
       Continue_search=.t.
       Last_search= 0 
     endif
       do poisk
   case v= 2     
      Continue_search=.t.
      Last_search= 0 
      do poisk
   case v= 3 
      Continue_search=.t.
      Last_search= 0 
endcase
release window vopros
return

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW gosti REFRESH 
RETURN 

parenyok
Просто... захотелось... маленько уважения... внимания...

По этому поводу есть пословица:
"Взялся за гуж - не говори, что не дюж"
(т.е. если начал программировать, то никто тебя в этой области жалеть не будет - будут спрашивать по "полной программе")
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33873842
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.
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.
********************************************************************************
****************** Работа с БД гостей ***************
close data
*SET DEFAULT TO C:\kr
set talk on
sele a
use guests.dbf
push key clea
defi wind gosti from  1 , 00  to  18 , 95 ; 
titl '<<< Список гостей >>>' foot 'F3-поиск F5-добавить F8-удалить  F7-редактировать Esc-выход 'color w,r/br,gr+/rb+,gr+/br 
acti wind gosti

public Continue_search && глобальная переменная для продолжения поиска
Continue_search=.f. && поиск пока не продолжаем
Public last_search  && глобальная переменная для сохранения последнего поиска
last_search= 0       && пока поиска не було / новый поиск

on key labe f3 do poisk
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 
r=recno()
browse;
    field  t=iif(r=recno(),'>',' '):h=' ',;
           mes:h='Место': 5 ,;
           fam:h='ФИО': 15 ,;
           pol:h='Пол': 3 ,;
           pas:h='ь паспорта': 10 ,;
           pri:h='Дата приб.': 10 ,;
           otb:h='Дата отб.': 10 ,;
           opl:h='Оплач. до': 10 ,;
           num:h='ь гостя': 7 ;
           noed noap nodel in wind gosti when ttt() 

rele wind gosti
set deleted on
on key labe f3
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 , 70 ; 
titl '<<< Характеристики нового гостя >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B 
acti wind dobav
dime s( 8 )
store space( 5 ) to s( 1 )
store space( 20 ) to s( 2 )
store space( 1 ) to s( 3 )
store space( 10 ) to s( 4 )
store space( 10 ) to s( 5 )
store space( 10 ) to s( 6 )
store space( 10 ) to s( 7 )
store space( 2 ) to s( 8 )
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'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 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( 8 )
s( 1 )=mes
s( 2 )=fam
s( 3 )=pol
s( 4 )=pas
s( 5 )=pri
s( 6 )=otb
s( 7 )=opl
s( 8 )=num
@  1 , 0  say'Место'
@  2 , 0  say'ФИО'
@  3 , 0  say'Пол'
@  4 , 0  say'Номер паспорта'
@  5 , 0  say'Дата приезда'
@  6 , 0  say'Дата отъезда'
@  7 , 0  say'Оплачено до'
@  8 , 0  say'Номер'

@  1 , 20  get s( 1 ) pict'99999'
@  2 , 20  get s( 2 ) pict'xxxxxxxxxxxxxxxxxxxx' 
@  3 , 20  get s( 3 ) pict'x'
@  4 , 20  get s( 4 ) pict'9999999999'
@  5 , 20  get s( 5 ) pict'99.99.9999' 
@  6 , 20  get s( 6 ) pict'99.99.9999'
@  7 , 20  get s( 7 ) pict'99.99.9999'
@  8 , 20  get s( 8 ) pict'99'

a= 0 
b= 0 
@  10 , 10  GET A FUNC '*   OK' 
@  10 , 20  GET B FUNC '*  Отмена' 
read cycle 
if a= 1 
gather from s
ENDIF
rele wind red
pop key
endif
return
********************************************************************************
****************** Процедура удаления записей БД  ***************
proc del
if !eof()
push key clear
define window vnc from  10 , 23  to  15 , 50   title '"ВHИМАHИЕ"';
shad doub color r+/b,n/n,rb/bg+ 
ACTI WIND vnc
*store  0  to i
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  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
return
******************************************************************
          **** Процедура поиска ****
procedure poisk
define window find from  1 , 1  to  13 , 30 ;
title ' Поиск гостей ' foot 'Esc - Выход' 

defi wind mes from  5 , 20  to  10 , 70  ;
title " Пaрaмeтpы поискa " ;
foot 'Esc - Выход'
if Last_search= 0 
  acti wind find
  @  1 , 9  say'Искать по:'
  @  3 , 5  get k function"*RVT ;
  Месту в гостинице;Фамилии;Дате прибытия;Дате отбытия;Дате оплаты;Отмена";
  DEFAULT  1 
  read
  Last_search=k
  select guests
  r=recno()
  go top
  deactivate window find
else
  k=last_search
  select guests
endif

acti wind mes
do case
   case k= 1 
       store SPACE( 5 ) to U
       @  1 , 1  say'Введите место гостя:' get U  picture  ('99999')
       read
       deactivate wind mes
       locate rest for mes==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 2 
       store SPACE( 20 ) to U
       @  1 , 1  say 'Введите фамилию'
       @  2 , 1  say 'или ФИО гостя целиком:';
             get U  picture  ('xxxxxxxxxxxxxxxxxxxx')
       read
       deactivate wind mes
       locate rest for fam==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 3 
       store Ctod("") to U
       @  1 , 1  say'Введите дату прибытия гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for pri==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 4 
       store ctod("") to U
       @  1 , 1  say'Введите дату отбытия гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for otb==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 5 
       store ctod("") to U
       @  1 , 1  say'Введите дату оплаты гостя:';
             get U  picture  ('99.99.9999')
       read
       deactivate wind mes
       locate rest for opl==U 
       if found()
         r=recno()
       else
         wait window nowait "Поиск не дал результатов!!!"
         go r
       endif
   case k= 6 
       deacti wind find,mes
       Last_search= 0 
endcase
release windows find,mes
r=recno()
*read
*do wixod 
on key labe ENTER do wixod
retu

procedure wixod
define window vopros from  5 , 20  to  10 , 70 
activate window vopros
@  1 , 17  say "Продолжить поиск?"
@  3 , 1  get v function "*RHT Продолжить; Новый поиск; Завершить" default  1 
read
deactivate window vopros
do case
   case v= 1  
     if !Continue_search
       Continue_search=.t.
       Last_search= 0 
     endif
       do poisk
   case v= 2     
      Continue_search=.t.
      Last_search= 0 
      do poisk
   case v= 3 
      Continue_search=.t.
      Last_search= 0 
endcase
release window vopros
return

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW gosti REFRESH 
RETURN
Правда, остался маленький недочёт. Когда перемещаешь в browse-окне по гостям, то знак ">" остаётся на строке, а не исчезает как в программе про этажи, с которой я начал эту тему. Подскажи, пожалуйста, как можно это предотвратить. Конечно, это вовсе необязательно, но всё-таки. И ещё. По заданию мне надо сделать выбор всех постояльцев отъезжающих сегодня. Скажи, пожалуйста, как это сделать.

P.S. Вот думал-думал, зачем ты при вызове процедуры поиска вызываешь процедуру выхода. Ведь при вызове первого должно открываться окно выбора признака гостя, а не вопрос "Продолжить поиск", когда ты его ещё не начинал.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33874079
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... Чё-то глюк какой-то. В тексте программы нажимаю Enter, чтобы перейти на новую строку, а мне ошибка "Файл WIXOD.PRG не найден.". У меня же программа не запущена и строка
Код: plaintext
on key labe ENTER do wixod
на данный момент же никакой роли не играет. В чём дело? Видно придётся поменять клавишу вызова процедуры wixod.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33874331
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушай. А как сделать, чтобы выводилось часть числа? Например, есть в поле mes число 11011 и мне надо, чтобы выводилась только первая, только последняя и середина этого числа. Просто я пишу процедуру квитанции гостя и хочу, чтобы выводилось следующее: "Гость ... проживает в 101-м номере, который находится на 1-ом этаже. Место в номере: 1..." и т.д.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33874704
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokХм... Чё-то глюк какой-то. В тексте программы нажимаю Enter, чтобы перейти на новую строку, а мне ошибка "Файл WIXOD.PRG не найден.". У меня же программа не запущена и строка
Код: plaintext
on key labe ENTER do wixod
на данный момент же никакой роли не играет. В чём дело? Видно придётся поменять клавишу вызова процедуры wixod.О! У паренька начали возникать проблески понимания! Скоро он начнет задавать нормальные вопросы ;-)
Настройки on key не снимаются сами по себе после завершения программы с выходом в среду FoxPro. Надо до начала назначений сделать что-нибудь типа push key [clear], а перед возвратом в среду что-нибудт типа - pop key [all], чтобы все свои установки, сделанные в программе очистить.
Впрочем, за собой можно и не чистить - но тогда не делать и выход в среду, а делать сразу quit.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33876967
parenyokСлушай. А как сделать, чтобы выводилось часть числа? Например, есть в поле mes число 11011 и мне надо, чтобы выводилась только первая, только последняя и середина этого числа. Просто я пишу процедуру квитанции гостя и хочу, чтобы выводилось следующее: "Гость ... проживает в 101-м номере, который находится на 1-ом этаже. Место в номере: 1..." и т.д.
для первой left(поле,1,1)

для последней right(поле,1,1)

для середины использовать
d=len(alltr(поле))
substr(поле,2,d-1)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33884329
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Александру за ответ! Теперь у меня вот какие проблемы с написанием процедуры квитанции. Ну, сначала приведу саму процедуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure kvit
defi wind kvit from  4 , 8  to  17 , 60 ; 
titl '<<< Квитанция оплаты >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind kvit
dime s( 4 )
s( 1 )=fam
s( 2 )=mes
s( 3 )=pri
s( 4 )=otb
@  1 , 16  say'проживает в'
@  1 , 36  say'номере.'
@  2 , 0  say'Дата оплаты номера:'
@  3 , 0  say'с'
@  3 , 13  say'до'

@  1 , 0  get s( 1 )  pict 'xxxxxxxxxxxxxxx' 
@  1 , 28  get s( 2 ) pict '99999'
@  3 , 02  get s( 3 ) pict '99.99.9999'
@  3 , 16  get s( 4 ) pict '99.99.9999'
return
Проблема в следующем. Если оставить всё как есть, то фон у фамилии гостя и у всего остального будет сереневый и почему-то на 4-ой строчке написана дата отбытия и на 3-ей дата прибытия (вначале этих строк!). Если убрать в 4-ёх последних строчках слово pict, то останутся фамилия и даты прибытия и отбытия. Правда последие два не там где надо. Скажите, пожалуйста, как сделать у всех слов одинаковый фон и убрать лишнее? Если проблема моя не совсем понята, то вот архив. Проблема в программе GUESTS.PRG. Вышеописанная процедура вызывается клавишей F2. Прошу, помогите!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33885602
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HELP @
HELP set color commands
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33888275
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriHELP @
HELP set color commandsТак... Как я понимаю set color commands это установка цвета в команде, т.е. в выделенных фоном словах, а HELP это намёк на то, чтобы я ввёл в Фоксе первое, выделил и нажал F1, да? :-) А HELP @ это что? Аналогично? Ну, помогите, пожалуйста, исправить вышеописанные проблемы. Ведь вы знаете как, ну. Пожалуйста! И подскажите, пожалуйста, как сделать выбор всех постояльцев, отъезжающих сегодня. И ещё. В этой программе:
Код: 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.
SET TALK OFF 
SET DATE GERMAN 
set century on
set deleted on

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 && Вызов окна третьего этажа 
ON KEY LABEL F9 ACTIVATE WIND e4 && Вызов окна четвёртого этажа

DEFINE WINDOW gost FROM  0 , 0  TO  8 , 79 ; 
       TITLE 'F10 Список гостей Сегодня '+dtoc(date()) && Окно - список гостей 
DEFINE WINDOW e1 FROM  5 , 00  TO  14 , 29 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  15 , 00  TO  24 , 29 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  5 , 49  TO  14 , 78 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
DEFINE WINDOW e4 FROM  15 , 49  TO  24 , 78 ; 
       TITLE 'F9 Этаж 4' COLOR n/gb && Окно четвёртого этажа  

USE guests.dbf

go top

r=RECNO() 
browse;
  fiel t=iif(r=recno(),'>',' ') :h=' ', ;
       d=iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date(),'Долг','Отбыл'),'    ') :h='Долг', ;
       mes :h='Место': 5 ,;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3   ;
           :w=(pol='М' or pol='Ж') and pl(left(mes, 3 ),pol) ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       color scheme  10  window gost nowait when ttt() noed noap nodel 

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')

ACTIVATE WINDOW e4   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-401----402----403---404--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-405----406--      --407--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4012')

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

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW f10 REFRESH 
RETURN 

FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
if SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW f10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=RECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
go top           
locate for left(mes, 3 )==m AND !EMPTY(pol) AND pol#p 
IF found() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol$'МM','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   select guests
   GO nr && Возврат к исходной записи 
   return .f.
ENDIF 
RETURN .t.
я хочу сделать так, чтобы когда в окне этажа нажимаешь на какое-нибудь место, то, чтобы выводилось кто там живёт. Чтобы при добавлении гостя соответсвующее место выделилось, а при удалении стало пустым, т.е. занятость и освобождение места. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33888280
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriHELP @
HELP set color commandsТак... Как я понимаю set color commands это установка цвета в команде, т.е. в выделенных фоном словах, а HELP это намёк на то, чтобы я ввёл в Фоксе первое, выделил и нажал F1, да? :-) А HELP @ это что? Аналогично? Ну, помогите, пожалуйста, исправить вышеописанные проблемы. Ведь вы знаете как, ну. Пожалуйста! И подскажите, пожалуйста, как сделать выбор всех постояльцев, отъезжающих сегодня. И ещё. В этой программе:
Код: 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.
SET TALK OFF 
SET DATE GERMAN 
set century on
set deleted on

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 && Вызов окна третьего этажа 
ON KEY LABEL F9 ACTIVATE WIND e4 && Вызов окна четвёртого этажа

DEFINE WINDOW gost FROM  0 , 0  TO  8 , 79 ; 
       TITLE 'F10 Список гостей Сегодня '+dtoc(date()) && Окно - список гостей 
DEFINE WINDOW e1 FROM  5 , 00  TO  14 , 29 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  15 , 00  TO  24 , 29 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  5 , 49  TO  14 , 78 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
DEFINE WINDOW e4 FROM  15 , 49  TO  24 , 78 ; 
       TITLE 'F9 Этаж 4' COLOR n/gb && Окно четвёртого этажа  

USE guests.dbf

go top

r=RECNO() 
browse;
  fiel t=iif(r=recno(),'>',' ') :h=' ', ;
       d=iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date(),'Долг','Отбыл'),'    ') :h='Долг', ;
       mes :h='Место': 5 ,;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3   ;
           :w=(pol='М' or pol='Ж') and pl(left(mes, 3 ),pol) ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       color scheme  10  window gost nowait when ttt() noed noap nodel 

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')

ACTIVATE WINDOW e4   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-401----402----403---404--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-405----406--      --407--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4012')

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

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW f10 REFRESH 
RETURN 

FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
if SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW f10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=RECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим аначением поля POL 
go top           
locate for left(mes, 3 )==m AND !EMPTY(pol) AND pol#p 
IF found() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol$'МM','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   select guests
   GO nr && Возврат к исходной записи 
   return .f.
ENDIF 
RETURN .t.
я хочу сделать так, чтобы когда в окне этажа нажимаешь на какое-нибудь место, то, чтобы выводилось кто там живёт. Чтобы при добавлении гостя соответсвующее место выделилось, а при удалении стало пустым, т.е. занятость и освобождение места. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33889711
Заботин А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, спасибо, рассмешил.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33890827
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я ничего смешного не вижу... :-\ А что тебя так расмешило? Если знаешь как мне помочь, не сочти за труд и, пожалуйста , помоги!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33891932
Заботин А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня рассмешило твое неуемное желание халявы при отсутствии попыток самому разобраться.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33891957
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
где это видано?
где это слыхано?
Папа - решает, а Вася - сдает !
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33915645
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заботин А.Меня рассмешило твое неуемное желание халявы при отсутствии попыток самому разобраться.ЭТО ПОЧЕМУ ЭТО ХАЛЯВЫ ??? Вовсе я халявы не хочу, а хочу разобраться! Мне, вот к примеру, совсем не понятно, почему в окнах этажа выделено первое и второе место, а в первом этаже ещё и третье (т.е. около третьего) и всё! И у меня в базе уже 12 человек, а выделены всё эти же места и ничего больше не выделяется! Помогите, пожалуйста! И скажите, пожалуйста, как сделать так, чтобы после нажатия на место выводилось кто там живёт. Вот этого у Попова точно нет, хотя, конечно есть сомнения... :-/ А искать где это он описывает - это, извините, как искать иглу в стоге сена!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33917412
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, с 1 по 13 августа ты удивлялся, вместо того, чтобы посчитать количество созданных невидимых кнопок в твоей программе?!!! ;-)))
GET-ов сколько, а?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33917926
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял... А где у меня невидимые кнопки. А с GET'ами я не причём. Это вы мне написали... А что, есть лишние? :-\
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33917955
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokНе понял... А где у меня невидимые кнопки. А с GET'ами я не причём. Это вы мне написали... А что, есть лишние? :-\
Вот это фортели чувак выкидывает... :-(
И после этого ты смеешь говорить, что "пытаюсь разобраться"???!!!

P.S. С 1-го по 13-ое - самое время для отдыха! ;-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33918063
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.
SET TALK OFF 
SET DATE GERMAN 
set century on
set deleted on

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 && Вызов окна третьего этажа 
ON KEY LABEL F9 ACTIVATE WIND e4 && Вызов окна четвёртого этажа

DEFINE WINDOW gost FROM  0 , 0  TO  8 , 79 ; 
       TITLE 'F10 Список гостей Сегодня '+dtoc(date()) && Окно - список гостей 
DEFINE WINDOW e1 FROM  5 , 00  TO  14 , 29 ; 
       TITLE 'F6 Этаж 1' COLOR n/gb && Окно первого этажа 
DEFINE WINDOW e2 FROM  15 , 00  TO  24 , 29 ; 
       TITLE 'F7 Этаж 2' COLOR n/gb && Окно второго этажа 
DEFINE WINDOW e3 FROM  5 , 49  TO  14 , 78 ; 
       TITLE 'F8 Этаж 3' COLOR n/gb && Окно третьего этажа 
DEFINE WINDOW e4 FROM  15 , 49  TO  24 , 78 ; 
       TITLE 'F9 Этаж 4' COLOR n/gb && Окно четвёртого этажа  

USE guests.dbf
* Тег mesto создан командой: index on mes tag mesto
*set order to mes

go top

r=RECNO() 
browse;
  fiel t=iif(r=recno(),'>',' ') :h=' ', ;
       d=iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date(),'Долг','Отбыл'),;
         iif(date()>=pri and date()<otb and !empty(fam),iif(empty(otb) or otb<date(),'Долг','присут.'),;
         iif(date()<pri and !empty(fam),iif(empty(otb) or pri>date(),'Долг','ожид.'),;
         iif(date()=pri and !empty(fam),iif(empty(otb) or pri=date(),'Долг','прибыл'),'    ')))) :h='Долг': 7 , ;
       mes :h='Место': 5 ,;
       fam :h='ФИО': 20 , ;
       pol :h='Пол': 3   ;
           :w=(pol='М' or pol='Ж') and pl(left(mes, 3 ),pol) ;
           :e='Только М или Ж', ;
       pas :h='ь паспорта': 10 , ;
       pri :h='Дата прибытия': 13 , ;
       otb :h='Дата отбытия': 12 , ;
       opl :h='Оплачено до': 11 , ;
       num :h='ь гостя': 7  ;
       color scheme  10  window gost nowait when ttt() noed noap nodel 

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')

ACTIVATE WINDOW e4   && Открытие окна третьего этажа
@  0 , 0  SAY '----------------------------'
@  1 , 0  SAY '|1   3|1     |1    2|1     |'
@  2 , 0  SAY '|2   4|2     |      |2     |'
@  3 , 0  SAY '|-401----402----403---404--|'
@  4 , 0  SAY '|                          |'
@  5 , 0  SAY '|-405----406--      --407--|'
@  6 , 0  SAY '|1    |1     |      |1     |'
@  7 , 0  SAY '----------------------------'
@  1 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4011')
@  2 , 1  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('4012')

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

FUNCTION ttt &&-----------ФУНКЦИЯ обновления курсора 
r=RECNO() 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
if found(m) *SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW F10 REFRESH 
RETURN 

FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=RECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим значением поля POL 
go top           
locate for left(mes, 3 )==m AND !EMPTY(pol) AND pol#p 
IF found() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol$'МM','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   select guests
   GO nr && Возврат к исходной записи 
   return .f.
ENDIF 
RETURN .t.
и вот, что меня поставило в тупик. В этих строках:
Код: plaintext
1.
2.
3.
d=iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date(),'Долг','Отбыл'),;
         iif(date()>=pri and date()<otb and !empty(fam),iif(empty(otb) or otb<date(),'Долг','присут.'),;
         iif(date()<pri and !empty(fam),iif(empty(otb) or pri>date(),'Долг','ожид.'),;
         iif(date()=pri and !empty(fam),iif(empty(otb) or pri=date(),'Долг','прибыл'),'    ')))) :h='Долг': 7 , ;
я сделал так, чтобы в столбце "Долг" (кстати, надо бы его переименовать...) было состояние гостя ("Ожид.", "Прибыл", "Присут." или "Отбыл"). Но там, где должно быть "Ожид.", написано "Долг". А в остальном всё как надо. Скажите, пожалуйста, что нужно дописать в эту функцию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
if found(m) *SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW F10 REFRESH 
RETURN 
, чтобы выводилось кто там живёт. У меня почему-то там где живёт женщина, выводится "В комнате живёт Мужчина", а там где мужчина - женщина. Скажите, пожалуйста, что нужно поменять в этой функции:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
FUNCTION pl &&-----Функция предупреждений (Мужчина/Женщина) 
PARAMETERS m,p 
nr=RECNO() && Запоминается номер текущей записи 
           && Поиск непустого места в той же комнате, где проживает 
           && человек с другим значением поля POL 
go top           
locate for left(mes, 3 )==m AND !EMPTY(pol) AND pol#p 
IF found() && Если поиск удачный, выдается предупреждение 
   WAIT 'В комнате живет '+IIF(pol$'МM','Мужчина','Женщина'); 
         WINDOW NOWAIT 
   select guests
   GO nr && Возврат к исходной записи 
   return .f.
ENDIF 
RETURN .t.
И последнее. Скажите, пожалуйста, как сделать так, чтобы при добавлении гостя в соответствующее место выделялось, а при удалении - освобождалось. В примере Попова это вроде бы должно было делаться, т.е. выделение в browse-окне гостя, который проживает в этой комнате, но ни я, ни мой препод не смогли разобраться. Поэтому, кто разобрался в примере Попова про гостиницу, просьба помочь мне. Заранее большое спасибо.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33918105
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyokНе понял... А где у меня невидимые кнопки. А с GET'ами я не причём. Это вы мне написали... А что, есть лишние? :-\
Вот это фортели чувак выкидывает... :-(
И после этого ты смеешь говорить, что "пытаюсь разобраться"???!!!Ну всё... Отношение ко мне окончательно испортилось... Ну, простите вы меня, пожалуйста!

RedrikP.S. С 1-го по 13-ое - самое время для отдыха! ;-)
UrriИ что, с 1 по 13 августа ты удивлялся...У меня инета не было в эти дни! Надеюсь, всем известна такая ситуация!?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33918140
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня инета не было в эти дни!
И это очень мешает считать невидимые кнопки в форме?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33918291
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие невидимые кнопки??? Покажи, блин, хоть одну! И я совсем не про кнопки говорю, а про другое! См. выше!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33920473
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал разбираться в вышеописанной проблеме (про "кто живёт в комнате"). Кое-что изменив в этой функции:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
if found(m) *SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW F10 REFRESH 
RETURN 
у меня она приняла вид:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
locate rest for mes==m 
if found() *SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
else
 wait window "Not found!!!" timeout  2 
endif 
SHOW WINDOW F10 REFRESH 
RETURN
Запускаю программу, жму на место в этаже, а мне ошибка в этой строке
Код: plaintext
if found() *SEEK(m) && Поиск в BROWSE-окне выбранного на плане места 
База данных не упорядочена. Скажите, пожалуйста, что делать. В программе про гостей (поиск, удаление и т.д.) у меня есть процедура поиска и она работает. Помогите, пожалуйста, заставить работать эту функцию.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33920492
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВАУ!!! Убрал SEEK(m) и функция заработала! Но пишет not found! Теперь надо написать процедуру выыода окна с проживающим в комнате гостем. Ну я её из другой программы возьму!
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33920616
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... Странно! Из другой программы взял процедуру квитанции, маленько подкорректировал и вот что получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
FUNCTION ms &&--0тслеживание в окне GOST записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS m 
locate for mes==m 
if found() && Поиск в BROWSE-окне выбранного на плане места 
  r=RECNO() 
  do gost
else
 wait window "Ничего не найдено!!!" timeout  2 
endif 
SHOW WINDOW F10 REFRESH 
RETURN 

procedure gost
defi wind gost from  4 , 8  to  17 , 60 ; 
titl '<<< Жильцы >>>'foot 'Выход - Esc' color , , W+/B,W+/B,W+/B
acti wind gost
dime s( 1 )
s( 1 )=fam
@  1 , 0  say'В этом номере проживает'

@  1 , 25   get s( 1 ) pict 'xxxxxxxxxxxxxxx' 
return
Но всё равно ничего не ищет! Ребята! Помогите пареньку! Пожааалуйста! :-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33921938
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин! Понял я наконец! За помеченные места отвечают эти строки:
Код: plaintext
1.
@  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')
в конце активации окон этажей. Вот поэтому вы меня просили найти невидимые кнопки? Так. Ну хорошо. Что отвечает за занятость и освобождение мест я нашёл. Может быть теперь поможете мне написать процедуру, которая бы отслеживала проживает ли в данном месте человек или нет? Т.е. если человек там живёт, то выделять это место. Если нет - оставлять пустым.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33921974
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну парень, - ты упертый
наверное очень приперло

а что так под дос, может тебе vfp9 попробовать-
вродь по-проще будет.

я под дос с 97 г. не пишу.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
    #33924240
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100а что так под дос, может тебе vfp9 попробовать-
вродь по-проще будет.
Дело в том, что мне эту курсовую надо делать именно на FoxPro 2.6 DOS. Блин, вот дал бы Стасу свой адрес (не электронный ) была бы сейчас у меня книга! А сейчас уже поздно... Я пытался уговорить препода, чтобы он мне разрешил на vfp писать, но увы. Вот я и прошу помощи на этом форуме. В спецшколе для инвалидов, куда меня возили родители, уроков информатики не было, да и по поводу учёбы там тоже было туго, Т.к. там главное было не учёба, а лечение. Из-за этого у меня появился большой пробел в знаниях. Поэтому, я и не могу задать вопрос так, чтобы на него хотелось бы ответить. Отношение к ученикам в школе было ужасное. Помню мама мне расказывала - приехала меня забирать, а к ней одна из учительниц подходит и говорит: "А хотите мы ему одни пятёрки будем ставить?". Т.е. вообще не думают где человек будет учиться и, главное, КАК! Когда я учился дома (10-11-ый классы), уроков информатики у меня как таковых и не было, т.к. препод часто не приходил и первые месяцы рассказывал мне из чего состоит компьютер, да что такое байт, бит, пиксель и т.д. И это при всём при том, что урок информатики у меня был раз в неделю, а то и раз в месяц! Но надомное обучение есть надомное обучение! Из языков программирования я изучал Qbasic и то только на примерах. Я бы предпочёл учиться там, где один язык программирования подолгу изучается, а здесь бегом-бегом в одном семестре один язык только-только усвоишь, уже другой учи! Но по состоянию здоровья могу учиться только заочно, т.к. выбора у меня нет. Почему я сейчас всё вам это рассказываю? Я делаю это в надежде изменить ваше отношение к себе, как к тупому лентяю. Пускай я задаю вам тупые вопросы, на которые вам просто смешно отвечать, но это объясняется отвратительным отношением преподов к учащимся. Например, перед экзаменом у нас по информатике должна быть консультация. Так препод на неё даже и не пришёл! Да и в обычный день его найти было невозможно. Если бы я хотел халявы, как многие об этом подумали, то я бы просто купил эту курсовую! Но мне это делать незачем, т.к. я хочу разобраться. В прошлых языках программирования я разобрался сам, хотя с С++ возникли некоторые проблемы, но всё равно я никогда не попрошу писать за меня программы, только помочь дописать! Конечно было такое, что программы за меня писали, но это было только если мой вариант было трудно сделать рабочим. Надеюсь, что после этого письма, отношение ко мне улучшится. Для меня тяжело потому, что это первая база данных. Раньше всё было по проще.
...
Рейтинг: 0 / 0
68 сообщений из 68, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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