Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46

Нужно создать грид, чтобы в одной записи было несколько строк (как в 1С).

09.08.2007, 10:09. Показов 3087. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как создать грид чтобы в одной записи было несколько строк. Это не MSHFLexgrid я имею ввиду.
В 1С это как-то реализовано, но яне пойму в чем фишка. Это свой активикс?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2007, 10:09
Ответы с готовыми решениями:

Как сделать чтобы в ячейках GridView было по несколько строк текста?
Просто ширина ячеек получается очень большой! Вот нашла пример, как хотелось, чтобы выглядели ячейки!

Как создать массив строк или символов, чтобы потом можно было с цикла его заполнить?
Есть наработки, но не работает: while(c!=27){ FILE* file1; file1=fopen("zarplaty.txt","r"); for(i=0;i<lines_count;i++){...

Вывести из базы все записи циклом do while, чтобы в одной строчке было 3 элемента
мне надо вывести из базы все записи циклом do while, чтобы в одной строчке было 3 элемента, а потом перенос. как это делать? что-то не...

18
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
11.08.2007, 14:57
Если у тебя в БД, в этом поле записана информация, которая содержит знак перехода на новую строку (vbCrLf), то установив свойство WordWrap, DBGrid или MSFlexGrid, в состояние True получишь несколько строк в одной ячейке.Незабудь при этом увеличить высоту строки.

Armen Mnatsakanyan
Certified Professional Master
Visual Basic Programmer
Project Manager of 'Alphabetic of Visual Basic' [russian]
URL: http://www.armentel.com/avb
E-Mail: am86@yahoo.com
0
KIO
12.08.2007, 01:21
mojet, 1C ispolzuet SubForm na meste, gde vstavleno dve stroki? (a v SubForm-e i est dve TextBox-a)
VladK
12.08.2007, 08:32
Армен,

Насколько я понял, вопрос был про создание нескольких строк на запись, а не на ячейку.

Подобное вашему манипулирование с символами перевода строки и каретки я проделывал, но в обратном направлении, когда Оракловские записи писал в Excel. А вот как поместить в гриде в четных строках скажем первые 6 полей и в нечетных - последние 6. По-видимому, вопрос про это.

Спасибо

Влад
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
12.08.2007, 09:15
Влад,
в вашем случае, по-моему, нужно использовать код, т.к. прямое подключение с помощью DataSource не пойдет. Код будет определять первые 6 полей и четность строки, а затем будет переходить на следующую строку грида (нечетную) и писать остальные 6 полей.

Armen Mnatsakanyan
Certified Professional Master
Visual Basic Programmer
Project Manager of 'Alphabetic of Visual Basic' [russian]
URL: http://www.armentel.com/avb
E-Mail: am86@yahoo.com
0
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
12.08.2007, 09:37  [ТС]
Армен, Влад я имел ввиду следующее: В строке грида, соответствующей одной записи, не один ряд ячеек одинаковой ширины, а в два этажа ячеек причем разной ширины.(пример (слева направо): Одна большая с две размером в высоту, потом одна широкая вверху, а под ней две мелкие внизу и все это данные одной записи.)
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
12.08.2007, 10:23
Понятно......Для достижения этого необходимо предварительно отформатировать грид, чтобы он имел тот вид, какой тебе нужен (как ты описал). Как это сделать можно прочесть в статье 'Использование элемента управления Microsoft FlexGrid' по по адресу http://www.vbstep.ru/articles/db/msflexgrid/index.html

Armen Mnatsakanyan
Certified Professional Master
Visual Basic Programmer
Project Manager of 'Alphabetic of Visual Basic' [russian]
URL: http://www.armentel.com/avb
E-Mail: am86@yahoo.com
0
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
12.08.2007, 13:38  [ТС]
Ребята, я очень плохо объясняю что мне нужно. Поэтому я нарисовал - http://www.vologda.edu.ru/stud.htm
там пример таблицы, посмотрите пожалуйста, задача не так проста как кажется.
Спасибо.
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 110
13.08.2007, 09:04
Если все строки грида будут одного вида, то я думаю тебе лучше всего воспользоваться DataRepeater`ом, насколько я помню, для этого необходимо создать свой OCX, который будет иметь вид одной строки грида, а затем прикрепить его к DataRepeater`у.
0
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
13.08.2007, 11:30  [ТС]
Мужики, а попроще ничего нет? Или посложнее. Страшно что-то датарепитер использовать, да и громоздко. Но за совет спасибо, решение есть, хотя и пугающеее.
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
13.08.2007, 15:30
Привет, Отпать....) Это снова я ...
Так на счет форматирования грида...это гораздо проще чем ставить DataRepeater. Смотрел твой рисунок и по нему сделал форматировку грида, все работает, смотри код:

Private Sub Form_Load()
Dim R%, C%

'Форматируем MSFlexGrid 'Шапка'
With MSFlexGrid1
'Определяем начальное количество строк и столбцов
'(с фиксированными строками и столбцами)
.Rows = 4
.Cols = 7
'Определяем фиксированные строки и столбцы
.FixedRows = 2
.FixedCols = 1
'Форматируем фиксированные столбцы
'0 (нулевой) столбец
.ColAlignment(0) = 4
.TextMatrix(0, 0) = ' '
.TextMatrix(1, 0) = ' '
.MergeCol(0) = True
'1 столбец - 'Номер'
.ColAlignment(1) = 4
.TextMatrix(0, 1) = 'Номер'
.TextMatrix(1, 1) = 'Номер'
.MergeCol(1) = True
'2 столбец верхняя строка
.ColAlignment(2) = 3
.ColAlignment(3) = 3
.ColAlignment(4) = 3
.TextMatrix(0, 2) = 'Шифр'
.TextMatrix(0, 3) = 'Шифр'
.TextMatrix(0, 4) = 'Шифр'
.MergeRow(0) = True
'2 столбец нижние строки
.TextMatrix(1, 2) = 'Цена 1'
.TextMatrix(1, 3) = 'Цена 2'
.TextMatrix(1, 4) = 'Цена 3'
'3 столбец вверху
.ColAlignment(5) = 3
.TextMatrix(0, 5) = 'Литера'
'4 столбец вверху
.ColAlignment(6) = 3
.TextMatrix(0, 6) = 'Под имя'
'3 и 4 столбец (объединенный) внизу
.TextMatrix(1, 5) = 'Артикул'
.TextMatrix(1, 6) = 'Артикул'
.MergeRow(1) = True
.MergeCells = flexMergeFree
End With

'К примеру имеется таблица и из нее надо извлекать данные.
'Напрямую подключиться не получится, т.к. необходимо соблюдать формат
'Подключаемся с помощью объекта DAO .
'Поля в таблице (к примеру) следующие
'F1 - ID
'F2 - номер
'F3 - шифр
'F4 - цена 1
'F5 - цена 2
'F6 - цена 3
'F7 - литера
'F8 - под имя
'F9 - артикул
'Теперь будем записывать данные в специально
'отформатированную таблицу
'Тело таблицы'
'Приводится отрывок! Просто так работать не будет!
R% = 2
Do While Not rs.EOF

C% = 0

With MSFlexGrid1

'0 столбец
'------------------------------------------------------
.TextMatrix(R%, C%) = rs(F1)
.TextMatrix(R% + 1, C%) = rs(F1)
C% = C% + 1

'1 столбец
'------------------------------------------------------
.TextMatrix(R%, C%) = rs(F2)
.TextMatrix(R% + 1, C%) = rs(F2)
C% = C% + 1

'2 - 4 столбцы (верхние и нижние)
'------------------------------------------------------
.TextMatrix(R%, C%) = rs(F3)
.TextMatrix(R% + 1, C%) = rs(F4)
C% = C% + 1
.TextMatrix(R%, C%) = rs(F3)
.TextMatrix(R% + 1, C%) = rs(F5)
C% = C% + 1
.TextMatrix(R%, C%) = rs(F3)
.TextMatrix(R% + 1, C%) = rs(F6)
.MergeRow(R%) = True
.MergeCells = flexMergeFree
C% = C% + 1

'5 - 6 столбцы (верхние и нижние)
'------------------------------------------------------
.TextMatrix(R%, C%) = rs(F7)
.TextMatrix(R% + 1, C%) = rs(F9)
C% = C% + 1
.TextMatrix(R%, C%) = rs(F8)
.TextMatrix(R% + 1, C%) = rs(F9)
.MergeRow(R% + 1) = True
.MergeCells = flexMergeFree

R% = R% + 1

'Добавляем строки в MSFlexGrid
.Rows = .Rows + 2

End With

rs.MoveNext

Loop

End Sub
0
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
14.08.2007, 09:40  [ТС]
Спасибо Армен. Это удачный выход из сложившейся ситуации. В 1С не так конечно сделано, да это и не важно, у них свой какой-то элемент написан наверно.
Все работает.Еще раз спасибо. В пень всю 1С
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
14.08.2007, 10:19
Рад, что смог вам чем то помоч

Armen Mnatsakanyan
Certified Professional Master
Visual Basic Programmer
Project Manager of 'Alphabetic of Visual Basic' [russian]
URL: http://www.armentel.com/avb
E-Mail: am86@yahoo.com
0
YURA
12.09.2007, 06:01
Sheridan DataGrid/Combo/DropDown 3.1
Он правда глючит, а в ADO с ним вообще работать не возможно, но то что в 1С - делает вполне тривиально
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
12.09.2007, 11:16  [ТС]
Юрий, а где Шеридановские компоненты взять, я про них знал но достать не мог поэтому забил. Везде денег просят за них
Спасибо за информацию заранее.
0
YURA
12.09.2007, 11:25
Кинь письмецо - поможем
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 46
12.09.2007, 11:36  [ТС]
мои ящики это:
aleksei_brevnov@mail.ru
aleksei_brevnov@vologda.edu.ru
мыльте на любой
0
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 110
12.09.2007, 11:44
И мне тоже )
subsmail@rambler.ru
subsmail@yandex.ru
0
YURA
12.09.2007, 12:18
Всем желающим обращаться на
www.shersoft.com
(Особо озабоченные могут взглянуть на ESIGNAL.NSK.SU, если после этого будут вопросы, то медведь со мной...)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.09.2007, 12:18
Помогаю со студенческими работами здесь

Нужно чтобы загруженных файл можно было добавить несколько и редактировать их название
Поле для редактирования файла есть но он работает и добавит ещё файл тоже не могу идет сброс <?PHP if ($_POST) { ...

Нужно чтобы после завершения одной процедуры можно было выполнить другую не выходя из программы
Не получается ввести данные больше чем одного нападающего, нужно чтобы после завершения одной процедуры можно было выполнить другую не...

Как создать папку и обеспечить, чтобы можно было запускать эти программы, но нельзя было бы их скопировать, переместить, удалить
Подскажите, как создать папку и обеспечить, чтобы можно было запускать эти программы, но нельзя было бы их скопировать, переместить,...

Как привязать несколько записей из одной таблица к одной записи в другой таблице
Всем привет! Решил делать курсовой в 1С предприятие (идиот). Суть такая: у меня есть две таблицы студенты и их достижения. Как сделать так,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru