lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
IF NOT EMPTY(lcCodeLineMsg)
lcErrorMsg=lcErrorMsg+CHR(13)+lcCodeLineMsg+chr(13)+chr(13)+'Припинити роботу?..'
ENDIF
IF MESSAGEBOX(lcErrorMsg,20,_screen.Caption)#6
RETURN .F.
else
QUIT
ENDFUNC
****************************************************
FUNCTION ShutDown
IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)
RETURN goApp.OnShutDown()
Cleanup()
FUNCTION Cleanup
IF CNTBAR("_msysmenu")=7
RETURN
ON ERROR
ON SHUTDOWN
SET CLASSLIB TO
*SET PATH TO
Додаток 22 (закінчення)
*CLEAR ALL
CLOSE ALL
close table all
close data all
POP MENU _msysmenu
* p0000004
* Сальдо на поточний період на вказане число
local _nameorg, _ends
public fdata
lday = cdm(_mm_,_yy_)
fdata = ctod(str(lday,2)+'/'+str(_mm_,2)+'/'+str(_yy_,4))
do form getdata3 to ll
if empty(ll)
rele fdata
retu
endif
set textmerge on
set textmerge to t100004.txt noshow
set console off
public _br, ld, lk
_br = basesrahs
clrecv = ifused("recv")
clbases = ifused("bases")
clsaldos = ifused("saldos")
clclients = ifused(_clunions_)
_nameorg = recv.name
if clrecv
use in recv
************************************************************************************
* Відбір даних по Д-ту вказаного рахунку
* та формування масиву відповідних рахунків
select * from bases ;
into table tdt1;
where dt = _br and month = _mm_ and year = _yy_ ;
order by codep
select * from tdt1 ;
into table tdt;
where daten <= fdata;
public dime rds(1)
select distinct kt from tdt into array rds
ld = alen(rds)
if ld = 1 and empty(rds(1))
rds(1) = ' '
dime sds(ld), zds(ld)
store 0 to sds, zds
* Відбір даних по K-ту вказаного рахунку
into table tkt1;
where kt = _br and month = _mm_ and year = _yy_;
select * from tkt1 ;
into table tkt;
public dime rks(1)
select distinct dt from tkt into array rks
lk = alen(rks)
if lk = 1 and empty(rks(1))
rks(1) = ' '
dime sks(lk), zks(lk)
store 0 to sks, zks
*****************************************************
* Загальні суми
Додаток 23 (продовження)
store 0 to z_spd, z_spk, z_skd, z_skk, z_sod, z_sok
* по одному клієнту
* _spd - сальдо початкове по Д-ту
* _spk - сальдо початкове по К-ту
* _skd - сальдо кінцеве по К-ту
* _skk - сальдо кінцеве по Д-ту
* _sod - обороти по Д-ту
* _sok - обороти по К-ту
*
select (_clunions_)
do dgr_box with recc(), 'Побудова кінцевого сальдо','Pax.'+alltrim(_br)
\ <<_nameorg>>
\ Сальдо на кінець місяця по <<alltrim(_br)>> рах. Період: <<mstn(_mm_)>> <<_yy_>>p.
stor = 2
do sh00004
stor = stor +5
*set order to tag namep
npp = 0
scan
STORE 0 TO SKS, SDS
do dgr_mov
cd = codep
store 0 to _spd, _spk, _skd, _skk, _sod, _sok
select saldos
locate for codep = cd and month = _mm_ and year = _yy_ and dt = _br
if found()
_spd = sumdt
_spk = sumkt
select tdt
scan for codep = cd and month = _mm_ and year = _yy_
for i = 1 to ld
if kt = rds(i)
sds(i) = sds(i) + sum &&накопичення по колонках
_sod = _sod +sum &&накопичення по рядку по Д-ту
endfor
endscan
select tkt
for i = 1 to lk
if dt = rks(i)
sks(i) = sks(i) + sum &&накопичення по колонках
_sok = _sok +sum &&накопичення по рядку по K-ту
_ends = _spd + _sod -(_spk + _sok)
do case
case _ends > 0
_skd = _ends
_skk = 0
case _ends < 0
_skk = (-1)*_ends
_skd = 0
endcase
*********************************************************************************
* Перевірка чи вносити рядок в TXT-файл
if empty(_sKd) and empty(_sKk) &&and empty(_sod) and empty(_sok)
* недрукуємо
*друкуємо
sele (_clunions_)
npp = npp+1
\<<str(npp,5)>>|<<left(namep,40)>>|
*** сальдо кінцеве
\\<<iif(empty(_skd),space(10), str(_skd,10,2))>>|
\\<<iif(empty(_skk),space(10), str(_skk,10,2))>>
**** підрахунок загальний сум
* поч.сальдо
z_spd = z_spd + _spd
z_spk = z_spk + _spk
* Д-т
z_sod = z_sod + _sod
zds(i) = zds(i) + sds(i)
*К-т
z_sok = z_sok + _sok
zks(i) = zks(i) + sks(i)
* кін.сальдо
z_skd = z_skd + _skd
z_skk = z_skk + _skk
*******************************************
* Сторінка
stor = stor +1
if stor >=59
\<<chr(12)>>
stor = 7
************
* Вивід загальних сум
do l00004
\<<space(5)>>|<<padc('*** Всього ***',40,' ')>>|
\\<<iif(empty(z_skd),space(10), str(z_skd,10,2))>>|
\\<<iif(empty(z_skk),space(10), str(z_skk,10,2))>>
\ Згорнуте <<str(z_skd-z_skk,10,2))>>
\<<space(20)>>
do dgr_end
if clclients
use
if clbases
use in bases
if clsaldos
use in saldos
if used("tdt")
use in tdt
if used("tkt")
use in tkt
if file("tdt.dbf")
erase tdt.dbf
if file("tk.dbf")
erase tkt.dbf
if used("tdt1")
use in tdt1
if used("tkt1")
use in tkt1
if file("tdt1.dbf")
erase tdt1.dbf
Додаток 23 (закінчення)
if file("tkt1.dbf")
erase tkt1.dbf
set textmerge to
set textmerge off
set console on
rele _nameorg, lk, ld, _br, _spd, _spk, _skd, _skk, _sod, _sok
rele z_spd, z_spk, z_skd, z_skk, z_sod, z_sok, sks, zks, sds, zds, rks, rds, fdata
**************************************
PROCEDURE sh00004
* 1.
\-----+----------------------------------------+---------------------
* 2.***<<padc('П О С Т А Ч А Л Ь Н И К И
\ |<<space(40)>>|<<padc(' Сальдо на кін.місяця',21,' ')>>
* 3.
\ № +<<padc('П О С Т А Ч А Л Ь Н И К И',40,' ')>>+----------+----------
* 4.
\ |<<SPACE(40)>>+<<padc('Дебет',10,' ')>>+<<padc('Кредит',10,' ')>>
* 5.
\-----+----------------------------------------+----------+----------
RETU
PROCEDURE l00004
Додаток 2
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14