0738,arm请进,使用您的F1Book的预览是遇到了问题。(100分)

  • 主题发起人 主题发起人 lan2001
  • 开始时间 开始时间
L

lan2001

Unregistered / Unconfirmed
GUEST, unregistred user!
我的打印机是: Epson LQ-1600K
用Demo测试:
按打印设置时,打印机不存在。
但是在show出来的form的打印机列表框中显示:Epson LQ-1600K on LPT1:
于是我把原来的代码改为:
PrinterStr := dcomPrinter.Text;
//删除打印机名称中不必要的部分 on LPT1
System.Delete(PrinterStr,Pos(' on ',PrinterStr),Length(PrinterStr));
if not OpenPrinterA(PChar(PrinterStr),FPrintHandle,@Default) then
begin
ShowMessage('打印机不存在');
Exit;
这样可以找到打印机,但是对纸张的设置始终不起作用!请问什么原因?
另外,在程序中您同时使用了SetPrinterA和TPrint.SetPrinter,他们有什么不同吗?
 
我建议不要用F1Book的预览,因为我感觉它的预览功能不是很好,把报表存成EXCEL不就省力多了,如下:
procedure TCheckReportFrm.Button3Click(Sender: TObject);
var SourceFile,TargerFile:string;//SourceFile为报表摸版文件的路径
sintFileType:smallint;
SourceFileStream,TargerFileStream:TFileStream;
begin
if SaveExcelDialog.Execute then
TargerFile:= SaveExcelDialog.FileName
else
exit;
SourceFile:=strReadFileName;
SourceFileStream:=TFileStream.Create(SourceFile,fmOpenRead );
//源文件关联到报表摸版上
TargerFileStream:=TFileStream.Create(TargerFile,fmCreate OR fmShareDenyNone);
try
TargerFileStream.seek(0,soFrombegin
ning);
TargerFileStream.CopyFrom(SourceFileStream,0);
//建立与模板相同的xsl文件
finally
SourceFileStream.Free;
TargerFileStream.Free;
sintFileType:=11;//Write类型为EXCEL的
F1Book61.Write(TargerFile,sintFileType);//数据写入目标文件
end;
end;
这样很多事就交给EXCEL处理了。
 
当然这是懒人加菜鸟的方法,不一定适合你。^-^
 
0738,arm:您的F1BookReport在win2000下是对的,但在win98下,我用时发现上述问题。
另外,关于分页和打印范围,我在F1Book中已经选择好打印范围并且也设好了分页符(AddRowBreek),
请问您的打印预览能否按我的选择和设置分页来打印。
 
lan2001, 你好:
我在F1book基础上开发了一个新控件,此控件完全继承了F1book的所有功能,并且容进了一种斩新的报表开发思想
具体说明和开发思路可以看demo.预览功能,对象自动实现.
你可以在http://www.xinyuanpvc.com/zhangxzh.htm 下载Demo
你说的调整列宽可以在右键菜单上实现,并且将调整后的数据可以单击"保存调整",以方便下次打开时设置.
现在我已经做好控件安装程序,如有意请和我联系!
 
多人接受答案了。
 
1、我在VB中运行下列语句
F1Book1.Draw Form1.hDC, 1, 1, 6000, 6000, 1, 1, 40, 40, 0, 0, 0, 0
系统提示“实时错误‘13’,类型不匹配。
不知错在哪里,望各位大侠指正。
2、能详细的介绍一下F1BOOK1控件draw方法各参数代表的中文意思吗?(最好有例子)。
F1Book1.Draw hDC, X, Y, cX, cY, nRow, nCol, pRows, pCols, nFixedRow, nFixedCol, nFixedRows, nFixedCols
 
后退
顶部