Программное обеспечение пункта обмена валюты банкаРефераты >> Программирование и компьютеры >> Программное обеспечение пункта обмена валюты банка
@ 06,02 say "Резидент [ ]"
@ 06,12 get REZ Picture "L"
@ 08,02 say "ПРИНЯТО ОТ КЛИЕНТА:"
@ 09,02 say "Код ценности" get SCODC picture "9999"
@ 10,02 say "Код валюты " get SCODCUR picture "9999"
@ 11,02 say "Сумма"
@ 14,02 say "ПОЛУЧЕНО КЛИЕНТОМ:"
@ 15,02 say "Код ценности" get BCODC picture "9999"
@ 16,02 say "Код валюты " get BCODCUR picture "9999"
@ 17,02 say "Сумма" get BSUM picture "999999999999" valid saybye(BSUM,17,2,52,AT_G_U,@BSUMS,BCODCUR)
setcursor(CUR_STYLE)
read
setcursor(0)
if lastkey()=K_ESC
exit
endif
if _err(06,40,"Данные введены правильно?","",""," ~Д~а "," ~Н~ет ","")=1
append blank
replace field->SER_ with SER ,;
field->NUM_ with NUM ,;
field->FIO_ with FIO ,;
field->DOC_ with DOC ,;
field->DSER_ with DSER ,;
field->DNUM_ with DNUM ,;
field->REZ_ with !empty(REZ),;
field->BCODC_ with BCODC ,;
field->BCODCUR_ with BCODCUR,;
field->BSUM_ with BSUM ,;
field->SCODC_ with SCODC ,;
field->SCODCUR_ with SCODCUR,;
field->SSUM_ with SSUM,;
field->DATE_ with date(),;
field->OPERATION_ with 1
commit
if _err(06,40,"Печатать справку?","",""," ~Д~а "," ~Н~ет ","")=1
// printspr()
endif
FINIT=.T.
loop
else
FINIT=.F.
endif
enddo
_nort()
set key K_F3 to
restscreen(1,0,23,56,SCR)
dbcloseall()
return 0
Функция - определитель текущего поля для получения кода и наименования объекта из справочника
Function GETCODE
local CL
AKTIV=getactive()
RS=row()
CS=col()+5
do case
case AKTIV:name="BCODCUR"
S=incod(1,@BCODCUR)
case AKTIV:name="BCODC"
S=incod(3,@BCODC)
case AKTIV:name="SCODCUR"
S=incod(1,@SCODCUR)
case AKTIV:name="SCODC"
S=incod(3,@SCODC)
case AKTIV:name="CDOC"
S=incod(4,@CDOC)
otherwise
S=""
endcase
CL=setcolor(AT_G_N)
@ RS,CS say substr(S,1,30)
if !empty(S)
keyboard chr(13)
endif
setcolor(CL)
return .T.
Функция вывода суммы покупки прописью
Function SAYB
parameters NUM,Y,X,L,C,S,CC
local CL
S=numstring(NUM,CC)
CL=setcolor(C)
@ Y,X say padr(substr(S,1,L),L)
@ Y+1,2 say padr(substr(S,L+1,57),57)
setcolor(AT_G_U)
@ Y-1,8 say NUM picture "999999999999"
setcolor(CL)
return .T.
Функция вывода суммы продажи прописью
Function SAYS
parameters NUM,Y,X,L,C,S,CC
local CL
S=numstring(NUM,CC)
CL=setcolor(C)
@ Y,X say padr(substr(S,1,L),L)
@ Y+1,2 say padr(substr(S,L+1,57),57)
setcolor(AT_G_U)
@ Y-1,8 say NUM picture "999999999999"
setcolor(CL)
return .T.
Функция вычисления суммы операции покупки
Function SAYBYE
parameters NUM,Y,X,L,C,S,CC
local CL,OBL,RESULT
RESULT=.F.
OBl=select()
use (DATROAD+"currency") index (DATROAD+"currency") new
seek CC
if found()
BSUM=KURS*NUM
use
S=numstring(NUM,CC)
CL=setcolor(C)
@ Y,X say padr(substr(S,1,L),L)
@ Y+1,2 say padr(substr(S,L+1,57),57)
says(SSUM,12,2,57,AT_G_U,@SSUMS,SCODCUR)
RESULT=.T.
else
use
endif
setcolor(CL)
select(OBL)
return RESULT
Функция вычисления суммы операции продажи
Function SAYSALE
parameters NUM,Y,X,L,C,S,CC
local CL,OBL,RESULT
RESULT=.F.
OBl=select()
use (DATROAD+"currency") index (DATROAD+"currency") new
seek CC
if found()
BSUM=KURS*NUM
use
S=numstring(NUM,CC)
CL=setcolor(C)
@ Y,X say padr(substr(S,1,L),L)
@ Y+1,2 say padr(substr(S,L+1,57),57)
sayb(BSUM,12,2,57,AT_G_U,@BSUMS,BCODCUR)
RESULT=.T.
else
use
endif
setcolor(CL)
select(OBL)
return RESULT
ФУНКЦИЯ ВЫВОДА списка документов дня
Function Docrep
local SCR
use (DATROAD+"Currency") index (DATROAD+"Currency") alias CUR new
use (DATROAD+"Document") index (DATROAD+"Document") alias DOC new
set relation to BCODCUR_ into CUR
SCR=savescreen(1,0,23,79)
_open_n(1,0,22,77,B_SINGLE+" ",AT_S_F)
_nort("1000001001")
declare MF[5],MZ[5]
MF[1]={|| SER_+str(NUM_,9)}
MF[2]={|| FIO_ }
MF[3]={|| iif(REZ_,"Р","Н")}
MF[4]={|| CUR->SHORT_NAME+" "+str(BSUM_)}
MF[5]={|| getShort_Name(SCODCUR_)+" "+str(SSUM_)}
MZ[1]="Справка"
MZ[2]="Фамилия Имя Отчество"
MZ[3]="Р/Н"
MZ[4]="Выдано"
MZ[5]="Принято"
TERM=" Проведенные документы дня "
setcolor(AT_M1_S)
@ 01,(70-len(TERM))/2 SAY TERM
setcolor(AT_S_N+","+AT_S_S+",,,"+AT_S_U)
clear type
oBrow := TBrowseDB(2,1,21,76)
oBrow:headSep := "=T="
oBrow:colSep := " ¦ "
for i := 1 TO len(MF)
oBrow:addColumn(TBColumnNew(MZ[i], MF[i]))
next
while (!oBrow:stabilize()) ; end
lKeyWaiting := .F.
lBrowse := .T.
do while (lBrowse)
if (!lKeyWaiting)
do while (!oBrow:stabilize())
// Прервать стабилизацию, если нажата клавиша
if ((nKey := Inkey()) != 0)
lKeyWaiting := .T.
exit
endif
enddo
endif
// Если нет нажатия, то ждать его
if (!lKeyWaiting)
nKey := Inkey(0)
endif
do case
case (nKey == K_DOWN)
oBrow:down()
case (nKey == K_UP)
oBrow:up()
case (nKey == K_PGDN)
oBrow:pageDown()
case (nKey == K_PGUP)
oBrow:pageUp()
case (nKey == K_CTRL_PGUP)
oBrow:goTop()
case (nKey == K_CTRL_PGDN)
oBrow:goBottom()
case (nKey == K_RIGHT)
oBrow:right()
case (nKey == K_LEFT)
oBrow:left()
case (nKey == K_HOME)
oBrow:home()
case (nKey == K_END)
oBrow:end()
case (nKey == K_CTRL_LEFT)
oBrow:panLeft()
case (nKey == K_CTRL_RIGHT)
oBrow:panRight()
case (nKey == K_CTRL_HOME)
oBrow:panHome()
case (nKey == K_CTRL_END)
oBrow:panEnd()
case (nKey == K_F7)
// printspr()
case (nKey == K_ESC).or.(nKey == K_F10)
lBrowse := .F.
endcase
lKeyWaiting := .F.
enddo
restscreen(1,0,23,79,SCR)
dbcloseall()
_nort()
return 0
ФУНКЦИЯ ЗАКРЫТИЯ ОПЕРАЦИОННОГО ДНЯ
Function CloseDay()
if _err(07,05,"Вы действительно желаете закрыть","операционный день ?",""," Да "," Нет ","")<>1