Скачиваний:
72
Добавлен:
01.05.2014
Размер:
3.91 Кб
Скачать
// SessionForFilm.cpp : implementation file
//

#include "stdafx.h"
#include "DBKino.h"
#include "SessionForFilm.h"
#include "CSchedule.h"
#include "EditRepertoir.h"


// SessionForFilm dialog

IMPLEMENT_DYNAMIC(SessionForFilm, CDialog)
SessionForFilm::SessionForFilm(CWnd* pParent /*=NULL*/)
	: CDialog(SessionForFilm::IDD, pParent)
{
	ColumnCount = 0;
}

SessionForFilm::~SessionForFilm()
{
}

void SessionForFilm::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_SESSION, List_Session);
	DDX_Control(pDX, IDC_COMBO_FILM, ComboFilm);
}

void SessionForFilm::SetMAP(CMapStringToPtr* cMapRep)
{
	this -> cMapRep = cMapRep;
}


BEGIN_MESSAGE_MAP(SessionForFilm, CDialog)
	ON_CBN_SELCHANGE(IDC_COMBO_FILM, OnCbnSelchangeComboFilm)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_SESSION, OnNMDblclkListSession)
END_MESSAGE_MAP()

BOOL SessionForFilm::OnInitDialog()
{   
	CDialog::OnInitDialog();
     
	 DWORD ExStyle = List_Session.GetExtendedStyle();
     ExStyle |= LVS_EX_FULLROWSELECT;
     List_Session.SetExtendedStyle(ExStyle);

	 List_Session.DeleteAllItems();
	
	
    
    ShowSessionColumn();

    POSITION pos = cMapRep -> GetStartPosition();
    void* ptr;
	CString FILM;

	while(pos)
	{
		cMapRep -> GetNextAssoc(pos, FILM, ptr);
		ComboFilm.AddString( FILM );
	}

return TRUE;
}

void SessionForFilm::ShowSessionColumn()
{
    for(int Col=ColumnCount; Col>=0; Col-- )
		{
			List_Session.DeleteColumn (Col);
		}
	ColumnCount = 0; 
	LV_COLUMN lvc;

	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH;

	lvc.iSubItem = 0;
	lvc.pszText = _T("Дата");
	lvc.cx = 170;
	List_Session.InsertColumn(0,&lvc);
	ColumnCount++;
	lvc.iSubItem = 1;
	lvc.pszText = _T("Сеанс");
	lvc.cx = 90;
	List_Session.InsertColumn(1,&lvc);
	ColumnCount++;
	lvc.iSubItem = 2;
	lvc.pszText = _T("Продано билетов");
	lvc.cx = 120;
	List_Session.InsertColumn(2,&lvc);
	ColumnCount++;

}

// SessionForFilm message handlers

void SessionForFilm::OnCbnSelchangeComboFilm()
{
	List_Session.DeleteAllItems();
	CString FILM;
	ComboFilm.GetLBText(ComboFilm.GetCurSel(), FILM );
    
	void* ptr;
	CPtrList* ptrList;
	cMapRep -> Lookup( FILM, ptr );
      ptrList = ((CPtrList*) ptr);
	  int i = 0;
	  for(POSITION pos = ptrList ->GetHeadPosition(); pos != NULL;)
	  {
		  ptr = ptrList ->GetNext( pos );
		  CSchedule* schedule = ((CSchedule*) ptr);
		  CString Str;
		  Str = schedule->d_DateSession.Format("%d.%m.%Y");
		  List_Session.InsertItem(
								    LVIF_TEXT|LVIF_STATE, i, Str,                                  
	                                                      0, 	
		                                                  LVIS_SELECTED,
                                                          0, 0);
                                     
										 
										 Str = schedule->d_TimeSession.Format("%H : %M");
	                                     List_Session.SetItemText(i, 1, Str);
										 Str.Format("%d", schedule ->i_TicketSession);
	                                     List_Session.SetItemText(i, 2, Str);
		i++;
	  }
}



void SessionForFilm::OnNMDblclkListSession(NMHDR *pNMHDR, LRESULT *pResult)
{
	UINT uSelectedCount = List_Session.GetSelectedCount();
    int  nItem = -1; 
    UINT i=0;

    if (uSelectedCount > 0)
    {
		 nItem = List_Session.GetNextItem(nItem, LVNI_SELECTED);
         ASSERT(nItem != -1);
	     CString sFilm;
		 ComboFilm.GetLBText(ComboFilm.GetCurSel(), sFilm );
		 CString sDate = List_Session.GetItemText(nItem, 0);
		 CString sTime = List_Session.GetItemText(nItem, 1);
		 CString sTicket = List_Session.GetItemText(nItem, 2);


		   EditRepertoir rep;
	       rep.SetDocument(cMapRep, sFilm, sDate, sTime, sTicket);
	       rep.DoModal();
		  OnCbnSelchangeComboFilm();
	}
	*pResult = 0;
}
Соседние файлы в папке DBKino_Last_Release