Пример создания простой печатной формы
Материал из Фабиус wiki
Версия от 08:10, 7 апреля 2017; Hisava (обсуждение | вклад)
Существует задание - создать форму по передаче остатков
Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать F5
В нашем случае в соответствии с заданием это ПК1 Вафельный ( 6 ) - Движение сырья, продукции, брака - Изделия - Одна смена
Нажимаем SHIFT+F9 "ДизОтч". Открывается справочник R221
Добавляем бланк, для этого нажимаем на клавишу F6
Все, что надо заполнить показано на картинке
Нажимаем F3. Затем нажимаем ENTER
Дизайнер отчетов
После изменения получаем такой отчет ( в конечном итоге, в результате )
Программа
<REPORT/OPENPIPELINE>
local sql, _, fld, msg, i try msg := WaitMsg( 'Подготовка данных' ) fld := ' _0,N,5; _1,N,5; _2,C,80; _3,N,14,2; ' _ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := PrintForm() ) sql := [ Select ANAL2, EAMNT From REPS] + Ret_f_ext() + [ Where SHIFT = '] + SHIFT + [' and ANAL1 = ] + ANAL + [ and REFL1 = 'R10 ' and ; REFL2 = 'R11 ' and ANAL2 > 0 and EAMNT > 0 ] SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _3 ) ] + sql, OpdataPath ) // r11 sql := [ Update _ Set _2 = Left( PNAME, 80 ) From ] + TmpFilePath( _ ) + [ _ left outer join R11 ON _1 = KOD ] SimpleSql( sql, ReflisPath ) ( _ )->( DbGoTop() ) i := 0 Select( _ ) while !eof() i := i + 1 ( _ )->_0 := i DbSkip() end ( _ )->( DbGoTop() ) SetDataPipeLine( _, 2 ) finally HideMsg( msg ) end // _0 - номер по порядку // _1 - код // _2 - имя // _3 - количество