Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

цикл харбора

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
OlgaCherry



Joined: 24 Oct 2007
Posts: 12
Location: Вишневская
Occupation: консальтант
Interests: Челябинск

PostPosted: 24 Oct 2007 14:50    Post subject: цикл харбора Reply with quote

Добрый день !
Я стала работать с харбором (пишу prg). Не получается написать простой цикл. Если параметр =0 то выход из цикла. Харбор ругается на return 0. Как надо писать - выход из цикла .
Back to top
View user's profile Send private message
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 24 Oct 2007 15:41    Post subject: Reply with quote

Code:

do while .t.
    ...
    if param=0
       exit
    endif
    ...
enddo


return - это не выход из цикла, а возврат результата работы функции (например function fufu(par1,par2)) или выход из процедуры (например procedure ppp(par1,par2)), пишется чаще всего в конце тела этой функции или процеду
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 24 Oct 2007 16:16    Post subject: Reply with quote

Ну вобщем Вам подсказывают правильный стиль программирования.
Но и return в цикле должен работать.
ВОзможно ошибка в чем-то другом - надо смотреть текст
А вообще придерживайтесь лучше данного Вам совета
в цикл
Back to top
View user's profile Send private message Send e-mail
OlgaCherry



Joined: 24 Oct 2007
Posts: 12
Location: Вишневская
Occupation: консальтант
Interests: Челябинск

PostPosted: 25 Oct 2007 08:33    Post subject: продолжение цикла харбора Reply with quote

Добрый день !
Подскажите , плиз, как сделать выход в цикле. Программа рабочая, но на 0 (выход из цикла не работает). Я уже пробовала писать exit - прога не работает

Function Main()
local hkkm, sum, dept, dat, doc, nds, NCheck, p,f,s
p := LoadPath() +'!kkm.log'
if File(p) = .T.
f := FOpen(p,1)
else
f:= FCreate(p)
endif
sum:= DIALOG("Сумма :","999999999.99",0)
dept := DIALOG("‘Секция :","9",0)
nds := 0
if dept=1 .or. dept=3
nds := sum*18/118
sum := sum - nds
endif

hkkm := CreateObject('AddIn.FprnM45')
try
hkkm:DeviceEnabled := .t.
hkkm:CheckState()
hkkm:GetStatus()
if hkkm:CheckState() <> 0
hkkm:CancelCheck()
endif
NCheck := hkkm:CheckNumber()
hkkm:Password := "30"
hkkm:Mode := 1
hkkm:SetMode()
//**********************цикл

hkkm:Name := OemToAnsi(sum,19)
hkkm:PrintString()
hkkm:Price := Round(sum,2)
hkkm:Registration()
hkkm:Department := dept
hkkm:Quantity := 1

do while( sum3 > 0 )
sum3 := DIALOG("cymma","9999999.99",0)
hkkm:Price := Round(sum3,2)
hkkm:Quantity := 1
hkkm:Department := dept
hkkm:Registration()

alert("sum >0")
if sum3 = 0
m:=DIALOG("Вы ввели нуль - 0. Далее для выхода 0. Продолжение- 1","9",1)
//если раскоментировать то вводится только 1 сумма а нужно много и по нажатию 2 раза 0 - выход
// if m = 0
// alert("m=0")
// exit
// end if

if m=1
sum1:= DIALOG("Сумма равна  sum1: ","999999999.99",0)
hkkm:Price := Round(sum1,2)
hkkm:Quantity := 1
hkkm:Department := dept

hkkm:Registration()

endif
sum2:= DIALOG("Введите сумму 2 или 0 !","9999999.99",0)
hkkm:Price := Round(sum2,2)
hkkm:Quantity := 1
hkkm:Department := dept
hkkm:Registration()
endif
end do
//*******конец цикла

if dept = 1 .or. dept = 3
hkkm:Name := OemToAnsi("НДС 18%")
hkkm:Price := Round(nds, 2)
hkkm:Quantity := 1
hkkm:Department := dept
hkkm:Registration()
endif

hkkm:TypeClose := 0
hkkm:CloseCheck()

catch
hkkm:CancelCheck()
hkkm := nil
alert('Ошибка печати чека  !')

FClose(f)
return -1
end
FSeek(f, 0, 2)
s := 'Продажа Дата : '+dtos(date())+'Чек: '+str(NCheck)+', ‘ Секция : '+str(dept)+', ‘Сумма : '+str(Round(sum, 2)+Round(nds, 2))+CHR(13)+CHR(10)
FWrite(f, s, len(s))
FClose(f)
return 0
Back to top
View user's profile Send private message
OlgaCherry



Joined: 24 Oct 2007
Posts: 12
Location: Вишневская
Occupation: консальтант
Interests: Челябинск

PostPosted: 25 Oct 2007 12:21    Post subject: тема: "цикл харбора " закрыта Reply with quote

Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 25 Oct 2007 13:58    Post subject: Reply with quote

Да мне с отладчиком у себя не пройти по Вашей задаче
А Вы с отладчиком пробовали смотреть.
Похоже проблема не в этом месте то совершен
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru