第一次使用FastReport !请多多指教!紧急!(怎样在打印预览窗体中增加一个自定义按钮) (100分)

  • 主题发起人 主题发起人 kk2000
  • 开始时间 开始时间
K

kk2000

Unregistered / Unconfirmed
GUEST, unregistred user!
fr.PrepareReport;
fr.ExportTo(frex,'E:/报表/mydata.xls');
导成 EXCEL 之后,打开就不按照EXCEL的列
对齐!
比如显示如下结果:
A B C D E F H.....
字段1 字段2 字段3
1 2 3
4 5 6
但应该得到结果如下才对:
A B C D E F H.....
字段1 字段2 字段3
1 2 3
4 5 6
FastReport 2.5 版本.有什么办法解决 ??
 
wo 记得有对excel中column控制的方法,很久没有用fastreport了
 
需要分别赋值的
 
定义TADODataset控件,定义TExcelApplication控件
//定义报表名称
for j:= 1 to intColdo
Datas[1,j] := Trim(DmMain.dst_Excel.Fields[j-1].FieldName);
//报表每行分别赋值
DmMain.dst_Excel.First;
for i:= 2 to intRowdo
begin
for j:= 1 to intColdo
Datas[i,j] := Trim(DmMain.dst_Excel.Fields[j-1].AsString);
DmMain.dst_Excel.Next;
end;
 
這個問題是frreport 的問題,
你如果把報表的錯位的memo中的數據居左應該就可以了
因為他是產生csv文件也就是','分割,所以如果您的memo中如果有,同樣也會有問題
 
TO:yanghx_yhx
fr.PrepareReport;
fr.ExportTo(frex,'E:/报表/mydata.xls');
楼上的怎么能联系上 FastReport(就是上面这两句) 呢? 哎!我好笨。
解析清楚一点,毕竟是刚用这个东西!很急解决这个问题啊!
 
他說和fr無關
的delphi的空件
 
传呼机: 谢谢!
我按你的说法去做,问题还没有解决。
你遇到过这样的问题吗?到底怎么解决?
 
轉成html吧.
 
最近用過一段時間fastreport
發現是有些古怪,
不過我個人認為是否需要固定一下fastreport 的colums ...等設定..
我沒有試過, 也是隨便說說...
 
http://delphibbs.com/delphibbs/dispq.asp?lid=1691966
看看里面的说明,直接从ADO的数据集中批量导出到EXCEL好了
 
TO: app2001
其实你说的方法是可行的!只是由于项目为了兼容
以前写的类。所以不考虑这样做!我查了以前的贴
。好像是没有解决的办法。看来也得另找解决的方法!
 
各位:不好意思!由于上面的问题基本上是解决不了!
所以以下面题目来做吧!:)
怎样在打印预览窗体中增加一个自定义按钮??
得到答案就结贴!
 
/demos/reports,的那个Project就有自己做预览窗口的例子,你可以自己看看就知道了。
 
TO: app2001 老大
这样做的话,我就惨了!也真是的我的上司要求就是不一样!
他要在TfrReport预览上面放一个按钮,你说行吗?我好晕啊!
 
那没有办法,我只会这样
 
怎么不能放?大不了改控件的原代码,加一个按钮贝!
 
TO:vmao
我正在看它的源码! 知道它里面有个属性(PreviewButtons)!
这个属性又是一个集合类型! 但我还没有找到实现这些按钮的
事件代码!如果你做过的话。不如给点代码提示,或者说是继承
那个东东都可以,由于紧急使用。如果都要自己去看完之后再做的
话,那就要化一段时间了!提供点吧。谢谢!
 
FR_View單元的frPreviewForm類裡。有按鈕的代碼。
那個previewbuttons屬性是frreport控件來控制預覽的時候要顯示什麼按鈕用的。
何止加一個呀。我就加了五六個。參考那個DEMO。
 
TO: lichdr
我想在 FR_View 这个单元里面修改它的原代码,怎样才
能编译让它生效!是这个东东吧
procedure TfrPreviewForm.SaveBtnClick(Sender: TObject);
var
i, n: Integer;
s: String;
begin
if EMFPages = nil then
Exit;
s := frLoadStr(SRepFile) + ' (*.frp)|*.frp';
for i := 0 to frFiltersCount - 1do
s := s + '|' + frFilters.FilterDesc + '|' + frFilters.FilterExt;
n := 1;
for i := 0 to frFiltersCount - 1do
if frFilters.Filter.Default then
begin
n := i + 2;
break;
end;
with SaveDialogdo
begin
Filter := s;
FilterIndex := n;
if Execute then
if FilterIndex = 1 then
SaveToFile(FileName)
else
begin
ConnectBack;
TfrReport(Doc).ExportTo(frFilters[FilterIndex - 2].Filter,
ChangeFileExt(FileName, Copy(frFilters[FilterIndex - 2].FilterExt, 2, 255)));
Connect(Doc);
RedrawAll(False);
end;
end;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部