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

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Программа)
м
 
(не показано 5 промежуточных версий этого же участника)
Строка 36: Строка 36:
 
   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

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

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 - количество

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

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