Пример создания простой печатной формы — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Программа) |
Hisava (обсуждение | вклад) м |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 35: | Строка 35: | ||
msg := [[WaitMsg]]( 'Подготовка данных' ) | msg := [[WaitMsg]]( 'Подготовка данных' ) | ||
fld := ' _0,N,5; _1,N,5; _2,C,80; _3,N,14,2; ' | fld := ' _0,N,5; _1,N,5; _2,C,80; _3,N,14,2; ' | ||
− | _ := [[CreateTmpFile]]( fld, '_', ~IsFreeDel := true, ~Own := PrintForm() ) | + | _ := [[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 ; | + | 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 ] | REFL2 = 'R11 ' and ANAL2 > 0 and EAMNT > 0 ] | ||
− | SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _3 ) ] + sql, OpdataPath ) | + | [[SimpleSql]]( [ Insert into ] + [[TmpFilePath]]( _ ) + [( _1, _3 ) ] + sql, OpdataPath ) |
// r11 | // r11 | ||
sql := [ Update _ Set _2 = Left( PNAME, 80 ) From ] + TmpFilePath( _ ) + [ _ left outer join R11 ON _1 = KOD ] | sql := [ Update _ Set _2 = Left( PNAME, 80 ) From ] + TmpFilePath( _ ) + [ _ left outer join R11 ON _1 = KOD ] | ||
− | SimpleSql( sql, ReflisPath ) | + | [[SimpleSql]]( sql, ReflisPath ) |
− | ( _ )->( DbGoTop() ) | + | ( _ )->( [[DbGoTop]]() ) |
i := 0 | i := 0 | ||
Select( _ ) | Select( _ ) | ||
Строка 50: | Строка 50: | ||
i := i + 1 | i := i + 1 | ||
( _ )->_0 := i | ( _ )->_0 := i | ||
− | DbSkip() | + | [[DbSkip]]() |
end | end | ||
− | ( _ )->( DbGoTop() ) | + | ( _ )->( [[DbGoTop]]() ) |
− | SetDataPipeLine( _, 2 ) | + | [[SetDataPipeLine]]( _, 2 ) |
finally | finally | ||
− | HideMsg( msg ) | + | [[HideMsg]]( msg ) |
end | end | ||
Строка 64: | Строка 64: | ||
// _2 - имя | // _2 - имя | ||
// _3 - количество | // _3 - количество | ||
− | |||
= Смотрите также = | = Смотрите также = | ||
[[Информация для разработчиков системы фабиус]] | [[Информация для разработчиков системы фабиус]] |
Текущая версия на 12:25, 2 августа 2017
Существует задание - создать форму по передаче остатков
Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать 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 - количество