Лабораторно фасовочный журнал — различия между версиями
Agk (обсуждение | вклад) |
Natali (обсуждение | вклад) (→Подготовка базы данных для установки) |
||
(не показано 11 промежуточных версии ещё одного участника) | |||
Строка 2: | Строка 2: | ||
В соответствии с пунктом 2.8 "Порядка отпуска лекарственных средств", утвержденного Приказом Минздравсоцразвития РФ от 14.12.2005 N 785 (в ред. от 06.08.2007), в исключительных случаях нарушения аптечной организацией вторичной заводской упаковки лекарственное средство должно отпускаться в аптечной упаковке с обязательным указанием наименования, заводской серии, срока годности лекарственного средства, серии и даты по лабораторно-фасовочному журналу. | В соответствии с пунктом 2.8 "Порядка отпуска лекарственных средств", утвержденного Приказом Минздравсоцразвития РФ от 14.12.2005 N 785 (в ред. от 06.08.2007), в исключительных случаях нарушения аптечной организацией вторичной заводской упаковки лекарственное средство должно отпускаться в аптечной упаковке с обязательным указанием наименования, заводской серии, срока годности лекарственного средства, серии и даты по лабораторно-фасовочному журналу. | ||
− | ==Подготовка базы данных== | + | ==Подготовка базы данных для установки== |
− | Выполните скрипт | + | Выполните скрипт. |
+ | <b>Если полей D$UUID, D$SRVUPDDT нет - исправьте запрос, создавать эти поля не нужно </b> | ||
+ | |||
<nowiki> | <nowiki> | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Following SET SQL DIALECT is just for the Database Comparer ***/ | ||
+ | /******************************************************************************/ | ||
+ | SET SQL DIALECT 3; | ||
+ | |||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Views ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | |||
+ | /* View: VW_LABFAS */ | ||
+ | CREATE OR ALTER VIEW VW_LABFAS( | ||
+ | ID, | ||
+ | NAME_ID, | ||
+ | PRICE, | ||
+ | PRICEFAS, | ||
+ | QUANTFAS, | ||
+ | DOC_ID, | ||
+ | SNAME, | ||
+ | COMMITDATE, | ||
+ | VNUM, | ||
+ | DOCNUM, | ||
+ | POST, | ||
+ | SERIA, | ||
+ | NAMEFAS, | ||
+ | QUANT) | ||
+ | AS | ||
+ | select | ||
+ | 0,--l.id, | ||
+ | 0,--l.name_id, | ||
+ | 0,--l.price, | ||
+ | 0,--l.pricefas, | ||
+ | 0,--l.quantfas, | ||
+ | 0,--l.doc_id, | ||
+ | 0,--v.svalue, | ||
+ | d.commitdate, | ||
+ | d.vnum, | ||
+ | d.docnum, | ||
+ | a.caption as post, | ||
+ | 0,--l.seria, | ||
+ | 0,--l.namefas as namefas, | ||
+ | 0--l.quant | ||
+ | from docs d join agents a on d.agent_id=a.id | ||
+ | ; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Privileges ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | |||
+ | SET SQL DIALECT 3; | ||
+ | |||
+ | drop procedure OUT$LAB_CEN; | ||
+ | drop procedure PR_LABFAS_PROD; | ||
+ | drop procedure PR_LABFAS; | ||
+ | drop procedure PR_LABFAS_WAREBASE; | ||
+ | drop view VW_LABFAS; | ||
+ | delete from labfas; | ||
+ | drop table LABFAS; | ||
+ | drop table QUANT_FAS; | ||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Tables ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | |||
+ | CREATE GENERATOR GEN_QUANT_FAS_ID; | ||
+ | |||
+ | CREATE TABLE QUANT_FAS ( | ||
+ | ID BIGINT NOT NULL, | ||
+ | NAME_ID DM_UUID_NULL /* DM_UUID_NULL = CHAR(36) */, | ||
+ | QUANTFAS BIGINT, | ||
+ | NAMEFAS DM_TEXT COLLATE PXW_CYRL /* DM_TEXT = VARCHAR(250) */ | ||
+ | ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Primary Keys ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | ALTER TABLE QUANT_FAS ADD CONSTRAINT PK_QUANT_FAS PRIMARY KEY (ID); | ||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Triggers ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | |||
+ | SET TERM ^ ; | ||
+ | |||
+ | |||
+ | |||
+ | /******************************************************************************/ | ||
+ | /*** Triggers for tables ***/ | ||
+ | /******************************************************************************/ | ||
+ | |||
+ | |||
+ | |||
+ | /* Trigger: QUANT_FAS_BI0 */ | ||
+ | CREATE OR ALTER TRIGGER QUANT_FAS_BI0 FOR QUANT_FAS | ||
+ | ACTIVE BEFORE INSERT POSITION 0 | ||
+ | AS | ||
+ | begin | ||
+ | if (new.id is null) then | ||
+ | new.id = gen_id(GEN_QUANT_FAS_ID,1); | ||
+ | end | ||
+ | ^ | ||
+ | |||
+ | |||
+ | SET TERM ; ^ | ||
+ | |||
/******************************************************************************/ | /******************************************************************************/ | ||
/*** Generated by IBExpert 24.03.2015 13:20:20 ***/ | /*** Generated by IBExpert 24.03.2015 13:20:20 ***/ | ||
Строка 13: | Строка 136: | ||
/******************************************************************************/ | /******************************************************************************/ | ||
SET SQL DIALECT 3; | SET SQL DIALECT 3; | ||
− | |||
Строка 213: | Строка 335: | ||
inner join docs d on d.id=dd.doc_id | inner join docs d on d.id=dd.doc_id | ||
left join quant_fas qf on dd.name_id=qf.name_id | left join quant_fas qf on dd.name_id=qf.name_id | ||
− | where d.doc_type | + | where d.doc_type in (1,2,20) and d.status=1 and dd.part_type =0 and dd.mmbsh containing 'делим' and (dd.doc_commitdate between :periodbeg and :periodend) |
order by dd.name_id | order by dd.name_id | ||
into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas, :part_id do | into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas, :part_id do | ||
Строка 253: | Строка 375: | ||
for select dd.name_id, dd.price, dd.doc_id, dd.quant*(-1) as quant,dd.seria,qf.quantfas, qf.namefas, dd.part_id from vw_doc_detail dd inner join docs d | for select dd.name_id, dd.price, dd.doc_id, dd.quant*(-1) as quant,dd.seria,qf.quantfas, qf.namefas, dd.part_id from vw_doc_detail dd inner join docs d | ||
on d.id=dd.doc_id left join quant_fas qf on dd.name_id=qf.name_id | on d.id=dd.doc_id left join quant_fas qf on dd.name_id=qf.name_id | ||
− | where d.doc_type in (3,11) and d.status=1 and mmbsh containing 'делим' and (dd.doc_commitdate between :periodbeg and :periodend) | + | where d.doc_type in (3,11) and d.status=1 and dd.part_type =0 and mmbsh containing 'делим' and (dd.doc_commitdate between :periodbeg and :periodend) |
order by dd.name_id | order by dd.name_id | ||
into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas , :part_id do | into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas , :part_id do | ||
Строка 308: | Строка 430: | ||
GRANT EXECUTE ON PROCEDURE OUT$LAB_CEN TO SYSDBA; | GRANT EXECUTE ON PROCEDURE OUT$LAB_CEN TO SYSDBA; | ||
+ | delete from SP$WDICTS where SID = 'labfas'; | ||
− | + | INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES ((select max(id)+1 from SP$WDICTS), 0, 'Лабораторно-фасовочный журнал', NULL, 'labfas', 0, NULL, ' | |
− | INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES ((select max(id)+1 from SP$WDICTS), 0, 'Лабораторно-фасовочный журнал', NULL, ' | + | |
[insertsql] | [insertsql] | ||
Строка 382: | Строка 504: | ||
− | INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID, D$UUID, D$SRVUPDDT) VALUES (-600, -430, 'Инит лаб фас', 'TMS', 0, '14-NOV-2013 14:17:18', 0, NULL, -1, NULL, NULL, NULL, 0, NULL, ' | + | INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID, D$UUID, D$SRVUPDDT) VALUES (-600, -430, 'Инит лаб фас', 'TMS', 0, '14-NOV-2013 14:17:18', 0, NULL, -1, NULL, NULL, NULL, 0, NULL, '', '30-DEC-2014 15:48:59'); |
− | INSERT INTO REPORTS (ID, PARENT_ID, STATUS, REPORTTYPE, SORTING, CAPTION, PARAMS, WDICT_ID, DATA, D$UUID, D$SRVUPDDT) VALUES ((select max(id)+1 from REPORTS), 0, 0, 10, 100, 'Лабораторно-фасовочный журнал', NULL, (select max(id) from SP$WDICTS), NULL, ' | + | INSERT INTO REPORTS (ID, PARENT_ID, STATUS, REPORTTYPE, SORTING, CAPTION, PARAMS, WDICT_ID, DATA, D$UUID, D$SRVUPDDT) VALUES ((select max(id)+1 from REPORTS), 0, 0, 10, 100, 'Лабораторно-фасовочный журнал', NULL, (select max(id) from SP$WDICTS), NULL, '', '18-FEB-2015 12:09:51'); |
</nowiki> | </nowiki> | ||
Строка 392: | Строка 514: | ||
==Импорт печатной формы журнала== | ==Импорт печатной формы журнала== | ||
− | В таблице REPORTS для последней записи в поле DATA импортируйте [[Файл: Lab_fas.zip]] | + | В таблице REPORTS для последней записи в поле DATA импортируйте [[Файл: Lab_fas.zip]] (<b>предварительно разархивируйте</b>) |
==Импорт сетки отображения== | ==Импорт сетки отображения== | ||
− | Импортируйте сетку(настройки отображения) в программе менеджер [[Файл: Лаб_фас_сетка.zip]] | + | Импортируйте сетку(настройки отображения) в программе менеджер [[Файл: Лаб_фас_сетка.zip]] (<b>предварительно разархивируйте</b>) |
==Запуск журнала== | ==Запуск журнала== | ||
Программа Менеджер -> Справочники -> Дополнительные возможности -> Лабораторно-фасовочный журнал | Программа Менеджер -> Справочники -> Дополнительные возможности -> Лабораторно-фасовочный журнал | ||
− | == | + | ==Первоначальное окно запроса параметров расчета== |
− | Первоначальное окно запроса параметров расчета | + | |
[[Файл:Лаб_фас_параметры.png|Окно запроса параметров расчета]] | [[Файл:Лаб_фас_параметры.png|Окно запроса параметров расчета]] | ||
− | Рассчитанные данные | + | |
+ | ==Рассчитанные данные== | ||
+ | Поля "Наименование фасовки" и "Кол-во частей" доступны для редактирования | ||
+ | |||
[[Файл:Лаб фас внешний вид.png|Внешний вид рассчитанных данных]] | [[Файл:Лаб фас внешний вид.png|Внешний вид рассчитанных данных]] | ||
− | |||
− | + | ==Печать журнала / ценников (параметры)== | |
[[Файл:Лаб фас параметры отчета.png|Параметры отчета]] | [[Файл:Лаб фас параметры отчета.png|Параметры отчета]] | ||
− | + | ||
+ | ==Печать журнала / ценников (примеры печатных форм)== | ||
[[Файл:Лаб фас пример печатная форма.png|Параметры отчета]] | [[Файл:Лаб фас пример печатная форма.png|Параметры отчета]] | ||
+ | |||
+ | |||
+ | Теги: лабораторно фасовочный журнал, лаб фас, ЛФЖ |
Текущая версия на 13:09, 3 ноября 2016
Содержание
- 1 Общие сведения
- 2 Подготовка базы данных для установки
- 3 Импорт подпрограммы инициализации журнала
- 4 Импорт печатной формы журнала
- 5 Импорт сетки отображения
- 6 Запуск журнала
- 7 Первоначальное окно запроса параметров расчета
- 8 Рассчитанные данные
- 9 Печать журнала / ценников (параметры)
- 10 Печать журнала / ценников (примеры печатных форм)
Общие сведения
В соответствии с пунктом 2.8 "Порядка отпуска лекарственных средств", утвержденного Приказом Минздравсоцразвития РФ от 14.12.2005 N 785 (в ред. от 06.08.2007), в исключительных случаях нарушения аптечной организацией вторичной заводской упаковки лекарственное средство должно отпускаться в аптечной упаковке с обязательным указанием наименования, заводской серии, срока годности лекарственного средства, серии и даты по лабораторно-фасовочному журналу.
Подготовка базы данных для установки
Выполните скрипт.
Если полей D$UUID, D$SRVUPDDT нет - исправьте запрос, создавать эти поля не нужно
/******************************************************************************/ /******************************************************************************/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /******************************************************************************/ SET SQL DIALECT 3; /******************************************************************************/ /*** Views ***/ /******************************************************************************/ /* View: VW_LABFAS */ CREATE OR ALTER VIEW VW_LABFAS( ID, NAME_ID, PRICE, PRICEFAS, QUANTFAS, DOC_ID, SNAME, COMMITDATE, VNUM, DOCNUM, POST, SERIA, NAMEFAS, QUANT) AS select 0,--l.id, 0,--l.name_id, 0,--l.price, 0,--l.pricefas, 0,--l.quantfas, 0,--l.doc_id, 0,--v.svalue, d.commitdate, d.vnum, d.docnum, a.caption as post, 0,--l.seria, 0,--l.namefas as namefas, 0--l.quant from docs d join agents a on d.agent_id=a.id ; /******************************************************************************/ /*** Privileges ***/ /******************************************************************************/ SET SQL DIALECT 3; drop procedure OUT$LAB_CEN; drop procedure PR_LABFAS_PROD; drop procedure PR_LABFAS; drop procedure PR_LABFAS_WAREBASE; drop view VW_LABFAS; delete from labfas; drop table LABFAS; drop table QUANT_FAS; /******************************************************************************/ /*** Tables ***/ /******************************************************************************/ CREATE GENERATOR GEN_QUANT_FAS_ID; CREATE TABLE QUANT_FAS ( ID BIGINT NOT NULL, NAME_ID DM_UUID_NULL /* DM_UUID_NULL = CHAR(36) */, QUANTFAS BIGINT, NAMEFAS DM_TEXT COLLATE PXW_CYRL /* DM_TEXT = VARCHAR(250) */ ); /******************************************************************************/ /*** Primary Keys ***/ /******************************************************************************/ ALTER TABLE QUANT_FAS ADD CONSTRAINT PK_QUANT_FAS PRIMARY KEY (ID); /******************************************************************************/ /*** Triggers ***/ /******************************************************************************/ SET TERM ^ ; /******************************************************************************/ /*** Triggers for tables ***/ /******************************************************************************/ /* Trigger: QUANT_FAS_BI0 */ CREATE OR ALTER TRIGGER QUANT_FAS_BI0 FOR QUANT_FAS ACTIVE BEFORE INSERT POSITION 0 AS begin if (new.id is null) then new.id = gen_id(GEN_QUANT_FAS_ID,1); end ^ SET TERM ; ^ /******************************************************************************/ /*** Generated by IBExpert 24.03.2015 13:20:20 ***/ /******************************************************************************/ /******************************************************************************/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /******************************************************************************/ SET SQL DIALECT 3; /******************************************************************************/ /*** Tables ***/ /******************************************************************************/ CREATE GENERATOR GEN_LABFAS_ID; CREATE TABLE LABFAS ( ID DM_ID NOT NULL /* DM_ID = BIGINT */, NAME_ID DM_UUID /* DM_UUID = CHAR(36) NOT NULL */, PRICE DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, PRICEFAS DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, QUANTFAS DM_ID_NULL /* DM_ID_NULL = BIGINT */, DOC_ID DM_ID /* DM_ID = BIGINT */, QUANT DM_DOUBLE /* DM_DOUBLE = DOUBLE PRECISION */, SERIA DM_TEXT COLLATE PXW_CYRL /* DM_TEXT = VARCHAR(250) */, NAMEFAS DM_TEXT COLLATE PXW_CYRL /* DM_TEXT = VARCHAR(250) */, PART_ID DM_ID /* DM_ID = BIGINT */, SERL DM_TEXT /* DM_TEXT = VARCHAR(250) */ ); /******************************************************************************/ /*** Primary Keys ***/ /******************************************************************************/ ALTER TABLE LABFAS ADD CONSTRAINT PK_LABFAS PRIMARY KEY (ID); /******************************************************************************/ /*** Triggers ***/ /******************************************************************************/ SET TERM ^ ; /******************************************************************************/ /*** Triggers for tables ***/ /******************************************************************************/ /* Trigger: LABFAS_BI */ CREATE OR ALTER TRIGGER LABFAS_BI FOR LABFAS ACTIVE BEFORE INSERT POSITION 0 as begin if (new.id is null) then new.id = gen_id(gen_labfas_id,1); if (new.quantfas<>0) then new.pricefas=new.price/new.quantfas; -- if ((new.namefas is null) or (new.namefas='')) then select first 1 qf.namefas from quant_fas qf where qf.namefas<>'' and new.name_id=qf.name_id into new.namefas; if (new.namefas is null) then select first 1 v.svalue from vals v where new.name_id=v.id into new.namefas; end ^ /* Trigger: LABFAS_BU0 */ CREATE OR ALTER TRIGGER LABFAS_BU0 FOR LABFAS ACTIVE BEFORE UPDATE POSITION 0 AS begin if (((new.quantfas<>old.quantfas) or (new.quantfas is not null and old.quantfas is null )) or ((new.namefas<>old.namefas) or (new.namefas is not null and old.namefas is null ))) then begin if (new.quantfas<>0 and new.quantfas is not null) then new.pricefas=new.price/new.quantfas; --if (new.namefas<>'') then -- new.namefas= -- if (new.name_id) not in (select name_id from quant_fas) then update or insert into quant_fas (name_id,quantfas,namefas) values (new.name_id,new.quantfas, new.namefas) matching (name_id); if (new.quantfas=0 and new.quantfas is not null) then new.pricefas=0; end /* insert into quant_fas (id, name_id, quantfas ) values ( new.ID, new.name_id, new.quantfas ); */ end ^ SET TERM ; ^ /******************************************************************************/ /*** Privileges ***/ /******************************************************************************/ /******************************************************************************/ /******************************************************************************/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /******************************************************************************/ SET SQL DIALECT 3; /******************************************************************************/ /*** Views ***/ /******************************************************************************/ /* View: VW_LABFAS */ CREATE OR ALTER VIEW VW_LABFAS( ID, NAME_ID, PRICE, PRICEFAS, QUANTFAS, DOC_ID, SNAME, COMMITDATE, VNUM, DOCNUM, POST, SERIA, NAMEFAS, PART_ID, GODENDO, QUANT, SERL) AS select l.id, l.name_id, l.price, l.pricefas, l.quantfas, l.doc_id, v.svalue, d.commitdate, d.vnum, d.docnum, a.caption as post, l.seria, l.namefas as namefas, l.part_id, (select p.godendo from parts p where p.id=l.part_id ), l.quant, l.serl from labfas l left join vals v on l.name_id=v.id left join docs d on l.doc_id=d.id left join agents a on d.agent_id=a.id ; /******************************************************************************/ /*** Privileges ***/ /******************************************************************************/ SET TERM ^ ; create or alter procedure PR_LABFAS ( PERIODBEG DM_DATE, PERIODEND DM_DATE) returns ( PART_ID DM_ID, NAME_ID DM_UUID_NULL, PRICE DM_DOUBLE, DOC_ID DM_ID, QUANT DM_DOUBLE, SERIA DM_TEXT, QUANTFAS DM_DOUBLE, NAMEFAS DM_TEXT) as begin for select dd.name_id, dd.price, dd.doc_id, dd.quant,dd.seria,qf.quantfas, qf.namefas, dd.part_id from vw_doc_detail dd inner join docs d on d.id=dd.doc_id left join quant_fas qf on dd.name_id=qf.name_id where d.doc_type in (1,2,20) and d.status=1 and dd.part_type =0 and dd.mmbsh containing 'делим' and (dd.doc_commitdate between :periodbeg and :periodend) order by dd.name_id into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas, :part_id do begin insert into labfas (name_id, price, doc_id, quant, seria, quantfas,namefas, part_id) values (:name_id, :price, :doc_id, :quant, :seria, :quantfas,:namefas, :part_id); end suspend; end^ SET TERM ; ^ /* Following GRANT statetements are generated automatically */ GRANT SELECT ON VW_DOC_DETAIL TO PROCEDURE PR_LABFAS; GRANT SELECT ON DOCS TO PROCEDURE PR_LABFAS; GRANT SELECT ON QUANT_FAS TO PROCEDURE PR_LABFAS; GRANT INSERT ON LABFAS TO PROCEDURE PR_LABFAS; /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE PR_LABFAS TO SYSDBA; SET TERM ^ ; create or alter procedure PR_LABFAS_PROD ( PERIODBEG DM_DATE, PERIODEND DM_DATE) returns ( NAME_ID DM_UUID_NULL, PRICE DM_DOUBLE, DOC_ID DM_ID, QUANT DM_DOUBLE, SERIA DM_TEXT, QUANTFAS DM_DOUBLE, NAMEFAS DM_TEXT, PART_ID DM_ID) as begin for select dd.name_id, dd.price, dd.doc_id, dd.quant*(-1) as quant,dd.seria,qf.quantfas, qf.namefas, dd.part_id from vw_doc_detail dd inner join docs d on d.id=dd.doc_id left join quant_fas qf on dd.name_id=qf.name_id where d.doc_type in (3,11) and d.status=1 and dd.part_type =0 and mmbsh containing 'делим' and (dd.doc_commitdate between :periodbeg and :periodend) order by dd.name_id into :name_id, :price, :doc_id, :quant, :seria, :quantfas, :namefas , :part_id do begin insert into labfas (name_id, price, doc_id, quant, seria, quantfas,namefas, part_id ) values (:name_id, :price, :doc_id, :quant, :seria, :quantfas,:namefas, :part_id); end suspend; end^ SET TERM ; ^ /* Following GRANT statetements are generated automatically */ GRANT SELECT ON VW_DOC_DETAIL TO PROCEDURE PR_LABFAS_PROD; GRANT SELECT ON DOCS TO PROCEDURE PR_LABFAS_PROD; GRANT SELECT ON QUANT_FAS TO PROCEDURE PR_LABFAS_PROD; GRANT INSERT ON LABFAS TO PROCEDURE PR_LABFAS_PROD; /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE PR_LABFAS_PROD TO SYSDBA; SET TERM ^ ; create or alter procedure OUT$LAB_CEN ( PART_ID DM_ID, POVTOR integer) returns ( ID DM_ID) as declare variable I DM_ID; declare variable QUANTF DM_ID; declare variable QUANT DM_ID; begin for select dd.id, iif(:povtor =1, trunc(dd.quant*dd.quantfas),1) from vw_labfas dd where dd.part_id=:part_id into :id,:quant do begin i=1; while (i<=quant) do begin suspend; i=i+1; end end end^ SET TERM ; ^ /* Following GRANT statetements are generated automatically */ GRANT SELECT ON VW_LABFAS TO PROCEDURE OUT$LAB_CEN; /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE OUT$LAB_CEN TO SYSDBA; delete from SP$WDICTS where SID = 'labfas'; INSERT INTO SP$WDICTS (ID, PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INSERTDT, INI, BMP, SORTING, FRAMECLASS) VALUES ((select max(id)+1 from SP$WDICTS), 0, 'Лабораторно-фасовочный журнал', NULL, 'labfas', 0, NULL, ' [insertsql] [deletesql_selected] [deletesql] [refreshsql] select * from vw_labfas where id=:id [selectsqlwithdeleted] [selectsql] select * from vw_labfas order by sname,id [main] sourcetablename=LABFAS returnfieldname=ID captionfieldname=ID keyfieldname=ID ViewID=labfas RootGroupTableName= ShowCaption=Лабораторно-фасовочный журнал GetCaption= GroupSelect=0 foldergroup= initfolder_id= dataset=0 InitTMSGroup_id=-600 [cfSelect] selectfieldexpression=sname AllwaysPartial=1 [form_show] position=1 left=0 Top=0 Width=0 Height=0 MaxWidth=0 MaxHeight=0 MinWidth=0 MinHeight=0 [form_get] position=1 left=0 Top=0 Width=0 Height=0 MaxWidth=0 MaxHeight=0 MinWidth=0 MinHeight=0 [childs] bottomdock_units=0 bottomdock_size=0 rightdock_units=0 rightdock_size=0 [TMS_0] group_id=794 caption=Сформировать [editfields] QUANTFAS=default NAMEFAS=default ', NULL, NULL, NULL); INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID, D$UUID, D$SRVUPDDT) VALUES (-600, -430, 'Инит лаб фас', 'TMS', 0, '14-NOV-2013 14:17:18', 0, NULL, -1, NULL, NULL, NULL, 0, NULL, '', '30-DEC-2014 15:48:59'); INSERT INTO REPORTS (ID, PARENT_ID, STATUS, REPORTTYPE, SORTING, CAPTION, PARAMS, WDICT_ID, DATA, D$UUID, D$SRVUPDDT) VALUES ((select max(id)+1 from REPORTS), 0, 0, 10, 100, 'Лабораторно-фасовочный журнал', NULL, (select max(id) from SP$WDICTS), NULL, '', '18-FEB-2015 12:09:51');
Импорт подпрограммы инициализации журнала
В таблице GROUPS для записи с ID -600 в поле INI импортируйте Файл:-600 LAB FAS.zip
Импорт печатной формы журнала
В таблице REPORTS для последней записи в поле DATA импортируйте Файл:Lab fas.zip (предварительно разархивируйте)
Импорт сетки отображения
Импортируйте сетку(настройки отображения) в программе менеджер Файл:Лаб фас сетка.zip (предварительно разархивируйте)
Запуск журнала
Программа Менеджер -> Справочники -> Дополнительные возможности -> Лабораторно-фасовочный журнал
Первоначальное окно запроса параметров расчета
Рассчитанные данные
Поля "Наименование фасовки" и "Кол-во частей" доступны для редактирования
Печать журнала / ценников (параметры)
Печать журнала / ценников (примеры печатных форм)
Теги: лабораторно фасовочный журнал, лаб фас, ЛФЖ