powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста! Очень срочно!
17 сообщений из 17, страница 1 из 1
Помогите, пожалуйста! Очень срочно!
    #33934837
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем! В старой ветке «Помогите, пожалуйста, исправить ошибки в программе на FoxPro 2.6 DOS» в конце я написал письмо, в котором подробно объяснил свою ситуацию, но, видимо, так всем надоел, что вы не захотели мне больше писать. Хочу ещё раз разместить это письмо на форуме, чтобы изменить ваше отношение ко мне. Убедительная просьба – прочтите это письмо!

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


Также хочу указать свои трудности по поводу написания программ. В этой программе:
Код: 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.
 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 && Вызов окна четвёртого этажа
on key label F2 do gost

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(),'Долг','Отбыл'),;
         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('11011')
@  2 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11012')
@  1 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11013')
@  2 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11014')
@  1 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11021')
@  2 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11022')
@  1 , 14  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11031')
@  1 , 19  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11032')
@  1 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11041')
@  2 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11042')
@  6 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11051')
@  6 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11061')
@  6 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('11071')

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('22011')
@  2 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22012')
@  1 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22013')
@  2 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22014')
@  1 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22021')
@  2 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22022')
@  1 , 14  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22031')
@  1 , 19  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22032')
@  1 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22041')
@  2 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22042')
@  6 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22051')
@  6 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22061')
@  6 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('22071')


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('33011')
@  2 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33012')
@  1 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33013')
@  2 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33014')
@  1 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33021')
@  2 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33022')
@  1 , 14  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33031')
@  1 , 19  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33032')
@  1 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33041')
@  2 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33042')
@  6 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33051')
@  6 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33061')
@  6 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('33071')


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('44011')
@  2 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44012')
@  1 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44013')
@  2 , 5   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44014')
@  1 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44021')
@  2 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44022')
@  1 , 14  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44031')
@  1 , 19  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44032')
@  1 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44041')
@  2 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44042')
@  6 , 1   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44051')
@  6 , 7   GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44061')
@  6 , 21  GET n FUNCTION '*I' SIZE  1 , 1  DEFAULT  1  VALI ms('44071')


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

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

FUNCTION ms &&--0тслеживание в окне F10 записи с данными о 
            && человеке, занимающем место, где находится курсор в плане этажа 
PARAMETERS ms 
locate for mes==ms 

if found() and (date()>=pri and date()<otb and !empty(fam)), iif(empty(otb) or otb<date()) && Поиск в BROWSE-окне выбранного на плане места 
   r=RECNO()
   wait window "В этом месте проживает "+fam timeout  3 
else
 wait window "Место свободно!" timeout  2 
endif 

if found() and (date()>opl and !empty(fam)), iif(empty(otb) or otb>date())
   r=RECNO()
   wait window "В этом месте раньше жил "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if found() and (date()<pri and !empty(fam)), iif(empty(otb) or pri>date())
   r=RECNO()
   wait window "Это место занято! Ожидается "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if found() and (date()=pri and !empty(fam)), iif(empty(otb) or pri=date())
   r=RECNO()
   wait window "Приветствуем нового гостя! Добро пожаловать "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

SHOW WINDOW F10 REFRESH 
RETURN ms

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
Помогите, пожалуйста! Очень срочно!
    #33934942
Заботин А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты сам как думаешь, почему у тебя эта "неточность" проявляется?
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33936350
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.
&& Поиск в BROWSE-окне выбранного на плане места 
if found() and iif(date()>=pri and date()<otb and !empty(fam),iif(empty(otb) or otb<date()), 
   r=RECNO()
   wait window "В этом месте проживает "+fam timeout  3 
else
 wait window "Место свободно!" timeout  2 
endif 

if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()),
   r=RECNO()
   wait window "В этом месте раньше жил "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if found() and iif(date()<pri and !empty(fam),iif(empty(otb) or pri>date(),),
   r=RECNO()
   wait window "Это место занято! Ожидается "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if found() and iif(date()=pri and !empty(fam),iif(empty(otb) or pri=date()),
   r=RECNO()
   wait window "Приветствуем нового гостя! Добро пожаловать "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 
Но теперь выдаётся ошибка в строке:
Код: plaintext
if found() and iif(date()>=pri and date()<otb and !empty(fam),iif(empty(otb) or otb<date()),
и других ей подобной, что нужна запятая. А где её поставить не подскажешь? Я эту и подобные ей строки скопировал из этого участка:
Код: 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 ,;
Хотя тут все запятые на месте. И по идее в вышеописанной строке и не должно быть запятой, по-моему...
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33937195
DaEVIL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у тебя синтаксис iif неверный:
IIF(lExpression, eExpression1, eExpression2)

Параметры:

lExpression - Задает логическое выражение, вычисляемое функцией IIF( ).

eExpression1, eExpression2 - Если выражение lExpression имеет значение "истина" (.T.), возвращается eExpression1. Если lExpression имеет значение "ложь" (.F.), возвращается eExpression2.

А у тебя iif(lExpression,lExpression,eExpression1, eExpression2).
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33937892
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит в этих строках мне надо убрать and !empty(fam) ... Убрал... Результат тотже... Скажи, пожалуйста, как мне надо преобразовать эти строки.
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33938150
DmGr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ты отладчиком пользуешься?
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33938243
gon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gon
Гость
опиши словами что ты хотел здесь написать
автор
if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()),
r=RECNO()
wait window "В этом месте раньше жил "+fam timeout 3
else
wait window " Место свободно!" timeout 2
endif


особенно подчеркнутое. там и синтаксис не правильный и скобок не хватает.
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33938907
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ эту и подобные ей строки скопировал из этого участка:
Код: 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 ,;
Хотя тут все запятые на месте. И по идее в вышеописанной строке и не должно быть запятой, по-моему...

Всетаки у тебя отсуствует понимание базовых конструкций языка
Функция IIF(условие, выражение1, выражение2) эквивалентно следуещей последовательности операторов:
Код: plaintext
1.
2.
3.
4.
5.
IF условие
   выражение  1 
ELSE
   выражение два
ENDIF
Поэтому твой IIF() преобразовывается в следующую конструкцию:
Код: 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.
IF date()>opl and !empty(fam)
   IF empty(otb) or otb>date()
      d='Долг'
   ELSE
      d='Отбыл'
   ENDIF
ELSE
   IF date()>=pri and date()<otb and !empty(fam)
      IF empty(otb) or otb<date()
         d='Долг'
      ELSE
         d='присут.'
      ENDIF
   ELSE
      IF date()<pri and !empty(fam)
         IF empty(otb) or pri>date()
            d='Долг'
         ELSE
            d='ожид.'
         ENDIF
      ELSE
         IF date()=pri and !empty(fam)
            IF empty(otb) or pri=date()
               d='Долг'
            ELSE
               d='прибыл'
            ENDIF
         ELSE
            d='    '
         ENDIF
      ENDIF
   ENDIF
ENDIF
Если я ничего не напутал;)
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33939307
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gonопиши словами что ты хотел здесь написать
автор
if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()),
r=RECNO()
wait window "В этом месте раньше жил "+fam timeout 3
else
wait window " Место свободно!" timeout 2
endif


особенно подчеркнутое. там и синтаксис не правильный и скобок не хватает.Вообще-то, эта строка if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()), может иметь более лёгкий вид: if (found() and date()>opl) , но в этом случае появляется 2 сообщения "Место свободно!" и ""В этом месте раньше жил ..." или др. Т.е. как я описывал ранее. Т.е. если объяснить всё это словаами, то будет так:

Если запись найдена и сегодняшняя дата больше даты оплаты этого гостя, то выводить сообщение о том, что в этом месте раньше жил этот гость.

Аналогично и с другими записями. Я пробовал разными способами написать выделенную строку, но выдавалась либо ошибка от том, что нужна "," или ")", либо получалось, что выводились два, а то и три сообщения сразу. Поэтому, скажи, пожалуйста, как правильно написать эту строку: if (found() and date()>opl) . BurnВсетаки у тебя отсуствует понимание базовых конструкций языкаНу меня можно понять, т.к. я делаю курсовую, практически не зная языка...
BurnПоэтому твой IIF() преобразовывается в следующую конструкцию:
Код: 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.
IF date()>opl and !empty(fam)
   IF empty(otb) or otb>date()
      d='Долг'
   ELSE
      d='Отбыл'
   ENDIF
ELSE
   IF date()>=pri and date()<otb and !empty(fam)
      IF empty(otb) or otb<date()
         d='Долг'
      ELSE
         d='присут.'
      ENDIF
   ELSE
      IF date()<pri and !empty(fam)
         IF empty(otb) or pri>date()
            d='Долг'
         ELSE
            d='ожид.'
         ENDIF
      ELSE
         IF date()=pri and !empty(fam)
            IF empty(otb) or pri=date()
               d='Долг'
            ELSE
               d='прибыл'
            ENDIF
         ELSE
            d='    '
         ENDIF
      ENDIF
   ENDIF
ENDIF
Если я ничего не напутал;)Спасибо, большое, но ты меня не так понял. Я имел ввиду про этот участок (теперь он имеет вид):
Код: 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.
&& Поиск в BROWSE-окне выбранного на плане места 
if (found() and date()>=pri and date()<otb)
   r=RECNO()
   wait window "В этом месте проживает "+fam timeout  3 
else
 wait window "Место свободно!" timeout  2 
endif 

if (found() and date()>opl)
   r=RECNO()
   wait window "В этом месте раньше жил "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if (found() and date()<pri)
   r=RECNO()
   wait window "Это место занято! Ожидается "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif 

if (found() and date()=pri)
   r=RECNO()
   wait window "Приветствуем нового гостя! Добро пожаловать "+fam timeout  3 
else
 wait window " Место свободно!" timeout  2 
endif
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33939378
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все просто: два условия if выполняются друг за другом, и оба делают wait window.

Сделай вложенные IF
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if (found() and date()>=pri and date()<otb)
   r=RECNO()
   wait window "В этом месте проживает "+fam timeout  3 
else
  if (found() and date()>opl)
     r=RECNO()
     wait window "В этом месте раньше жил "+fam timeout  3 
  else
* И так далее...
  endif 
endif 
Или используй конструкцию CASE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DO CASE
CASE (found() and date()>=pri and date()<otb)
  r=RECNO()
  wait window "В этом месте проживает "+fam timeout  3 
CASE (found() and date()>opl)
  r=RECNO()
  wait window "В этом месте раньше жил "+fam timeout  3 
* И так далее...
OTHERWISE
  wait window " Место свободно!" timeout  2 
ENDCASE
Примечание: логику работы программы ты должен проработать сам! Я только предложил конструкции языка/способы реализации.
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33939729
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokНу меня можно понять, т.к. я делаю курсовую, практически не зная языка...
Нет! И еще раз НЕТ!
Уж чего-чего, но с IIF-ом разобраться можно и нужно давным-давно!

parenyok...Вообще-то, эта строка if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()), может иметь более лёгкий вид: if (found() and date()>opl)...
А вот эта весьма неожиданная твердость высказывания никак не лепится с "имиджем"! :-(
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33939793
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrriПримечание: логику работы программы ты должен проработать сам! Я только предложил конструкции языка/способы реализации.Ух ты!!! Спасибо, большое!!! СПАСИБО!!! А насчёт логики программы - ты прав, надо подработать. Я ещё в другой програмке сделаю проверку мест. Т.е., если в этом месте раньше кто-нибудь жил, то это место годится для занятости другим поселенцем... ну и т.д. Блин! Столько мыслей в голове, а времечко уже поджимает... Так вот. Мне всё никак не даёт покоя в этой програмке:
Код: 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.
********************************************************************************
****************** Работа с БД гостей ***************
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 , 79 ; 
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       && пока поиска не было / новый поиск

define menu m color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad kvi of m prompt'\<Квитанция' at  20 , 0 ;
message 'Просмотр квитанции гостя.'
define pad poi of m prompt'\<Поиск' at  20 , 10 ;
message 'Поиск гостя по определённому признаку.'
define pad dob of m prompt'\<Добавить' at  20 , 16 ;
message 'Добавление гостя в БД.'
define pad red of m prompt'\<Редактировать' at  20 , 25 ;
message 'Редактирование БД гостя.'
define pad del of m prompt'\<Удалить' at  20 , 39 ;
message 'Удаление БД гостя.'

on selection pad kvi of m do kvit
on selection pad poi of m do poisk
on selection pad dob of m do red_v 
on selection pad red of m do dob
on selection pad del of m do del

on key labe f2 do kvit
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()
proc br
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
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  GET B FUNC '*  Отмена' 
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  18 , 20  to  23 , 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 'Введите ФИО гостя:';
             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()
*massage 'Для продолжения поиска нажмите ctrl+e.' 
*read
*do wixod 
on key labe ctrl+e do wixod
retu

procedure wixod
push key clear
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      

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
запись внизу окна списка гостей. Извините, не помню как она называется... Так вот. Я хочу, чтобы эта запись была кнопками. Я пытался в отдельном окне их сделать, но вместо этого при запуске программы, появляются два пустых окна. И если сделать второе активным, то первое исчезает. В приведённом варианте программы, я сделал, чтобы кнопки были внизу экрана. Но кнопок почему-то нет. И, если программу запустить отдельно, то записей не будет, а если из главной программы, то на этом окне ещё будут кнопки, которые у меня на заставке "Гостиница". Скажите, пожалуйста, можно ли как-нибудь расширить это окно, чтобы был пустой промежуток и в этот промежуток влепить кнопки или, чтобы в отдельном окне были кнопки, и, чтобы первое окно не закрывалось при работе со вторым. Ой! Ну я и намудрил, блин!
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33939934
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redrik parenyokНу меня можно понять, т.к. я делаю курсовую,
Код: plaintext
практически
не зная языка...
Нет! И еще раз НЕТ!
Уж чего-чего, но с IIF-ом разобраться можно и нужно давным-давно! Так я и знал, что не надо было это писать... Просто, до этого я использовал только if и iif-у большого внимания не уделял. :-(
parenyok...Вообще-то, эта строка if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date()), может иметь более лёгкий вид: if (found() and date()>opl)...
А вот эта весьма неожиданная твердость высказывания никак не лепится с "имиджем"! :-([/quot]Просто, мне нужно, чтобы проверялось, что запись найдена и какая стоит дата. И всё... Конечно это:
Код: plaintext
if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date())
далеко не тоже самое, что это:
Код: plaintext
if (found() and date()>opl)
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33940548
Заботин А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Конечно это:
Код: plaintext
if found() and iif(date()>opl and !empty(fam),iif(empty(otb) or otb>date())
далеко не тоже самое, что это:
Код: plaintext
if (found() and date()>opl)

Слушай, чувачок. Это не просто "далеко не тоже самое", это ошибка. Тебе тысячу раз сказали читать и учить. Тебе даже синтаксис IIF показали. Если ты сам не понимаешь, что хотя бы это
Код: plaintext
iif(empty(otb) or otb>date())
ну просто НИКАК не удовлетворяет синтаксису IIF, то лучше ставь пузырь преподу и забудь Fox Pro как страшный сон.
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33940759
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заботин А.Слушай, чувачок.Хэк... Может мне ник сменить? Заботин А.Это не просто "далеко не тоже самое", это ошибка. Тебе тысячу раз сказали читать и учить. Тебе даже синтаксис IIF показали. Если ты сам не понимаешь, что хотя бы это
Код: plaintext
iif(empty(otb) or otb>date())
ну просто НИКАК не удовлетворяет синтаксису IIF, то лучше ставь пузырь преподу и забудь Fox Pro как страшный сон.Если это ошибка, то скажи мне, пожалуйста, почему, когда я писал условия вывода сообщений при соответствующих датах, то там была ошибка, а эти строки:
Код: 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 ,;
прошли без ошибок??? Хотя я их СКОПИРОВАЛ в условия.
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33940952
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пару недель назад в три часа ночи на берегу реки с интересом слушал "диалог" соседей:

Он: Ты меня кумаришь!
Она: Чё я тебе сделала?
Он: Ты меня кумаришь!
Она: Ты, чё, дурак?
Он: Пошла н$х$й, бл$дь!
Она: Сам пАшОл!
Он: Ты меня кумаришь!
(подтянулось "подкрепление" - подружка Светка)
Она: Чё мы тебе со Светкой сделали?
Он: Вы меня кумарите!
Она: Ты, чё, дурак?
Он: Пошли н$х$й, бл$ди!
Они: Сам пАшОл!
Он: Вы меня кумарите!
...................
И так около двух часов! :-)
...
Рейтинг: 0 / 0
Помогите, пожалуйста! Очень срочно!
    #33946540
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пацаны! Помогите, пожалуйста, мне осталось совсем немного и курсовая будет сделана! Конечно, некоторые мои затруднения вам покажутся черезчур позорными, но всё же помогите, пожалуйста. Вот, в чём я затрудняюсь.
1) Скажите, пожалуйста, как сделать проверку БД на одинаковые записи (не всё сразу, а по полям. Например, по полю места в гостинице и фамилии). Мне право очень стыдно, что я до сих пор этого не знаю, но я искал и в инете, и в книге, но, к сожалению, не нашёл.
2) Скажите, пожалуйста, как сделать выбор всех постояльцев, отъезжающих сегодня. Я нашёл про это в книге на стр. 204, но ничего не понял.
3) Мне всё никак не даёт покоя в этой програмке:
Код: 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.
********************************************************************************
****************** Работа с БД гостей ***************
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 , 79 ; 
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       && пока поиска не было / новый поиск

*select guests.dbf
define menu m color gr/bg,r/bg,gr/bg,gr/bg,gr+/w,rb/w,gr+/bg
set defa to c:\kurs
define pad kvi of m prompt'\<Квитанция' at  20 , 0 ;
message 'Просмотр квитанции гостя.'
define pad poi of m prompt'\<Поиск' at  20 , 10 ;
message 'Поиск гостя по определённому признаку.'
define pad dob of m prompt'\<Добавить' at  20 , 16 ;
message 'Добавление гостя в БД.'
define pad red of m prompt'\<Редактировать' at  20 , 25 ;
message 'Редактирование БД гостя.'
define pad del of m prompt'\<Удалить' at  20 , 39 ;
message 'Удаление БД гостя.'

on selection pad kvi of m do kvit
on selection pad poi of m do poisk
on selection pad dob of m do red_v 
on selection pad red of m do dob
on selection pad del of m do del

on key labe f2 do kvit
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 F9 do vib
on key labe HOME go top
on key labe END go bott
pack 
r=recno()
proc br
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 vib
push key clear
if date()=opl
   r=recno()
endif
return
********************************************************************************
****************** Процедура ввода записей БД гостей ***************
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
A= 0 
B= 0 
@  0 , 05  SAY ' УДАЛИТЬ ЗАПИСЬ' 
@  2 , 03  GET A FUNC '*   OK' 
@  2 , 13  GET B FUNC '*  Отмена' 
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  18 , 20  to  23 , 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 'Введите ФИО гостя:';
             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()
*massage 'Для продолжения поиска нажмите ctrl+e.' 
*read
*do wixod 
on key labe ctrl+e do wixod
retu

procedure wixod
push key clear
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      

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
запись внизу окна списка гостей. Извините, не помню как она называется... Так вот. Я хочу, чтобы эта запись была кнопками. Я пытался в отдельном окне их сделать, но вместо этого при запуске программы, появляются два пустых окна. И если сделать второе окно активным, то первое исчезает. В приведённом варианте программы, я сделал, чтобы кнопки были внизу экрана. Но кнопок почему-то нет. И, если программу запустить отдельно, то записей не будет, а если из главной программы, то на этом окне ещё будут кнопки, которые у меня на заставке "Гостиница". Скажите, пожалуйста, можно ли как-нибудь расширить это окно, чтобы был пустой промежуток и в этот промежуток влепить кнопки или, чтобы в отдельном окне были кнопки, и, чтобы первое окно не закрывалось при работе со вторым.

Это всё! Помогите мне, пожалуйста, и курсовую я сделаю полностью!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста! Очень срочно!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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