|
0 / 0 / 0
Регистрация: 11.12.2008
Сообщений: 23
|
|
Вопрос по отчетам11.12.2008, 13:04. Показов 860. Ответов 1
Метки нет (Все метки)
Как при открытии отчета, добавить поля програмно. Так как при проектировании отчета зарание не известно количество столбцов
0
|
|
| 11.12.2008, 13:04 | |
|
Ответы с готовыми решениями:
1
Вопрос по отчетам Вопрос по отчетам Периодичность в таблице и вопрос по отчетам |
|
MaxVell
|
|
| 11.12.2008, 14:12 | |
|
Я использую для этого следующий тип и функцию.
[code] '??? ??? ?????????? ??????? Public Type St LTvip As Integer ' - Длина поля в твипах Zagol As String ' - названия поля для столбцов grup As Boolean ' - использовать для групировки TypeF As Long ' - тип отображаемого поля Recsour As String ' - источник данных Podstan As String ' - подстановка Group As Byte ' - Где размещаеться itog As Boolean '- Итог подводить или нет Font As String ' - Шрифт Size As Byte ' - размер шрифта virav As Byte ' -выравнивание nachert As Byte ' начертание шрифта ColorText As Long ' - цвет текста ColorFon As Long ' - цвет фона End Type 'Преобразование полученных таблиц в массив столбцов Private Sub preobras_v_mas(str_vsp As String) Dim CurDB As Database 'текущая база данных Dim recsat As Recordset ' временный набор данных Dim st_arr() As St 'массив значений свойств элементов отчета Dim str_SQL As String ' вспомогательная строка Dim i As Byte ' счетчик массива str_SQL = 'SELECT TabEl.ID_g, TabEl.TabPole, TabEl.Atr_t, TabEl.Size, TabEl.Font, TabEl.Por_el,' + _ ' TabEl.Out, Tabel.colorfon, tabel.colortext FROM MsysTmp_StyleATR' + CurrentUser + ' as TabEl' + _ ' INNER JOIN MsysTemp_Stylegr' + CurrentUser + ' as TabGr ON TabEl.ID_g = TabGr.Id_gr' + _ ' WHERE (((TabEl.Out) = True)) ORDER BY TabGr.Por_gr' 'MsgBox str_SQL ReDim st_arr(0) 'инициализация массива Set CurDB = CurrentDb Set recsat = CurDB.OpenRecordset(str_SQL, dbReadOnly) If recsat.RecordCount > 0 Then recsat.MoveFirst i = 0 While Not (recsat.EOF) With st_arr(i) .Font = recsat![Font] .Size = recsat![Size] .TypeF = acTextBox .Recsour = recsat![TabPole] .virav = recsat![Atr_t] 8 .nachert = recsat![Atr_t] Mod 8 .Zagol = '' .LTvip = 9000 .ColorFon = recsat![ColorFon] .ColorText = recsat![ColorText] If recsat!Por_el = 0 Then .Group = True Else .Group = False .Por_el = recsat!Por_el End With recsat.MoveNext 'увелечение размера массива на один элемент If Not (recsat.EOF) Then ReDim Preserve st_arr(0 To UBound(st_arr) + 1) i = i + 1 End If Wend Else MsgBox 'Не выбраны поля для отчета', vbOKOnly + vbCritical, 'Ошибка!!!' Exit Sub End If recsat.Close Set CurDB = Nothing Report_stroka str_vsp, 'Пробный', st_arr, UBound(st_arr) End Sub 'Мастер отчета в строках 'strsql-запрос обычно transform 'header - заголовок отчета 'stolb - массив размеров столбцов в твипах 'page - true - книжная, false альбомная 'kolvo - колво элиментво массива Public Sub Report_stroka(strSQL As String, Header As String, stolb() As St, kolvo As Integer, Optional page As Boolean = True) Dim rpt As Report, ReportName As String Dim intDataX As Integer, intDataY As Integer Dim ctlText As Control, gr1 As Variant Dim i As Integer 'Возвращает объектную переменную, указывающую на новый объект Report. Set rpt = CreateReport(, 'Отчет_для_Мастера') ' Задает значения свойств нового отчета. With rpt .RecordSource = strSQL .Caption = Header .[ОбластьДанных].Height = 1 .[ВерхнийКолонтитул].Height = 1 .[ЗаголовокОтчета].Height = 1 .[ПримечаниеОтчета].Height = 1 .[НижнийКолонтитул].Height = 1 ReportName = .name End With Set ctlText = CreateReportControl(rpt.name, acLabel, acHeader, '', Header, 0, 0, , 20) ctlText.Width = 110 * Len(Header) ctlText.FontSize = 10 ctlText.FontBold = True intDataY = 1 intDataX = 1 'цикл постройке отчета F |
|
| 11.12.2008, 14:12 | |
|
Помогаю со студенческими работами здесь
2
вопрос по отчётам - вывод в два столбца - как сделать красиво? Вопрос по отчетам в Access2000 Вопрос по отчётам Вопросик по отчетам Задачи по отчётам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|