Интернет-журнал "Домашняя лаборатория", 2007 №4
Шрифт:
Data2.RecordSource = str
Data2.Refresh
' Установим Заголовки столбцов у объекта MSFlexGrid
s$ = "<Код товара |<Наименов. товара |<Цена |<Кол-во |<Дата заказа |<Код покуп. |<Дата продажи |<Кол-во прод. "
MSFlexGrid1.FormatString = s$
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.row = MSFlexGrid1.Rows — 1
MSFlexGrid1.col = 0 MSFlexGrid1.Text = "Всего:"
MSFlexGrid1.col = 1
' Расчет суммы заказа
Dim i As Integer
Dim sum As Double
sum = 0
For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows — 1 sum = sum + Val(MSFlexGrid1.TextArray(GetCellIndex(i, 2))) *
Val(MSFlexGrid1.TextArray(GetCelllndex(i, 3)))
Next
MSFlexGrid1.Text = CStr(sum) + "
MSFlexGrid1.row = 1
MSFlexGrid1.col = 1
End Sub
Function GetCellIndex(row As Integer, col As Integer) As Long GetCellIndex = row * MSFlexGrid1.Cols + col
End Function
Сохраните и запустите проект. Результат работы приложения показан на рис. 9.2.
Рис. 9.2. Результат работы приложения
Улучшенное текстовое окно (RichTextBox)
Возможностей обычного текстового окна в большинстве случаев достаточно для отображения текстовой информации из базы данных. Однако, у него есть один недостаток — текстовое окно не допускает форматирования текста. Если необходимо хранить в базе данных текст с элементами форматирования, вы можете использовать улучшенное текстовое окно (RichTextBox). Этот объект управления позволяет работать со шрифтами, изменять атрибуты у выделенного фрагменты текста (полужирный, курсив, подчеркнутый или перечеркнутый), осуществлять различные виды выравнивание текста (по левому краю окна, по правому краю окна или по центру), устанавливать отступы и выступы у абзацев и др.
Все эти функции реализованы посредством поддержки этим объектом управления формата RTF (Rich Text Format — расширенный текстовый формат). Объект RichTextBox транслирует текст в формате RTF и выполняет форматирование и отображение текста на экранной форме.
С базой данных RichTextBox связывается установкой свойств DataSource и DataField. Тип поля в базе данных формата MS Access, с которым связывается объект RichTextBox, должен быть Binary или Memo. Если используется другой формат, то поле должно быть большой емкости (например, типа Text у базы данных Microsoft SQL Server).
По умолчанию RichTextBox недоступен на панели инструментов Visual Basic. Добавить его в проект можно выполнив команду меню Project->Components и отметив контрольный индикатор Microsoft Rich ТехВох Control в окне объектов управления (Controls). После этого но панели инструментов появится его пиктограмма ~
Создадим с помощью приложения VisData базу данных RICH.MDB, единственная таблица TEXTS которой содержит два поля Id (типа Integer) и Textl (типа Memo).
В демонстрационном приложении предусмотрим возможность форматирование текста изменением следующих нескольких свойств объекта RichTextBox: SelBold, Selltalic, SelUnderline и SelStrikeThru. Возможные установки этих свойств приведены в таблице.
Таблица. Некоторые
Свойство • Описание
SelBold • Если установлено True, то выделенный текст отображается полужирным стилем.
Selltalic • Если установлено True, то выделенный текст отображается курсивом.
SelUnderline • Если установлено True, то выделенный текст подчеркивается.
SelStrikeThru • Если установлено True, то выделенный текст перечеркивается.
Создайте новый проект и расположите на экранной форме объект управления данными, текстовое окно, улучшенное текстовое окно и пять командных кнопок, как показано на рис. 9.3. Обычное текстовое окно позволит увидеть, что представляет собой текст в формате RTF.
Рис. 9.3. Расположение элементов управления на экранной форме
Определите свойства объекта управления данными DataBaseName и RecordSource как “C: \WORK\RICH.MDB” и “Texts”, соответственно. Свойства остальных объектов, расположенных на форме установите следующим образом:
Command1.Caption=Полужирный
Command2.Caption=Курсив
Command3.Caption=Подчеркнутый
Command4.Caption=Перечеркнутый
Command5.Caption=Добавить
Text1.DataSource=Data1
Text1.DataField=Textl
RichTextBox1.DataSource=Data1
RichTextBox1.DataField=Text1
В процедуры обработки событий нажатия командных кнопок добавьте следующий код:
Private Sub Command1_Click
If RichTextBox1.SelBold = Fulse Then
RichTextBox1.SelBold = True
Else
RichTextBox1.SelBold = Fulse
End If
End Sub
Private Sub Command2_Click
If RichTextBox1.Selltalic = Fulse Then
RichTextBox1.Selltalic = True
Else
RichTextBox1.Selltalic = Fulse
End If
End Sub
Private Sub Command3_Click
If RichTextBoxl.SelUnderline = Fulse Then
RichTextBox1.SelUnderline = True
Else
RichTextBox1.SelUnderline = Fulse
End If
End Sub
Private Sub Command4_Click
If RichTextBox1.SelStrikeThru = Fulse Then
RichTextBox1.SelStrikeThru = True
Else
RichTextBox1.SelStrikeThru = Fulse
End If
Private Sub Command5_Click
Data1.Recordset.AddNew
End Sub
Сохраните и запустите проект. Добавьте произвольную текстовую строку в базу данных и проведите операции форматирования выделяемых участков текста с помощью командных кнопок.
Результат работы этого приложения показан на рис. 9.4. Обратите внимание на то, как в обычном текстовом окне отображается содержимое объекта RichTexBox.