Пример создания простой печатной формы — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 24: | Строка 24: | ||
[[Файл:16-03-2016 13-13-36.png]] | [[Файл:16-03-2016 13-13-36.png]] | ||
| + | |||
| + | = Программа = | ||
| + | |||
| + | <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 - количество | ||
Версия 13:15, 16 марта 2016
Существует задание - создать форму по передаче остатков
Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать 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 - количество


