else
{
CTime TimeFrom = dialog.m_timeFrom;
CString strTimeFrom = TimeFrom.Format("%d.%m.%y");
CTime TimeTo = dialog.m_timeTo;
CString strTimeTo = TimeTo.Format("%d.%m.%y");
strHeader1 += strTimeFrom+" - "+strTimeTo;
}
Header1.SetWindowText(strHeader1);
CString strHeader2 = "ФИО Материльно отв. лица: ";
strHeader2 += dialog.m_strRecieved;
Header2.SetWindowText(strHeader2);
CString strHeader3 = "Наименование материала: ";
strHeader3 += dialog.m_strMaterialName;
Header3.SetWindowText(strHeader3);
CString strHeader4 = "Сумма по документу: ";
if (dialog.m_strSign == "<=")
strHeader4 += "не менее ";
if (dialog.m_strSign == ">=")
strHeader4 += "более ";
strHeader4 += dialog.m_strSum;
Header4.SetWindowText(strHeader4);
m_Grid.SetItemText(row,0,pTrebSet->m_strNumber);
m_Grid.SetItemText(row,1,pTrebSet->m_strWarehouseCode);
m_Grid.SetItemText(row,2,pTrebSet->m_strKlad);
m_Grid.SetItemText(row,3,pTrebSet->m_strRecieverDepartment);
CTime time = pTrebSet->m_timeDate;
CString strTime = time.Format("%d.%m.%y");
m_Grid.SetItemText(row,4,strTime);
CString strNumber;
strNumber.Format("%i",pTrebMaterialSet->m_lNumber);
m_Grid.SetItemText(row,5,strNumber);
m_Grid.SetItemText(row,6,pTrebSet->m_strGave);
row++;
if (row>19)
{
CString strRowNumber;
strRowNumber.Format("%i",row);
m_Grid.InsertRow(strRowNumber);
}
pTrebMaterialSet->MoveFirst();
break;
}
pTrebMaterialSet->MoveNext();
}
if (NotEmpty)
pTrebMaterialSet->MoveFirst();
pTrebSet->MoveNext();
}
pTrebSet->Close();
pTrebMaterialSet->Close();
m_Grid.ExpandColumnsToFit();
}
if (match==0)
MessageBox("По данному запросу ничего не найдено","",MB_ICONEXCLAMATION);
}
5.3 Программный код, реализующий функциональные возможности представления результатов запроса в виде документа Excel для его последующей распечатки
Основные объекты COM интерфейса Excel
app – объект Application;
books – объект Workbooks, представляет собой коллекцию рабочих книг;
book – объект _Workbook, является текущей рабочей книгой;
sheets – объект Worksheets, представляет собой коллекцию рабочих листов;
sheet – объект _Worksheet, является текущим рабочим листом;
range – объект Range, представляет собой выделенную область;
font – объект Font;
borders – объект Borders;
Первый фрагмент кода осуществляет подключение к COM серверу Excel, загрузку документа “Материальное требование” и получение набора рабочих листов книги.
if(!app.CreateDispatch("Excel.Application"))
{
AfxMessageBox("Couldn't start Excel and get Application object.");
return;
}
books = app.GetWorkbooks();
char buf[512];
::GetCurrentDirectory(512,buf);
CString strPath(buf);
strPath += "\\Материальное требование";
book = books.Open(strPath,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.