Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак можно считать значение не текущей ячейки таблицы? Найти похожие ветки
← →
dmitry1208197320 © (2010-02-09 20:28) [0]Как можно считать значение не текущей ячейки таблицы, например, ячейки (1:1) - первая ячейка первого столбца.
← →
Плохиш © (2010-02-09 22:51) [1]В таблице, в терминах данной конференции, ячеек нет.
← →
Anatoly Podgoretsky © (2010-02-10 00:11) [2]И главное, не только нет, но и не предвидится.
← →
dmitry1208197320 © (2010-02-15 15:07) [3]Я имел ввиду под ячейкой конкретную запись, может всё-таки поможете?
← →
Sergey13 © (2010-02-15 15:13) [4]> [3] dmitry1208197320 © (15.02.10 15:07)
> может всё-таки поможете?
Как же тебе помочь, если ты за неделю!!! не удосужился F1 нажать и почитать что там написано?
← →
dmitry1208197320 © (2010-02-15 15:27) [5]Я читал, но ненашёл нужного ответа
← →
Ega23 © (2010-02-15 15:38) [6]В "таблице" нет понятия "ячейка". А также очень спорным является термин "текущая запись". Всё зависит от того, какое понятие ты вкладываешь в термин "таблица".
← →
Дмитрий Белькевич (2010-02-15 15:45) [7]Начни с терминов - объясни, что такое в твоём понимании таблица, дальше может что-то подскажут.
← →
dmitry1208197320 © (2010-02-15 16:07) [8]В данном понимании таблица - это файл типа *.dbf, открытый и отображаемый с помощью компонентов TDBGrid, TDataSource и TTable.
А под ячейкой таблицы я понимаю какую-то конкретную запись, например, ячейка (1:1) - первая запись первого столбца.
← →
Mike Kouzmine (2010-02-15 16:12) [9]перейди на конкретную запись и прочитай значение первого поля
← →
Сергей М. © (2010-02-15 16:12) [10]
> dmitry1208197320 © (15.02.10 16:07) [8]
Table.First; // <-- встал на первую запись в НД
Table.Fields[0].Value; // <-- обратился к первому полю записи
Грабли лови сам)
← →
dmitry1208197320 © (2010-02-15 16:20) [11]Спасибо, но я думал, что можно считать запись, не переходя к ней, это возможно?
← →
Сергей М. © (2010-02-15 16:23) [12]Невозможно.
← →
Ega23 © (2010-02-15 16:23) [13]
> В данном понимании таблица - это файл типа *.dbf, открытый
> и отображаемый с помощью компонентов TDBGrid, TDataSource
> и TTable.
> А под ячейкой таблицы я понимаю какую-то конкретную запись,
> например, ячейка (1:1) - первая запись первого столбца.
>
Ну это уже более конкретная информация.
Значит так.
1. В DBGrid нет никаких данных. DBGrid отображает видимую в данный момент область значений набора данных.
2. Все данные лежат в наборе данных (в твоём случае - TTable)
3. У TTable есть понятие "активная запись" - для упрощения - "строка таблицы".
4. Все данные у стандартных TDataSet (потомком которого является TTable) оперируют понятием "активной записи".
5. Поэтому, если просуммировать всё вышеперечисленное, тебе нужно:
5.1. Запомнить текущую позицию TTable
5.2. Встать на нужную тебе запись (в твоём случае - первую).
5.3. Считать нужное тебе значение поля (в твоём случае - первого)
5.4. Вернуть текущую запись туда "где було".
6. Поскольку DBGrid при этом будет перерисован, как будто его прокрутили сначала вперёд, потом назад, надо отключить рассылку событий TTable визуальным компонентам, а потом включить её обратно.
7. В итоге код будет выглядеть так:var
bm : TBookmark;
begin
if (not Table1.Active) or (Table1.IsEmpty) then Exit;
Table1.DisableControls;
try
bm := Table1.GetBookmark;
Table1.First;
ShowMessage(Table1.Fields[0].AsString);
Table1.GotoBookmark(bm);
Table1.FreeBookmark(bm);
finally
Table1.EnableControls;
end;
end;
P.S. Код писал прямо тут по-памяти, возможны не те названия методов (FreeBookmark или releaseBookmark).
← →
Ega23 © (2010-02-15 16:25) [14]
> Сергей М. © (15.02.10 16:23) [12]
> Невозможно.
Вообще-то возможно. Но это надо хорошо разбираться, что такое TDataLink и как им пользоваться.
← →
Mike Kouzmine (2010-02-15 16:48) [15]можно положить еще один табле с аналогичными настройками и прыгать по нему куда угодно и читать
← →
Ega23 © (2010-02-15 17:17) [16]
> можно положить еще один табле с аналогичными настройками
> и прыгать по нему куда угодно и читать
Можно. Но там надо крайне аккуратно, дабы в монопольный доступ таблицу в БД не заблокировать, ибо TTable в этом плане компонент несколько дурной и чудоватый.
← →
Mike Kouzmine (2010-02-15 17:52) [17]Ega23 © (15.02.10 17:17) [16] Указать ро и читать. В конце концов - открыл - прочитал - закрыл. Чтобы наверняка.
← →
Ega23 © (2010-02-15 18:01) [18]
> Ega23 © (15.02.10 17:17) [16] Указать ро и читать. В конце
> концов - открыл - прочитал - закрыл. Чтобы наверняка.
Я первый экземпляр TTable имел ввиду. Да и синхронизовывать закрытие-открытие тоже нуна...
← →
Плохиш © (2010-02-15 19:07) [19]
> dmitry1208197320 © (15.02.10 16:20) [11]
>
>
Ты б задачу рассказал...
> Ega23 © (15.02.10 16:25) [14]
> Вообще-то возможно. Но это надо хорошо разбираться, что
> такое TDataLink и как им пользоваться.
В TDataLink содержит только часть записей из таблицы.
← →
Leonid Troyanovsky © (2010-02-15 20:27) [20]
> dmitry1208197320 © (15.02.10 16:20) [11]
> Спасибо, но я думал, что можно считать запись, не переходя
> к ней, это возможно?
Lookup ?
--
Regards, LVT.
← →
sniknik © (2010-02-15 20:50) [21]> Lookup ?
по позиции?
← →
Ega23 © (2010-02-16 10:20) [22]
> В TDataLink содержит только часть записей из таблицы.
В TDataLink содержится ровно то, что ты хочешь. В GridDataLink - да, видимая на экране часть строк. Но никто не мешает свой написать, в котором всё содержаться будет.
← →
Плохиш © (2010-02-16 14:26) [23]
> Ega23 © (16.02.10 10:20) [22]
>
>
> > В TDataLink содержит только часть записей из таблицы.
>
>
> В TDataLink содержится ровно то, что ты хочешь.
Тут справка с тобой не согласна.
RecordCount (Eigenschaft von TDataLink)
TDataLink Siehe auch
Die Eigenschaft RecordCount gibt die Anzahl der Datensätze im internen Datensatzpuffer an, der von der Datenmenge verwaltet wird.
← →
Ega23 © (2010-02-16 14:27) [24]
> Тут справка с тобой не согласна.
Я по-полску не разумею
← →
Плохиш © (2010-02-16 14:52) [25]Справка TDataLink - RecordCount там читать...
TDataLink содержит столько записей, сколько необходимо связанному с ним визуальному компоненту. А ТGridDataLink является наследником TDataLink.
← →
Ega23 © (2010-02-16 15:01) [26]
> TDataLink содержит столько записей, сколько необходимо связанному
> с ним визуальному компоненту
Ну и? Неужели так трудно придумать компонент, где нужны ВСЕ записи разом?
Даю подсказку: ImageList, TreeView и т.п.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.066 c