Программное обеспечение пункта обмена валюты банка
declare MMS[ 6],MOP[ 6],MCO[ 6],MNT[12],MHP[10]
// Массив этикеток строки подсказки
MHP[ 1]="Помощь"
MHP[ 2]="Добав."
MHP[ 3]="Список"
MHP[ 4]="Поиск "
MHP[ 5]="Фильтр"
MHP[ 6]="Сумма "
MHP[ 7]="Печать"
MHP[ 8]="Удал. "
MHP[ 9]="Запись"
MHP[10]="Выход "
// Массив опций главного меню системы
MOP[ 1]=" ~О~перации "
MOP[ 2]=" ~С~правочники "
MOP[ 3]=" о~Т~четы "
MOP[ 4]=" ~А~рхив "
MOP[ 5]=" ~Р~азное "
MOP[ 6]=" ~В~ыход "
// Массив координат главного меню системы
MCO[ 1]=2
MCO[ 2]=12
MCO[ 3]=25
MCO[ 4]=33
MCO[ 5]=40
MCO[ 6]=48
// Массив строк помощи
MMS[ 1]="Оформление покупки/продажи валюты"
MMS[ 2]=" Ввод справочных данных "
MMS[ 3]=" Вывод отчетов "
MMS[ 4]=" Работа с архивом "
MMS[ 5]=" Настройки системы "
MMS[ 6]=" Выход в MS DOS "
// Массив названий месяцев
MNT[ 1]="Января"
MNT[ 2]="Февраля"
MNT[ 3]="Марта"
MNT[ 4]="Апреля"
MNT[ 5]="Мая"
MNT[ 6]="Июня"
MNT[ 7]="Июля"
MNT[ 8]="Августа"
MNT[ 9]="Сентября"
MNT[10]="Октября"
MNT[11]="Ноября"
MNT[12]="Декабря"
setcolor(At_M0_F)
@ 00,00,24,79 BOX " - --"
setcolor(At_M0_N)
@ 00,01 SAY "Обменный пункт банка"
// Проверка пароля пользователя (3 попытки)
for II=1 to 3
setcursor(CUR_STYLE)
setcolor(AT_E_F)
_open_n(07,22,11,57)
setcolor(AT_E_N)
_saystr(09,24,"Введите Ваш пароль :")
KL=0
TST=""
do while .T.
KL=inkey(0)
do case
case KL=8
TST=substr(TST,1,len(TST)-1)
case KL=13
exit
otherwise
TST=TST+chr(KL)
endcase
@ 09,45 SAY repl(" ",len(TST)+1)
@ 09,45 SAY repl("[pic]»,len(TST))
if len(TST)=10
exit
endif
enddo
if TST=PAROL
@ 09,24 SAY «OK «
exit
else
@ 09,24 SAY «Пароль неправильный «
tone(1500,2)
tone(1700,2)
endif
next
if TST<>PAROL
setcolor("W/N")
clear screen
return
endif
restore screen
// Настройка принтера
if M__EN=2
set printer to BUFFER.PRN
else
M__EN=1
set printer to
endif
setcursor(0)
FM=.F.
setcolor(At_M0_F)
@ 00,01 SAY space(80)
do while .T. // Главное меню системы
if FM
setcolor(At_M0_F)
@ 00,00,24,79 BOX " - --"
@ 00,01 SAY space(80)
FM=.F.
endif
setcolor("+W/B,+GR/R,,,+BG/B")
MEN=selopt(MEN,MOP,MCO,MMS,0,.F.,.T.,At_M0_S,At_M0_U)
if lastkey()=27.or.MEN=0
if doors()
exit
else
loop
endif
endif
MSCR=savescreen(0,0,24,79)
do case
case MEN=1
operation()
case MEN=2
dictonary()
case MEN=3
report()
case MEN=4
arch()
case MEN=5
system()
case MEN=6
if doors()
exit
endif
endcase
restscreen(0,0,24,79,MSCR)
enddo
setcolor()
release all
return 0
Функция вызова меню «Операции»
Function OPERATION
local M1[5],M2[5],M3[5],MENU
M1[1]=" ~П~окупка валюты "
M1[2]=" п~Р~одажа валюты "
M1[3]=" ~К~онверсия валюты "
M2[1]=2
M2[2]=3
M2[3]=4
MENU=1
_open_n(1,0,7,23,B_SINGLE+" ",AT_M1_F)
do while .T.
MENU=selopt(MENU,M1,M2,M3,2,.T.,.F.,AT_M1_S,AT_M1_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
operCurrency(MENU)
enddo
return 0
Функция вызова меню ведения справочников
Function DICTONARY
local M1[4],M2[4],M3[4],MENU,CL
M1[1]=" ~С~писок валют "
M1[2]=" ~К~урсоы валют "
M1[3]=" коды ~Ц~енностей "
M1[4]=" Коды ~Д~окументов "
M2[1]=2
M2[2]=3
M2[3]=4
M2[4]=5
MENU=1
_open_n(1,10,6,32,B_SINGLE+" ",AT_M1_F)
do while .T.
MENU=selopt(MENU,M1,M2,M3,12,.T.,.F.,AT_M1_S,AT_M1_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
dictonEdit(MENU)
enddo
clear type
return 0
Функция вызова меню «Отчеты»
Function REPORT
local M1[4],M2[4],M3[4],MENU,CL
M1[1]=" Реестр по по~К~упке валюты "
M1[2]=" Реестр по ~П~родаже валюты "
M1[3]=" Реестр по ~К~онверсии валюты "
M1[4]=" справка об ~О~статках наличной валюты "
M2[1]=2
M2[2]=3
M2[3]=4
M2[4]=5
MENU=1
_open_n(1,23,7,64,B_SINGLE+" ",AT_M1_F)
do while .T.
MENU=selopt(MENU,M1,M2,M3,25,.T.,.F.,AT_M1_S,AT_M1_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
reportOut(MENU)
enddo
clear type
return 0
Функция вызова меню «Разное»
Function SYSTEM
private M1,M2,M3,MENU
declare M1[4],M2[4],M3[4]
M1[1]=" ~У~становки "
M1[2]=" ~К~опия данных "
M1[3]=" ~И~ндексные файлы "
M1[4]=" ~С~чета банка "
M2[1]=2
M2[2]=3
M2[3]=4
M2[4]=5
MENU=1
SCRS=savescreen(0,0,24,79)
_open_n(1,38,6,58,B_SINGLE+" ",AT_M1_F)
do while .T.
MENU=selopt(MENU,M1,M2,M3,40,.T.,.F.,AT_M1_S,AT_M1_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
do case
case MENU=1
setupm(M1[MENU])
case MENU=2
dublicat(M1[MENU])
case MENU=3
case MENU=4
GetAccount()
endcase
enddo
restscreen(0,0,24,79,SCRS)
clear type
return 0
Функция вызова меню «Установки»
Function SETUPM
parameters OPT
private
SCR,M1[4],M2[4],M3[4],MENU,OPT,A__RCROAD,P__AROL,D__ATROAD,D__UBLDSK,U__SERD
SK,P__AGELEN,P__AGESIZ,E__TLF,U__KZGL,U__KTXT,S__ETNUM,FMOD
ROW=row()
M1[1]=" ~П~ароль "
M1[2]=" пути к ~Д~анным "
M1[3]=" ~У~становки принтера "
M1[4]=" ~Ц~вета "
M2[1]=ROW+2
M2[2]=ROW+3
M2[3]=ROW+4
M2[4]=ROW+5
MENU=1
FMOD=0
SCR=savescreen(0,0,24,79)
do while .T.
_open_n(ROW+1,38,ROW+6,61,B_SINGLE+" ",AT_M2_F)
MENU=selopt(MENU,M1,M2,M3,40,.T.,.F.,AT_M2_S,AT_M2_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
if MENU=4
FM=.T.
endif
save screen to SESCR
FMOD=setup(MENU)
restore screen from SESCR
enddo
restscreen(0,0,24,79,SCR)
if FMOD=1
P__AROL = crpt(KEYCR,trim(P__AROL))
D__ATROAD = trim(D__ATROAD)
A__RCROAD = trim(A__RCROAD)
U__KZGL = trim(U__KZGL)
U__KTXT = trim(U__KTXT)
if M__EN=2
set Printer to BUFFER.PRN
else
M__EN=1
set Printer to
endif
if Z__PR=2
ZEROPRINT=.F.
else
Z__PR=1
ZEROPRINT=.T.
endif
save all like ?__* to v
PAROL =uncrpt(KEYCR,P__AROL)
DATROAD =D__ATROAD
ARCROAD =A__RCROAD
DUBLDSK =D__UBLDSK
USERDSK =U__SERDSK
PAGELEN =P__AGELEN
PAGESIZ =P__AGESIZ
ETLF =E__TLF
UKZGL =U__KZGL
SETNUM =S__ETNUM
UKTXT =U__KTXT
endif
clear type
return 0
Функция вызова меню «Копия данных»
Function DUBLICAT
parameters OPT
private M1,M2,M3,MENU,OPT,DSCR,ROW
ROW=row()
declare M1[2],M2[2],M3[2]
M1[1]=" ~С~охранение данных "
M1[2]=" ~В~осстановление данных "
M2[1]=ROW+2
M2[2]=ROW+3
MENU=1
popmenu(ROW,38,ROW+5,64,OPT,2,AT_M2_F)
do while .T.
MENU=selopt(MENU,M1,M2,M3,40,.T.,.F.,AT_M2_S,AT_M2_U)
if MENU=0.or.lastkey()=27
clear type
exit
endif
save screen to DSCR
do case
case MENU=1
OPT=M1[MENU]
savedata(OPT)
case MENU=2
OPT=M1[MENU]
restdata(OPT)
endcase
restore screen from DSCR
enddo
clear type
return 0
Функция - селектор операций
Function OPERCURRENCY
#Include "Inkey.ch"
#Include "Box.ch"
parameters N_OPER
do case
case N_OPER=1
ByeCurrency()
case N_OPER=2
SaleCurrency()
case N_OPER=3
ConvertCurrency()
endcase
return 0
Функция регистрации покупки валюты
Function ByeCurrency
local SCR
use (DATROAD+"Document") index (DATROAD+"Document") alias DOC new
SCR=savescreen(1,0,23,61)
CLR=setcolor(AT_G_F)
_open_n(1,0,20,59,B_SINGLE+" ",AT_G_F)
@ 08,0 say "+----------------------------------------------------------+"
@ 14,0 say "+----------------------------------------------------------+"
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
set key K_F3 to getcode()
_nort("1010000001")
FINIT=.T.
do while .T.
if FINIT
SER =space(2)
NUM =0
FIO =space(35)
DOC =space(10)
CDOC =0
DSER =space(10)
DNUM =0
REZ =space(1)
NREZ =space(1)
BCODC =10
BCODCUR=2
BSUM =0
SCODC =0
SCODCUR=0
SSUM =0
SSUMS=""
BSUMS=""
@ 12,2 say space(57)
@ 13,2 say space(57)
@ 18,2 say space(57)
@ 19,2 say space(57)
setcolor(AT_G_U)
@ 11,8 say 0 picture "999999999999"
endif
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
@ 02,17 say "СПРАВКА" get SER picture "XX" valid !empty(SER)
@ 02,28 say "№" get NUM picture "9999999" valid !empty(NUM)
@ 03,15 say str(day(date()),2)+" "+MNT[month(date())]+;
" "+str(year(date()),4)
@ 04,02 say "Выдана" get FIO picture "@S30" valid !empty(FIO)
@ 05,02 say "Предъявлен" get CDOC picture "9999"
@ 05,29 say "серия" get DSER picture "XXXXXXXXXX"
@ 05,46 say "№" get DNUM picture "9999999999"
@ 06,02 say "Резидент [ ]"
@ 06,12 get REZ Picture "L"
@ 08,02 say "ПОЛУЧЕНО КЛИЕНТОМ:"
@ 09,02 say "Код ценности" get BCODC picture "9999"
@ 10,02 say "Код валюты " get BCODCUR picture "9999"
@ 11,02 say "Сумма"
@ 14,02 say "ПРИНЯТО ОТ КЛИЕНТА:"
@ 15,02 say "Код ценности" get SCODC picture "9999"
@ 16,02 say "Код валюты " get SCODCUR picture "9999"
@ 17,02 say "Сумма" get SSUM picture "999999999999" ;
valid saysale(SSUM,18,2,52,AT_G_U,@SSUMS,SCODCUR)
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,61,SCR)
dbcloseall()
return 0
Функция регистрации продажи валюты
Function SaleCurrency
local SCR
use (DATROAD+"Document") index (DATROAD+"Document") alias DOC new
SCR=savescreen(1,0,23,61)
CLR=setcolor(AT_G_F)
_open_n(1,0,20,59,B_SINGLE+" ",AT_G_F)
@ 08,0 say "+----------------------------------------------------------+"
@ 14,0 say "+----------------------------------------------------------+"
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
set key K_F3 to getcode()
_nort("1010000001")
FINIT=.T.
do while .T.
if FINIT
SER =space(2)
NUM =0
FIO =space(35)
DOC =space(10)
DSER =space(10)
DNUM =0
REZ =space(1)
NREZ =space(1)
CDOC =0
BCODC =0
BCODCUR=0
BSUM =0
SCODC =0
SCODCUR=0
SSUM =0
SSUMS=""
BSUMS=""
@ 12,2 say space(57)
@ 13,2 say space(57)
@ 18,2 say space(57)
@ 19,2 say space(57)
setcolor(AT_G_U)
@ 11,8 say 0 picture "999999999999"
endif
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
@ 02,17 say "СПРАВКА" get SER picture "XX" valid !empty(SER)
@ 02,28 say "№" get NUM picture "9999999" valid !empty(NUM)
@ 03,15 say str(day(date()),2)+" "+MNT[month(date())]+"
"+str(year(date()),4)
@ 04,02 say "Выдана" get FIO picture "@S30" valid !empty(FIO)
@ 05,02 say "Предъявлен" get CDOC picture "9999"
@ 05,29 say "серия" get DSER picture "XXXXXXXXXX"
@ 05,46 say "№" get DNUM picture "9999999999"
@ 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 ConvertCurrency
local SCR
use (DATROAD+"Document") index (DATROAD+"Document") alias DOC new
SCR=savescreen(1,0,23,61)
CLR=setcolor(AT_G_F)
_open_n(1,0,20,59,B_SINGLE+" ",AT_G_F)
@ 08,0 say "+----------------------------------------------------------+"
@ 14,0 say "+----------------------------------------------------------+"
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
set key K_F3 to getcode()
_nort("1010000001")
FINIT=.T.
do while .T.
if FINIT
SER =space(2)
NUM =0
FIO =space(35)
DOC =space(10)
DSER =space(10)
DNUM =0
REZ =space(1)
NREZ =space(1)
CDOC =0
BCODC =0
BCODCUR=0
BSUM =0
SCODC =0
SCODCUR=0
SSUM =0
SSUMS=""
BSUMS=""
@ 12,2 say space(57)
@ 13,2 say space(57)
@ 18,2 say space(57)
@ 19,2 say space(57)
setcolor(AT_G_U)
@ 11,8 say 0 picture "999999999999"
endif
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
@ 02,17 say "СПРАВКА" get SER picture "XX" valid !empty(SER)
@ 02,28 say "№" get NUM picture "9999999" valid !empty(NUM)
@ 03,15 say str(day(date()),2)+" "+MNT[month(date())]+"
"+str(year(date()),4)
@ 04,02 say "Выдана" get FIO picture "@S30" valid !empty(FIO)
@ 05,02 say "Предъявлен" get CDOC picture "9999"
@ 05,29 say "серия" get DSER picture "XXXXXXXXXX"
@ 05,46 say "№" get DNUM picture "9999999999"
@ 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]=
MF[2]=
MF[3]=
MF[4]= CUR->SHORT_NAME+" "+str(BSUM_)
MF[5]=
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
return 0
endif
ArBase=strtran(str(day(MDATE),2)+str(month(MDATE),2)+substr(str(year(MDATE
),4),3,2)," ","0")
use (DATROAD+"Operatio")
copy to (ARCROAD+"Op"+ArBase)
delete all
pack
use (DATROAD+"Document")
copy to (ARCROAD+"Do"+ArBase)
delete all
pack
use (DATROAD+"Currency")
copy to (ARCROAD+"Cu"+ArBase)
use (DATROAD+"Kurses")
copy to (ARCROAD+"Ku"+ArBase)
use (DATROAD+"Codes")
copy to (ARCROAD+"Co"+ArBase)
ODATE=MDATE
SCR=savescreen(07,05,12,47)
_open_n(07,05,10,45,B_SINGLE+" ",AT_G_F)
CL=setcolor(AT_G_U)
@ 08,22 say ODATE
do while(.T.)
setcolor(AT_G_N+","+AT_G_S+",,,"+AT_G_U)
@ 08,07 say "Текущая дата :"
@ 09,07 say " Новая дата :" get MDATE
setcursor(CUR_STYLE)
read
setcursor(0)
if _err(10,15,"Дата введена правильно?","",""," Да "," Нет ","")=1
save all like MDATE to d
exit
endif
enddo
dbcloseall()
restscreen(07,05,12,47,SCR)
setcolor(CL)
return 0
Литература
1. CA-Clipper 5.02 «Users Guide» - Руководство по программированию на
языке Clipper
2. А.А.Попов «Программирование в среде FoxPro. Построение систем
обработки данных. («Радио и Связь» М. 1993г.)
3. «RS-Club» №№1-7 1996г. (Miktor Ky. Union Publisher Inc. 1996г.)
4. П.Нортон, П.Иао «Программирование на С++ в среде Windows»
(«Диалектика» Киев 1993г.)
5. Инструкция ЦБ РФ «О порядке организации работы обменных пунктов на
территории Российской федерации, совершения и учета валютно - обменных
операций уполномоченными банками» №27 от 27.02.1995г.
-----------------------
Активная опция
Неактивная опция
«Горячая» клавиша
Страницы: 1, 2, 3, 4, 5, 6
|