Пример создания простой печатной формы

Материал из Фабиус wiki
Перейти к: навигация, поиск

Существует задание - создать форму по передаче остатков

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


В нашем случае в соответствии с заданием это ПК1 Вафельный ( 6 ) - Движение сырья, продукции, брака - Изделия - Одна смена

Нажимаем SHIFT+F9 "ДизОтч". Открывается справочник R221

Добавляем бланк, для этого нажимаем на клавишу F6

Все, что надо заполнить показано на картинке

16-03-2016 12-57-01.png


Нажимаем F3. Затем нажимаем ENTER

Дизайнер отчетов

16-03-2016 13-00-27.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 - количество

Смотрите также

Информация для разработчиков системы фабиус