Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Грид для ввода данных / 19 сообщений из 19, страница 1 из 1
28.07.2004, 15:49:35
    #32625620
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
У какой грид можна вводить данные с клавиатуры, но что бы он не требовал присоединенного источника данных (не через рекордсет а прямо в грид)?
Спасибо.
...
Рейтинг: 0 / 0
28.07.2004, 16:25:20
    #32625730
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
если скажешь зачем такое нужно, может посоветуем чего-нить еще...
...
Рейтинг: 0 / 0
28.07.2004, 16:31:52
    #32625749
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
raurесли скажешь зачем такое нужно, может посоветуем чего-нить еще...

Так ниче ж еще не посоветовали....
...
Рейтинг: 0 / 0
28.07.2004, 16:35:45
    #32625762
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
любая задача может решаться по разному....
зачем тебе такой грид?...
...
Рейтинг: 0 / 0
28.07.2004, 16:40:03
    #32625776
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
В обычный Data Bound Grid(DB Grid) можно. Только в свойствах установить Unbound.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 17:06:18
    #32625857
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
vsFlexGrid7 - то что нужно
...
Рейтинг: 0 / 0
28.07.2004, 17:41:15
    #32625966
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
marvanvsFlexGrid7 - то что нужно
А где его взять? У меня только 6, но вводить с данные клавиатури туда нельзя
...
Рейтинг: 0 / 0
28.07.2004, 18:25:30
    #32626049
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Magnus23В обычный Data Bound Grid(DB Grid) можно. Только в свойствах установить Unbound.

Magnus

Как у этот DB Grid динамично строки и колонки добавлять?
...
Рейтинг: 0 / 0
28.07.2004, 18:45:58
    #32626074
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Command1_Click()
  Dim iold As Integer, inew As Integer
  Dim i As Integer
   
   inew =  0 
   
   For i =  0  To  4 
      DBGrid1.Columns.Add inew
      DBGrid1.Columns(inew).Caption = "Col " & inew
      DBGrid1.Columns(inew).Visible = True
      inew = inew +  1 
   Next
End Sub

А строки добавляются сами при вводе в нижнюю, которая сразу пуста.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 19:19:11
    #32626112
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Magnus23
А строки добавляются сами при вводе в нижнюю, которая сразу пуста.

Magnus

Пишу в строке со звездочкой, при этом появляется новая, но перейти на нее нельзя.
...
Рейтинг: 0 / 0
28.07.2004, 19:53:50
    #32626151
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Совсем без рекордсета здесь не получится. Данные-то можно вводить прямо в гриде, но для их хранения все равно нужен рекордсет. Вполне подойдет отсоедененный.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 20:06:38
    #32626158
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Magnus23Совсем без рекордсета здесь не получится.
Magnus

Совсем без рекордсета мне совсем не подходит. Может есть какой-то грид который может работать без рекордсета?
...
Рейтинг: 0 / 0
28.07.2004, 20:15:35
    #32626161
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Вероятно только третьих фирм. Данные-то ему нужно где то хранить?
В любом случае, даже если такой есть, у него будет встреоный рекордсет.
Так можно и свой ActiveX написать : грид + рекордсет в одном флаконе.

А чем так пугает наличие отсоедененного рекордсета?
Как будешь обращатся к данным? Через ячейки грида? А поиск? Сортировка?

Сохранять данные как? Читать в цикле каждую клетку и писать в файл?

Тебя ж ведь с самого начала пытают: зачем? :)


Magnus
...
Рейтинг: 0 / 0
28.07.2004, 22:17:17
    #32626229
Shovgenyuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Есть класс "Пациент" в нем коллекция "Обращения в больницу".
Клас работает с БД (записывает, извлекает, обновляет и т. д.).
Хочу создать форму для работы с класом "Пациент". У грид хочу записывать "Обращения в больницу", потом считывать с него строки в коллекцию, затем пишу, например Пациент.AddNew и всей работой с БД занимается класс. Рекордсет (отсоединенный) для хранения данных не подходит хотя бы потому что у гриде должны быть такие данные что у БД хранятся не в одной таблице (например болезнь, у гриде набо писать название словами, а у табл. БД записывается код из справочника). Если сделать рекордсет, он не обновляемый, соответственно для грида не подходит, разве что делать у БД специальную табл. для того чтобы только из нее рекордсет обновляемый открить, но этот метод мне совсем не нравится.

Приведенные примеры упрощенные, но суть проблемы они открывают. На самом деле есть класс (много классов) в нем несколько коллекций, а вних еще коллекции и т. д. В приложении будет много форм которые должни работать с разными объектами из этого класса, к тому же ети формы пишут разные люди, поэтому и написал работу с БД в классе чтобы все било в одном месте и едино для всех форм.
...
Рейтинг: 0 / 0
29.07.2004, 00:34:27
    #32626280
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Смысл примерно ясен.
НО!
1.Почему коллекции? Есть мнение что построчное считывание в коллекцию при достаточных обьемах будет нехило тормозить. К слову сказать, сами коллекции в VB штука довольно тормозная и ограниченная в возможностях. Для полной реализации ты будешь в своем классе повторять часть функционала рекордсета. ИМХО.
2.Обновление данных в базе?
Юзер редактирует поле, данные идут в коллекцию класса, поля в котором вероятно реализованы свойствами, а оттуда построчно в базу.


Предлагаю вариант.
Есть одна интересная штука в классах, их тоже можно ставить источнниками данных(там свойствах нужно установить DataSource).
В классе создать рекордсет, отсоедененный. Он будет иметь связь с гридом(через внешний класс) и с коллекциями, по средством реакции на события рекордсета. По событиям разбрасывать данные в коллекции.


Вопрос. Из описания я так и не понял, почему нельзя использовать рекордсет?
Различие в записях не аргумент, в гриде можно показывать одну колонку а в коде и для связей использовать другую(код), ассоциированую с первой.

Что значит рекордсет не обновляемый? С какого перепугу? :)
Были у меня подобные проэкты. Для каждой формы было 2-3 класса в поддержку сущности данной формы, в классах сделаны свойства как метод доступа к полям рекордсета. Этот редордсет хранил основной(базовый) набор данных для дальнейшей работы с формой. Что и кака показывать пользователю решалось case by case. Рекордсет можно и склонировать при необходимости и далее обрабатывать изменения, перенося из в основной.
Схема обновления данных будет та же, т.к. в любом случае АДО делает его построчно.
Но рекордсет уже имеет необходимый функционал, остается только его грамотно использовать и контролировать.

Magnus
...
Рейтинг: 0 / 0
03.06.2005, 14:10:04
    #33099766
gav
gav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Magnus23
Совсем без рекордсета здесь не получится. Данные-то можно вводить прямо в гриде, но для их хранения все равно нужен рекордсет. Вполне подойдет отсоедененный.


Просветите пожалуста насчет 'отсоединенный рекордсет'
Я правильно понимаю, что это рекордсет, предусматривающий наличие соединения со сторонним файлом, .mdb например?

Или он вообще ни с чем не соединен :) ?

Надеюсь на ответ. Спасибо.
...
Рейтинг: 0 / 0
03.06.2005, 15:09:07
    #33099994
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim rs as ADODB.Recordset

Set rs=New ADODB.Recordset
rs.CursorLocation=adUseClient
rs.Fields.Append "Field1", adVarChar,  30 , adFldIsNullable
rs.Fields.Append "Field2", adInteger, , adFldIsNullable
rs.Open

Set DataGrid1.DataSource=rs


и тд и тп
...
Рейтинг: 0 / 0
08.06.2005, 09:18:13
    #33106360
Грид для ввода данных
Не понял, с каких это пор в шестой всФлексГрид нельзя вводить данные с клавиатуры?!!!
...
Рейтинг: 0 / 0
08.06.2005, 12:26:05
    #33106922
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грид для ввода данных
Соглашусь с Магнусом. В качестве интерфейса класса над использовать рекордсет.
Механизм коллекций в шестерке очень бедный и на нем далеко не уедешь.
Модель ADO, по-моему, - лучшая основа для построения своих классов.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Грид для ввода данных / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]