K
kxboy
Unregistered / Unconfirmed
GUEST, unregistred user!
在win2000p下,打印图像时(图像一般为1-4幅,每幅图像为1-2M),经常第一幅图像打印不出来(空白),但是其它的文字和图像完全正确.
预览正常.
打印机:hp1005黑白激光打印机
开发环境:win2000p,d7,RBuilder
这个问题已经把我搞崩溃了,望哪位好心人帮帮我
打印预览和打印的程序如下:(每次打印一页)
procedure TPrintForm.PacsPreview(const InspectID: Integer = 0); //预览
begin
if InspectID > 0 then
FInspectID := InspectID;
with qTmpdo
begin
//取病例信息
SQL.Text := 'select * from 病例视图 where 检查序号=:0';
Params[0].Value := FInspectID;
try
Open;
except
on E: Exceptiondo
begin
ShowError('病人检查信息查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
if IsEmpty then
begin
ShowMessage('请先选择病人');
Exit;
end;
FInspectNo := FieldByName('检查编号').AsInteger;
FInspectType := FieldByName('检查类别编号').AsString;
SQL.Text := 'select count(序号) from 病例图像表 where 检查序号=:0 and 是否打印=''是''';
Params[0].Value := FInspectID;
try
Open;
//取病例图像表
except
on E: Exceptiondo
begin
ShowError('病例图像查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
FImageCount := Fields[0].AsInteger;
if FImageCount > 5 then
FImageCount := 5;
//大于等于5个图像的用打印5个图像的报表打印
SQL.Clear;
SQL.Add('select b.名称 from 检查类别表 a,');
SQL.Add(' 报表项目表 b where a.报表Id=b.Id and a.编号=:0 ');
Params[0].Value := FInspectType;
try
Open;
//取当前检查类别用的报表名称
except
on E: Exceptiondo
begin
ShowError('报表设置查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
if not IsEmpty then
rptReport.ReportName := Fields[0].AsString
else
rptReport.ReportName := '通用报表';
end;
begin
Wait('正在生成报表...');
ppViewer.ZoomSetting := zsPageWidth;
with rptReportdo
try //执行打印
Params[0] := IntToStr(FInspectId);
Params[1] := Params[0];
Preview(ppViewer);
except
on E: Exceptiondo
ShowMessage('预览出错:' + E.Message);
end;
EndWait;
end;
procedure TPrintForm.PrintButtonClick(Sender: TObject);
//打印按钮
begin
rptReport.Print;
end;
预览正常.
打印机:hp1005黑白激光打印机
开发环境:win2000p,d7,RBuilder
这个问题已经把我搞崩溃了,望哪位好心人帮帮我
打印预览和打印的程序如下:(每次打印一页)
procedure TPrintForm.PacsPreview(const InspectID: Integer = 0); //预览
begin
if InspectID > 0 then
FInspectID := InspectID;
with qTmpdo
begin
//取病例信息
SQL.Text := 'select * from 病例视图 where 检查序号=:0';
Params[0].Value := FInspectID;
try
Open;
except
on E: Exceptiondo
begin
ShowError('病人检查信息查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
if IsEmpty then
begin
ShowMessage('请先选择病人');
Exit;
end;
FInspectNo := FieldByName('检查编号').AsInteger;
FInspectType := FieldByName('检查类别编号').AsString;
SQL.Text := 'select count(序号) from 病例图像表 where 检查序号=:0 and 是否打印=''是''';
Params[0].Value := FInspectID;
try
Open;
//取病例图像表
except
on E: Exceptiondo
begin
ShowError('病例图像查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
FImageCount := Fields[0].AsInteger;
if FImageCount > 5 then
FImageCount := 5;
//大于等于5个图像的用打印5个图像的报表打印
SQL.Clear;
SQL.Add('select b.名称 from 检查类别表 a,');
SQL.Add(' 报表项目表 b where a.报表Id=b.Id and a.编号=:0 ');
Params[0].Value := FInspectType;
try
Open;
//取当前检查类别用的报表名称
except
on E: Exceptiondo
begin
ShowError('报表设置查询失败,请与维护员联系。错误:' + E.Message);
Exit;
end;
end;
if not IsEmpty then
rptReport.ReportName := Fields[0].AsString
else
rptReport.ReportName := '通用报表';
end;
begin
Wait('正在生成报表...');
ppViewer.ZoomSetting := zsPageWidth;
with rptReportdo
try //执行打印
Params[0] := IntToStr(FInspectId);
Params[1] := Params[0];
Preview(ppViewer);
except
on E: Exceptiondo
ShowMessage('预览出错:' + E.Message);
end;
EndWait;
end;
procedure TPrintForm.PrintButtonClick(Sender: TObject);
//打印按钮
begin
rptReport.Print;
end;