отображение текста в зависимости от условия

отредактировано 14:49 Раздел: FastReport .NET
Всем привет!

Ищу способ создания одного отчета для русского и английского варианта. В Excel это просто:
написал:
=IF($B$2="RU","Подразделение",IF($B$2="EN","Division",""))

Подскажите плз вариант решения для FastReport.NET 1.6.2

Комментарии

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

    Можно добавить параметр отчета и анализировать его значение. Пример выражения в объекте "Текст":
    [[lang] == "RU" ? "Подразделение" : "Division"]
  • отредактировано 14:49
    AlexTZ написал: »
    Здравствуйте,

    Можно добавить параметр отчета и анализировать его значение. Пример выражения в объекте "Текст":
    [[lang] == "RU" ? "Подразделение" : "Division"]

    AlexTZ, спасибо за ответ.

    В догонку просьба подтвердить или опровергнуть следующее утверждение:

    здесь нашел
    AlexTZ написал: »
    I've always known that IIF was slower than a regular If/Then/Else statement. I had never proven this to myself or taken the time to understand why. Like many things we pick up these tips from other developers and assume the more experienced developer is right. In this case it's true.

    IIF performed much slower than using If/Then/Else. What struck me is that I had to turn Option Strict off to use IIF or explicitly convert the results. The reason is IIF returns System.Object. I think this is why it is slower.

    То есть автор статьи утверждает, что ради быстродействия стОит обойтись без конструкций vb типа iif.

    Кто-нибудь в курсе, доверять ли сказанному?
  • отредактировано 14:49
    Вряд ли применение IIf в данном случае снизит быстродействие. Скорость работы отчета в большинстве случаев ограничивается скоростью доступа к данным.
  • отредактировано 14:49
    AlexTZ написал: »
    Вряд ли применение IIf в данном случае снизит быстродействие. Скорость работы отчета в большинстве случаев ограничивается скоростью доступа к данным.


    Здесь нашел документацию по Combobox. То ли я после лет работы с Oracle разбалован кучей пользователей на тамошнем официальном форуме с множеством тем и опубликованных примеров... В общем, не хватает полноценного примера использования выпадающего списка. Может это уже есть, но я плохо искал?

    Как шаг за шагом в выпадающем списке диалоговой формы сделать возможность выбора из двух значений (RU, EN) языка и в зависимости от выбора пользователя отобразить в результирующем отчете слово "русский" или "английский" ?
  • отредактировано 14:49
    Прикрепляю пример отчета. Запустить можно, например, из Demo.exe.
  • отредактировано 14:49
    Криво прикрепился файл. Вот в текстовом виде:
    <?xml version="1.0" encoding="utf-8"?>
    <Report ScriptLanguage="CSharp" TextQuality="Regular" ReportInfo.Created="01/17/2008 03:05:57" ReportInfo.Modified="03/12/2012 20:26:46" ReportInfo.CreatorVersion="1.0.0.0">
      <scriptText>using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data;
    using FastReport;
    using FastReport.Data;
    using FastReport.Dialog;
    using FastReport.Barcode;
    using FastReport.Table;
    using FastReport.Utils;
    
    namespace FastReport
    {
      public class ReportScript
      {
        private void Form1_Shown(object sender, EventArgs e)
        {
          ComboBox1.SelectedIndex = 0;
        }
    
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
          Report.SetParameterValue("Lang", ComboBox1.SelectedItem);
        }
      }
    }
    </ScriptText>
      <Dictionary>
        <Parameter Name="Lang" DataType="System.String"/>
      </Dictionary>
      <DialogPage Name="Form1" Width="186" Height="146" AcceptButton="btnOk" CancelButton="btnCancel" FormClosedEvent="Form1_FormClosed" ShownEvent="Form1_Shown">
        <ButtonControl Name="btnOk" Left="14" Top="83" Anchor="Bottom, Right" Font="Tahoma, 8pt" TabIndex="0" Text="OK" DialogResult="OK"/>
        <ButtonControl Name="btnCancel" Left="97" Top="83" Anchor="Bottom, Right" Font="Tahoma, 8pt" TabIndex="1" Text="Cancel" DialogResult="Cancel"/>
        <ComboBoxControl Name="ComboBox1" Left="32" Top="28" Font="Tahoma, 8pt" TabIndex="2" DropDownStyle="DropDownList" ItemHeight="13" ItemsText="EN
    RU"/>
        <LabelControl Name="Label1" Left="32" Top="8" Width="58" Height="13" Font="Tahoma, 8pt" TabIndex="3" Text="Language:"/>
      </DialogPage>
      <ReportPage Name="Page1">
        <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="56.7">
          <TextObject Name="Text1" Width="718.2" Height="37.8" Text="[[Lang] == "RU" ? "Russian" : "English"]" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 14pt, style=Bold"/>
        </ReportTitleBand>
      </ReportPage>
    </Report>
    
  • отредактировано 14:49
    AlexTZ написал: »
    Прикрепляю пример отчета. Запустить можно, например, из Demo.exe.


    С помощью C:\Program Files (x86)\FastReports\FastReport.Net\Demo.exe попытался открыть файл 1.frx - но допустимое расширение только одно, это "Готовый отчет" *.fpx (у меня версия FastReport.NET - 1.6.2). Пробовал (попытка не пытка) переименовать расширение с .frx на .fpx, но тогда файл не открывается.
    Что тут можно сделать?
  • отредактировано 14:49
    Скопируйте текст из поста выше в файл test.frx и откройте его в Designer.exe.
  • отредактировано 14:49
    AlexTZ написал: »
    Криво прикрепился файл. Вот в текстовом виде:

    Попробовал сохранить в блокноте и поменять расширение на .fpx, но при попытке открыть через Demo.exe получаю ошибку "Unhandled exception has occured in your application. ..."
    Как правильно использовать файл в текстовом виде?
  • отредактировано 14:49
    AlexTZ написал: »
    Скопируйте текст из поста выше в файл test.frx и откройте его в Designer.exe.

    Теперь получаю ошибку "Не могу открыть отчет C:\Fastreport\test.frx Не могу прочитать файл, неизвестный формат файла."
    Что еще можно сделать?
  • отредактировано 14:49
    Пока боремся с глюками форума, скачайте здесь:
    http://www.fast-report.com/pbc_download/files/1.frx
  • отредактировано 14:49
    AlexTZ написал: »
    Пока боремся с глюками форума, скачайте здесь:
    http://www.fast-report.com/pbc_download/files/1.frx

    Все работает, спасибо!

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

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