powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с округлением
1 сообщений из 1, страница 1 из 1
Помогите с округлением
    #35339483
Юля Зозуля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FoxPro слабо знаю. Вывод на печать описан в prg. В структуре dbf и во всех документах отображается десятичная часть кроме одной формы печать.
PROCEDURE FV312M
t_alt=.not.empty(topalt)
t_dd=.not.empty(topdd)
t_rd=.not.empty(toprd)
t_ok=.not.empty(topok)
cta=iif(t_alt,left(mline(topalt,1),1),'0')
ct2=iif(t_dd,left(mline(topdd,1),1),'0')
ct3=iif(t_rd,left(mline(toprd,1),1),'0')
ct4=iif(t_ok,left(mline(topok,1),1),'0')
cto=left(cod_gsm,1)
if wedmode=1
mskip=.f.
do case
case yy=1
mskip=(cxx<>cta.and.cxx<>cto)
case yy=2
mskip=(cxx<>ct2)
case yy=3
mskip=(cxx<>ct3)
case yy=4
mskip=(cxx<>ct4)
endcase
if mskip
return
endif
n2=n2+1
mgn=gosno
do GETWOD
do case
case yy=1
if cto=cxx
mostn=ostn - остаток на начало выезда(выводит целое число)
mzapr=zapr - заправка (целое)
mostk=ostk - конечный остаток (целое)
msdskl=sdskl - возврат на склад (целое)
mrn=rasnor - норма (3 знака после запятой)
else
mostn=val(mline(topalt,5))
mzapr=val(mline(topalt,6))
mostk=val(mline(topalt,7))
msdskl=val(mline(topalt,8))
mrn=val(mline(topalt,9))
endif
case yy=2
mostn=val(mline(topdd,5))
mzapr=val(mline(topdd,6))
mostk=val(mline(topdd,7))
msdskl=val(mline(topdd,8))
mrn=val(mline(topdd,9))
case yy=3
mostn=val(mline(toprd,5))
mzapr=val(mline(toprd,6))
mostk=val(mline(toprd,7))
msdskl=val(mline(toprd,8))
mrn=val(mline(toprd,9))
case yy=4
mostn=val(mline(topok,5))
mzapr=val(mline(topok,6))
mostk=val(mline(topok,7))
msdskl=val(mline(topok,8))
mrn=val(mline(topok,9))
endcase

else
store 0 to n0,mostn,mzapr,mostk,msdskl,mrn

for yy=1 to 4
if hh(yy,2)>0
do case
case yy=1
mskip=(cxx<>cta.and.cxx<>cto)
case yy=2
mskip=(cxx<>ct2)
case yy=3
mskip=(cxx<>ct3)
case yy=4
mskip=(cxx<>ct4)
endcase
if mskip
loop
endif
n0=n0+1
do case
case yy=1
if cto=cxx
mostn=mostn+ostn
mzapr=mzapr+zapr
mostk=mostk+ostk
msdskl=msdskl+sdskl
mrn=mrn+rasnor
else
mostn=mostn+val(mline(topalt,5))
mzapr=mzapr+val(mline(topalt,6))
mostk=mostk+val(mline(topalt,7))
msdskl=msdskl+val(mline(topalt,8))
mrn=mrn+val(mline(topalt,9))
endif
case yy=2
mostn=mostn+val(mline(topdd,5))
mzapr=mzapr+val(mline(topdd,6))
mostk=mostk+val(mline(topdd,7))
msdskl=msdskl+val(mline(topdd,8))
mrn=mrn+val(mline(topdd,9))
case yy=3
mostn=mostn+val(mline(toprd,5))
mzapr=mzapr+val(mline(toprd,6))
mostk=mostk+val(mline(toprd,7))
msdskl=msdskl+val(mline(toprd,8))
mrn=mrn+val(mline(toprd,9))
case yy=4
mostn=mostn+val(mline(topok,5))
mzapr=mzapr+val(mline(topok,6))
mostk=mostk+val(mline(topok,7))
msdskl=msdskl+val(mline(topok,8))
mrn=mrn+val(mline(topok,9))
endcase
endif
endfor
if n0=0
return
endif
n2=n2+1
mgn=gosno
do GETWOD

endif

mrf=mostn+mzapr-mostk-msdskl - нужно, чтобы факт расхода топлива выводилось с десятой частью
rez=mrn-mrf
eko=iif(rez>=0,rez,0)
per=iif(rez<0,rez,0)


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


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