⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postavivremedlg.cpp

📁 load data from pc to hand held terminal and vice versa
💻 CPP
字号:
// PostaviVremeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "RucniTerminal.h"
#include "PostaviVremeDlg.h"
#include "UnosLozinkeDlg.h"
#include "Interpret.h"
#include "Komunikator.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPostaviVremeDlg dialog


CPostaviVremeDlg::CPostaviVremeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPostaviVremeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPostaviVremeDlg)
	m_Datum = 0;
	m_Vreme = 0;
	//}}AFX_DATA_INIT
}


void CPostaviVremeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPostaviVremeDlg)
	DDX_DateTimeCtrl(pDX, IDC_DATUM, m_Datum);
	DDX_DateTimeCtrl(pDX, IDC_VREME, m_Vreme);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPostaviVremeDlg, CDialog)
	//{{AFX_MSG_MAP(CPostaviVremeDlg)
	ON_BN_CLICKED(ID_SISTEMSKO_VREME, OnSistemskoVreme)
	ON_BN_CLICKED(ID_DAJ_SISTEMSKO_I_SNIMI, OnDajSistemskoISnimi)
	ON_BN_CLICKED(ID_OTKLJUCAJ_VREME, OnOtkljucajVreme)
	ON_BN_CLICKED(ID_ZAKLJUCAJ_VREME, OnZakljucajVreme)
	ON_BN_CLICKED(ID_IZMENI_LOZINKU, OnIzmeniLozinku)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPostaviVremeDlg message handlers

BOOL CPostaviVremeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

    // Postavi format datmskih polja
    CRucniTerminalApp::FormatirajDateTimePicker( IDC_DATUM, "dd'.'MM'.'yyyy'.'", this );
    CRucniTerminalApp::FormatirajDateTimePicker( IDC_VREME, "HH':'mm':'ss", this );
	
    // Postavi datum i vreme na tekuci
    PostaviSistemskoVreme();
    	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

// Pomocna procedura : snima vreme na rucni terminal i ispisuje odgovarajuce poruke
void CPostaviVremeDlg::SnimiVremeNaTerminal( void ){
    CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();

    pRTApp->PrikaziPorukuIKursorZaCekanje( IDS_SNIMANJE_PODATAKA, this );

    // Najpre proveri da li je terminal spreman za narednu komandu
    int PorukaID;
    KAdminInfo admInf;
    if( pRTApp->TerminalSpreman( PorukaID, admInf ) ) {
        struct tm* komponente;

        // Preuzmi podatke iz forme u odgovarajuce promenljive
        CPostaviVremeDlg::UpdateData();

        // Izdvoji casove, minute i sekunde
        komponente = m_Vreme.GetLocalTm( NULL );
        unsigned int nCas           = komponente->tm_hour;
        unsigned int nMinut         = komponente->tm_min;
        unsigned int nSekunda       = komponente->tm_sec;

        // Izdvoji dan u nedelji, dan u mesecu, mesec i godinu
        komponente = m_Datum.GetLocalTm( NULL );
        unsigned int nDanUNedelji   = KInterpret::Instance()->
                                            KonvertujDanUNedZaTerminal( komponente->tm_wday );
        unsigned int nDanUMesecu    = komponente->tm_mday;
        unsigned int nMesec         = komponente->tm_mon    + 1;
        unsigned int nGodina        = komponente->tm_year   + 1900;

        // Formiraj poruku sa podacima o datumu i vremenu :
        string cSadrzajPoruke;
        cSadrzajPoruke = KInterpret::Instance()->VremeIDatumUString
                            ( nCas, nMinut, nSekunda, nDanUNedelji, 
                              nDanUMesecu, nMesec, nGodina,
                              admInf.VerzijaVecaIliJednaka( 1, 2 ) );

        // Snimi datum i vreme na terminal
        if ( KKomunikator::Instance()->SnimiNaTerminal( KT_POSTAVI_VREME, cSadrzajPoruke ) )
            PorukaID = IDS_SNIMANJE_USPELO;
        else
            PorukaID = IDS_SNIMANJE_NEUSPELO;
    }

    pRTApp->UkloniPorukuIKursorZaCekanje();

    pRTApp->MyMessageBox( PorukaID );
}

// Pomocna procedura : postavlja datumska polja na trenutni datum/vreme
void CPostaviVremeDlg::PostaviSistemskoVreme( void ){
    // Postavi datum i vreme na tekuci
    CTime sysdate = CTime::GetCurrentTime();
	m_Datum = sysdate;
	m_Vreme = sysdate;

    // Osvezi polja forme ( usaglasi sa vrednostima odgovarajucih promenljivih )
    CPostaviVremeDlg::UpdateData( FALSE );
}

void CPostaviVremeDlg::OnOK() 
{
    // Snimi vreme na rucni terminal i ispisi odgovarajuce poruke o izvrsenoj komandi
    SnimiVremeNaTerminal();
}

void CPostaviVremeDlg::OnSistemskoVreme() 
{
    // Postavi datum i vreme na tekuci
    PostaviSistemskoVreme();
}

void CPostaviVremeDlg::OnDajSistemskoISnimi() 
{
    // Postavi datum i vreme na tekuci
    PostaviSistemskoVreme();

    // Snimi vreme na rucni terminal i ispisi odgovarajuce poruke o izvrsenoj komandi
    SnimiVremeNaTerminal();
}

void CPostaviVremeDlg::OnOtkljucajVreme() 
{
    CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
    pRTApp->OtkljucajVreme( this );
}

void CPostaviVremeDlg::OnZakljucajVreme() 
{
    CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
    pRTApp->ZakljucajVreme( this );
}

void CPostaviVremeDlg::OnIzmeniLozinku() 
{
    CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
    pRTApp->IzmeniLozinkuZaVreme( this );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -