Найдите конец таблицы, созданной с помощью eDocEngine - PullRequest
1 голос
/ 19 июля 2011

У нас есть несколько отчетов, которые выводят отдельные таблицы в PDF-файл, используя eDocEngine * Gnostice , который работает нормально, если данные правильно помещаются в ячейки.

Проблема заключается в том, что при переносе данных изменяется высота строки, что увеличивает размер таблицы. Это означает, что когда мы выводим следующую таблицу, она перекрывает и разрушает вывод отчета. В настоящее время мы используем обходные пути, такие как тестирование длины строки, чтобы увидеть, будет ли обтекание или добавление константы к следующей вершине таблицы, чтобы добавить немного места на случай, если верхняя таблица немного увеличится.

Я хотел бы иметь возможность после вызова EndTable получить высоту таблицы или основание, чтобы я мог соответствующим образом настроить последующие таблицы.

Мы используем Delphi 2007, eDocEngine 2.5

1 Ответ

0 голосов
/ 21 июля 2011
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...