Example #1
0
//---------------------------------------------------------------------------
AnsiString __fastcall TFormReportBUCityMounth::GetPeriodStr(TDateTime dt)
{
  AnsiString Str="";
  unsigned short year,mounth,day;
  dt.DecodeDate(&year,&mounth,&day);            
  switch (mounth)
  {
    case 1: Str+="¤нварь ";break;
    case 2: Str+="ферваль ";break;
    case 3: Str+="март ";break;
    case 4: Str+="апрель ";break;
    case 5: Str+="май ";break;
    case 6: Str+="июнь ";break;
    case 7: Str+="июль ";break;
    case 8: Str+="август ";break;
    case 9: Str+="сент¤брь ";break;
    case 10: Str+="окт¤брь ";break;
    case 11: Str+="но¤брь ";break;
    case 12: Str+="декабрь ";break;
    default: Str+="??? ";break;
  }
  Str+=AnsiString(year);
  Str+="г.";
  return Str;
}
Example #2
0
void __fastcall TfrmRaporMenu::SpeedButton6Click(TObject *Sender)
{
    TDateTime Tarih;
    unsigned short nGun, nAy, nYil;

    SpeedButton3->Flat = false;
    SpeedButton4->Flat = false;
    SpeedButton5->Flat = false;
    SpeedButton6->Flat = true;

    Kilit();
    Edit_Tarih1->Enabled = true;
    Edit_Tarih2->Enabled = true;
    SpeedButton1->Enabled = true;
    SpeedButton2->Enabled = true;

    Edit_Tarih1->Color = clWhite;
    Edit_Tarih2->Color = clWhite;
    Edit_MusteriNo1->Color = clWhite;
    Edit_MusteriNo2->Color = clWhite;
    Edit1->Color = clWhite;
    Edit3->Color = clWhite;
    Edit2->Color = clWhite;
    Edit4->Color = clWhite;

    Tarih = Tarih.CurrentDate();
    Tarih.DecodeDate(&nYil, &nAy, &nGun);
    Edit_Tarih1->Text = "01.01."+IntToStr(nYil);
    Edit_Tarih2->Text = "31.12."+IntToStr(nYil);

    RaporBayragi = 3;
}
Example #3
0
String DateToLongString(TDateTime DT){
  char *months[]={
    " января ", " февраля ", " марта ", " апреля ", " мая ", " июня ", " июля ", " августа ", " сентября ", " октября ", " ноября ", " декабря "
  };
  unsigned short year, month, day;
  DT.DecodeDate(&year, &month, &day);
  String Res = IntToStr(day) + months[month-1] + IntToStr(year) + " года";
  return Res;
}
Example #4
0
TDateTime localToUTC( TDateTime t )
{
   /*
      void __fastcall DecodeDate(unsigned short* year, unsigned short*
           month, unsigned short* day) const;
      void __fastcall DecodeTime(unsigned short* hour, unsigned short*
           min, unsigned short* sec, unsigned short* msec) const;

   */
   unsigned short year;
   unsigned short month;
   unsigned short day;
   unsigned short hour;
   unsigned short min;
   unsigned short sec;
   unsigned short msec;

   t.DecodeDate( &year, &month, &day );
   t.DecodeTime( &hour, &min, &sec, &msec );

   bool isDst = false;

   unsigned int yoffset = year - 2006;          // base year for DST figures

   if ( year < 2006 || yoffset >= sizeof( DSTStart ) / sizeof( int ) )
   {
      static dstShown = 0;
      if (dstShown != calendarYear)
         ShowMessage( "DST conversions only defined from 2006 until 2011!" );
      dstShown = calendarYear;
      return t;
   }
   if ( month > 3 && month < 10 )
   {
      isDst = true;
   }
   else
      if ( month == 3 && day >= DSTStart[ yoffset ] )
      {
         isDst = true;
      }
      else
         if ( month == 10 && day < DSTEnd[ yoffset ] )
         {
            isDst = true;
         }
   if ( isDst )
   {
      t -= TDateTime( 1, 0, 0, 0 );
   }
   return t;
}
bool TDateTime::SetCurrentDateTime(TDateTime &rhs)
{
#ifndef WIN32
 	unsigned int year=0, month=0, day=0, hour=0, min=0, sec=0;
	rhs.DecodeDate( year, month, day );
	rhs.DecodeTime( hour, min, sec );

	//更新操作系统时间
	struct tm tmSys;
	time_t tSys;

	tmSys.tm_year = year - 1900;
	tmSys.tm_mon = month - 1;
	tmSys.tm_mday = day;
	tmSys.tm_sec = sec;
	tmSys.tm_min = min;
	tmSys.tm_hour = hour;
	tmSys.tm_isdst = -1;

	if ( ( tSys = mktime( &tmSys ) ) == -1 )
	{
		DBG_PRN("info", ("mktime error!!"));		
		return false;
	}
	if ( stime( &tSys ) == -1)
	{
		DBG_PRN("info", ("stime error!!"));		
		return false;
	}
	
	//更RTC时间
// 	unsigned char tmp[3];
// 	int datetime;
// 	datetime = rhs.FormatInt(YYYYMMDD);
// 	int2bin(&tmp[0], (datetime / 10000) % 100, 1);
// 	int2bin(&tmp[1], (datetime / 100) % 100, 1);
// 	int2bin(&tmp[2], datetime % 100, 1);
// 	SetRTCData(tmp);
// 
// 	datetime = rhs.FormatInt(HHMMSS);
// 	int2bin(&tmp[0], (datetime / 10000) % 100, 1);
// 	int2bin(&tmp[1], (datetime / 100) % 100, 1);
// 	int2bin(&tmp[2], datetime % 100, 1);
// 	SetRTCTime(tmp);
               	

#endif
	return true;
}
bool TDateTime::SetCurrentDate(TDateTime &rhs)
{
#ifndef WIN32
	unsigned int year=0, month=0, day=0, hour=0, min=0, sec=0;

	rhs.DecodeDate(year, month, day);
	TDateTime curDateTime = CurrentDateTime();
	curDateTime.DecodeTime( hour, min, sec );
	
	TDateTime tmpDateTime(year, month, day, hour, min, sec);
	return SetCurrentDateTime(tmpDateTime);

#endif
	return true;
}
Example #7
0
//---------------------------------------------------------------------------
void TSessionLog::DoAddToSelf(TLogLineType AType, const UnicodeString & ALine)
{
  if (FTopIndex < 0)
  {
    FTopIndex = 0;
  }

  TStringList::AddObject(ALine, static_cast<TObject *>(reinterpret_cast<void *>(static_cast<size_t>(AType))));

  FLoggedLines++;

  if (LogToFile())
  {
    if (FFile == nullptr)
    {
      OpenLogFile();
    }

    if (FFile != nullptr)
    {
#if defined(__BORLANDC__)
      UnicodeString Timestamp = FormatDateTime(L" yyyy-mm-dd hh:nn:ss.zzz ", Now());
      UTF8String UtfLine = UTF8String(UnicodeString(LogLineMarks[Type]) + Timestamp + Line + "\n");
      fwrite(UtfLine.c_str(), UtfLine.Length(), 1, (FILE *)FFile);
#else
      unsigned short Y, M, D, H, N, S, MS;
      TDateTime DateTime = Now();
      DateTime.DecodeDate(Y, M, D);
      DateTime.DecodeTime(H, N, S, MS);
      UnicodeString dt = FORMAT(L" %04d-%02d-%02d %02d:%02d:%02d.%03d ", Y, M, D, H, N, S, MS);
      UnicodeString Timestamp = dt;
      UTF8String UtfLine = UTF8String(UnicodeString(LogLineMarks[AType]) + Timestamp + ALine + "\n");
      fprintf_s(static_cast<FILE *>(FFile), "%s", const_cast<char *>(AnsiString(UtfLine).c_str()));
#endif
    }
  }
}
Example #8
0
//---------------------------------------------------------------------------
void TSessionLog::DoAddStartupInfo(TSessionData * Data)
{
  TGuard Guard(FCriticalSection);

  BeginUpdate();
  auto cleanup = finally([&]()
  {
    DeleteUnnecessary();
    EndUpdate();
  });
  {
    #define ADF(S, ...) DoAdd(llMessage, FORMAT(S, ##__VA_ARGS__), MAKE_CALLBACK(TSessionLog::DoAddToSelf, this));
    if (Data == nullptr)
    {
      AddSeparator();
      ADF(L"NetBox %s (OS %s)", FConfiguration->GetVersionStr().c_str(), FConfiguration->GetOSVersionStr().c_str());
      std::auto_ptr<THierarchicalStorage> Storage(FConfiguration->CreateStorage(false));
      assert(Storage.get());
      ADF(L"Configuration: %s", Storage->GetSource().c_str());

      if (0)
      {
        typedef BOOL (WINAPI * TGetUserNameEx)(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize);
        HINSTANCE Secur32 = LoadLibrary(L"secur32.dll");
        TGetUserNameEx GetUserNameEx =
          (Secur32 != nullptr) ? reinterpret_cast<TGetUserNameEx>(GetProcAddress(Secur32, "GetUserNameExW")) : nullptr;
        wchar_t UserName[UNLEN + 1];
        unsigned long UserNameSize = LENOF(UserName);
        if ((GetUserNameEx == nullptr) || !GetUserNameEx(NameSamCompatible, (LPWSTR)UserName, &UserNameSize))
        {
          wcscpy(UserName, L"<Failed to retrieve username>");
        }
        ADF(L"Local account: %s", UserName);
      }
      unsigned short Y, M, D, H, N, S, MS;
      TDateTime DateTime = Now();
      DateTime.DecodeDate(Y, M, D);
      DateTime.DecodeTime(H, N, S, MS);
      UnicodeString dt = FORMAT(L"%02d.%02d.%04d %02d:%02d:%02d", D, M, Y, H, N, S);
      // ADF(L"Login time: %s", FormatDateTime(L"dddddd tt", Now()).c_str());
      ADF(L"Working directory: %s", GetCurrentDir().c_str());
      // ADF(L"Command-line: %s", CmdLine.c_str());
      // ADF(L"Time zone: %s", GetTimeZoneLogString().c_str());
      ADF(L"Login time: %s", dt.c_str());
      AddSeparator();
    }
    else
    {
      if (0)
      {
        ADF(L"Session name: %s (%s)", Data->GetSessionName().c_str(), Data->GetSource().c_str());
      }
      ADF(L"Host name: %s (Port: %d)", Data->GetHostNameExpanded().c_str(), Data->GetPortNumber());
      if (0)
      {
        ADF(L"User name: %s (Password: %s, Key file: %s)",
          Data->GetUserNameExpanded().c_str(), BooleanToEngStr(!Data->GetPassword().IsEmpty()).c_str(),
           BooleanToEngStr(!Data->GetPublicKeyFile().IsEmpty()).c_str())
      }
      ADF(L"Tunnel: %s", BooleanToEngStr(Data->GetTunnel()).c_str());
      if (Data->GetTunnel())
      {
        ADF(L"Tunnel: Host name: %s (Port: %d)", Data->GetTunnelHostName().c_str(), Data->GetTunnelPortNumber());
        if (0)
        {
          ADF(L"Tunnel: User name: %s (Password: %s, Key file: %s)",
            Data->GetTunnelUserName().c_str(), BooleanToEngStr(!Data->GetTunnelPassword().IsEmpty()).c_str(),
             BooleanToEngStr(!Data->GetTunnelPublicKeyFile().IsEmpty()).c_str());
            ADF(L"Tunnel: Local port number: %d", Data->GetTunnelLocalPortNumber());
        }
      }
      ADF(L"Transfer Protocol: %s", Data->GetFSProtocolStr().c_str());
      ADF(L"Code Page: %d", Data->GetCodePageAsNumber());
      wchar_t * PingTypes = L"-NC";
      TPingType PingType;
      intptr_t PingInterval;
      if (Data->GetFSProtocol() == fsFTP)
      {
        PingType = Data->GetFtpPingType();
        PingInterval = Data->GetFtpPingInterval();
      }
      else
      {
        PingType = Data->GetPingType();
        PingInterval = Data->GetPingInterval();
      }
      ADF(L"Ping type: %s, Ping interval: %d sec; Timeout: %d sec",
        UnicodeString(PingTypes[PingType]).c_str(), PingInterval, Data->GetTimeout());
      ADF(L"Proxy: %s%s", ProxyMethodList[Data->GetProxyMethod()],
        Data->GetProxyMethod() == pmSystem ?
          ::Format(L" (%s)", ProxyMethodList[Data->GetActualProxyMethod()]).c_str() :
          L"")
      if (Data->GetProxyMethod() != ::pmNone)
      {
        ADF(L"HostName: %s (Port: %d); Username: %s; Passwd: %s",
          Data->GetProxyHost().c_str(), Data->GetProxyPort(),
           Data->GetProxyUsername().c_str(), BooleanToEngStr(!Data->GetProxyPassword().IsEmpty()).c_str());
        if (Data->GetProxyMethod() == pmTelnet)
        {
          ADF(L"Telnet command: %s", Data->GetProxyTelnetCommand().c_str());
        }
        if (Data->GetProxyMethod() == pmCmd)
        {
          ADF(L"Local command: %s", Data->GetProxyLocalCommand().c_str());
        }
      }
      wchar_t const * BugFlags = L"+-A";
      if (Data->GetUsesSsh())
      {
        ADF(L"SSH protocol version: %s; Compression: %s",
          Data->GetSshProtStr().c_str(), BooleanToEngStr(Data->GetCompression()).c_str());
        ADF(L"Bypass authentication: %s",
         BooleanToEngStr(Data->GetSshNoUserAuth()).c_str());
        ADF(L"Try agent: %s; Agent forwarding: %s; TIS/CryptoCard: %s; KI: %s; GSSAPI: %s",
           BooleanToEngStr(Data->GetTryAgent()).c_str(), BooleanToEngStr(Data->GetAgentFwd()).c_str(), BooleanToEngStr(Data->GetAuthTIS()).c_str(),
           BooleanToEngStr(Data->GetAuthKI()).c_str(), BooleanToEngStr(Data->GetAuthGSSAPI()).c_str());
        if (Data->GetAuthGSSAPI())
        {
          ADF(L"GSSAPI: Forwarding: %s; Server realm: %s",
            BooleanToEngStr(Data->GetGSSAPIFwdTGT()).c_str(), Data->GetGSSAPIServerRealm().c_str());
        }
        ADF(L"Ciphers: %s; Ssh2DES: %s",
          Data->GetCipherList().c_str(), BooleanToEngStr(Data->GetSsh2DES()).c_str());
        UnicodeString Bugs;
        for (intptr_t Index = 0; Index < BUG_COUNT; ++Index)
        {
          Bugs += UnicodeString(BugFlags[Data->GetBug(static_cast<TSshBug>(Index))])+(Index<BUG_COUNT-1?L",":L"");
        }
        ADF(L"SSH Bugs: %s", Bugs.c_str());
        ADF(L"Return code variable: %s; Lookup user groups: %c",
           Data->GetDetectReturnVar() ? UnicodeString(L"Autodetect").c_str() : Data->GetReturnVar().c_str(),
           BugFlags[Data->GetLookupUserGroups()]);
        ADF(L"Shell: %s", Data->GetShell().IsEmpty() ? UnicodeString(L"default").c_str() : Data->GetShell().c_str());
        ADF(L"EOL: %d, UTF: %d", Data->GetEOLType(), Data->GetNotUtf());
        ADF(L"Clear aliases: %s, Unset nat.vars: %s, Resolve symlinks: %s",
           BooleanToEngStr(Data->GetClearAliases()).c_str(), BooleanToEngStr(Data->GetUnsetNationalVars()).c_str(),
           BooleanToEngStr(Data->GetResolveSymlinks()).c_str());
        ADF(L"LS: %s, Ign LS warn: %s, Scp1 Comp: %s",
           Data->GetListingCommand().c_str(),
           BooleanToEngStr(Data->GetIgnoreLsWarnings()).c_str(),
           BooleanToEngStr(Data->GetScp1Compatibility()).c_str());
      }
      if (Data->GetFSProtocol() == fsSFTP)
      {
        UnicodeString Bugs;
        for (int Index = 0; Index < SFTP_BUG_COUNT; Index++)
        {
          Bugs += UnicodeString(BugFlags[Data->GetSFTPBug(static_cast<TSftpBug>(Index))])+(Index<SFTP_BUG_COUNT-1 ? L"," : L"");
        }
        ADF(L"SFTP Bugs: %s", Bugs.c_str());
        ADF(L"SFTP Server: %s", Data->GetSftpServer().IsEmpty()? UnicodeString(L"default").c_str() : Data->GetSftpServer().c_str());
      }
      if (Data->GetFSProtocol() == fsFTP)
      {
        UnicodeString Ftps;
        switch (Data->GetFtps())
        {
          case ftpsImplicit:
            Ftps = L"Implicit TLS/SSL";
            break;

          case ftpsExplicitSsl:
            Ftps = L"Explicit SSL";
            break;

          case ftpsExplicitTls:
            Ftps = L"Explicit TLS";
            break;

          default:
            assert(Data->GetFtps() == ftpsNone);
            Ftps = L"None";
            break;
        }
        ADF(L"FTP: FTPS: %s; Passive: %s [Force IP: %c]; MLSD: %c  [List all: %c]",
           Ftps.c_str(), BooleanToEngStr(Data->GetFtpPasvMode()).c_str(),
           BugFlags[Data->GetFtpForcePasvIp()],
           BugFlags[Data->GetFtpUseMlsd()],
           BugFlags[Data->GetFtpListAll()]);
        if (Data->GetFtps() != ftpsNone)
        {
          ADF(L"Session reuse: %s", BooleanToEngStr(Data->GetSslSessionReuse()).c_str());
          ADF(L"TLS/SSL versions: %s-%s", GetTlsVersionName(Data->GetMinTlsVersion()).c_str(), GetTlsVersionName(Data->GetMaxTlsVersion()).c_str());
        }
      }
      ADF(L"Local directory: %s, Remote directory: %s, Update: %s, Cache: %s",
        (Data->GetLocalDirectory().IsEmpty() ? UnicodeString(L"default").c_str() : Data->GetLocalDirectory().c_str()),
         (Data->GetRemoteDirectory().IsEmpty() ? UnicodeString(L"home").c_str() : Data->GetRemoteDirectory().c_str()),
         BooleanToEngStr(Data->GetUpdateDirectories()).c_str(),
         BooleanToEngStr(Data->GetCacheDirectories()).c_str());
      ADF(L"Cache directory changes: %s, Permanent: %s",
         BooleanToEngStr(Data->GetCacheDirectoryChanges()).c_str(),
         BooleanToEngStr(Data->GetPreserveDirectoryChanges()).c_str());
      intptr_t TimeDifferenceMin = TimeToMinutes(Data->GetTimeDifference());
      ADF(L"DST mode: %d; Timezone offset: %dh %dm", static_cast<int>(Data->GetDSTMode()), (TimeDifferenceMin / MinsPerHour), (TimeDifferenceMin % MinsPerHour));

      if (Data->GetFSProtocol() == fsWebDAV)
      {
        ADF(L"Compression: %s",
          BooleanToEngStr(Data->GetCompression()).c_str());
      }

      AddSeparator();
    }

    #undef ADF
  }
}
Example #9
0
// Заполнение информации по трудоёмкости по исполнителям
void TController::fillVolume(int num)
{
	if(vKHRList[num]->Works.size() != 0)
	{
		int allVolumes = 0;	// число кварталов, которые идёт КХР
		// последняя дата работы - последний срок
		TDateTime end = Model->getLastDate(vKHRList[num]);
		// необходимо определить начало работы: квартал и год
		TDateTime begin = vKHRList[num]->dtStartDate;
		Word dyear, dmonth, dday; // данные для начала работы
		Word eyear, emonth, eday; // данные по окончанию КХР
		begin.DecodeDate(&dyear, &dmonth, &dday);
		end.DecodeDate(&eyear, &emonth, &eday);
		int begQ = Model->getQuart(StrToInt(dmonth));  // квартал начала работ
		int endQ = Model->getQuart(StrToInt(emonth));  // квартал окончания работ
		int kbeg = StrToInt(dyear); // год начала работ
		int kend = StrToInt(eyear); // год окончания работ
		if(kbeg==kend)
			allVolumes = endQ - begQ + 1; // если год совпадает
		else
			allVolumes = (4-begQ+1)/*год начала*/ + 4*(kend-kbeg-1) /*промежуточные года*/ + endQ /*последний год*/ ;

		DisplayManager->showVolumeRow(vKHRList[num]->Executors.size()+1, allVolumes+2);
		int currVol = begQ;
		int currYear = kbeg;
		// заполнение названий столбцов
		for (int i=0; i < allVolumes; i++)
		{
			AnsiString data = IntToStr(currVol);
			switch(currVol)
			{
				case 1: data = "I кв. "; break;
				case 2: data = "II кв. ";break;
				case 3: data = "III кв. ";break;
				case 4: data = "IV кв. ";break;
				default: break;
			}
		  //	data+=".";
			data+=IntToStr(currYear);
			currVol++;
			if(currVol>4)
			{
				currVol=1;
				currYear++;
			}
			DisplayManager->showVolume(i+1, 0, data.c_str());
		}

		// для всех исполнителей
		for(int i=0; i<vKHRList[num]->Executors.size(); i++)
		{
			int sumVolume=0; // суммарная трудоёмкость для исполнителя
			currVol = begQ;
			currYear = kbeg;
			int id = vKHRList[num]->Executors[i]->id;
			string name = Model->execByID(vKHRList[num], id);
			DisplayManager->showVolume(0, i+1, name.c_str());
			for (int j=0; j < allVolumes; j++)
			{
				float vol = Model->getExecVolume(vKHRList[num], id, currYear, currVol);
				sumVolume+=vol;
				currVol++;
				if(currVol>4)
				{
					currVol=1;
					currYear++;
				}
				DisplayManager->showVolume(j+1, i+1, FloatToStr(vol));
			}
			DisplayManager->showVolume(allVolumes+1, i+1, FloatToStr(sumVolume));
	 	}
	 }
}
Example #10
0
//---------------------------------------------------------------------------
void __fastcall TBookNotAcceptListForm::FormShow(TObject *Sender)
{
	CString szSQL;
        unsigned short year,month,day;
	edtDays->Text="2";

	m_lstCorpID.Add("");
	lstCorp->Items->Add("全部");

	szSQL="select * from DepartCorp order by dc_code";
	RunSQL(dm1->Query1,szSQL,true);
	while(!dm1->Query1->Eof)
	{
		m_lstCorpID.Add(dm1->Query1->FieldByName("dc_code")->AsString.c_str());
		lstCorp->Items->Add(dm1->Query1->FieldByName("dc_name")->AsString);

		dm1->Query1->Next();
	}
	lstCorp->ItemIndex=0;

	m_lstDepartID.Add("");
	lstDepart->Items->Add("全部");
	szSQL="select * from StockDepart order by sd_code";
	RunSQL(dm1->Query1,szSQL,true);
	while(!dm1->Query1->Eof)
	{
		m_lstDepartID.Add(dm1->Query1->FieldByName("sd_code")->AsString.c_str());
		lstDepart->Items->Add(dm1->Query1->FieldByName("sd_name")->AsString);
		dm1->Query1->Next();
	}
	lstDepart->ItemIndex=0;

	m_lstAskDepID.Add("");
  lstAskDep->Items->Add("全部");
	szSQL="select * from DicDepart,DepartCorp where dc_code=substring(dd_code,1,2) order by dd_code";
	RunSQL(dm1->Query1,szSQL,true);
	while(!dm1->Query1->Eof)
	{
		m_lstAskDepID.Add(dm1->Query1->FieldByName("dd_code")->AsString.c_str());
		lstAskDep->Items->Add(dm1->Query1->FieldByName("dc_name")->AsString
    	+dm1->Query1->FieldByName("dd_name")->AsString);
		dm1->Query1->Next();
	}
	lstAskDep->ItemIndex=0;

	m_lstFactID.Add("");
	lstFact->Items->Add("全部");
	szSQL="select * from Manufactur order by mf_code";
	RunSQL(dm1->Query1,szSQL,true);
	while(!dm1->Query1->Eof)
	{
		m_lstFactID.Add(dm1->Query1->FieldByName("mf_code")->AsString.c_str());
		lstFact->Items->Add(dm1->Query1->FieldByName("mf_shortname")->AsString);
		dm1->Query1->Next();
	}
	lstFact->ItemIndex=0;

        TDateTime tNow;
        tNow=GetSysTime(false);
        tNow.DecodeDate(&year,&month,&day);
        DateTimePicker1->Date=tNow;
        DateTimePicker2->Date=tNow;
}