Реферат: Программное обеспечение пункта обмена валюты банка
XT1=iif(X1+2>79,79,X1+2)
XT2=iif(X2+2>79,79,X2+2)
XK2=iif(X2+1>79,79,X2+1)
@ Y1,X1,Y2,X2 BOX SBOX
shadow(Y2+1,XT1,Y2+1,XT2,0)
shadow(Y1+1,XK2,Y2+1,XT2,0)
return 0
Функция вывода окна с эффектом раскрытия
Параметры:
координаты левого верхнего и правого нижнего угла окна,
[строка символов обрамления],[строка установки цвета]
Function _OPEN_N
parameters Y1,X1,Y2,X2,S1,COLOR
local CL,XT,YT,XC,YC
if pcount()=4
COLOR=setcolor()
S1=""
elseif pcount()=5
COLOR=setcolor()
endif
YC=Y1+int((Y2-Y1)/2)
XC=X1+int((X2-X1)/2)
CL=setcolor()
if Y2-Y1 >= 2
YC1=YC
YC2=YC
XT=XC
setcolor(COLOR)
do while .T.
_open_t(YC1,XT,YC2,2*XC-XT,S1)
YC1=iif(YC1-2
YC2=iif(YC2+2>Y2,Y2,YC2+2)
if XT=X1
exit
endif
XT=iif(XT-3
inkey()
enddo
if YC1<>Y1
YT=YC1
do while .T.
_open_t(YT,X1,2*YC-YT,X2,S1)
if YT=Y1
exit
endif
YT=iif(YT-2
inkey()
enddo
endif
endif
_open_t(Y1,X1,Y2,X2,S1)
setcolor(CL)
return 0
Параметры:
координаты
левого верхнего
угла окна,
строка сообщения
1, строка сообщения
2, строка сообщения
3,
строка выбора
1, строка выбора
2, строка выбора
3,
строка символов
обрамления.
Function
_ERR
parameters Y1,X1,S1,S2,S3,M1,M2,M3,SB
private
CLR,STATS,Y1,X1,S1,S2,S3,M1,M2,M3,SB,STAT,KL1,MM1,MM2
save screen
CLR=setcolor()
STATS=csetall()
if pcount()=8
SB=""
endif
Y2=Y1+iif(empty(S2),5,iif(empty(S3),6,7))
X2=X1+max(len(S1),max(len(S2),max(len(S3),max(len(M1)+len(M2)+;
len(M3)+5,31))))+4
setcolor(At_E_F)
_open_n(Y1,X1,Y2,X2,SB)
@ Y2-3,X1 SAY "|"+replicate("=",X2-X1-1)+"|"
setcolor(At_E_N)
@ Y1+1,X1+((X2-X1)-len(alltrim(S1)))/2 SAY alltrim(S1)
if .not.empty(S2)
@ Y1+2,X1+((X2-X1)-len(alltrim(S2)))/2 SAY
alltrim(S2)
if .not.empty(S3)
@ Y1+3,X1+((X2-X1)-len(alltrim(S3)))/2 SAY
alltrim(S3)
endif
endif
if empty(M1)
setcolor(At_E_S)
@ Y2-2,X1+(X2-X1-31)/2 SAY " Нажмите
Enter для продолжения
"
setcolor("N"+substr(AT_E_F,at("/",AT_E_F)))
@ Y2-1,X1+(X2-X1-31)/2+1 SAY
"-------------------------------"
@ Y2-2,X1+(X2-X1-31)/2+31 SAY "-"
L_showcurs()
KL1=0
do while .T.
KL1=inkey()
STAT=L_getmstat()
if KL1<>0.or.STAT<>0
exit
endif
enddo
L_hidecurs()
restore screen
csetall(STATS)
setcolor(CLR)
return 0
elseif empty(M3).and..not.empty(M2)
declare MM1[2],MM2[2]
MM1[1]=M1
MM1[2]=M2
XX=X1+int((X2-X1-len(M1+M2)-1)/2)
MM2[1]=XX
MM2[2]=XX+len(M1)+1
do while .T.
MM=1
MM=selopt(MM,MM1,MM2,"",Y2-2,.F.,.F.,At_E_S,At_E_U,At_E_F)
if MM<>0
restore screen
csetall(STATS)
setcolor(CLR)
return MM
endif
enddo
elseif
.not.empty(M1).and..not.empty(M2).and..not.empty(M3)
declare MM1[3],MM2[3]
MM1[1]=M1
MM1[2]=M2
MM1[3]=M3
XX=X1+int((X2-X1-len(M1+M2+M3)-2)/2)
MM2[1]=XX
MM2[2]=XX+len(M1)+1
MM2[3]=XX+len(M1+M2)+2
do while .T.
MM=1
MM=selopt(MM,MM1,MM2,"",Y2-2,.F.,.F.,At_E_S,At_E_U,At_E_F)
if MM<>0
restore screen
csetall(STATS)
setcolor(CLR)
return MM
endif
enddo
endif
csetall(STATS)
setcolor(CLR)
return 0
Function
_LIN
parameters YCOR,XCOR,LENG,LMAX,LUSE
private YCOR,XCOR,LENG,LMAX,LUSE,STATS,RW,CL
STATS=csetall()
RW=row()
CL=col()
LMAX=iif(LMAX<=0,1,LMAX)
XUSE=int((LENG/LMAX)*LUSE)+XCOR
CLR=setcolor(AT_S_U)
@ YCOR,XCOR,YCOR,XUSE BOX "---------"
setcolor(AT_S_S)
if XUSE
@ YCOR,XUSE+1,YCOR,XCOR+LENG BOX "---------"
endif
csetall(STATS)
setcolor(CLR)
@ RW,CL SAY ""
return 0
Function
POPMENU
parameters Y1,X1,Y2,X2,OPT,OFFS,COLORF
private Y1,X1,Y2,X2,OPT,OFFS,COLORF,I,CLR
L_hidecurs()
CLR=setcolor(COLORF)
@ Y1,X1 SAY "-"+repl("-",OFFS-1)
@ Y1,X1+OFFS+len(OPT) SAY
repl("-",X2-X1-OFFS-len(OPT))+"¬"
shadow(Y1+1,X2+1,Y1+1,X2+2,SHC)
_open_t(Y1+1,X1,Y2,X2,"¦ ¦¦--L¦
")
setcolor(CLR)
L_showcurs()
return 0
Function
_NORT
static NORTSCR
parameters BINSTR,NUM
private CL,ROW,COL
if pcount()=0
restscreen(24,0,24,79,NORTSCR)
else
if pcount()=1
NUM=0
endif
ROW=row()
COL=col()
NORTSCR=savescreen(24,0,24,79)
CL=setcolor(AT_N_I)
@ 24,00 say space(80)
for I=0 to 9
setcolor(AT_N_I)
@ 24,I*8 say str(I+1,iif(I=9,2,1))
setcolor(AT_N_S)
if substr(BINSTR,I+1,1)="1"
@ 24,I*8+iif(I=9,2,1) say
iif(NUM=0,MHP[I+1],MHPA[I+1])
else
@ 24,I*8+iif(I=9,2,1) say " "
endif
next
setcolor(CL)
@ ROW,COL say ""
endif
return 0
Function
_WAIT
static WAITSCR
parameters STROKE
local CL,ROW,COL,X1,LENM
if pcount()=0
restscreen(11,0,15,79,WAITSCR)
else
ROW=row()
COL=col()
WAITSCR=savescreen(11,0,15,79)
CL=setcolor("+BG/B")
if empty(STROKE)
_open_n(12,20,14,59)
else
LENM=max(len(STROKE),31)
X1=(74-LENM)/2
_open_n(11,X1,14,X1+6+LENM)
setcolor("+BG/B")
@ 12,X1+3+iif(LENM=31,(31-len(STROKE))/2,0) say
STROKE
endif
setcolor("+BG/B")
@ 13,25 say "Ожидайте
окончания
операции"
setcolor("+BG/B*")
@ 13,52 say " ..."
endif
@ ROW,COL say ""
setcolor(CL)
return 0
Синтаксис:
selopt(expN,arrC,arrN,arrC,expN,expL,expL,expC,expC,expL)
Параметры:
1 номер
начальной опции
меню
2 массив
опций
3 массив
координат опций
(строка/столбец)
4 массив
подсказок
5 начальная
строка/столбец
вывода опций
6 флаг
вывода (.T. вертикально,.F.
горизонтально)
7 флаг
вывода подсказок
(.T. выводить в
24 строке)
8 цвет
выбранной опции
9 цвет
невыбранной
опции
10 флаг
прорисовки
тени опции
(default - none)
Возврат:
Номер
выбранной опции
либо 0 при прерывании
выбора
Function
SELOPT
parameters
NOPT,MO,MC,ME,COLROW,ORIENT,SAYHELP,CLRS,CLRN,CSD
local CL
private NOPT,
COUN,
INDO,
INDM,
INDN,
MO,
MC,
ME,
COLROW,
ORIENT,
SAYHELP,
CLRS,
CLRN,
STAT,
KL,
ROWMO,
IN
if pcount()<10
SHD=.F.
else
CSD="N"+substr(CSD,at("/",CSD))
SHD=.T.
endif
keyboard chr(0)
COLORN="R"+substr(CLRN,at("/",CLRN))
COLORS="R"+substr(CLRS,at("/",CLRS))
L_showcurs()
NOPT=iif(NOPT=0,1,NOPT) && Номер
начальной опции
меню
COUN=len(MO) && Количество
опций
store NOPT to INDO,INDN,INDM
CL=setcolor()
for IN=1 to COUN
setcolor(CLRN)
@
iif(ORIENT,MC[IN],COLROW),iif(ORIENT,COLROW,MC[IN]) ;
SAY strtran(MO[IN],"~","")
if (POS:=at("~",MO[IN]))>0
setcolor(COLORN)
@
iif(ORIENT,MC[IN],COLROW),iif(ORIENT,COLROW+POS-1,MC[IN]+POS-1);
SAY substr(MO[IN],POS+1,1)
setcolor(CL)
endif
if SHD
setcolor (CSD)
@
iif(ORIENT,MC[IN]+1,COLROW+1),iif(ORIENT,COLROW+1,MC[IN]+1);
SAY repl("-",len(strtran(MO[IN],"~","")))
@ iif(ORIENT,MC[IN],COLROW),iif(ORIENT,COLROW+;
len(strtran(MO[IN],"~","")),MC[IN]+;
len(strtran(MO[IN],"~",""))) SAY "-"
setcolor(CL)
endif
NEXT
COLMO=L_getxposn()/8
ROWMO=L_getyposn()/8
setcolor(CLRS)
L_hidecurs()
@
iif(ORIENT,MC[NOPT],COLROW),iif(ORIENT,COLROW,MC[NOPT]);
SAY strtran(MO[NOPT],"~","")
if (POS:=at("~",MO[NOPT]))>0
CL= setcolor(COLORS)
@
iif(ORIENT,MC[NOPT],COLROW),iif(ORIENT,COLROW+POS-1,MC[NOPT]+POS-1) ;
SAY substr(MO[NOPT],POS+1,1)
setcolor(CL)
endif
if SAYHELP
setcolor(At_M0_N)
@ 24,(80-len(ME[INDN]))/2 SAY ME[INDN]
endif
L_showcurs()
KEYPRESSED=.F.
do while .T.
COLMN=L_getxposn()/8
ROWMN=L_getyposn()/8
STAT=L_getmstat()
KL=inkey()
if KL>0
KEYPRESSED=.T.
else
KEYPRESSED=.F.
endif
if KL=13
L_hidecurs()
return INDN
endif
if STAT=2.or.KL=27
if KL<>27
for TT=1 to COUN
if
iif(ORIENT,COLMN>=COLROW.and.COLMN<=COLROW+;
len(strtran(MO[TT],"~","")).and.ascan(MC,ROWMN)<>0,;
ROWMN=COLROW.and.COLMN>=MC[TT].and.COLMN<=MC[TT]+;
len(strtran(MO[TT],"~","")))
L_hidecurs()
return 0
endif
next
else
L_hidecurs()
return 0
endif
endif
if iif(ORIENT,(COLMN>=COLROW.AND.COLMN<=COLROW
+
;
len(strtran(
MO[INDN],"~",""))
.AND.
;
ROWMN<>ROWMO).or.KEYPRESSED,(ROWMN=COLROW.AND.;
COLMN<>COLMO).or.KEYPRESSED)
T1=.F.
if ORIENT.and.KL=0
TEST=ascan(MC,ROWMN)
if TEST<>0
T1=.T.
endif
elseif .not.ORIENT.and.KL=0
TEST=INDO
for TT=1 to COUN
if
COLMN>=MC[TT].and.COLMN<=MC[TT]+len(strtran(MO[TT],"~",""))
TEST=TT
T1=.T.
exit
endif
next
elseif KL>0
T1=.T.
endif
if T1
do case
case KL=5.or.KL=19
INDN=iif(INDN=1,COUN,INDN-1)
case KL=24.or.KL=4
INDN=iif(INDN=COUN,1,INDN+1)
case KL>=32.and.KL<=255
STROKE="~"+chr(KL)+"~"
for II=1 to COUN
if at(STROKE,MO[II])<>0
INDN=II
keyboard chr(13)
exit
endif
next
otherwise
INDN=TEST
endcase
setcolor(CLRN)
L_hidecurs()
@
iif(ORIENT,MC[INDO],COLROW),iif(ORIENT,COLROW,MC[INDO]);
SAY strtran(MO[INDO],"~","")
if (POS:=at("~",MO[INDO]))>0
CL=setcolor(COLORN)
@
iif(ORIENT,MC[INDO],COLROW),iif(ORIENT,COLROW+POS-1,MC[INDO]+;
POS-1) SAY substr(MO[INDO],POS+1,1)
setcolor(CL)
endif
if SAYHELP
setcolor(At_M0_N)
@ 24,(80-len(ME[INDN]))/2 SAY ME[INDN]
endif
setcolor(CLRS)
@
iif(ORIENT,MC[INDN],COLROW),iif(ORIENT,COLROW,MC[INDN]);
SAY strtran(MO[INDN],"~","")
if (POS:=at("~",MO[INDN]))>0
setcolor(COLORS)
@
iif(ORIENT,MC[INDN],COLROW),iif(ORIENT,COLROW+POS-1,MC[INDN]+POS-1)
SAY substr(MO[INDN],POS+1,1)
endif
L_showcurs()
INDO=INDN
ROWMO=ROWMN
COLMO=COLMN
if STAT=0
loop
endif
endif
elseif COLMN>=COLROW
do case
case STAT=1
for TT=1 to COUN
if
iif(ORIENT,COLMN>=COLROW.and.COLMN<=COLROW+;
len(strtran(MO[TT],"~","")).and.ascan(MC,ROWMN)<>0,;
ROWMN=COLROW.and.COLMN>=MC[TT].and.COLMN<=MC[TT]+;
len(strtran(MO[TT],"~","")))
L_hidecurs()
return INDN
endif
next
case STAT=2
for TT=1 to COUN
if
iif(ORIENT,COLMN>=COLROW.and.COLMN<=COLROW+;
len(strtran(MO[TT],"~","")).and.ascan(MC,ROWMN)<>0,;
ROWMN=COLROW.and.COLMN>=MC[TT].and.COLMN<=MC[TT]+;
len(strtran(MO[TT],"~","")))
L_hidecurs()
return 0
endif
next
endcase
endif
enddo
return 0
Function
FINS
FINSERT=.not.FINSERT
readinsert(FINSERT)
if setcursor()<>0
CUR_STYLE=iif(FINSERT,2,1)
setcursor(CUR_STYLE)
endif
clear type
return 0
Function
UpperR(String)
local
SRC:={"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ь","ы","ъ","э","ю","я","
"},;
DST:={"А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ь","Ы","Ъ","Э","Ю","Я","
"},;
STR:="",KEY:="",INDEXKEY,I
for I=1 to len(STRING)
KEY=substr(STRING,I,1)
if (INDEXKEY:=ascan(SRC,KEY))<>0
STR=STR+DST[INDEXKEY]
else
STR=STR+KEY
endif
next
return STR
Function
DOORS
private CLR,ME
CLR=setcolor()
clear type
ME=1
ME=_err(07,02,"Вы желаете
завершить
работу ?","","",;
" ~Y~es "," ~N~o ","")
if ME=1.or.ME=-1
close databases
set color to
clear
set printer to
setcursor(1)
showtime()
keyboard chr(0)
L_showcurs()
return .T.
else
setcolor(CLR)
return .F.
endif
return .T.
Function
NUMSTRING
parameters NUM1,CODE_CUR
local MR:={.T.,.T.,.F.,.T.},CL,;
MG:={{"" ,"" ,""
,"" },;
{"миллиард"
,"миллион"
,"тысяча",""
},;
{"миллиарда"
,"миллиона"
,"тысячи",""
},;
{"миллиардов","миллионов","тысяч"
,"" }},;
SO:=0,DE:=0,ED:=0,TX,NUM,OBL
OBL=select()
if pcount()<2
CODE_CUR=0
endif
use (DATROAD+"Currency") index
(DATROAD+"Currency") alias CUR new
seek CODE_CUR
if found()
/*MG[1,4]=alltrim(LONG_NAME0)
MG[2,4]=alltrim(LONG_NAME0)
MG[3,4]=alltrim(LONG_NAME1)
MG[4,4]=alltrim(LONG_NAME2)*/
/*if
upperR(substr(trim(LONG_NAME0),len(trim(LONG_NAME0)),1))="А"*/
MR:={.T.,.T.,.F.,.T.}
/*endif*/
endif
Man_Woman=.F.
STROK=""
GSTROK=""
for I=12 to 3 step -3
NUM=val(substr(str(NUM1,12),I-2,3))
Man_Woman=MR[I/3]
SO=int(NUM/100)
DE=int((NUM-SO*100)/10)
ED=NUM-SO*100-DE*10
TX=4
do case
case ED=1
TX=2
case ED>1.and.ED<=4
TX=3
otherwise
TX=4
endcase
if (DE*10+ED>4.and.DE*10+ED<21)
TX=4
endif
TITLE=GetShort_Name(CODE_CUR)
SUBTITLE=MG[TX,I/3]
STROK=num2str(NUM,Man_Woman,SO,DE,ED)
GSTROK=iif(!empty(STROK).or.I=12,STROK+"
"+SUBTITLE,"")+;
" "+GSTROK
next
GSTROK=alltrim(strtran(GSTROK," "," "))
GSTROK=upperR(substr(GSTROK,1,1))+substr(GSTROK,2)
use
select(OBL)
return GSTROK+" "+TITLE
Function
NUM2STR
PARAMETERS in_num,Man_Woman,SO,DE,ED
local UNITS[37]
UNITS[ 1] = ""
UNITS[ 2] = iif(Man_Woman,"один","одна")
UNITS[ 3] = iif(Man_Woman,"два","две")
UNITS[ 4] = "три"
UNITS[ 5] = "четыре"
UNITS[ 6] = "пять"
UNITS[ 7] = "шесть"
UNITS[ 8] = "семь"
UNITS[ 9] = "восемь"
UNITS[10] = "девять"
UNITS[11] = "десять"
UNITS[12] = "одиннадцать"
UNITS[13] = "двенадцать"
UNITS[14] = "тринадцать"
UNITS[15] = "четырнадцать"
UNITS[16] = "пятнадцать"
UNITS[17] = "шестнадцать"
UNITS[18] = "семнадцать"
UNITS[19] = "восемнадцать"
UNITS[20] = "девятнадцать"
UNITS[21] = "двадцать"
UNITS[22] = "тридцать"
UNITS[23] = "сорок"
UNITS[24] = "пятьдесят"
UNITS[25] = "шестьдесят"
UNITS[26] = "семьдесят"
UNITS[27] = "восемьдесят"
UNITS[28] = "девяносто"
UNITS[29] = "сто"
UNITS[30] = "двести"
UNITS[31] = "триста"
UNITS[32] = "четыреста"
UNITS[33] = "пятьсот"
UNITS[34] = "шестьсот"
UNITS[35] = "семьсот"
UNITS[36] = "восемьсот"
UNITS[37] = "девятьсот"
STRING = ""
IN_NUM = int(IN_NUM)
SOT=int(In_NUM/100)
DES=int((In_NUM-SOT*100)/10)
EDN=In_NUM-SOT*100-DES*10
IN_STRING = ltrim(str(IN_NUM))
SCAN_ED=.T.
if SOT>0
STRING=STRING+UNITS[SOT+28]+" "
endif
if DES>1
STRING=STRING+UNITS[DES+19]+" "
elseif DES=1
STRING=STRING+UNITS[DES*10+EDN+1]+" "
SCAN_ED=.F.
endif
if SCAN_ED
STRING=STRING+UNITS[EDN+1]
endif
return STRING
Function
GetShort_Name(CODE)
local OBL,MR,ST:=" "
OBL=select()
select CUR
MR=recno()
seek CODE
if found()
ST=SHORT_NAME
endif
goto MR
select(OBL)
return ST
Function
MAIN
#Include "Box.ch"
setcursor(0)
if .not.file("V.mem").or..not.file("C.mem")
set curs on
return 0 //
Аварийный выход
при отсутствии
файлов глобальных
переменных
else
// Объявление
глобальных
переменных
и считывание
их из файла
public
AT_M0_F,AT_M0_N,AT_M0_S,AT_M0_U,AT_M1_F,AT_M1_N,AT_M1_S
public
AT_M1_U,AT_M2_F,AT_M2_N,AT_M2_S,AT_M2_U,AT_E_F,AT_E_N,AT_E_S
public
AT_E_U,AT_G_F,AT_G_N,AT_G_S,AT_G_U,AT_S_F,AT_S_N,AT_S_S,AT_S_U
public AT_N_I,AT_N_S
CLFON="N"
clear
restore from c.mem addi
endif
// Глобальные
установки
setcursor(0)
set date german
set century on
set wrap on
set dele off
set bell off
set confirm on
set scoreboard off
set message to 24 center
restore from v.mem addi
public
PAROL,DATROAD,USERDSK,PAGELEN,ETLF,UKZGL,UKTXT,ARCROAD
public ZEROPRINT,FPREOBR,PAGESIZ,DUBLDSK,KEYCR,C_H
public FM,FINSERT,CUR_STYLE,M__EN,MDATE,SETNUM
restore from D addi
store 0 to CROW,CCOL
KEYCR="#4_Ж;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
UKTXT = U__KTXT
SETNUM = S__ETNUM
FPREOBR = .F.
release P__AROL,D__ATROAD,U__SERDSK,S__ETNUM,;
P__AGELEN,P__AGESIZ,E__TLF,U__KZGL,U__KTXT,D__UBLDSK,A__RCROAD
MEN=1
MEN1=1
FINSERT=.F.
CUR_STYLE=1
set key 22 to fins()
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(" »,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
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)
ifMENU=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__SERDSK,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]={|| 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
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
CA-Clipper 5.02 «Users Guide» - Руководство
по программированию
на языке Clipper
А.А.Попов
«Программирование
в среде FoxPro. Построение
систем обработки
данных. («Радио
и Связь» М. 1993г.)
«RS-Club» №№1-7 1996г. (Miktor Ky.
Union Publisher Inc. 1996г.)
П.Нортон, П.Иао
«Программирование
на С++ в среде
Windows» («Диалектика»
Киев 1993г.)
Инструкция
ЦБ РФ «О порядке
организации
работы обменных
пунктов на
территории
Российской
федерации,
совершения
и учета валютно
- обменных операций
уполномоченными
банками» №27
от 27.02.1995г.
Функция
вывода системных
сообщений
с ожиданием
реакции пользователя
Функция
вывода линейного
индикатора
процесса
Функция
вывода рамки
для всплывающего
меню
Функция
вывода строки
подсказки
Функция
вывода
транспаранта
ожидания
Функция
выбора опции
из меню с использованием
манипулятора
"Мышь" или
клавиатуры.
Вспомогательные
функции
Функция
переключения
вида курсора
Функция
перевода
строки в верхний
регистр
Функция
контроля выхода
Функция
перевода числовой
величины в
строку «Сумма
прописью»
Функция
построения
строки «Суммы
прописью»
Функция
получения
псевдонима
валюты
Основные
функции и
процедуры
Головной
модуль программы
Функция
вызова меню
«Операции»
Функция
вызова
меню ведения
справочников
Функция
вызова меню
«Отчеты»
Функция
вызова меню
«Разное»
Функция
вызова меню
«Установки»
Функция
вызова меню
«Копия данных»
Функция
- селектор операций
Функция
регистрации
покупки валюты
Функция
регистрации
продажи валюты
Функция
регистрации
конверсии
валюты
Функция -
определитель
текущего поля
для получения
кода и наименования
объекта из
справочника
Функция
вывода суммы
покупки прописью
Функция
вывода суммы
продажи прописью
Функция
вычисления
суммы операции
покупки
Функция
вычисления
суммы операции
продажи
ФУНКЦИЯ
ВЫВОДА списка
документов
дня
ФУНКЦИЯ
ЗАКРЫТИЯ
ОПЕРАЦИОННОГО
ДНЯ
Литература
Обеспечение всемирной трансляции спортивных шахматных соревнований с ...
Содержание Введение 1. Общая часть 1.1 Характеристика структурного подразделения "Шахматный клуб" 1.2 Обзор шахматных систем-прототипов 1.3 Анализ ...
#endif
return new Array(self.fields[target == 'from'
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа
Курсовик по FoxPro
Министерство образования Российской Федерации Кубанский государственный технологический университет Кафедра ? ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе ...
PROMPT FIELD name_unit+' '+quality_goods+' '+supplier
@26,_X1-ROUND(_Diagram_col_width/2,0) SAY I
Раздел: Рефераты по информатике, программированию
Тип: реферат
Разработка базы данных Кадры
усский гуманитарно-технический колледж "Тантал" Факультет технической кибернетики "Утверждаю" Зав. кафедрой факультета технической кибернетики "_2001 ...
BROWSE NOAPPEND NOMODIFY LOCK 0 FIELDS org_num :H='Таб.
@ 4,30 SAY EDU_NUM COLOR SCHEME 2
Раздел: Рефераты по информатике, программированию
Тип: реферат
Програма переводу з однієї системи числення у іншу
ЗМІСТ Вступ Розділ 1. Системи числення Розділ 2. Методи та засоби розв'язку задачі Розділ 3. Практична реалізація розв'язку задачі Висновки Список ...
label m1,m2,m3,m4;
procedure check(system:integer;num:string);
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
U.S. Economy
United States (Economy) INTRODUCTION The U.S. economy is immense. In 1998 it included more than 270 million consumers and 20 million businesses. U.S ...
But in large part, these nations have caught up with the United States because of their higher rates of savings and investment, and in some cases, because of their stronger systems ...
The United States contains huge fields of natural gas and oil.
Раздел: Рефераты по экономике
Тип: реферат