|
|
Строка 2: |
Строка 2: |
| Заполнить показания счетчика за дату | | Заполнить показания счетчика за дату |
| [[KOLOMNA2]]( data ) | | [[KOLOMNA2]]( data ) |
− | = Текст =
| |
− | parameters data
| |
− |
| |
− | local _, fld, q, sql, path, connection_string, msg, aa, my, pac
| |
− |
| |
− | fld := ' _1,D,4; _2,C,5; _3,N,14,4; _4,N,14,4; _5,C,8; _6,N,14,4; _7,N,14,4; '
| |
− |
| |
− | try
| |
− | _ := CreateTmpFile( fld, '_', ~IsFreeDel := true )
| |
− |
| |
− | // --- СЧЕТЧИК 1 ---
| |
− | path := "\\CountWhite\Data\viko\v1\Base"
| |
− |
| |
− | connection_string := [ ;
| |
− | Provider = VFPOLEDB.1 ;;
| |
− | Data Source = ] + path + [ ;;
| |
− | Mode = Share Deny None ;;
| |
− | Extended Properties = "" ;;
| |
− | User ID = "" ;;
| |
− | Password = "" ;;
| |
− | Mask Password = False ;;
| |
− | Cache Authentication = False ;;
| |
− | Encrypt Password = False ;;
| |
− | Collating Sequence = RUSSIAN ]
| |
− |
| |
− | // вчера
| |
− | my := data - 1
| |
− | sql := [ Select * ;
| |
− | From "0001] + Year( my ) + [.DBF" ;
| |
− | Where Year( DATE ) = ] + Year( my ) + [ and Month( DATE ) = ] + Month( my ) + [ and ;
| |
− | Day( DATE ) = ] + Day( my )
| |
− | aa := my + 1
| |
− | aa := Date_Str( aa ) + ' года'
| |
− | msg := WaitMsg( 'Выполняется анализ показаний счетчика номер 1 за ' + aa )
| |
− | try
| |
− | q := OpenADOQuery( connection_string, sql )
| |
− | ( q )->( DbGoTop() )
| |
− | while !( q )->( eof() )
| |
− | ( _ )->( DbAppend() )
| |
− | ( _ )->_1 := ( q )->DATE
| |
− | ( _ )->_2 := ( q )->TIME
| |
− | ( _ )->_3 := ( q )->COUNT
| |
− | ( q )->( DbSkip() )
| |
− | end
| |
− | finally
| |
− | CloseTable( q )
| |
− | end
| |
− |
| |
− | // сегодня
| |
− | my := my + 1
| |
− | sql := [ Select * ;
| |
− | From "0001] + Year( my ) + [.DBF" ;
| |
− | Where Year( DATE ) = ] + Year( my ) + [ and Month( DATE ) = ] + Month( my ) + [ and ;
| |
− | Day( DATE ) = ] + Day( my )
| |
− | try
| |
− | q := OpenADOQuery( connection_string, sql )
| |
− | ( q )->( DbGoTop() )
| |
− | while !( q )->( eof() )
| |
− | ( _ )->( DbAppend() )
| |
− | ( _ )->_1 := ( q )->DATE
| |
− | ( _ )->_2 := ( q )->TIME
| |
− | ( _ )->_3 := ( q )->COUNT
| |
− | ( q )->( DbSkip() )
| |
− | end
| |
− | finally
| |
− | CloseTable( q )
| |
− | end
| |
− | // *** СЧЕТЧИК 1 ***
| |
− |
| |
− | // --- СЧЕТЧИК 2 ---
| |
− | path := "\\CountWhite\Data\viko\v2\Base"
| |
− |
| |
− | connection_string := [ ;
| |
− | Provider = VFPOLEDB.1 ;;
| |
− | Data Source = ] + path + [ ;;
| |
− | Mode = Share Deny None ;;
| |
− | Extended Properties = "" ;;
| |
− | User ID = "" ;;
| |
− | Password = "" ;;
| |
− | Mask Password = False ;;
| |
− | Cache Authentication = False ;;
| |
− | Encrypt Password = False ;;
| |
− | Collating Sequence = RUSSIAN ]
| |
− |
| |
− | // вчера
| |
− | my := my - 1
| |
− | sql := [ Select * ;
| |
− | From "0002] + Year( my ) + [.DBF" ;
| |
− | Where Year( DATE ) = ] + Year( my ) + [ and Month( DATE ) = ] + Month( my ) + [ and ;
| |
− | Day( DATE ) = ] + Day( my )
| |
− | WaitMsg( 'Выполняется анализ показаний счетчика номер 2 за ' + aa, msg, 'Выполняется процесс' )
| |
− | try
| |
− | q := OpenADOQuery( connection_string, sql )
| |
− | ( q )->( DbGoTop() )
| |
− | while !( q )->( eof() )
| |
− | ( _ )->( DbAppend() )
| |
− | ( _ )->_1 := ( q )->DATE
| |
− | ( _ )->_2 := ( q )->TIME
| |
− | ( _ )->_3 := ( q )->COUNT
| |
− | ( q )->( DbSkip() )
| |
− | end
| |
− | finally
| |
− | CloseTable( q )
| |
− | end
| |
− |
| |
− | my := my + 1
| |
− | sql := [ Select * ;
| |
− | From "0002] + Year( my ) + [.DBF" ;
| |
− | Where Year( DATE ) = ] + Year( my ) + [ and Month( DATE ) = ] + Month( my ) + [ and ;
| |
− | Day( DATE ) = ] + Day( my )
| |
− | try
| |
− | q := OpenADOQuery( connection_string, sql )
| |
− | ( q )->( DbGoTop() )
| |
− | while !( q )->( eof() )
| |
− | ( _ )->( DbAppend() )
| |
− | ( _ )->_1 := ( q )->DATE
| |
− | ( _ )->_2 := ( q )->TIME
| |
− | ( _ )->_3 := ( q )->COUNT
| |
− | ( q )->( DbSkip() )
| |
− | end
| |
− | finally
| |
− | CloseTable( q )
| |
− | end
| |
− | // *** СЧЕТЧИК 2 ***
| |
− |
| |
− | sql := [ Update _ ;
| |
− | Set _4 = Convert( Left( _2, 2 ), sql_integer ) ;
| |
− | From ] + TmpFilePath( _ ) + [ _ ]
| |
− | SimpleSql( sql, TempPath )
| |
− |
| |
− | // вчера до 20:00 не работали, так как до 19:00 работала предыдущая смена
| |
− | sql := [ Delete ;
| |
− | From ] + TmpFilePath( _ ) + [ ;
| |
− | Where _1 = '] + SqlDate( my - 1 )+ [' and _4 < 19 ]
| |
− | SimpleSql( sql, TempPath )
| |
− |
| |
− | // сегодня с 19:00 уже не работали
| |
− | sql := [ Delete ;
| |
− | From ] + TmpFilePath( _ ) + [ ;
| |
− | Where _1 = '] + SqlDate( my )+ [' and _4 >= 19 ]
| |
− | SimpleSql( sql, TempPath )
| |
− |
| |
− | sql := [ Update _ ;
| |
− | Set _5 = '] + DtoS( my ) + [' ;
| |
− | From ] + TmpFilePath( _ ) + [ _ ]
| |
− | SimpleSql( sql, TempPath )
| |
− |
| |
− | sql := [ Select SUM( _3 ) ;
| |
− | From ] + TmpFilePath( _ )
| |
− | aa := SqlToArr( sql )
| |
− |
| |
− | pac := OpenChildDoc( 'PAC', '1', ~ParentForm := '', ~Month := Month( my ), ~Year := Year( my ) )
| |
− | ( pac )->( SetFilter( [ KINDDOC = 'PAC' and LVLNUM = '1' and DREFL1 = 'R10 ' and ;
| |
− | DANAL1 = 11 and DSHIFT = '] + DtoS( data ) + [1' ] ) )
| |
− |
| |
− | if !Empty( aa )
| |
− | ( pac )->NATTR5 := aa
| |
− | endif
| |
− |
| |
− | finally
| |
− | CloseTable( _ )
| |
− | CloseTable( q )
| |
− | HideMsg( msg )
| |
− | end
| |
− |
| |
− | // смена начинается с 19:00
| |
− |
| |
− | // _1 - date
| |
− | // _2 - time
| |
− | // _3 - count
| |
− | // _4 - часы
| |
− | // _5 - дата символьная 8 знаков
| |
− | // _6 - отчет
| |
− | // _7 - разница
| |
− | // _8 - брак
| |
| = Смотрите также = | | = Смотрите также = |
| [[Полезные функции]] | | [[Полезные функции]] |
| | | |
| [[Функции Delphi]] | | [[Функции Delphi]] |