Новая версия - Исправлений до сих пор нет

отредактировано 19:23 Раздел: FastReport 4.0
Не работает PopupMenu в TfsSyntaxMemo если вы используете свое..

procedure TfsSyntaxMemo.MouseDown(Button: TMouseButton; Shift: TShiftState;

Заменить
// if (Button = mbRight) and (PopupMenu = nil) then
// FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
на это

if (Button = mbRight)then
begin
if (PopupMenu = nil) then
FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
else if assigned(FPopupMenu) then
exit;
end
В скрипте если деление на ноль.
unit fs_iexpression;

function TDivFloatNode.GetValue: Variant;
Var s:string;
begin
Result := FLeft.Value;
if FRight.Value =0 then
begin
s:= 'Деление на ноль ' + SourcePos;
Application.MessageBox(pChar(s),'Внимание', MB_ICONSTOP or MB_OK);
exit;
end;
.....
unit frxDBSet;

function TfrxDBDataset.GetValue(Index: String): Variant;

после
{$IFDEF Delphi6}
else if TField(Fields.Objects) is TSQLTimeStampField then
v := TSQLTimeStampField(Fields.Objects).AsDateTime
{$ENDIF}
else
Заменить
// v := TField(Fields.Objects).Value
на
if Fields.Objects<> Nil then
v := TField(Fields.Objects).Value
else v := Null;


Из версии в версию приходится это добавлять..




















Комментарии

  • Stalker4Stalker4 123
    отредактировано 19:23
    Konst написал: »
    Не работает PopupMenu в TfsSyntaxMemo если вы используете свое..

    Из версии в версию приходится это добавлять..
    Отошли этот фикс на support@fast-report.com, что бы его в включили в основной код.
  • отредактировано November 2008
    Stalker4 написал: »
    Отошли этот фикс на support@fast-report.com, что бы его в включили в основной код.
    Я туда это уже несколько раз отправлял.

    Когда переходилис 3 на 4 в 3 была функция.
    выделяешь бенд нажимаешь выравнить в право или лево и все набросанные там компоненты
    упорядочивались. Так нет
    http://fast-report.com/ru/forum/index.php?...l=IsBandsSelect

    Посмотри на дату 23.09.2004 до сих пор вносят...

    Как новая версия так полдня уходит на поправки

    http://fast-report.com/ru/forum/index.php?...amp;hl=SaveFile

    if (frxDesignerComp <> nil) and Assigned(frxDesignerComp.FOnSaveReport) then
    begin
    if frxDesignerComp.FOnSaveReport(Report, SaveAs) then
    begin
    UpdateRecentFiles(Report.FileName);
    UpdateCaption;
    Modified := False;
    Exit;
    end;
    end;

    Им про это постоянно говорят что выход должен стоять так а не после end;

    =======================================================

    http://fast-report.com/ru/forum/index.php?...ic=5426&hl=
    Tfrxwatchform Почему не Tchecklistbox, Удобнее было было бы
    Если объявить как
    WatchLB: TCheckListBox





  • отредактировано 19:23
    Ошибки с скриптом поправил.
    написал:
    Это конечно логично с одной стороны, но что делать тем, кто уже использует свои диалоги сохранения в OnSaveReport ?
    Пользователь нажал отмену и тут появляется еще один диалог.

    написал:
    выделяешь бенд нажимаешь выравнить в право или лево и все набросанные там компоненты
    упорядочивались. Так нет
    Сделаем.

    написал:
    function TfrxDBDataset.GetValue(Index: String): Variant;

    после
    {$IFDEF Delphi6}
    else if TField(Fields.Objects) is TSQLTimeStampField then
    v := TSQLTimeStampField(Fields.Objects).AsDateTime
    {$ENDIF}
    else
    Заменить
    // v := TField(Fields.Objects).Value
    на
    if Fields.Objects<> Nil then
    v := TField(Fields.Objects).Value
    else v := Null;
    Вопрос "зачем" ?
    Если возникает ошибка, то когда и как воспроизвести ?
  • gpigpi
    отредактировано 19:23
    написал:
    написал:
    выделяешь бенд нажимаешь выравнить в право или лево и все набросанные там компоненты
    упорядочивались. Так нет
    Сделаем
    Это так, как сейчас с вертикальными бендами - кликнул по бэнду и выделились все объекты, а к свойствам бэнда добираться через дерево отчёта? Не очень-то и удобно. Лучше выделять все объекты на бенде при нажатии определённой клавиши
  • отредактировано 19:23
    procedure TfsTree.TreeDblClick(Sender: TObject);
    begin
    if Assigned(SyntaxMemo) then
    if Tree.Selected.Count = 0 then
    SyntaxMemo.SelText := Tree.Selected.Text;

    /// а ЕСЛИ СВОЙ ОБРАБОТЧИК ВИСИТ???? чтобы сработало надо добавить

    if Assigned(OnDblClick) then OnDblClick(Self);

    end;
  • отредактировано 19:23
    Тогда может еще И эту сразу фукцию добавите
    Иногда надо в скрипте очистить только переменные не затрагивая остальное

    procedure TfsScript.ClearVariables;
    var
    i: Integer;
    item: TObject;
    begin
    i := 0;
    while i < FItems.Count do
    begin
    item := FItems.Objects;
    if (item is TfsRTTIModule) or
    (item is TfsMethodHelper) or
    ((item is TfsCustomVariable) and
    (TfsCustomVariable(item).AddedBy = TObject(1))) then
    Inc(i)
    else
    begin
    item.Free;
    FItems.Delete(i);
    end;
    end;
    FStatement.Clear;
    FUnitLines.Clear;
    FErrorPos := '';
    FErrorMsg := '';
    FErrorUnit := '';
    end;
  • отредактировано 19:23
    unit fs_isysrtti;
    Почему то фукция function Pi: Extended Описана которая оень редко используется а вот фукция
    function Power(const Base, Exponent: Extended) не описана.

    constructor TfsSysFunctions.Create(AScript: TfsScript);

    AddMethod('function Power(const Base, Exponent: Extended): Extended', CallMethod6, FCatMath);


    function TfsSysFunctions.CallMethod6(Instance: TObject; ClassType: TClass;

    else if MethodName = 'POWER' then
    Result := Power(Caller.Params[0], Caller.Params[1])

  • отредактировано 19:23
    По сурипту все будет в ближайших билдах.

    Если вас не затруднить, хотелось бы узнать, когда появляется ошибка в function TfrxDBDataset.GetValue(Index: String): Variant (описанный выше фикс) ?
    написал:
    выделяешь бенд нажимаешь выравнить в право или лево и все набросанные там компоненты
    упорядочивались. Так нет
    Насчет этого поспешил, ответ писал не с рабочей машины, посмотреть негде было.
    Это уже сделано через горячие клавиши, выделите бенд нажмите Ctrl + A.
  • отредактировано 19:23
    написал: »
    Если вас не затруднить, хотелось бы узнать, когда появляется ошибка в function TfrxDBDataset.GetValue(Index: String): Variant (описанный выше фикс) ?

    В каком отчете было. И как только это вставили этот код- стало нормально работать.
    Но тогда потратили целый день на поиск.
    С тех пор добавляю этот код.
    Смысл в том что когда приходило кажеться NIl.
  • отредактировано 19:23
    Konst написал: »
    В каком отчете было. И как только это вставили этот код- стало нормально работать.
    Но тогда потратили целый день на поиск.
    С тех пор добавляю этот код.
    Смысл в том что когда приходило кажеться NIl.
    Понятно, скорее всего, использовали псевдонимы для полей, а потом наверно изменили запрос и не обновили псевдонимы.
    Поправим.
  • отредактировано 19:23
    написал: »
    Насчет этого поспешил, ответ писал не с рабочей машины, посмотреть негде было.
    Это уже сделано через горячие клавиши, выделите бенд нажмите Ctrl + A.

    Проверил. Открыл стандартную демку вошел в дизайнер.
    выделил бенд. нажал Ctrl + A.
    Все элементы на бенде выделелись нажал выровнить в лево.
    | || || | -
    И результат - все элементы выровнились по самому крайнему полю. Т.Е у всех значение LEFT стала одинаковая.

    ЧТО делает мой код
    Он выставляет элементы по порядку
    ставит первый элемент как он кончается ставится следующий элемент и т.д
    Не надо таскать каждый элемент и ставить за следующим ручками и выравнивать совмещая квадратики...
    |первый| второй| третий| четвертый|
  • отредактировано 19:23
    Только что проверил, выделил объекты, установил baLeft , объекты строятся один за другим - по порядку.
  • отредактировано 19:23
    написал: »
    Только что проверил, выделил объекты, установил baLeft , объекты строятся один за другим - по порядку.

    А потом попробуйте поменять место расположение объекта (не ставя baNone)
    Первый объекта поставьте его последним. :) :) :)
    И у меня все выравнивается во верхнему краю сразу.

    я не хочу использовать свойство baLeft.

    Это все мелочи. По сравнению с этим.
    (почему в скрипте под Д2009 при передачи строкого параметра исчезают русские буквы?)
  • отредактировано 19:23
    Konst написал: »
    Это все мелочи. По сравнению с этим.
    (почему в скрипте под Д2009 при передачи строкого параметра исчезают русские буквы?)
    Можно подробней, на конкретном примере ?
  • отредактировано 19:23
    написал: »
    Можно подробней, на конкретном примере ?

    http://fast-report.com/ru/forum/index.php?...amp;#entry21938

    там все расписано и почему ошибка.
    Как лечить?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.