Рефераты. Информационная система (ІНФОРМАЦІЙНА СИСТЕМА ОБЛІКУ І АНАЛІЗУ РОЗРАХУНКІВ З ПОСТАЧАЛЬНИКАМИ І ПІДРЯД...

   lcErrorMsg=lcErrorMsg+CHR(13)+"Line:         "+ALLTRIM(STR(nLine))


   IF NOT EMPTY(lcCodeLineMsg)

          lcErrorMsg=lcErrorMsg+CHR(13)+lcCodeLineMsg+chr(13)+chr(13)+'Припинити роботу?..'

   ENDIF


ENDIF


IF MESSAGEBOX(lcErrorMsg,20,_screen.Caption)#6

   RETURN .F.

else

   QUIT

ENDIF



ENDFUNC

****************************************************

FUNCTION ShutDown


IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)

   RETURN goApp.OnShutDown()

ENDIF

Cleanup()


QUIT

ENDFUNC



FUNCTION Cleanup


IF CNTBAR("_msysmenu")=7

   RETURN

ENDIF

ON ERROR

ON SHUTDOWN

SET CLASSLIB TO

*SET PATH TO

Додаток 22 (закінчення)

*CLEAR ALL

CLOSE ALL

close table all

close data all


POP MENU _msysmenu


RETURN

Додаток 23

* 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

endif

************************************************************************************

* Відбір даних по Д-ту вказаного рахунку

* та формування масиву відповідних рахунків

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;

   order by codep


public dime rds(1)

select distinct kt from tdt into array rds

ld = alen(rds)

if ld = 1 and empty(rds(1))

   rds(1) = ' '

endif

dime sds(ld), zds(ld)

store 0 to sds, zds

************************************************************************************

* Відбір даних по K-ту вказаного рахунку

* та формування масиву відповідних рахунків

select * from bases ;

   into table tkt1;

   where kt = _br and month = _mm_ and year = _yy_;

   order by codep


select * from tkt1 ;

   into table tkt;

   where daten <= fdata;

   order by codep



public dime rks(1)

select distinct dt from tkt into array rks

lk = alen(rks)

if lk = 1 and empty(rks(1))

   rks(1) = ' '

endif

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

   endif

   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           &&накопичення по рядку по Д-ту

                 endif

          endfor

   endscan


   select tkt

   scan for codep = cd and month = _mm_ and year = _yy_

          for i = 1 to lk

                 if dt = rks(i)

                       sks(i) = sks(i) + sum      &&накопичення по колонках

                       _sok = _sok +sum           &&накопичення по рядку по K-ту

                 endif

          endfor

   endscan


   _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)

          * недрукуємо

   else

          *друкуємо

          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

Додаток 23 (продовження)

          z_spk = z_spk + _spk

          * Д-т

          z_sod = z_sod + _sod

          for i = 1 to ld

                 zds(i) = zds(i) + sds(i)

          endfor

         

          *К-т

          z_sok = z_sok + _sok

          for i = 1 to lk

                 zks(i) = zks(i) + sks(i)

          endfor


          * кін.сальдо

          z_skd = z_skd + _skd

          z_skk = z_skk + _skk

          *******************************************

          * Сторінка

          stor = stor +1

          if stor >=59

                 \<<chr(12)>>

                 stor = 7

                 do sh00004

          endif

   endif

   select (_clunions_)

endscan

************

* Вивід загальних сум

do l00004

stor = stor +1

if stor >=59

   \<<chr(12)>>

   stor = 7

   do sh00004

endif


\<<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

   sele (_clunions_)

   use

endif


if clbases

   use in bases

endif

if clsaldos

   use in saldos

endif

if used("tdt")

   use in tdt

endif

if used("tkt")

   use in tkt

endif

if file("tdt.dbf")

   erase tdt.dbf

endif

if file("tk.dbf")

   erase tkt.dbf

endif

if used("tdt1")

   use in tdt1

endif

if used("tkt1")

   use in tkt1

endif

if file("tdt1.dbf")

   erase tdt1.dbf

Додаток 23 (закінчення)

endif

if file("tkt1.dbf")

   erase tkt1.dbf

endif


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

   \-----+----------------------------------------+----------+----------

RETU

Додаток 2


4

 Додаток 25


Додаток 26


Додаток 27


Додаток 28


Додаток 29


Додаток 30


Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.