Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Лицензия FastReport за багрепорты и багофиксы

Автор: Garrett
Дата сообщения: 27.09.2005 23:59
GloThin
Ок. Тогда остаются пункты 1-4.
Автор: DroN_S
Дата сообщения: 28.09.2005 00:16
Garrett

Цитата:
4.
у меня в редакторе скрипта команда "выделить всё (Ctrl-A)" не работает, а в отчете - работает

если бы ты был чуть по внимательнее, то заметил бы, что в скрипте функции SelectAll нет...
будь немного по внимательнее...
Автор: Garrett
Дата сообщения: 28.09.2005 00:40
DroN_S
См. FastReport Studio User Manual (RU).pdf, стр.104 - Список клавиш, которые можно использовать в редакторе скрипта - ... Ctrl+A Выделить весь текст ...
Автор: DroN_S
Дата сообщения: 28.09.2005 01:49
Замечен вот такой маленький нюанс:
1) открываем дизайнер
2) нажимаем на Параметра страницы
3) в поле "Ширина" видим значение 21,01, а в поле "Высота значение 29,71
4) нажимаем ОК
5) открываем снова Параметры страницы
6) в поле "Ширина" видим значение 21а в поле "Высота значение 29,70...
но мы то ничего не меняли....

и ещё, в дизайнере на кнопке "Параметры страницы" в сплывающей подсказке написано Page Settings, нажимаем, открывается окно с заголовком Page Options...
Конечно всё это мелочи и не влияет на работу программы, но исправить надо..

Добавлено:
Garrett
пардон, и правда написано..
Автор: GloThin
Дата сообщения: 28.09.2005 02:56
DroN_S

Цитата:
Замечен вот такой маленький нюанс:

Что-то у меня этого нюанса нет, ни в самом Фастрепорте, ни в Студио...

Цитата:
и ещё, в дизайнере на кнопке "Параметры страницы" в сплывающей подсказке написано Page Settings, нажимаем, открывается окно с заголовком Page Options...

Как я понял, речь идет о Студио, но это уже опечатки с переводом на другие языки.
P.S. Такая же ситуация с большинством языков для локализации дизайнера в СТудио.
Автор: DroN_S
Дата сообщения: 28.09.2005 04:36
GloThin
Нет, это не Studio это FastReport 3.18.2


Цитата:
Замечен вот такой маленький нюанс:

он проявляется если если параметры страницы выбраны первоначально(один раз), потом всё становится нормально....
брось на форму компонент, открой дизайнер, открой параметры страницы и смотри...
Автор: gpi
Дата сообщения: 28.09.2005 11:54
Ну и ну!
Попробовал в Delphi выделить текст и нажать Ctrl-I. Интересно, а Borland лицензии за баги даёт? Насколько я понял, в Delphi по Ctrl-I сдвигается весь текст справа от курсора вправо.
А вот если в пункте 1 бага от Garrett выделить только два символа с конца, сдвигается вся строка.
Что касается Ctrl-A, то в коде frxSynMemo.pas поддерживается выделение всего текста скрипта, но оно блокируется горячей клавишей элемента меню SelectAllMI формы frxDesignerForm.
Чтобы заставить работать Ctrl-A нужно в frxSynMemo.pas и frxDesgn.pas внести изменения:
в frxSynMemo.pas procedure KeyDown(var Key: Word; Shift: TShiftState); override;
переносим из секции Protected в Public

Код:
procedure TfrxDesignerForm.UpdateControls;
..
SelectAllCmd.Enabled := True; //fix
..
procedure TfrxDesignerForm.SelectAllCmdExecute(Sender: TObject);
var
i: Integer;
Parent: TfrxComponent;
Key: Word; //fix
begin
//fix begin
if (FObjects.Count > 2) and (FPage <> nil) then
begin
//fix end
Parent := FPage;
if FSelectedObjects.Count = 1 then
if TfrxComponent(FSelectedObjects[0]) is TfrxBand then
Parent := FSelectedObjects[0]
else if TfrxComponent(FSelectedObjects[0]).Parent is TfrxBand then
Parent := TfrxComponent(FSelectedObjects[0]).Parent;

if Parent.Objects.Count <> 0 then
FSelectedObjects.Clear;
for i := 0 to Parent.Objects.Count - 1 do
FSelectedObjects.Add(Parent.Objects[i]);
OnSelectionChanged(Self);
//fix begin
end
else
begin
key:=65;
CodeWindow.KeyDown(key,[ssCtrl]);
end;
//fix end
end;
Автор: gpi
Дата сообщения: 28.09.2005 20:37
Фиксы к Ctrl-I и Ctrl-U

Код:
//frxSynMemo.pas
procedure TfrxSyntaxMemo.ShiftSelected(ShiftRight: Boolean);
var
i, ib, ie: Integer;
s: String;
Shift: Integer;
begin
AddUndo;
if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then
begin
ib := FSelStart.Y - 1;
ie := FSelEnd.Y - 1;
if (FSelEnd.X = 1) and (ie > 0) then //fix
Dec(ie); //fix Dec(ie) должно выполняться здесь при ie > 0
end
else
begin
ib := FSelEnd.Y - 1;
ie := FSelStart.Y - 1;
end;


Shift := 2;
if not ShiftRight then
for i := ib to ie do
begin
s := FText[i];
if (Trim(s) <> '') and (GetLineBegin(i) - 1 < Shift) then
Shift := GetLineBegin(i) - 1;
end;

for i := ib to ie do
begin
s := FText[i];
if ShiftRight then
s := Pad(Shift) + s
else if Trim(s) <> '' then
Delete(s, 1, Shift);
FText[i] := s;
end;
//fix begin
if ib<>ie then
if ShiftRight then
begin
Inc(FSelStart.X,Shift);
Inc(FSelEnd.X,Shift);
end
else
begin
Dec(FSelStart.X,Shift);
Dec(FSelEnd.X,Shift);
end
else
FSelStart:=FSelEnd; //для одной строки в выделении нет необходимости
//fix end
UpdateSyntax;
DoChange;
end;

procedure TfrxSyntaxMemo.DoCtrlI;
begin
//fix begin
if FSelStart.X = 0 then
begin
FSelStart.X := 0;
FSelStart.Y := FPos.Y;
FSelEnd.X := Length(FText[FPos.Y-1]);
FSelEnd.Y := FPos.Y;
end;
ShiftSelected(True);
//fix end
end;

procedure TfrxSyntaxMemo.DoCtrlU;
begin
//fix begin
if FSelStart.X = 0 then
begin
FSelStart.X := 0;
FSelStart.Y := FPos.Y;
FSelEnd.X := Length(FText[FPos.Y-1]);
FSelEnd.Y := FPos.Y;
end;
ShiftSelected(False);
//fix end
end;
Автор: Garrett
Дата сообщения: 28.09.2005 21:13
gpi
Спасибо. Может мне еще бонусов прибавят и мой FR Standard перерастет нечто в большее, а то судя по таблице в шапке меня разжаловали до Basic .
Осталось дождаться появления Му_Way'я.
Автор: DroN_S
Дата сообщения: 28.09.2005 21:29
Garrett

Цитата:
то судя по таблице в шапке меня разжаловали до Basic

резулбтаты в таблице

Цитата:
Garrett Три Ноль Три FR Standard Три

Автор: GloThin
Дата сообщения: 28.09.2005 21:30
Garrett

Цитата:
а то судя по таблице в шапке меня разжаловали до Basic .

Откуда такой вывод?
Там же у тебя стандарт.

Цитата:
Осталось дождаться появления Му_Way'я.

Появится, не переживай и посчитает.
Автор: DroN_S
Дата сообщения: 28.09.2005 21:31

Цитата:
Может мне еще бонусов прибавят

как только My_Way появится - всё будет
Автор: Garrett
Дата сообщения: 28.09.2005 21:35
DroN_S
GloThin
Про basic я ошибся.
Просто я уже давно зарегистрирован на Standard, т.е. предыдущим постом хотел сказать, что в моем случае можно начинать не с нуля.
Автор: GloThin
Дата сообщения: 28.09.2005 21:53
Garrett

Цитата:
Про basic я ошибся.
Просто я уже давно зарегистрирован на Standard, т.е. предыдущим постом хотел сказать, что в моем случае можно начинать не с нуля.

Наверно, у разработчиков есть определенные проблемы с повышением уже существующей лицензии или они не хотят смешивать купленные лицензии и выданные в рамках данной акции. Так что ты не первый, кто начал с нуля.
Автор: Garrett
Дата сообщения: 28.09.2005 22:45
GloThin
Будем надеяться на лучшее и ждать Александра (я думаю, что это он здесь под ником My_Way).
В противном случае (насчет отсчета с нуля) нет логики. Зачем мне к примеру 2 стандарта?
Автор: DroN_S
Дата сообщения: 28.09.2005 22:48
Garrett

Цитата:
В противном случае (насчет отсчета с нуля) нет логики. Зачем мне к примеру 2 стандарта?

Находи новые баги и делай к ним фиксы и будет тебе FREnt
Всё в твоих руках
Автор: Garrett
Дата сообщения: 28.09.2005 22:53
У меня предложение к разработчикам.
Добавьте пожалуйста 2 настройки для редактора скрипта:

1-ая - при нажатии на TAB вставлять символ табуляции или пробелы
2-ая - если пробелы, то сколько (я, например, во всех редакторах-студиях выставляю 4 пробела)


Добавлено:
FR Studio demo и FR Standard под BCB

делаем отчет
делаем скрипт и диалог(стр.142 руководства)

#language C++Script

void CheckBox1OnClick(TfrxComponent Sender)
{
Button1.Enabled = ! CheckBox1.Checked;
}

{
ShowMessage("Hi!");
Memo1.Color = clRed;
}

сохраняем отчет(чтоб потом не писать)

ставим курсор на строку "Button1.Enabled = ! CheckBox1.Checked;"
жмем F4 или F5
скрипт начинает работать, появляется диалог
щелкаем на чекбокс, попадаем в редактор скрипта (на точку останова)
снова давим f4 или f5 или f9, появляется диалог
Щелкаем на скрипт(в любое место) и всё!

Диалог не видно, переключиться на него нельзя, скрипт не останавливается (ни Ctrl-F2, ни красной кнопкой).

Остается только снять ФР Студию через таск менеджер, предварительно сохранив отчет(save работает вроде).

Здесь дело наверное в том, что после второго нажатия f4/5/9 и до появления диалога(продолжение работы скрипта) не скрывается код скрипта, из-за чего есть возможность на него щелкнуть и повесить студию.

Автор: EmeJIbka
Дата сообщения: 29.09.2005 14:15

Цитата:
И ещё - в предпросмотре выбираем настройки страницы, пишем любой текст в EditBox`ы Height или Width, затем выбираем размер бумаги из ComboBox`а - получаем Exeption - "текст is not a valid floating point value".


Вот решение:


Код: //frxPreviewPageSettings.pas
//beginfix
procedure EditNumber(Edit: TEdit);
Var
i: Integer;
begin
i := GetWindowLong(Edit.Handle, GWL_STYLE);
SetWindowLong(Edit.Handle, GWL_STYLE, i or ES_NUMBER);
end;
//endfix
procedure TfrxPageSettingsForm.FormShow(Sender: TObject);
var
//beginfix
Counter:integer;
//endfix
i: Integer;
Ini: TCustomIniFile;
uStr: String;
begin
FUpdating := True;

Caption := frxGet(400);
WidthL.Caption := frxGet(401);
HeightL.Caption := frxGet(402);
SizeL.Caption := frxGet(403);
OrientationL.Caption := frxGet(404);
LeftL.Caption := frxGet(405);
TopL.Caption := frxGet(406);
RightL.Caption := frxGet(407);
BottomL.Caption := frxGet(408);
MarginsL.Caption := frxGet(409);
PortraitRB.Caption := frxGet(410);
LandscapeRB.Caption := frxGet(411);
OKB.Caption := frxGet(1);
CancelB.Caption := frxGet(2);
OtherL.Caption := frxGet(412);
ApplyToCurRB.Caption := frxGet(413);
ApplyToAllRB.Caption := frxGet(414);

//beginfix
for Counter := 0 to ComponentCount - 1 do
if (Components[Counter] is TEdit) then
EditNumber(Components[Counter] as TEdit);
//endfix
Ini := Report.GetIniFile;
FUnits := TfrxDesignerUnits(Ini.ReadInteger('Form.TfrxDesignerForm', 'Units', 0));
Ini.Free;

uStr := '';
case FUnits of
duCM, duPixels, duChars:
uStr := frxResources.Get('uCm');
duInches:
uStr := frxResources.Get('uInch');
end;

UnitL1.Caption := uStr;
UnitL2.Caption := uStr;
UnitL3.Caption := uStr;
UnitL4.Caption := uStr;
UnitL5.Caption := uStr;
UnitL6.Caption := uStr;

SizeCB.Items := frxPrinters.Printer.Papers;
i := frxPrinters.Printer.PaperIndex(Page.PaperSize);
if i = -1 then
i := frxPrinters.Printer.PaperIndex(256);
SizeCB.ItemIndex := i;

WidthE.Text := frxFloatToStr(mmToUnits(Page.PaperWidth));
HeightE.Text := frxFloatToStr(mmToUnits(Page.PaperHeight));
PortraitRB.Checked := Page.Orientation = poPortrait;
LandscapeRB.Checked := Page.Orientation = poLandscape;

MarginLeftE.Text := frxFloatToStr(mmToUnits(Page.LeftMargin));
MarginRightE.Text := frxFloatToStr(mmToUnits(Page.RightMargin));
MarginTopE.Text := frxFloatToStr(mmToUnits(Page.TopMargin));
MarginBottomE.Text := frxFloatToStr(mmToUnits(Page.BottomMargin));

PortraitRBClick(nil);
FUpdating := False;
end;
Автор: GloThin
Дата сообщения: 29.09.2005 18:19
DroN_S

Цитата:
он проявляется если если параметры страницы выбраны первоначально(один раз), потом всё становится нормально....
брось на форму компонент, открой дизайнер, открой параметры страницы и смотри...

Нет его у меня ни при создании, ни при открытии...
Может причина в использовании фикса для вертикальных размеров объектов, написанного мной и gpi в этой ветке...
Автор: DroN_S
Дата сообщения: 29.09.2005 19:01
Такой вот баг в 3.18.2:
1) В среде Delphi создаём новый проект
2) бросаем на форму frxReport и кнопку
3) дизайнер не открываем иначе не увидим самого интересного
4) по OnClick кнопки пишем frxReport1.ShowReport();
5) запускаем проект, нажимаем на кнопку и смотрим....

GloThin

Цитата:
Может причина в использовании фикса для вертикальных размеров объектов, написанного мной и gpi в этой ветке...

так и есть, в Run-Time этого косяка нет при вашем фиксе, а вот в дизайнере в IDE есть...
Автор: GloThin
Дата сообщения: 29.09.2005 19:05
DroN_S

Цитата:
так и есть, в Run-Time этого косяка нет при вашем фиксе, а вот в дизайнере в IDE есть...

Сделай перекомпиляцию исходников с исправленным фиксом при помощи утилы recompile и в IDE тоже не будет.
Оказывается наш Фикс еще один багик смог вылечить...


Цитата:
Такой вот баг в 3.18.2:
1) В среде Delphi создаём новый проект
2) бросаем на форму frxReport и кнопку
3) дизайнер не открываем иначе не увидим самого интересного
4) по OnClick кнопки пишем frxReport1.ShowReport();
5) запускаем проект, нажимаем на кнопку и смотрим....

В результате выходит окно просмотра без страницы.
Но по-моему, режим просмотра и не должен сам создавать страницы, если их нет в отчете,это не его задача.
Автор: Garrett
Дата сообщения: 29.09.2005 22:50
Вот ещё...
Если оключить выносные линии(Вид/Выносные линии), то от линейки по-прежнему их можно таскать, а при отпускании мыши линии пропадают (повторите несколько раз для эксперимента).
Но если затем включить выносные линии, то, то что мы навыносили в отключенном режиме появится на отчете.
У меня предложение, что если выносные линии отключены, то и выносить их от линейки не надо.
Автор: My_Way
Дата сообщения: 29.09.2005 22:58
Garrett
засчитываем еще 5 багов всего 8 это FR Pro
регданные выслал если письмо не дойдет стучи в ПМ
пока писал ответ, уже и баг поспел
итого 9, сейчас включим Ent


по поводу Tab в редакторе, это мы уже в ближаейшее время сделаем,
редактор будет корреным образом переписан, думаю эти все глюки выше описанные удастся исключить все сразу

EmeJIbka
+два багофикса FR Ent, также рег.данные ушли на почтой, если не дошли тогда в ПМ стучи

GloThin,gpi спасибо

DroN_S тоже спасибо, и видимо это уже становится традицией, добавленно в виде кое-чего приватной панели


Добавлено:
до резюме сегодня не успел добраться

по поводу апгрейда с существующей(купленой) лицензии:
специфика этой акции такова, что пользователь не может иметь на одном аккаунте,
купленный и заработанный за баги продукты, потому что, это смешает учет выданных по акции продуктов, и проданных продуктов, непосредсвенно внести в систему выдачи продуктов такой функционал нет сейчас возможности, поэтому единственным способом сейчас сохранить целостность данных по пользователям в нашей ситсеме, и не увеличивать нагрузку на людей занимающихся данной акцией, остается то, что аккаунты пользователей не будут содержать одновременно купленых и некупленых продуктов. (иначе я до ваших резюме только к зиме добирусь )

да и посмотрите, ведь как показала практика,
FR Ent зарабатывается с нуля довольно просто
Автор: Garrett
Дата сообщения: 30.09.2005 00:31
Вот еще...
Как и названия кнопок от "текста" до "компонентов ADO", так и всё дерево данных и все его чекбоксы и внутренние строки не меняются при смене языка. Изменения вступают в силу после перезагрузки дизайнера.
Автор: GloThin
Дата сообщения: 30.09.2005 03:21
Garrett

Цитата:
Вот еще...
Как и названия кнопок от "текста" до "компонентов ADO", так и всё дерево данных и все его чекбоксы и внутренние строки не меняются при смене языка. Изменения вступают в силу после перезагрузки дизайнера.

Имеется в виду Студио, это не баг. Вот слова разработочиков:

Цитата:
полная локаль меняется после перезагрузки это связано со спецификой локализации, динамически локализованые контролы не меняются.
Автор: gpi
Дата сообщения: 30.09.2005 09:11
My_Way

Цитата:
редактор будет корреным образом переписан, думаю эти все глюки выше описанные удастся исключить все сразу

Ждём. Если что, сообщим о новых багах
И хотелось, чтобы все наши багофиксы (при условии их работоспособности) были внесены, а то после выхода каждой новой версии придётся формировать версию для печати и самому корректировать исходники.

Кстати, о версии для печати - новым соискателям желательно ознакамливаться, дабы избегать повторений.
Автор: Garrett
Дата сообщения: 30.09.2005 10:20
GloThin
Насчет локализации.
Может всеже баг? "Вставить бэнд" локализуется сразу, а "объект текст" не может? Лежат вроде на одном тулбаре. Посмотрите в исходниках как там.


Добавлено:
Предложение к разработчикам.
Сделайте пожалуйста инсталлятор студии более настраиваемым.
Хотелось бы
- выбор нужных языков. В большинстве случаев нам достаточно двух - анг и рус. А у Вас всё(27 языков, более 1 метра на диске), либо ничего.
- выбор языка программирования в примерах. Мне, например, не очень нужны примеры на бейсике и фокспро. А у Вас всё, либо ничего.

При каждой установке студии, её язык сбрасывается в английский.
Может инсталлятор этого не делать?
Автор: gpi
Дата сообщения: 30.09.2005 12:21
Garrett
Исходников FR Studio, по-моему, нет ни у кого.

А вот в фасте 3.17.12 с ObjectsTB1 действительно накручено. Там кнопки создаются динамически, да так, что на кнопке Copy Format Tool оказывается событие выбора бэнда, причём срабатывает она всегда, даже когда неактивна. А кнопка Select Band всегда активна, но действий - никаких.
И ещё. Когда находимся в редакторе скрипта, наверное, нужно все кнопки ObjectsTB1 делать неактивными.
P.S. Может быть, эти баги уже и устранены в текущей 3.18
Автор: DroN_S
Дата сообщения: 30.09.2005 14:32
EmeJIbka
Можно ещё записать вот так

Код:
for Counter := 0 to ComponentCount-1 do
if (Components[Counter] is TEdit) then
SetWindowLong((components[Counter] as TEdit).Handle,GWL_STYLE,
GetWindowLong((components[Counter] as TEdit).Handle,GWL_STYLE) or ES_NUMBER);
Автор: gpi
Дата сообщения: 30.09.2005 19:03

Цитата:
Там кнопки создаются динамически, да так, что на кнопке Copy Format Tool оказывается событие выбора бэнда, причём срабатывает она всегда, даже когда неактивна. А кнопка Select Band всегда активна, но действий - никаких.

А после добавления диалоговой формы всё ОК.

Страницы: 12345678910111213141516

Предыдущая тема: Числовой формат даты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.