![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как отобразить юникодовские символы из базы в отчете FastReports [D7, MSSQL]
kivadim © (2006-12-04 14:01:00)на основе данных из таблиц, в которых есть поля типа nvarchar провожу выборку для отчета, который делаю при помощи компонентов FastReports 2.54. Запрос возвращает данные как надо, т.е. все юникодовсеи символы (а именно румынские) на месте, но в самом отчете они не выводятся, т.е заменяются на стандартные латинские, хотя для каждого поля мемо в отчете поставил шрифт поддерживающий рум. символы.
Вопрос: как заставить FastReports 2.54 отображать корректно данные символы?
пробовал даже вручную в отчете ячейке присваивать значение, не помогло
procedure TfDM.frDBdsReport_1Next(Sender: TObject);
var M_ : TfrMemoView;
begin
M_ := frReport_1.FindObject('M_nume_diviz_rom') as TfrMemoView;
M_.Memo.Text := qWork.FieldByName('nume_diviz_rom').AsVariant;// Value;
end;
Anatoly Podgoretsky (2006-12-04 20:39:00) [1]> kivadim (04.12.2006 17:04:03) [3]
> ну почему же смеюсь.. вот вроде получилось
А это что UTF8Encodeпо твоему, это уже не Юникод, а UTF8
Anatoly Podgoretsky (2006-12-04 20:39:00) [2]> kivadim (04.12.2006 17:46:10) [10]
> поясни как именно преобразуй
S := WS;
alexandr (2006-12-04 17:50:00) [3]да типа UTF8ToAnsi и т.п.
поищи.
потом эту функцию вставишь к фиелду у датасета.
а если вручную и дальше будешь делать, то и еще проще.
kivadim (2006-12-04 17:46:00) [4]>> alexandr © (04.12.06 17:44) [9]
нет нужен только один язык...
поясни как именно преобразуй.. что во что если не сложно, а то недогоняю
примерчик там не помешает ;)
kivadim (2006-12-04 17:44:00) [5]>> Stanislav © (04.12.06 17:38) [7]
это утверждение или вопрос?
и что именно с русским работает нормально?
в fastreporte c русским все лады и хтмл-е все в порядке
alexandr (2006-12-04 17:44:00) [6]у тебя там реально нужен уникод?
что, несколько языков одновременно в одном отчете?
Если нет, то просто преобразуй.
Stanislav (2006-12-04 17:38:00) [7]С русским нормально работает.
kivadim (2006-12-04 17:33:00) [8]> Stanislav (04.12.06 17:24) [5]
поле имеет тип nvarchar
Stanislav (2006-12-04 17:24:00) [9]А в базе поле какого типа?
kivadim (2006-12-04 17:10:00) [10]но все в fastreporte прикольнее было бы...
никто не подскажет где можно скачать (без денег) версию поддерживающую юникод, вроде версии 3 и выше умеют это делать
kivadim (2006-12-04 17:04:00) [11]ну почему же смеюсь.. вот вроде получилось
procedure TfMain.Select_HTML_Report_1;
var
shtml : widestring;
htmlfile : TextFile;
i : integer;
AvailableFields: set of TFieldType;
begin
AvailableFields:=[ftWideString, {ftDate, ftFloat,} ftInteger];
_DM.qWork.Close;
_DM.qWork.SQL.Text := 'здесть текс запроса';
_DM.qWork.Open;
shtml:= '<html> <head> <title>';
shtml:= shtml + '</title></head>' + #13#10;
shtml:= shtml + '<body>' + #13#10;
shtml:= shtml + '<table border="1" width="100%">' + #13#10;
shtml:= shtml + '<tr>' + #13#10;
for i:=0 to _DM.qWork.FieldCount-1 do
begin
if _DM.qWork.Fields[i].DataType
in AvailableFields then
begin
shtml:= shtml + '<td>';
shtml:= shtml + ' ' + _DM.qWork.Fields[i].DisplayName + '';
shtml:= shtml + '</td>' + #13#10;
end;
end;{for}
shtml:= shtml + '</tr>' + #13#10;
while not _DM.qWork.Eof do
begin
shtml:= shtml + '<tr>' + #13#10;
for i:=0 to _DM.qWork.FieldCount-1 do
begin
if _DM.qWork.Fields[i].DataType
in AvailableFields then
begin
shtml:= shtml + '<td>';
if _DM.qWork.Fields[i].DataType = ftWideString then
shtml:= shtml + _DM.qWork.Fields[i].AsVariant// AsString;
else if _DM.qWork.Fields[i].DataType = ftInteger then
shtml:= shtml + _DM.qWork.Fields[i].AsString;
shtml:= shtml + '</td>' + #13#10;
end;
end;{for}
shtml:= shtml + '</tr>' + #13#10;
_DM.qWork.Next;
end;{while}
shtml:= shtml + '</table>' + #13#10;
shtml:= shtml + '</body></html>';
AssignFile(htmlfile, ChangeFileExt(Application.ExeName,'.htm'));
Rewrite(htmlfile);
shtml := UTF8Encode(shtml);
WriteLn(htmlfile, shtml);
CloseFile(htmlfile);
end;
Anatoly Podgoretsky (2006-12-04 16:53:00) [12]> kivadim (04.12.2006 16:02:01) [1]
Юникод в в файл html - смеешься?
kivadim (2006-12-04 16:02:00) [13]короче почитал я инфу и оказывается версия FastReports 2.54 не поддерживает юникод... тогда прийдется ручками клепать отчетик.
кто-нибудь может поделиться кодом сохранения данных (юникод) в файл html например