powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
25 сообщений из 81, страница 3 из 4
Помогите, пожалуйста, разобраться с примером из книги Попова
    #33831443
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ужас, летящий на крыльях ночи Uггirele wind SFEDIT
enddo

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

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

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

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

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

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

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

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







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

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

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


*set defa to c:\

do menugl 

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

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

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

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


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

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


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

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



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

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

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

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


proc dd
dime pro1( 1000 )

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

parenyokЯ не прошу писать за меня программы, а прошу лишь исправить ошибки!
Т.е. искать лишние запятые вместо тебя???
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, разобраться с примером из книги Попова
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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