FastReport

Форк
0
/
ReportInfo.cs 
254 строки · 7.6 Кб
1
using System;
2
using System.Drawing;
3
using System.ComponentModel;
4
using FastReport.Utils;
5
using System.Reflection;
6
using System.Drawing.Design;
7

8
namespace FastReport
9
{
10
    /// <summary>
11
    /// Specifies the Save Mode of designed report.
12
    /// </summary>
13
    public enum SaveMode
14
    {
15
        /// <summary>
16
        /// The saving allowed to all.
17
        /// </summary>
18
        All = 0,
19
        /// <summary>
20
        /// The saving in original place.
21
        /// </summary>
22
        Original,
23
        /// <summary>
24
        /// The saving allowed to current user.
25
        /// </summary>
26
        User,
27
        /// <summary>
28
        /// The saving allowed to current role/group.
29
        /// </summary>
30
        Role,
31
        /// <summary>
32
        /// The saving allowed with other security permissions.
33
        /// </summary>
34
        Security,
35
        /// <summary>
36
        /// The saving not allowed.
37
        /// </summary>
38
        Deny,
39
        /// <summary>
40
        /// Custom saving rules.
41
        /// </summary>
42
        Custom
43
    }
44

45
    /// <summary>
46
    /// This class represents the report information such as name, author, description etc.
47
    /// </summary>
48
    [TypeConverter(typeof(FastReport.TypeConverters.FRExpandableObjectConverter))]
49
    public class ReportInfo
50
    {
51
        #region Fields
52
        private string name;
53
        private string author;
54
        private string version;
55
        private string description;
56
        private Image picture;
57
        private DateTime created;
58
        private DateTime modified;
59
        private bool savePreviewPicture;
60
        private float previewPictureRatio;
61
        private string creatorVersion;
62
        private string tag;
63
        private SaveMode saveMode;
64
        #endregion
65

66
        #region Properties
67
        /// <summary>
68
        /// Gets or sets the name of a report.
69
        /// </summary>
70
        public string Name
71
        {
72
            get { return name; }
73
            set { name = value; }
74
        }
75

76
        /// <summary>
77
        /// Gets or sets the author of a report.
78
        /// </summary>
79
        public string Author
80
        {
81
            get { return author; }
82
            set { author = value; }
83
        }
84

85
        /// <summary>
86
        /// Gets or sets the report version.
87
        /// </summary>
88
        public string Version
89
        {
90
            get { return version; }
91
            set { version = value; }
92
        }
93

94
        /// <summary>
95
        /// Gets or sets the report description.
96
        /// </summary>
97

98
        [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
99
        public string Description
100
        {
101
            get { return description; }
102
            set { description = value; }
103
        }
104

105
        /// <summary>
106
        /// Gets or sets the picture associated with a report.
107
        /// </summary>
108
        public Image Picture
109
        {
110
            get { return picture; }
111
            set { picture = value; }
112
        }
113

114
        /// <summary>
115
        /// Gets or sets the report creation date and time.
116
        /// </summary>
117
        public DateTime Created
118
        {
119
            get { return created; }
120
            set { created = value; }
121
        }
122

123
        /// <summary>
124
        /// Gets or sets a value indicating that report was modified in the designer.
125
        /// </summary>
126
        public DateTime Modified
127
        {
128
            get { return modified; }
129
            set { modified = value; }
130
        }
131

132
        /// <summary>
133
        /// Gets or sets a value that determines whether to fill the <see cref="Picture"/> property
134
        /// automatically.
135
        /// </summary>
136
        [DefaultValue(false)]
137
        public bool SavePreviewPicture
138
        {
139
            get { return savePreviewPicture; }
140
            set { savePreviewPicture = value; }
141
        }
142

143
        /// <summary>
144
        /// Gets or sets the ratio that will be used when generating a preview picture.
145
        /// </summary>
146
        [DefaultValue(0.1f)]
147
        public float PreviewPictureRatio
148
        {
149
            get { return previewPictureRatio; }
150
            set
151
            {
152
                if (value <= 0)
153
                    value = 0.05f;
154
                previewPictureRatio = value;
155
            }
156
        }
157

158
        /// <summary>
159
        /// Gets the version of FastReport that was created this report file.
160
        /// </summary>
161
        public string CreatorVersion
162
        {
163
            get { return creatorVersion; }
164
            set { creatorVersion = value; }
165
        }
166

167
        /// <summary>
168
        /// Gets or sets the Tag string object for this report file.
169
        /// </summary>
170
        [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
171
        public string Tag
172
        {
173
            get { return tag; }
174
            set { tag = value; }
175
        }
176

177
        /// <summary>
178
        /// Gets or sets SaveMode property.
179
        /// </summary>
180
        [DefaultValue(SaveMode.All)]
181
        public SaveMode SaveMode
182
        {
183
            get { return saveMode; }
184
            set { saveMode = value; }
185
        }
186

187
        private string CurrentVersion
188
        {
189
            get
190
            {
191
                AssemblyName asm = new AssemblyName(GetType().Assembly.FullName);
192
                return asm.Version.ToString();
193
            }
194
        }
195
        #endregion
196

197
        #region Public Methods
198
        /// <summary>
199
        /// Resets all properties to its default values.
200
        /// </summary>
201
        public void Clear()
202
        {
203
            name = "";
204
            author = "";
205
            version = "";
206
            description = "";
207
            tag = "";
208
            if (picture != null)
209
                picture.Dispose();
210
            picture = null;
211
            created = SystemFake.DateTime.Now;
212
            modified = SystemFake.DateTime.Now;
213
            savePreviewPicture = false;
214
            previewPictureRatio = 0.1f;
215
            creatorVersion = CurrentVersion;
216
            saveMode = SaveMode.All;
217
        }
218

219
        internal void Serialize(FRWriter writer, ReportInfo c)
220
        {
221
            if (Name != c.Name)
222
                writer.WriteStr("ReportInfo.Name", Name);
223
            if (Author != c.Author)
224
                writer.WriteStr("ReportInfo.Author", Author);
225
            if (Version != c.Version)
226
                writer.WriteStr("ReportInfo.Version", Version);
227
            if (Description != c.Description)
228
                writer.WriteStr("ReportInfo.Description", Description);
229
            if (Tag != c.Tag)
230
                writer.WriteStr("ReportInfo.Tag", Tag);
231
            if (!writer.AreEqual(Picture, c.Picture))
232
                writer.WriteValue("ReportInfo.Picture", Picture);
233
            writer.WriteValue("ReportInfo.Created", Created);
234
            modified = SystemFake.DateTime.Now;
235
            writer.WriteValue("ReportInfo.Modified", Modified);
236
            if (SavePreviewPicture != c.SavePreviewPicture)
237
                writer.WriteBool("ReportInfo.SavePreviewPicture", SavePreviewPicture);
238
            if (PreviewPictureRatio != c.PreviewPictureRatio)
239
                writer.WriteFloat("ReportInfo.PreviewPictureRatio", PreviewPictureRatio);
240
            writer.WriteStr("ReportInfo.CreatorVersion", CurrentVersion);
241
            if (SaveMode != c.SaveMode)
242
                writer.WriteValue("ReportInfo.SaveMode", SaveMode);
243
        }
244
        #endregion
245

246
        /// <summary>
247
        /// Initializes a new instance of the <see cref="ReportInfo"/> class with default settings.
248
        /// </summary>
249
        public ReportInfo()
250
        {
251
            Clear();
252
        }
253
    }
254
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.