我们有几个报告使用Gnostice's eDocEngine将单独的表输出到PDF中,如果数据正确地适合单元格,这些报告都可以正常工作。
问题是当数据包装时它会改变行高,使表更大。这意味着当我们输出下一个表时,它会重叠并破坏报告输出。目前我们使用变通方法,例如测试字符串长度,以查看是否将换行或向下一个表添加一个常量,添加一个空格,以防顶部表增长一点。
我希望能够做的是在调用EndTable
获取表格高度或底部以便我可以相应地调整后续表格。
我们正在使用Delphi 2007,eDocEngine 2.5
答案 0 :(得分:0)
Type TExposeProtectedeDocEngine = Class (TgtCustomDocumentEngine)
public
function GetTableBottom: Double;
function GetTableTop: Double;
Function GetTableHeight: Double;
End;
{ TExposeProtectedeDocEngine }
function TExposeProtectedeDocEngine.GetTableTop: Double;
begin
if Assigned(FTableItem) then
begin
Result := FTableItem.Y;
end
else
Result := 0;
end;
function TExposeProtectedeDocEngine.GetTableHeight: Double;
var
i: Integer;
begin
Result := 0;
if Assigned(FTableItem) then
begin
for i := 0 to FTableItem.RowHeights.Count - 1 do
Result := Result + Int64(FTableItem.RowHeights[i]);
end;
end;
function TExposeProtectedeDocEngine.GetTableBottom: Double;
begin
Result := GetTableHeight + GetTableTop;
end;
function GetPreviousTableBottom(Engine : TgtCustomDocumentEngine): Double;
begin
Result := TExposeProtectedeDocEngine(Engine).GetTableBottom;
end;