Создание программных приложений для расширения информационных возможностей профессиональной бухгалтерской системы, страница 2

Текст программы представлен в приложении.

Результат работы программы представлен на рис. 2.

Рис. 2. Выходная форма анализа текущих остатков.

Контрольный пример.

Проверка группы ТМЦ № 00002, Номенклатурный номер ТМЦ = 0000000000001, Наименование ТМЦ: «Песцовая шуба».

По данным работы пользовательской программы текущий остаток составляет 2469 штук.

Проверка по данным складского учета в ПБС.

В торговой секции №1 (рис. 3), находится 529 штук единиц ТМЦ.

В торговой секции №2 (рис. 4), находится 970 штук единиц ТМЦ.

На складе готовой продукции (рис. 5) находится 858 штук единиц ТМЦ.

На центральном складе (рис. 6) находится 112 штук едениц ТМЦ.

В общем, количество ТМЦ на складах составило (рис. 7) 529 + 970 + 858 + 112 = 2469 штук.

По данным работы пользовательской программы срок реализации текущего остатка составит 4279,7712 дней.

Проверка по данным справочника партий ТМЦ.

За период с 08.01.98 по 01.03.98 было реализовано 30 штук единиц ТМЦ (рис. 8).

Срок наблюдения равен разницы даты последней реализации и даты первой реализации. И составил за период с 08.01.98 по 01.03.98, 52 дня.

Таким образом, скорость реализации составила 30/52=0,5769.

В итоге срок реализации равен 2469/0,5769 = 4279, 4279,7712 дней.

Данный, полученные при работе пользовательской программы полностью совпадают с проверочными.

Рис. 3. Картотека складского учета Торговой секции 1.

Рис. 4. Картотека складского учета Торговой секции 2.

Рис. 5. Картотека складского учета Склада готовой продукции.

Рис. 6. Картотека складского учета Центрального склада.

Рис. 7. Номенклатурный справочник.

Рис. 8. Движение ТМЦ (расход).


Подключение пользовательской программы для запуска из среды ПБС BEST4.

1)  Заполнение справочника пользовательских программ: Настройка / Настройка предприятия / Настройка / Справочник пользовательских программ

2)  Добавление новой записи (программы).

Для справочника заполняется:

-  пункт меню для комментария;

-  командная строка запуска пользовательской программы.

Операционная технология работы с пользовательской программой.

Начальное состояние системы: Загружена ПБС BEST4 «главное меню». Пользовательская программа подключена к ПБС.

Информационные элементы: документ 1с указанием подсистемы вызова пользовательской программы.

Перечень действий работы с программой представлен в таблице 6.

Таблица 6.

Состояние системы

Пояснения по состоянию системы

Ответные действия

Примечания

Загружено главное меню системы

Система ожидает выбора пункта меню

Выбрать пункт меню из документа 1

Переход по пунктам меню осуществляется клавишами курсора (вверх, вниз)

Загружена подсистема

Система ожидает управляющих воздействий

Выбрать пункт меню «Программы пользователя»

Переход по пунктам меню осуществляется клавишами курсора (вверх, вниз) . выбор ENTER. Появится дополнительное меню «Программы пользователей»

Загружено дополнительное меню

Система ожидает выбора пользовательской программы (пункта меню)

Выбрать пункт «Анализ текущих остатков»

Переход по пунктам меню осуществляется клавишами курсора (вверх, вниз) . выбор ENTER. Появится выходная форма с результатами анализа текущих остатков ТМЦ.


Приложение

parameters d,dn,sm,sk,sam

set exclusive off

set date german

set talk off

set path to c:\Best4\Dbase\Sclad;c:\Best\Dbase\Sclad

set border to double 2

set color of scheme 1 to BG/GR,,RB/G,RB/G,GR/W,W/R,N/GR

set console off

define window w_main from 1,1 to 23,78;

  title 'Анализ текущих остатков' shadow;

   footer 'Пользовательская программа'

activate window w_main

use mdocm

copy to srok fields grup,nnum,date,kol,kolout;

  for vid='2'and kol>0

use

select 1

use srok

copy to docm_c

index on grup+nnum to srok.idx unique

select 2

use docm_c

index on date to dat.idx

select srok

  go top

  do while .T.

  if eof()

     exit

  endif

  scatter memvar

select docm_c

  set filter to grup=m.grup and nnum=m.nnum

  go top

  d=date

  go bottom

  dn=date-d

  go top

  calculate sum(kol) to sm

  if dn>0

    sk = sm/dn

   else 

     sk=0

  endif

  m.kolout=sk

  set filter to

  select srok

  gather memvar

  brow

  skip 1

enddo

select 1

use

select 2

use

Select A

use mlabel

index on grup+nnum to label.idx unique

Select B

use mkart

index on grup+nnum to kart.idx for koltek>0 unique

copy to kart fields grup,nnum,koltek

use

delete file kart.idx

use mkart

select C

use kart

index on grup+nnum to kart.idx

do while .T.

  if EOF()

    exit

  endif

  scatter memvar

  select B

  set filter to grup=m.grup and nnum=m.nnum

  go top

  calculate sum(koltek) to sam for partia=' '

  m.koltek=sam

  set filter to

  select C

  gather memvar

  skip 1

enddo

select A

use

Select B

use

Select C

use

select A

use mlabel index label

select B

use kart index kart

select C

use srok index srok

select A

  set relation to grup+nnum into kart

  set relation to grup+nnum into srok additive

browse fields grup:R:H='Группа', nnum:R:H='H/номер';

,name:R:H='Hаименование ТМЦ':16, ed:R:H='Ед.изм.':6;

,kart.koltek:R:H='Тек-ий остаток':14;

,sr=IIF(srok.kolout>0, kart.koltek/srok.kolout,0):R:H='Срок реализации':14 NOAPPEND in window w_main

select A

use

select B

use

select C

use

delete file srok.dbf

delete file docm_c.dbf

delete file srok.idx

delete file dat.idx

delete file label.idx

delete file kart.idx

delete file kart.dbf

clear window