Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизКак в FastReport 3 отобразить содержимое StringGrid? Найти похожие ветки
← →
fedor (2004-08-11 16:18) [0]Использовать TfrUserDataSet? Но как?
← →
fedor (2004-08-11 16:21) [1]Т.е. frxUserDataSet1
← →
Silver Alex © (2004-08-11 17:05) [2]не знаю как в третем, но вообще есть у TfrUserDataSet события OnCheckEOF , здесь ты назначаешь переменной EOF значение, True конец набора данных и False соответственно наоборот.А также события OnFirst первая запись и OnNext переход на следующую запись, здесь уже подставляешь непосредственно данные какие тебе надо.
← →
Rule © (2004-08-11 17:54) [3]RTFM
← →
fedor (2004-08-12 07:31) [4]2Silver Alex © (11.08.04 17:05) [2]
А пример можно?
Как именно осуществить привязку StringGrid к frxUserDataSet?
2Rule © (11.08.04 17:54) [3]
В FM нет примера.
← →
fedor (2004-08-12 07:55) [5]Разобрался, сорри...
← →
fedor (2004-08-12 08:24) [6]Правда, StringGrid не отображается, если есть ячейки строковые -
ошибка: could not convert variant of type(string) into type (double).
При трассировке обнаруживается, что нет модуля - frxCrossMatrix.pas.
В чем же дело?
Использую TfrxCrossView:
for i := 1 to StringGrid1.ColCount do
for j := 1 to StringGrid1.RowCount do
Cross.AddValue([j], [i], [StringGrid1.Cells[i - 1, j - 1]]);
Если в StringGrid1 ячейки только числовые (real,integer,...), то все ОК.
Кто-нибудь знает, как отобразить StringGrid1, если ячейки могут быть строковыми?
← →
Silver Alex © (2004-08-12 09:17) [7]есть у TfrReport событие OnGetValue, я там подставляю значение переменных.
procedure TfrmRepFuel.frUDamountCheckEOF(Sender: TObject;
var Eof: Boolean);
begin
Eof:=cdsCaption.Eof;
end;
procedure TfrmRepFuel.frUDamountFirst(Sender: TObject);
begin
fAmount:=cdsFuel.FieldByname("amount").AsFloat
cdsCaption.next;
end;
procedure TfrmRepFuel.frUDamountNext(Sender: TObject);
begin
if ... then
fAmount:=cdsFuel.FieldByname("amount").AsFloat
else
fAmount:=0;
cdsCaption.next;
end;
procedure TfrmRepFuel.frReportGetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName="amount" then
ParValue:=fAmount;
end;
← →
fedor (2004-08-12 09:36) [8]2Silver Alex © (12.08.04 09:17) [7]
Я так понимаю frUDamount - это frUserDataSet,
а что такое cdsCaption?
← →
Rule © (2004-08-12 09:45) [9]fedor (12.08.04 8:24) [6]
Чтобы в строковых не возникало ошибок, тебе в отчете там куда ты засовываешь значения надо указать явно тип данных, в твоем случае строковый вот и все
← →
Silver Alex © (2004-08-12 10:04) [10]<<fedor (12.08.04 09:36) [8]
это датасет,но это не важно это просто пример.Смысл в следующем, на OnNext ты задаешь значение переменным, например
procedure TfrmMain.frUDNext(Sender: TObject);
begin
fCol1:=StringGrid.Cells[1,i];
fCol2:=StringGrid.Cells[2,i];
fCol3:=StringGrid.Cells[2,i];
inc(i);
end;
затем задаешь значение переменным самого репорта, вначале их конечно надо определить в FastReport(Файл-> Словарь данных->Переменные).И в мемо полях подставить эти переменные.
procedure TfrmRepFuel.frReportGetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName="column1" then
ParValue:=fCol1;
if ParName="column2" then
ParValue:=fCol2;
if ParName="column3" then
ParValue:=fCol3;
end;
и определить конец набора данных
procedure TfrmRepFuel.frUDCheckEOF(Sender: TObject;
var Eof: Boolean);
begin
Eof:= I>StringGrid.ColCount;
end;
← →
fedor (2004-08-12 11:18) [11]2Rule © (12.08.04 09:45) [9]
В самом отчете на MasterData находится CrossView, если на него кликнуть, то появляется окно редактирования, там есть кнопка format: для строковых подходят категории - text(no formatting и custom), но ничего не меняется. Ошибка та же.
Может что не так делаю? Подскажи, если знаешь.
И еще вопрос:
Программно как поменять тип ячеек CrossView?
2Silver Alex © (12.08.04 10:04) [10]
Все получилось, спасибо.
Но печать StringGrid через CrossView удобнее, конечно, т.к. отображается в виде таблицы, и если столбцы не умещаются на одном листе, то переносятся. В предложенном тобой варианте нужно указывать конкретные Memo-поля, а чтоб все получилось в виде таблицы, нужно подгонять расположение Memo-полей и обрамлять их рамкой, что неудобно.
← →
fedor (2004-08-12 15:09) [12]Однако, еще вопрос:
Как в FastReport 3(beta) убрать сообщение - "Unregistered version of FasReport"?
← →
fedor (2004-08-12 15:11) [13]т.е. "Unregistered version of FastScript"
оно появляется при открытии отчета
← →
Iconka © (2004-08-12 15:23) [14]
> Как в FastReport 3(beta) убрать сообщение
Может зарегестрировать надо?
← →
Iconka © (2004-08-12 15:30) [15]А вообещто это же тестовая бета, ее нельзя юзать. Только тестить :)
← →
fedor (2004-08-12 15:40) [16]нн..да..
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c