Марина
Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
|
Posted: 24 Oct 2007 15:41 Post subject: |
|
|
Code: |
do while .t.
...
if param=0
exit
endif
...
enddo
|
return - это не выход из цикла, а возврат результата работы функции (например function fufu(par1,par2)) или выход из процедуры (например procedure ppp(par1,par2)), пишется чаще всего в конце тела этой функции или процеду |
|
OlgaCherry
Joined: 24 Oct 2007 Posts: 12 Location: Вишневская Occupation: консальтант Interests: Челябинск
|
Posted: 25 Oct 2007 08:33 Post subject: продолжение цикла харбора |
|
|
Добрый день !
Подскажите , плиз, как сделать выход в цикле. Программа рабочая, но на 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 |
|