Report.design

kalina9001kalina9001 Germany
отредактировано 07:23 Раздел: FastReport .NET
Гружу, сохраняю отчеты из базы данных. Возникло несколько хотелок, вопросов:




1. Нельзя ли добавить в EnvironmentSettings.DesignerSettings пару событий:
CustomNewDialog, CustomNewReport(аналогичных CustomSaveDialog,CustomSaveReport)

2. Как бы убрать из меню Дизайнера следующие пункты:
Файл->Сохранить как...
Файл->Выберите язык...

3. При попытке закрыть окно Дизайнера с модифицированным отчетом появляется следующее сообщение:
"Сохранить изменения в Безымянный.frx?"

Как можно подменить этот текст. Хотелось бы вместо имени файла спросить о сохранении в базу данных.

Спасибо





FastReport.Net WinForms Single license
1.1.34.0
«1

Комментарии

  • отредактировано 07:23
    Здравствуйте,

    1) Можно, но зачем?
    2) Я могу добавить новое событие, которое будет вызываться после загрузки дизайнера. В нем можно будет управлять видимостью пунктов меню.
    3) Можно поменять строку в файле локализации (Localization/Russian.frl). Вот эту:
      <Messages>
        <SaveChanges Text="новый текст"/>
    
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Здравствуйте,

    1) Можно, но зачем?
    Будет использоваться для печати этикеток.
    Хотелось бы создать для пользователя темплейт, зарегистрировать источник данных создать бэнды итд.

    Диалог Файл->Новый слишком функционален. К примеру: там можно добавить новую страницу при установленном
    EnvironmentSettings.DesignerSettings.Restrictions.DontCreatePage=true;
    Если бы вместо этого можно было бы запустить мастер этикеток (кстати до него можно достучаться?), это было бы круто.

    AlexTZ написал: »
    2) Я могу добавить новое событие, которое будет вызываться после загрузки дизайнера. В нем можно будет управлять видимостью пунктов меню.
    Спасибо! То что нужно.
    AlexTZ написал: »
    3) Можно поменять строку в файле локализации (Localization/Russian.frl). Вот эту:
      <Messages>
        <SaveChanges Text="новый текст"/>
    
    Хм.. Если другого способа нет, придется сделать так. Мне бы больше по душе был бы какой нибудь евентик (типа NeedTranslation) у объекта EnvironmentSettings
  • отредактировано 07:23
    Насчет CustomNewDialog подумаю.

    Вот это будет доступно в следующем билде (завтра):
    Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded);
    
    void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
    {
       (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false;
    }
    

    Это тоже:
    Res.Set("Messages,SaveChanges", "my save changes text");
    
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    Спасибо!
  • kalina9001kalina9001 Germany
    отредактировано July 2009
    AlexTZ написал: »
    Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded);
    
    void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
    {
       (sender as DesignerControl).MainMenu.miFileSelectLanguage.Visible = false;
    }
    

    Что то не стреляет ни когда
    AlexTZ написал: »
    Res.Set("Messages,SaveChanges", "my save changes text");
    
    Не компилируется
    Говорит Set - не найден

    FastReport.Net WinForms Single license
    1.1.39.0
  • отредактировано 07:23
    Все это будет доступно в сборке 1.1.40 - соберется сегодня в полночь.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Все это будет доступно в сборке 1.1.40 - соберется сегодня в полночь.

    Сказалась разница в часовых поясах? :)
    Ошибку понял, жду завтра
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    Еще вопрос:
    Можно ли как нибудь запретить пользователю изменять размеры бэндов, колонок и отключить Autosize у банда при в ставке объектов имеющих по умолчанию размер больший чем бэнд. К примеру выбираем в Мастере этикеток - Производитель: Zwekform, Продукт: 3420 (Строк: 17, Колонок:3).
    Бросаем на Бэнд Даннных штрихкод. Бэнд увеличивает высоту.
  • отредактировано 07:23
    Можно. Установите у бэнда св-во Restrictions = DontResize.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    Спасибо! То что доктор прописал!
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Насчет CustomNewDialog подумаю.

    Пока я в отпуске был ни каких сдвигов тут не произошло? :)
    Печатаю этикетки, хотелось бы показать диалог в котором был бы доступен только Мастер этикеток или мой диалог с выбором размера полей, количества этикеток по вертикали, горизонтали.
    После этого зарегистрировать набор данных, для DataBand указать набор данных, указать для него
    Restrictions=Restrictions.DontDelete|Restrictions.DontMove|Restrictions.DontResize
    

    Очень прошу! :)

    Ок, теперь две найденные сегодня ошибки
    Тестовый пример: http://rapidshare.de/files/47897610/FRtest.rar.html


    1. Ресурсы грузятся вне зависимости от языка системы. Всегда русские.
    2. Страница не заполняется полностью (ожидал, что будет одна страница, получил три)


    FastReport.Net WinForms Single license
    1.1.53.0
  • отредактировано 07:23
    Здравствуйте,

    Не произошло, потому что теперь я в отпуске :) Вернусь в понедельник, сделаю. К сожалению, тестовый пример проверить пока не могу.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Здравствуйте,

    Не произошло, потому что теперь я в отпуске :) Вернусь в понедельник, сделаю. К сожалению, тестовый пример проверить пока не могу.

    Спасибо! Буду ждать.

    ЗЫ Хорошо отдохнуть!
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    Еще ошибочка. В Preview диалог настройки страницы перестал работать. (Нажимаешь ОК, а изменения не происходят)
  • отредактировано 07:23
    Ок, проверю.
  • отредактировано 07:23
    написал:
    Тестовый пример: http://rapidshare.de/files/47897610/FRtest.rar.html


    1. Ресурсы грузятся вне зависимости от языка системы. Всегда русские.
    2. Страница не заполняется полностью (ожидал, что будет одна страница, получил три)

    1. Видимо, в конфиг-файле FastReport прописан язык - русский, вместо "авто". По умолчанию, когда конфиг-файла еще нет (чистая установка на новую машину), используется "авто".
    2. В настройках страницы поправьте нижнее поле - оно сейчас 18см, надо 0см.
    написал:
    Еще ошибочка. В Preview диалог настройки страницы перестал работать. (Нажимаешь ОК, а изменения не происходят)

    Это исправил, будет доступно в очередном билде.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    2. В настройках страницы поправьте нижнее поле - оно сейчас 18см, надо 0см.

    Странно, делал с помощью мастера этикеток. Выду на работу проверю
  • отредактировано 07:23
    Ошибка в мастере, поправлю.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Ошибка в мастере, поправлю.

    Как его запустить из кода?
  • отредактировано 07:23
    Пока никак - соответствующий класс объявлен как internal.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Пока никак - соответствующий класс объявлен как internal.

    Нельзя открыть? :)
    ПЖЛСТ
  • отредактировано July 2009
    Эх, чуть-чуть не успел вылить изменения. В билде 1.1.56 будет можно делать так:
    // add an event handler that will be fired when the designer is run
    Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded);
    
    void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
    {
      // override "New..." command behavior
      (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction);
    }
    
    void cmdNew_CustomAction(object sender, EventArgs e)
    {
      // show the "Label" wizard instead of standard "Add New Item" dialog
      Designer designer = sender as Designer;
      LabelWizard wizard = new LabelWizard();
      wizard.Run(designer);
    }
    

    Таким образом можно перекрыть любую команду дизайнера (команды = проперти объекта Designer с именами cmd...).
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Эх, чуть-чуть не успел вылить изменения. В билде 1.1.56 будет можно делать так:
    // add an event handler that will be fired when the designer is run
    Config.DesignerSettings.DesignerLoaded += new EventHandler(DesignerSettings_DesignerLoaded);
    
    void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
    {
      // override "New..." command behavior
      (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction);
    }
    
    void cmdNew_CustomAction(object sender, EventArgs e)
    {
      // show the "Label" wizard instead of standard "Add New Item" dialog
      Designer designer = sender as Designer;
      LabelWizard wizard = new LabelWizard();
      wizard.Run(designer);
    }
    

    Таким образом можно перекрыть любую команду дизайнера (команды = проперти объекта Designer с именами cmd...).

    Вау! Здорово! Буду ждать версию 1.1.56
    Огромное спасибо!
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    Еще раз спасибо! Все работает.
    Как бы еще узнать нажата ли была в Мастере клавиша 'Отмена'?
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    А пользовательские этикетки куда нибудь сохраняются?
  • отредактировано 07:23
    1) только по косвенным признакам - напр., по отсутствию на странице отчета бэнда ReportTitle можно сказать, что мастер сработал успешно.
    2) нет, не сохраняются.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    1) только по косвенным признакам - напр., по отсутствию на странице отчета бэнда ReportTitle можно сказать, что мастер сработал успешно.
    Можно положиться на то что так и останется в будущих версиях?
    AlexTZ написал: »
    2) нет, не сохраняются.
    Жаль. Самому как я понял добавить Пользовательские форматы в мастер нельзя?

    Еще хотелка. Было бы здорово если бы мастер добавлял в Report.ReportInfo.Description информацию о выбранном типе этикеток
  • отредактировано 07:23
    Поменяю ф-ю Run, чтобы она возвращала bool. Также сделаю сохранение пользовательских этикеток в файле конфигурации FR.
  • kalina9001kalina9001 Germany
    отредактировано 07:23
    AlexTZ написал: »
    Поменяю ф-ю Run, чтобы она возвращала bool. Также сделаю сохранение пользовательских этикеток в файле конфигурации FR.
    Спасибо!
  • отредактировано 07:23
    написал:
    Еще хотелка. Было бы здорово если бы мастер добавлял в Report.ReportInfo.Description информацию о выбранном типе этикеток

    Это можете сделать сами, я добавил в LabelWizard поля - SelectedManufacturer, SelectedLabelName, SelectedLabelParameters.

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

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