Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовой проект / Kyrsovik / DBKino_Last_Release / SessionForFilm
.cpp// 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