Пример создания простой печатной формы — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
Существует задание - создать форму по передаче остатков
 
Существует задание - создать форму по передаче остатков
  
Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать F5
+
Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать '''F5'''
  
В нашем случае в соответсвии с заданием это ПК1 Вафельный ( 6 ) - Движение сырья, продукции, брака - Изделия - Одна смена
 
  
Нажимаем SHIFT+F9 "ДизОтч". Открывается справочник R221
+
В нашем случае в соответствии с заданием это ПК1 Вафельный ( 6 ) - Движение сырья, продукции, брака - Изделия - Одна смена
 +
 
 +
Нажимаем '''SHIFT+F9''' "ДизОтч". Открывается справочник [[R221]]
  
 
Добавляем бланк, для этого нажимаем на клавишу F6
 
Добавляем бланк, для этого нажимаем на клавишу F6
Строка 13: Строка 14:
 
[[Файл:16-03-2016 12-57-01.png]]
 
[[Файл:16-03-2016 12-57-01.png]]
  
Нажимаем F3. Затем нажимаем ENTER
+
 
 +
Нажимаем '''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 - количество
 +
= Смотрите также =
 +
[[Информация для разработчиков системы фабиус]]

Текущая версия на 12:25, 2 августа 2017

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

Для создания печатной формы открываем именно то место в программе, где пользователь будет нажимать 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 - количество

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

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