REW CTRL F9 — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Текст)
м (Содержимое страницы заменено на «REW_CTRL_F9 - это программа из справочника R266 Вызывается по CTRL+F9 из докум…»)
 
Строка 1: Строка 1:
 
[[REW_CTRL_F9]] - это программа из справочника [[R266]]
 
[[REW_CTRL_F9]] - это программа из справочника [[R266]]
 
  Вызывается по CTRL+F9 из документа "Пересортица", этаж 2
 
  Вызывается по CTRL+F9 из документа "Пересортица", этаж 2
= Текст =
 
local fld, _, _2, sql, DescFld, DescHK, DescTbl, prog1, sr, ind
 
 
fld := ' _1,N,1; _2,C,4; _3,N,5; _4,N,14,4; _5,N,14,4; _6,N,14,4; _7,N,5;;
 
  _8,C,10; _9,C,50; '
 
 
if Empty( AUTOID )
 
  return
 
endif
 
 
prog1 := GetProgText( '_5_PostBlk' )
 
 
sql := [ Select REFL2, ANAL2, EAMNT, ESUM ;
 
  From [[REPS]]] + Ret_f_ext() + [ ;
 
  Where SHIFT = '] + DOCS1->DSHIFT + [' and REFL1 = '] + DOCS1->DREFL1 + [' and ;
 
    ANAL1 = ] + DOCS1->DANAL1 + [ and ANAL2 <> 0 and EAMNT <> 0 ]
 
 
try
 
  _  := CreateTmpFile( fld, '_' , ~IsFreeDel := true )
 
  _2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true )
 
 
  SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _2, _3, ;
 
    _5, _6 ) ] + sql, OpdataPath )
 
 
  // r08
 
  sql := [ Update _2 ;
 
    Set _9 = Left( PNAME, 50 ), _7 = KODED ;
 
    From ] + TmpFilePath( _2 ) + [ _2 ;
 
      left outer join R08 ON _3 = KOD ;
 
    Where _2 = 'R08 '  ]
 
  SimpleSql( sql, ReflisPath )
 
 
  // r11
 
  sql := [ Update _2 ;
 
    Set _9 = Left( PNAME, 50 ), _7 = KODED ;
 
    From ] + TmpFilePath( _2 ) + [ _2 ;
 
      left outer join R11 ON _3 = KOD ;
 
    Where _2 = 'R11 '  ]
 
  SimpleSql( sql, ReflisPath )
 
 
  sql := [ Update _2 ;
 
    Set _4 = Round( _6 / _5, 2 ) ;
 
    From ] + TmpFilePath( _2 ) + [ _2 ]
 
  SimpleSql( sql, TempPath )
 
 
  // _2 -> _
 
  sql := [ Select TOP 100 PERCENT * ;
 
    From ] + TmpFilePath( _2 ) + [ ;
 
    Order by _4 ]
 
  SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [ ] + sql, OpdataPath )
 
 
  // r09
 
  sql := [ Update _ ;
 
    Set _8 = PNAME ;
 
    From ] + TmpFilePath( _ ) + [ _ ;
 
      left outer join R09 ON _7 = KOD ]
 
  SimpleSql( sql, ReflisPath )
 
 
  ( _ )->( DbGoTop() )
 
 
  ind := CreateIndex( _, '_9', '_9' )
 
  ( _ )->( OrdSetFocus( '_9' ) )
 
 
  DescFld := { ;
 
    { { 'FldName', '_3' }, { 'FldTitl', 'Код'          }, { 'PreBlk', false } }, ;
 
    { { 'FldName', '_9' }, { 'FldTitl', 'Наименование' }, { 'PreBlk', false } }, ;
 
    { { 'FldName', '_8' }, { 'FldTitl', 'ед.изм.'      }, { 'PreBlk', false } }, ;
 
    { { 'FldName', '_5' }, { 'FldTitl', 'Количество'  }, { 'PostBlk', prog1 } }, ;
 
    { { 'FldName', '_4' }, { 'FldTitl', 'Цена'        }, { 'PreBlk', false } }, ;
 
    { { 'FldName', '_6' }, { 'FldTitl', 'Сумма'        }, { 'PreBlk', false } } ;
 
  }
 
 
  DescHK := { ;
 
    { ;
 
      { 'KeyName', 'F7'      }, ;
 
      { 'TEXT'  , 'В накл.' }, ;
 
      { 'BLK', 'CloseForm( GetForm(), false ), SetProperty( "ModalResult", 1, GetForm() )' } ;
 
    }, ;
 
    { { 'KeyName', 'F6' } }, ;
 
    { { 'KeyName', 'F8' } }, ;
 
    { { 'KeyName', 'Enter'          }, ;
 
      { 'TEXT'  , 'Оборот'        }, ;
 
      { 'BLK'    , 'gridedit(true)' } ;
 
    } ;
 
  }
 
 
  DescTbl := { ;
 
    { 'Title', 'Выберите одну номенклатуру по Alt+F1 ( или измените количество ) и нажмите F7' },;
 
    { 'ResultExpr', 'SelRows()' }, ;
 
    { 'CurLineStr', 'RealName( _2, _3, true )' }, ;
 
    { 'ShowType'  , 2 } ;
 
  }
 
 
  sr := MyGrid( _, DescTbl, DescFld, DescHK, ~Modal := true )
 
 
  if !Empty( sr )
 
    ( _ )->( DbGoTo( sr[1] ) )
 
    ( _ )->_1 := 1
 
 
    // KREFL2 - справочник
 
    // KANAL2 - код
 
    // NATTR1 - количество
 
    KREFL2 := ( _ )->_2
 
    KANAL2 := ( _ )->_3
 
    NATTR1 := ( _ )->_5
 
  endif
 
 
finally
 
  DeleteTmpIndex( _, ind )
 
  CloseTable( _ )
 
  CloseTable( _2 )
 
end
 
 
// _1 - признак выбора
 
// _2 - справочник
 
// _3 - код
 
// _4 - цена
 
// _5 - количество
 
// _6 - сумма
 
// _7 - единица измерения, код
 
// _8 - единица измерения, наименование
 
// _9 - наименование
 
 
<_5_PostBlk>
 
 
if NewValue <> OldValue
 
  _6 := Round( val( NewValue ) * _4, 2 )
 
endif
 
 
SetSelRows( Recno(), true )
 
 
 
= Смотрите также =
 
= Смотрите также =
 
[[Полезные функции]]
 
[[Полезные функции]]
  
 
[[Функции Delphi]]
 
[[Функции Delphi]]

Текущая версия на 09:46, 24 декабря 2019

REW_CTRL_F9 - это программа из справочника R266

Вызывается по CTRL+F9 из документа "Пересортица", этаж 2

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

Полезные функции

Функции Delphi