개정판 80391351
SelectedItems 수정
Change-Id: I942d91a7d78fbf05b2fb94fd782be9877423ffed
ConvertService/ServiceBase/Markus.Service.StationController/Controls/GridViewSelectionUtilities.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.Collections.Specialized; |
|
5 |
using System.Windows; |
|
6 |
using System.Windows.Interactivity; |
|
7 |
using Telerik.Windows.Controls; |
|
8 |
|
|
9 |
namespace Markus.Service.StationController.Controls |
|
10 |
{ |
|
11 |
class GridViewSelectionUtilities : Behavior<RadGridView> |
|
12 |
{ |
|
13 |
private RadGridView Grid |
|
14 |
{ |
|
15 |
get |
|
16 |
{ |
|
17 |
return AssociatedObject as RadGridView; |
|
18 |
} |
|
19 |
} |
|
20 |
|
|
21 |
public INotifyCollectionChanged SelectedItems |
|
22 |
{ |
|
23 |
get { return (INotifyCollectionChanged)GetValue(SelectedItemsProperty); } |
|
24 |
set { SetValue(SelectedItemsProperty, value); } |
|
25 |
} |
|
26 |
|
|
27 |
// Using a DependencyProperty as the backing store for SelectedItemsProperty. This enables animation, styling, binding, etc... |
|
28 |
public static readonly DependencyProperty SelectedItemsProperty = |
|
29 |
DependencyProperty.Register("SelectedItems", typeof(INotifyCollectionChanged), typeof(GridViewSelectionUtilities), new PropertyMetadata(OnSelectedItemsPropertyChanged)); |
|
30 |
|
|
31 |
|
|
32 |
private static void OnSelectedItemsPropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) |
|
33 |
{ |
|
34 |
var collection = args.NewValue as INotifyCollectionChanged; |
|
35 |
if (collection != null) |
|
36 |
{ |
|
37 |
collection.CollectionChanged += ((GridViewSelectionUtilities)target).ContextSelectedItems_CollectionChanged; |
|
38 |
} |
|
39 |
} |
|
40 |
|
|
41 |
protected override void OnAttached() |
|
42 |
{ |
|
43 |
base.OnAttached(); |
|
44 |
|
|
45 |
Grid.SelectedItems.CollectionChanged += GridSelectedItems_CollectionChanged; |
|
46 |
} |
|
47 |
|
|
48 |
void ContextSelectedItems_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) |
|
49 |
{ |
|
50 |
UnsubscribeFromEvents(); |
|
51 |
|
|
52 |
Transfer(SelectedItems as IList, Grid.SelectedItems); |
|
53 |
|
|
54 |
SubscribeToEvents(); |
|
55 |
} |
|
56 |
|
|
57 |
void GridSelectedItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) |
|
58 |
{ |
|
59 |
UnsubscribeFromEvents(); |
|
60 |
|
|
61 |
Transfer(Grid.SelectedItems, SelectedItems as IList); |
|
62 |
|
|
63 |
SubscribeToEvents(); |
|
64 |
} |
|
65 |
|
|
66 |
private void SubscribeToEvents() |
|
67 |
{ |
|
68 |
Grid.SelectedItems.CollectionChanged += GridSelectedItems_CollectionChanged; |
|
69 |
|
|
70 |
if (SelectedItems != null) |
|
71 |
{ |
|
72 |
SelectedItems.CollectionChanged += ContextSelectedItems_CollectionChanged; |
|
73 |
} |
|
74 |
} |
|
75 |
|
|
76 |
private void UnsubscribeFromEvents() |
|
77 |
{ |
|
78 |
Grid.SelectedItems.CollectionChanged -= GridSelectedItems_CollectionChanged; |
|
79 |
|
|
80 |
if (SelectedItems != null) |
|
81 |
{ |
|
82 |
SelectedItems.CollectionChanged -= ContextSelectedItems_CollectionChanged; |
|
83 |
} |
|
84 |
} |
|
85 |
|
|
86 |
public static void Transfer(IList source, IList target) |
|
87 |
{ |
|
88 |
if (source == null || target == null) |
|
89 |
return; |
|
90 |
|
|
91 |
target.Clear(); |
|
92 |
|
|
93 |
foreach (var o in source) |
|
94 |
{ |
|
95 |
target.Add(o); |
|
96 |
} |
|
97 |
} |
|
98 |
//private static bool isSyncingSelection; |
|
99 |
//private static List<Tuple<WeakReference, List<RadGridView>>> collectionToGridViews = new List<Tuple<WeakReference, List<RadGridView>>>(); |
|
100 |
|
|
101 |
//public static readonly DependencyProperty SelectedItemsProperty = DependencyProperty.RegisterAttached( |
|
102 |
// "SelectedItems", |
|
103 |
// typeof(INotifyCollectionChanged), |
|
104 |
// typeof(GridViewSelectionUtilities), |
|
105 |
// new PropertyMetadata(null, OnSelectedItemsChanged)); |
|
106 |
|
|
107 |
//public static INotifyCollectionChanged GetSelectedItems(DependencyObject obj) |
|
108 |
//{ |
|
109 |
// return (INotifyCollectionChanged)obj.GetValue(SelectedItemsProperty); |
|
110 |
//} |
|
111 |
|
|
112 |
//public static void SetSelectedItems(DependencyObject obj, INotifyCollectionChanged value) |
|
113 |
//{ |
|
114 |
// obj.SetValue(SelectedItemsProperty, value); |
|
115 |
//} |
|
116 |
|
|
117 |
//private static void OnSelectedItemsChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) |
|
118 |
//{ |
|
119 |
// var gridView = (RadGridView)target; |
|
120 |
|
|
121 |
// var oldCollection = args.OldValue as INotifyCollectionChanged; |
|
122 |
// if (oldCollection != null) |
|
123 |
// { |
|
124 |
// gridView.SelectionChanged -= GridView_SelectionChanged; |
|
125 |
// oldCollection.CollectionChanged -= SelectedItems_CollectionChanged; |
|
126 |
// RemoveAssociation(oldCollection, gridView); |
|
127 |
// } |
|
128 |
|
|
129 |
// var newCollection = args.NewValue as INotifyCollectionChanged; |
|
130 |
// if (newCollection != null) |
|
131 |
// { |
|
132 |
// gridView.SelectionChanged += GridView_SelectionChanged; |
|
133 |
// newCollection.CollectionChanged += SelectedItems_CollectionChanged; |
|
134 |
// AddAssociation(newCollection, gridView); |
|
135 |
// OnSelectedItemsChanged(newCollection, null, (IList)newCollection); |
|
136 |
// } |
|
137 |
//} |
|
138 |
|
|
139 |
//private static void SelectedItems_CollectionChanged(object sender, NotifyCollectionChangedEventArgs args) |
|
140 |
//{ |
|
141 |
// INotifyCollectionChanged collection = (INotifyCollectionChanged)sender; |
|
142 |
// OnSelectedItemsChanged(collection, args.OldItems, args.NewItems); |
|
143 |
//} |
|
144 |
|
|
145 |
//private static void GridView_SelectionChanged(object sender, SelectionChangeEventArgs args) |
|
146 |
//{ |
|
147 |
// if (isSyncingSelection) |
|
148 |
// { |
|
149 |
// return; |
|
150 |
// } |
|
151 |
|
|
152 |
// var collection = (IList)GetSelectedItems((RadGridView)sender); |
|
153 |
// foreach (object item in args.RemovedItems) |
|
154 |
// { |
|
155 |
// collection.Remove(item); |
|
156 |
// } |
|
157 |
// foreach (object item in args.AddedItems) |
|
158 |
// { |
|
159 |
// collection.Add(item); |
|
160 |
// } |
|
161 |
//} |
|
162 |
|
|
163 |
//private static void OnSelectedItemsChanged(INotifyCollectionChanged collection, IList oldItems, IList newItems) |
|
164 |
//{ |
|
165 |
// isSyncingSelection = true; |
|
166 |
|
|
167 |
// var gridViews = GetOrCreateGridViews(collection); |
|
168 |
// foreach (var gridView in gridViews) |
|
169 |
// { |
|
170 |
// SyncSelection(gridView, oldItems, newItems); |
|
171 |
// } |
|
172 |
|
|
173 |
// isSyncingSelection = false; |
|
174 |
//} |
|
175 |
|
|
176 |
//private static void SyncSelection(RadGridView gridView, IList oldItems, IList newItems) |
|
177 |
//{ |
|
178 |
// if (oldItems != null) |
|
179 |
// { |
|
180 |
// SetItemsSelection(gridView, oldItems, false); |
|
181 |
// } |
|
182 |
|
|
183 |
// if (newItems != null) |
|
184 |
// { |
|
185 |
// SetItemsSelection(gridView, newItems, true); |
|
186 |
// } |
|
187 |
//} |
|
188 |
|
|
189 |
//private static void SetItemsSelection(RadGridView gridView, IList items, bool shouldSelect) |
|
190 |
//{ |
|
191 |
// foreach (var item in items) |
|
192 |
// { |
|
193 |
// bool contains = gridView.SelectedItems.Contains(item); |
|
194 |
// if (shouldSelect && !contains) |
|
195 |
// { |
|
196 |
// gridView.SelectedItems.Add(item); |
|
197 |
// } |
|
198 |
// else if (contains && !shouldSelect) |
|
199 |
// { |
|
200 |
// gridView.SelectedItems.Remove(item); |
|
201 |
// } |
|
202 |
// } |
|
203 |
//} |
|
204 |
|
|
205 |
//private static void AddAssociation(INotifyCollectionChanged collection, RadGridView gridView) |
|
206 |
//{ |
|
207 |
// List<RadGridView> gridViews = GetOrCreateGridViews(collection); |
|
208 |
// gridViews.Add(gridView); |
|
209 |
//} |
|
210 |
|
|
211 |
//private static void RemoveAssociation(INotifyCollectionChanged collection, RadGridView gridView) |
|
212 |
//{ |
|
213 |
// List<RadGridView> gridViews = GetOrCreateGridViews(collection); |
|
214 |
// gridViews.Remove(gridView); |
|
215 |
|
|
216 |
// if (gridViews.Count == 0) |
|
217 |
// { |
|
218 |
// CleanUp(); |
|
219 |
// } |
|
220 |
//} |
|
221 |
|
|
222 |
//private static List<RadGridView> GetOrCreateGridViews(INotifyCollectionChanged collection) |
|
223 |
//{ |
|
224 |
// for (int i = 0; i < collectionToGridViews.Count; i++) |
|
225 |
// { |
|
226 |
// var wr = collectionToGridViews[i].Item1; |
|
227 |
// if (wr.Target == collection) |
|
228 |
// { |
|
229 |
// return collectionToGridViews[i].Item2; |
|
230 |
// } |
|
231 |
// } |
|
232 |
|
|
233 |
// collectionToGridViews.Add(new Tuple<WeakReference, List<RadGridView>>(new WeakReference(collection), new List<RadGridView>())); |
|
234 |
// return collectionToGridViews[collectionToGridViews.Count - 1].Item2; |
|
235 |
//} |
|
236 |
|
|
237 |
//private static void CleanUp() |
|
238 |
//{ |
|
239 |
// for (int i = collectionToGridViews.Count - 1; i >= 0; i--) |
|
240 |
// { |
|
241 |
// bool isAlive = collectionToGridViews[i].Item1.IsAlive; |
|
242 |
// var behaviors = collectionToGridViews[i].Item2; |
|
243 |
// if (behaviors.Count == 0 || !isAlive) |
|
244 |
// { |
|
245 |
// collectionToGridViews.RemoveAt(i); |
|
246 |
// } |
|
247 |
// } |
|
248 |
//} |
|
249 |
} |
|
250 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Controls/RightAlignedLabelStrategy.cs | ||
---|---|---|
1 |
using GemBox.Spreadsheet.Charts; |
|
2 |
using System; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.Linq; |
|
5 |
using System.Text; |
|
6 |
using System.Threading.Tasks; |
|
7 |
using System.Windows; |
|
8 |
using Telerik.Charting; |
|
9 |
using Telerik.Windows.Controls; |
|
10 |
using Telerik.Windows.Controls.ChartView; |
|
11 |
using ChartSeries = Telerik.Windows.Controls.ChartView.ChartSeries; |
|
12 |
|
|
13 |
namespace Markus.Service.StationController.Controls |
|
14 |
{ |
|
15 |
public class RightAlignedLabelStrategy : Telerik.Windows.Controls.ChartView.ChartSeriesLabelStrategy |
|
16 |
{ |
|
17 |
public double Offset { get; set; } |
|
18 |
|
|
19 |
public override Telerik.Windows.Controls.ChartView.LabelStrategyOptions Options |
|
20 |
{ |
|
21 |
get { return Telerik.Windows.Controls.ChartView.LabelStrategyOptions.Arrange; } |
|
22 |
} |
|
23 |
|
|
24 |
public override Telerik.Charting.RadRect GetLabelLayoutSlot(Telerik.Charting.DataPoint point, System.Windows.FrameworkElement visual, int labelIndex) |
|
25 |
{ |
|
26 |
Size size = visual.DesiredSize; |
|
27 |
|
|
28 |
var series = (ChartSeries)point.Presenter; |
|
29 |
double top = point.LayoutSlot.Center.Y - (size.Height / 2); |
|
30 |
double left = series.Chart.PlotAreaClip.Right - size.Width + this.Offset; |
|
31 |
|
|
32 |
return new RadRect(left, top, size.Width, size.Height); |
|
33 |
} |
|
34 |
|
|
35 |
} |
|
36 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Data/ConvertCOUNT.cs | ||
---|---|---|
25 | 25 |
|
26 | 26 |
} |
27 | 27 |
|
28 |
public ConvertCOUNT(string projectNO, int count) |
|
28 |
public ConvertCOUNT(string projectNO, int count, int exception_count)
|
|
29 | 29 |
{ |
30 | 30 |
Project_NO = projectNO; |
31 | 31 |
Count = count; |
32 |
ExceptionCount = exception_count; |
|
32 | 33 |
} |
33 | 34 |
|
34 | 35 |
private string _Project_NO; |
... | ... | |
48 | 49 |
} |
49 | 50 |
} |
50 | 51 |
|
52 |
private int _ExceptionCount; |
|
53 |
public int ExceptionCount |
|
54 |
{ |
|
55 |
get |
|
56 |
{ |
|
57 |
return _ExceptionCount; |
|
58 |
} |
|
59 |
set |
|
60 |
{ |
|
61 |
if (_ExceptionCount != value) |
|
62 |
{ |
|
63 |
_ExceptionCount = value; |
|
64 |
OnPropertyChanged("ExceptionCount"); |
|
65 |
} |
|
66 |
} |
|
67 |
} |
|
68 |
|
|
51 | 69 |
private int _Count; |
52 | 70 |
public int Count |
53 | 71 |
{ |
ConvertService/ServiceBase/Markus.Service.StationController/Markus.Service.StationController.csproj | ||
---|---|---|
108 | 108 |
<Reference Include="System.Xaml"> |
109 | 109 |
<RequiredTargetFramework>4.0</RequiredTargetFramework> |
110 | 110 |
</Reference> |
111 |
<Reference Include="Telerik.Windows.Controls, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
111 |
<Reference Include="Telerik.Windows.Controls, Version=2020.1.218.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
112 | 112 |
<SpecificVersion>False</SpecificVersion> |
113 |
<HintPath>..\Telerik\Telerik.Windows.Controls.dll</HintPath>
|
|
113 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\WPF45\Telerik.Windows.Controls.dll</HintPath>
|
|
114 | 114 |
</Reference> |
115 | 115 |
<Reference Include="Telerik.Windows.Controls.Chart, Version=2020.1.218.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"> |
116 | 116 |
<SpecificVersion>False</SpecificVersion> |
117 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries.NoXaml\WPF45\Telerik.Windows.Controls.Chart.dll</HintPath>
|
|
117 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\WPF45\Telerik.Windows.Controls.Chart.dll</HintPath> |
|
118 | 118 |
</Reference> |
119 | 119 |
<Reference Include="Telerik.Windows.Controls.Data, Version=2020.1.218.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"> |
120 | 120 |
<SpecificVersion>False</SpecificVersion> |
121 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries.NoXaml\WPF45\Telerik.Windows.Controls.Data.dll</HintPath>
|
|
121 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\WPF45\Telerik.Windows.Controls.Data.dll</HintPath> |
|
122 | 122 |
</Reference> |
123 | 123 |
<Reference Include="Telerik.Windows.Controls.Docking, Version=2020.1.218.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"> |
124 | 124 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\WPF45\Telerik.Windows.Controls.Docking.dll</HintPath> |
125 |
<SpecificVersion>False</SpecificVersion> |
|
125 | 126 |
<Private>True</Private> |
126 | 127 |
</Reference> |
127 | 128 |
<Reference Include="Telerik.Windows.Controls.GridView, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"> |
... | ... | |
136 | 137 |
<SpecificVersion>False</SpecificVersion> |
137 | 138 |
<HintPath>..\Telerik\Telerik.Windows.Controls.Navigation.dll</HintPath> |
138 | 139 |
</Reference> |
139 |
<Reference Include="Telerik.Windows.Data, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
140 |
<Reference Include="Telerik.Windows.Data, Version=2020.1.218.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
140 | 141 |
<SpecificVersion>False</SpecificVersion> |
141 |
<HintPath>..\Telerik\Telerik.Windows.Data.dll</HintPath>
|
|
142 |
<HintPath>C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\WPF45\Telerik.Windows.Data.dll</HintPath>
|
|
142 | 143 |
</Reference> |
143 | 144 |
<Reference Include="Telerik.Windows.Zip, Version=2019.3.903.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"> |
144 | 145 |
<SpecificVersion>False</SpecificVersion> |
... | ... | |
162 | 163 |
<Compile Include="Controls\DatabaseFilter.xaml.cs"> |
163 | 164 |
<DependentUpon>DatabaseFilter.xaml</DependentUpon> |
164 | 165 |
</Compile> |
166 |
<Compile Include="Controls\GridViewSelectionUtilities.cs" /> |
|
165 | 167 |
<Compile Include="Controls\ITraceTextSink.cs" /> |
168 |
<Compile Include="Controls\RightAlignedLabelStrategy.cs" /> |
|
166 | 169 |
<Compile Include="Controls\RowIndexColumn.cs" /> |
167 | 170 |
<Compile Include="Controls\TraceDocument.xaml.cs"> |
168 | 171 |
<DependentUpon>TraceDocument.xaml</DependentUpon> |
ConvertService/ServiceBase/Markus.Service.StationController/MarkusModel.edmx | ||
---|---|---|
209 | 209 |
<ComplexType Name="SELECT_CONVERT_COUNT" > |
210 | 210 |
<Property Type="String" Name="PROJECT_NO" Nullable="false" /> |
211 | 211 |
<Property Type="Int32" Name="COUNT" Nullable="false" /> |
212 |
<Property Type="Int32" Name="EXCEPTION_COUNT" Nullable="false" /> |
|
212 | 213 |
</ComplexType> |
213 | 214 |
</Schema> |
214 | 215 |
</edmx:ConceptualModels> |
ConvertService/ServiceBase/Markus.Service.StationController/SELECT_CONVERT_COUNT.cs | ||
---|---|---|
15 | 15 |
{ |
16 | 16 |
public string PROJECT_NO { get; set; } |
17 | 17 |
public int COUNT { get; set; } |
18 |
public int EXCEPTION_COUNT { get; set; } |
|
18 | 19 |
} |
19 | 20 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/StationController.ini | ||
---|---|---|
15 | 15 |
|
16 | 16 |
|
17 | 17 |
#효성 복사본 |
18 |
MarkusDataBaseConnectionString = w0RfRwPwWVzkhKYSFkzqaccCbanjnTfSeig1IFc1IQ2MDThANWCNLmZqA6e2emQZqdM0l2Hsk1Ns/1Bfk6Vy+23gcbZlEDSBfSz7+eQaliiW9b2Wes1FDJ/C1Ho+35kTHGBbQk0tlIA0SWQHbR0KFo8TH5AbCyrLkjI87W6iXJVBpfI1QmTK0guIlTPnEEtCzXnXtgY9e8IHVnRIqT1PDq7ennJLPbB3f5FQ0Q1ry+Q= |
|
18 |
#MarkusDataBaseConnectionString = w0RfRwPwWVzkhKYSFkzqaccCbanjnTfSeig1IFc1IQ2MDThANWCNLmZqA6e2emQZqdM0l2Hsk1Ns/1Bfk6Vy+23gcbZlEDSBfSz7+eQaliiW9b2Wes1FDJ/C1Ho+35kTHGBbQk0tlIA0SWQHbR0KFo8TH5AbCyrLkjI87W6iXJVBpfI1QmTK0guIlTPnEEtCzXnXtgY9e8IHVnRIqT1PDq7ennJLPbB3f5FQ0Q1ry+Q=
|
|
19 | 19 |
|
20 | 20 |
#Doftech 개발 |
21 |
#MarkusDataBaseConnectionString = ScTg8MgTdbARVQXhb1K9YI3/6emjnMuODvTWZ+UnUZQ8z/Gv4TksSLRn84HTZiC5q/RkHKkgbsc6TL5EdTsnSwK0ngDgXD0P0yPKObgtPfk0MX0wmEG95SDQzGzbT6sH73Lkzde0AeChQWveAWZGvACoQISpdUwNj96c2AQuTqaUHwSkCwSI84HZCYugjlg3gAF1FpPggKCIeu4r/qFi0w==
|
|
21 |
MarkusDataBaseConnectionString = ScTg8MgTdbARVQXhb1K9YI3/6emjnMuODvTWZ+UnUZQ8z/Gv4TksSLRn84HTZiC5q/RkHKkgbsc6TL5EdTsnSwK0ngDgXD0P0yPKObgtPfk0MX0wmEG95SDQzGzbT6sH73Lkzde0AeChQWveAWZGvACoQISpdUwNj96c2AQuTqaUHwSkCwSI84HZCYugjlg3gAF1FpPggKCIeu4r/qFi0w== |
|
22 | 22 |
|
23 | 23 |
# remote test MARKUS_V3 |
24 | 24 |
#MarkusDataBaseConnectionString = ScTg8MgTdbARVQXhb1K9YI3/6emjnMuODvTWZ+UnUZQ8z/Gv4TksSLRn84HTZiC5q/RkHKkgbsc6TL5EdTsnSwK0ngDgXD0P0yPKObgtPfk0MX0wmEG95SDQzGzbT6sH73Lkzde0AeChQWveAWZGvACoQISpdUwNj96c2AQuTqaUHwSkCwSI84HZCYugjlg3gAF1FpPggKCIeu4r/qFi0w== |
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/DashBoardViewModel.cs | ||
---|---|---|
13 | 13 |
using System.Windows; |
14 | 14 |
using System.Windows.Threading; |
15 | 15 |
using ConverCOUNT = Markus.Service.StationController.Data.ConvertCOUNT; |
16 |
using System.Collections.ObjectModel; |
|
16 |
|
|
17 | 17 |
|
18 | 18 |
namespace Markus.Service.StationController.ViewModel |
19 | 19 |
{ |
20 |
class DashBoardViewModel : Mvvm.ToolKit.ViewModelBase |
|
20 |
class DashBoardViewModel : Mvvm.ToolKit.ViewModelBase
|
|
21 | 21 |
{ |
22 | 22 |
#region Constructor |
23 | 23 |
|
... | ... | |
92 | 92 |
} |
93 | 93 |
} |
94 | 94 |
|
95 |
private ObservableCollection<ConvertCOUNT> _ExceptionCount; |
|
96 |
public ObservableCollection<ConvertCOUNT> ExceptionCount |
|
97 |
{ |
|
98 |
get |
|
99 |
{ |
|
100 |
if (_ExceptionCount == null) |
|
101 |
{ |
|
102 |
_ExceptionCount = new ObservableCollection<ConvertCOUNT>(); |
|
103 |
} |
|
104 |
return _ExceptionCount; |
|
105 |
} |
|
106 |
set |
|
107 |
{ |
|
108 |
_ExceptionCount = value; |
|
109 |
OnPropertyChanged(() => ExceptionCount); |
|
110 |
} |
|
111 |
} |
|
112 |
|
|
113 |
|
|
114 |
private ObservableCollection<ConvertCOUNT> _ConvertCount; |
|
115 |
public ObservableCollection<ConvertCOUNT> ConvertCount |
|
95 |
private List<ConvertCOUNT> _DashBoard; |
|
96 |
public List<ConvertCOUNT> DashBoard |
|
116 | 97 |
{ |
117 | 98 |
get |
118 | 99 |
{ |
119 |
if (_ConvertCount == null)
|
|
100 |
if (_DashBoard == null)
|
|
120 | 101 |
{ |
121 |
_ConvertCount = new ObservableCollection<ConvertCOUNT>();
|
|
102 |
_DashBoard = new List<ConvertCOUNT>();
|
|
122 | 103 |
} |
123 |
return _ConvertCount;
|
|
104 |
return _DashBoard;
|
|
124 | 105 |
} |
125 | 106 |
set |
126 | 107 |
{ |
127 |
_ConvertCount = value;
|
|
128 |
OnPropertyChanged(() => ConvertCount);
|
|
108 |
_DashBoard = value;
|
|
109 |
OnPropertyChanged(() => DashBoard);
|
|
129 | 110 |
} |
130 | 111 |
} |
131 | 112 |
|
... | ... | |
236 | 217 |
/// </summary> |
237 | 218 |
private void DataSelect() |
238 | 219 |
{ |
239 |
/// combobox 에서 선택된 items |
|
220 |
if (DashBoard == null) |
|
221 |
{ |
|
222 |
DashBoard = new List<ConverCOUNT>(); |
|
223 |
} |
|
224 |
|
|
240 | 225 |
if (SelectedStatus != null) |
241 | 226 |
{ |
242 |
DataSelect(new[] { (ConvertPDF.StatusCodeType)(SelectedStatus.Value) } );
|
|
227 |
DataSelect(new[] { (ConvertPDF.StatusCodeType)(SelectedStatus.Value) }, DashBoard);
|
|
243 | 228 |
} |
244 | 229 |
|
245 | 230 |
} |
246 | 231 |
|
247 |
private void DataSelect(IEnumerable<ConvertPDF.StatusCodeType> statusCodeTypeList) |
|
232 |
private void DataSelect(IEnumerable<ConvertPDF.StatusCodeType> statusCodeTypeList, List<ConverCOUNT> collection)
|
|
248 | 233 |
{ |
249 | 234 |
try |
250 | 235 |
{ |
... | ... | |
270 | 255 |
|
271 | 256 |
var items = entities.SELECT_CONVERT_COUNT(_status, Start_CreateTime, Finish_CreateTime).ToList(); |
272 | 257 |
|
273 |
ObservableCollection<ConverCOUNT> Listitems = new ObservableCollection<ConverCOUNT>();
|
|
258 |
List<ConverCOUNT> Listitems = new List<ConverCOUNT>();
|
|
274 | 259 |
|
275 |
ExceptionCount.Clear(); |
|
276 |
ConvertCount.Clear(); |
|
277 |
for (int i=0; i<items.Count; i++) |
|
260 |
for (int i = 0; i < items.Count; i++) |
|
278 | 261 |
{ |
279 |
if (i < items.Count / 2) |
|
262 |
ConverCOUNT AddItem = new ConverCOUNT(items[i].PROJECT_NO, items[i].COUNT, items[i].EXCEPTION_COUNT); |
|
263 |
Listitems.Add(AddItem); |
|
264 |
} |
|
265 |
|
|
266 |
if (collection.Count() == 0) |
|
267 |
{ |
|
268 |
if (statusCodeTypeList.Count() == 1) |
|
269 |
{ |
|
270 |
foreach (var x in Listitems) |
|
271 |
{ |
|
272 |
collection.Add(x);//observationcollection add하면 오류 & telerik chart버전 문제 |
|
273 |
} |
|
274 |
} |
|
275 |
} |
|
276 |
else |
|
277 |
{ |
|
278 |
|
|
279 |
//세미 업데이트 |
|
280 |
foreach (var newitem in Listitems) |
|
280 | 281 |
{ |
281 |
ConverCOUNT AddItem = new ConverCOUNT(items[i].PROJECT_NO, items[i].COUNT);
|
|
282 |
ExceptionCount.Add(AddItem);
|
|
282 |
collection.UpdateWhere(changeitem =>
|
|
283 |
ConvertItemEx.ChangeValues(changeitem, newitem), x => x.Project_NO == newitem.Project_NO && x.Count == newitem.Count);
|
|
283 | 284 |
} |
284 |
else |
|
285 |
|
|
286 |
|
|
287 |
if (statusCodeTypeList.Count() == 1) |
|
288 |
{ |
|
289 |
|
|
290 |
//삭제 |
|
291 |
for (int i = collection.Count() - 1; i >= 0; --i) |
|
292 |
{ |
|
293 |
var item = collection[i]; |
|
294 |
|
|
295 |
if (Listitems.Count(x => x.Project_NO == item.Project_NO && x.Count == item.Count) == 0) |
|
296 |
{ |
|
297 |
collection.RemoveAt(i); |
|
298 |
} |
|
299 |
} |
|
300 |
} |
|
301 |
|
|
302 |
if (statusCodeTypeList.Count() == 1) |
|
285 | 303 |
{ |
286 |
ConverCOUNT AddItem = new ConverCOUNT(items[i].PROJECT_NO, items[i].COUNT); |
|
287 |
ConvertCount.Add(AddItem); |
|
304 |
//추가 convert 후 추가됨 |
|
305 |
foreach (var item in Listitems) |
|
306 |
{ |
|
307 |
if (collection.Count(x => x.Project_NO == item.Project_NO && x.Count == item.Count) == 0) |
|
308 |
{ |
|
309 |
for (int i = 0; i < 200; i++) |
|
310 |
{ |
|
311 |
collection.Add(item); |
|
312 |
break; |
|
313 |
} |
|
314 |
} |
|
315 |
} |
|
288 | 316 |
} |
289 | 317 |
} |
290 | 318 |
} |
291 |
|
|
292 | 319 |
} |
293 | 320 |
catch (Exception ex) |
294 | 321 |
{ |
ConvertService/ServiceBase/Markus.Service.StationController/ViewModel/DataBaseItemsModel.cs | ||
---|---|---|
24 | 24 |
using Newtonsoft.Json; |
25 | 25 |
//using Markus.Service.Interface; |
26 | 26 |
using static Markus.Service.StationController.Data.ConvertPDF; |
27 |
using System.Collections.ObjectModel; |
|
27 | 28 |
|
28 | 29 |
namespace Markus.Service.StationController.ViewModel |
29 | 30 |
{ |
... | ... | |
182 | 183 |
private ConvertPDF _SelectFilterConvert; |
183 | 184 |
public ConvertPDF SelectFilterConvert |
184 | 185 |
{ |
185 |
get => _SelectFilterConvert; |
|
186 |
get |
|
187 |
{ |
|
188 |
return _SelectFilterConvert; |
|
189 |
} |
|
186 | 190 |
set |
187 | 191 |
{ |
188 | 192 |
_SelectFilterConvert = value; |
... | ... | |
190 | 194 |
} |
191 | 195 |
} |
192 | 196 |
|
197 |
|
|
198 |
private ObservableCollection<ConvertPDF> _SelectFilterConvertList; |
|
199 |
public ObservableCollection<ConvertPDF> SelectFilterConvertList |
|
200 |
{ |
|
201 |
get |
|
202 |
{ |
|
203 |
if (_SelectFilterConvertList == null) |
|
204 |
{ |
|
205 |
_SelectFilterConvertList = new ObservableCollection<ConvertPDF>(); |
|
206 |
} |
|
207 |
return _SelectFilterConvertList; |
|
208 |
} |
|
209 |
set |
|
210 |
{ |
|
211 |
_SelectFilterConvertList = value; |
|
212 |
OnPropertyChanged(() => SelectFilterConvertList); |
|
213 |
} |
|
214 |
} |
|
215 |
|
|
216 |
|
|
217 |
|
|
193 | 218 |
private ConvertPDF _SelectRealConvert; |
194 | 219 |
public ConvertPDF SelectRealConvert |
195 | 220 |
{ |
... | ... | |
1023 | 1048 |
|
1024 | 1049 |
private void DataConvert(object obj) |
1025 | 1050 |
{ |
1026 |
if (SelectFilterConvert == null && SelectRealConvert == null)
|
|
1051 |
if (SelectFilterConvertList == null)
|
|
1027 | 1052 |
{ |
1028 | 1053 |
MessageBox.Show("왼쪽 버튼 클릭 후 Converter 해주세요!"); |
1029 | 1054 |
} |
... | ... | |
1031 | 1056 |
{ |
1032 | 1057 |
var resultRealConvert = 0; |
1033 | 1058 |
var resultFiltertConvert = 0; |
1034 |
|
|
1035 | 1059 |
if (SelectRealConvert != null) |
1036 | 1060 |
{ |
1037 | 1061 |
resultRealConvert = SetCleanUpItem(SelectRealConvert);//ConvertDataBase |
1038 | 1062 |
} |
1039 |
else if (SelectFilterConvert != null)
|
|
1063 |
if (SelectFilterConvertList != null)
|
|
1040 | 1064 |
{ |
1041 |
resultFiltertConvert = SetCleanUpItem(SelectFilterConvert); |
|
1065 |
foreach (var SelectFilterConvert in SelectFilterConvertList) |
|
1066 |
{ |
|
1067 |
resultFiltertConvert = SetCleanUpItem(SelectFilterConvert); |
|
1068 |
} |
|
1042 | 1069 |
} |
1043 | 1070 |
System.Diagnostics.Debug.WriteLine(resultRealConvert + " " + resultFiltertConvert); |
1044 | 1071 |
|
1045 | 1072 |
using (markusEntities entities = new markusEntities(App.MarkusDataBaseConnecitonString)) |
1046 | 1073 |
{ |
1047 |
|
|
1048 |
var items = entities.SELECT_CONVERT_ITEM(SelectFilterConvert.ConvertID, null, null, null, 1, null, null, null, null, null, null, null, null, null, null, null, null, null); //프로시저 이용 |
|
1074 |
foreach (var SelectFilterConvert in SelectFilterConvertList) |
|
1075 |
{ |
|
1076 |
var items = entities.SELECT_CONVERT_ITEM(SelectFilterConvert.ConvertID, null, null, null, 1, null, null, null, null, null, null, null, null, null, null, null, null, null); //프로시저 이용 |
|
1049 | 1077 |
|
1050 | 1078 |
|
1051 |
foreach (var x in items) |
|
1052 |
{ |
|
1053 |
var MarkusLink = "kcom://" + CreateMarkusParam(x.PROJECT_NO, x.DOCUMENT_ID, "doftech"); |
|
1079 |
foreach (var x in items)
|
|
1080 |
{
|
|
1081 |
var MarkusLink = "kcom://" + CreateMarkusParam(x.PROJECT_NO, x.DOCUMENT_ID, "doftech");
|
|
1054 | 1082 |
|
1055 |
ConvertPDF AddItem = new ConvertPDF(x.SERVICE_ID, x.ID, x.PROJECT_NO, x.STATUS, x.DOCUMENT_ID, x.DOCUMENT_NAME, x.DOCUMENT_NO, x.DOCUMENT_URL, x.REVISION, x.CURRENT_PAGE, x.TOTAL_PAGE, x.EXCEPTION, x.GROUP_NO, x.CREATE_DATETIME, x.START_DATETIME, x.END_DATETIME |
|
1056 |
, x.DOCUMENT_URL, x.CONVERT_PATH, MarkusLink, x.RECONVERTER); |
|
1083 |
ConvertPDF AddItem = new ConvertPDF(x.SERVICE_ID, x.ID, x.PROJECT_NO, x.STATUS, x.DOCUMENT_ID, x.DOCUMENT_NAME, x.DOCUMENT_NO, x.DOCUMENT_URL, x.REVISION, x.CURRENT_PAGE, x.TOTAL_PAGE, x.EXCEPTION, x.GROUP_NO, x.CREATE_DATETIME, x.START_DATETIME, x.END_DATETIME
|
|
1084 |
, x.DOCUMENT_URL, x.CONVERT_PATH, MarkusLink, x.RECONVERTER);
|
|
1057 | 1085 |
|
1058 |
RealConvertSource.Add(AddItem); |
|
1086 |
RealConvertSource.Add(AddItem);
|
|
1059 | 1087 |
|
1060 |
if (RealConvertSource.Count() == 1) |
|
1061 |
{ |
|
1062 |
ConvertShow = true; |
|
1088 |
if (RealConvertSource.Count() == 1) |
|
1089 |
{ |
|
1090 |
ConvertShow = true; |
|
1091 |
} |
|
1063 | 1092 |
} |
1064 | 1093 |
} |
1065 | 1094 |
|
1066 | 1095 |
} |
1096 |
|
|
1067 | 1097 |
} |
1068 | 1098 |
} |
1069 | 1099 |
|
... | ... | |
1122 | 1152 |
|
1123 | 1153 |
private void DataValidate(object obj) |
1124 | 1154 |
{ |
1125 |
|
|
1126 |
bool result = false; |
|
1127 |
|
|
1128 |
WebRequest webRequest = WebRequest.Create(SelectFilterConvert.OriginfilePath); |
|
1129 |
webRequest.Timeout = 1200; // miliseconds |
|
1130 |
webRequest.Method = "HEAD"; |
|
1131 |
|
|
1132 |
HttpWebResponse response = null; |
|
1133 |
|
|
1134 |
try |
|
1135 |
{ |
|
1136 |
response = (HttpWebResponse)webRequest.GetResponse(); |
|
1137 |
result = true; |
|
1138 |
} |
|
1139 |
catch (WebException webException) |
|
1155 |
if (SelectFilterConvertList.Count() > 1) |
|
1140 | 1156 |
{ |
1141 |
MessageBox.Show(SelectFilterConvert.FileName + " doesn't exist: " + webException.Message); |
|
1142 |
result = true; |
|
1157 |
MessageBox.Show("하나만 클릭해 주세요"); |
|
1143 | 1158 |
} |
1144 |
finally
|
|
1159 |
else
|
|
1145 | 1160 |
{ |
1146 |
if (response != null) |
|
1161 |
bool result = false; |
|
1162 |
WebRequest webRequest = WebRequest.Create(SelectFilterConvertList[0].OriginfilePath); |
|
1163 |
webRequest.Timeout = 1200; // miliseconds |
|
1164 |
webRequest.Method = "HEAD"; |
|
1165 |
|
|
1166 |
HttpWebResponse response = null; |
|
1167 |
|
|
1168 |
try |
|
1147 | 1169 |
{ |
1148 |
response.Close(); |
|
1170 |
response = (HttpWebResponse)webRequest.GetResponse(); |
|
1171 |
result = true; |
|
1172 |
} |
|
1173 |
catch (WebException webException) |
|
1174 |
{ |
|
1175 |
MessageBox.Show(SelectFilterConvert.FileName + " doesn't exist: " + webException.Message); |
|
1176 |
result = true; |
|
1177 |
} |
|
1178 |
finally |
|
1179 |
{ |
|
1180 |
if (response != null) |
|
1181 |
{ |
|
1182 |
response.Close(); |
|
1183 |
} |
|
1184 |
} |
|
1185 |
if (result == true) |
|
1186 |
{ |
|
1187 |
MessageBox.Show("File exists"); |
|
1149 | 1188 |
} |
1150 | 1189 |
} |
1151 |
if (result == true) |
|
1152 |
{ |
|
1153 |
MessageBox.Show("File exists"); |
|
1154 |
} |
|
1190 |
|
|
1155 | 1191 |
} |
1156 | 1192 |
|
1157 | 1193 |
#endregion |
... | ... | |
1168 | 1204 |
|
1169 | 1205 |
#region MarkusLink |
1170 | 1206 |
|
1171 |
private void MarkusLink(object obj)///여기서 부터
|
|
1207 |
private void MarkusLink(object obj) |
|
1172 | 1208 |
{ |
1173 | 1209 |
if (obj is ConvertPDF) |
1174 | 1210 |
{ |
1211 |
|
|
1175 | 1212 |
if (obj != null) |
1176 | 1213 |
{ |
1177 | 1214 |
var convertitem = obj as ConvertPDF; |
1178 | 1215 |
|
1179 |
SelectFilterConvert = convertitem; |
|
1216 |
SelectFilterConvertList[0] = convertitem;
|
|
1180 | 1217 |
|
1181 | 1218 |
SelectRealConvert = convertitem; |
1182 | 1219 |
|
... | ... | |
1186 | 1223 |
|
1187 | 1224 |
Process.Start(startInfo); |
1188 | 1225 |
} |
1226 |
|
|
1189 | 1227 |
} |
1190 | 1228 |
} |
1191 | 1229 |
|
... | ... | |
1195 | 1233 |
|
1196 | 1234 |
private void DataDelete(object obj) |
1197 | 1235 |
{ |
1198 |
RadWindow.Alert("do you want to delete it??", this.OnClosed);
|
|
1236 |
RadWindow.Alert("Do you want to delete it??", this.OnClosed);
|
|
1199 | 1237 |
} |
1200 | 1238 |
|
1201 | 1239 |
private void OnClosed(object sender, WindowClosedEventArgs e) |
... | ... | |
1205 | 1243 |
var result = e.DialogResult; |
1206 | 1244 |
if (result == true) |
1207 | 1245 |
{ |
1208 |
if (SelectRealConvert != null)
|
|
1246 |
if (SelectFilterConvertList.Count() > 1)
|
|
1209 | 1247 |
{ |
1210 |
entities.SELECT_CONVERT_DELETE(SelectRealConvert.ConvertID);
|
|
1248 |
MessageBox.Show("하나만 클릭해 주세요!");
|
|
1211 | 1249 |
} |
1212 |
if (SelectFilterConvert != null)
|
|
1250 |
else
|
|
1213 | 1251 |
{ |
1214 |
entities.SELECT_CONVERT_DELETE(SelectFilterConvert.ConvertID); |
|
1252 |
if (SelectRealConvert != null) |
|
1253 |
{ |
|
1254 |
entities.SELECT_CONVERT_DELETE(SelectRealConvert.ConvertID); |
|
1255 |
} |
|
1256 |
if (SelectFilterConvertList != null) |
|
1257 |
{ |
|
1258 |
entities.SELECT_CONVERT_DELETE(SelectFilterConvertList[0].ConvertID); |
|
1259 |
} |
|
1215 | 1260 |
} |
1216 | 1261 |
} |
1217 | 1262 |
} |
ConvertService/ServiceBase/Markus.Service.StationController/Views/DashBoard.xaml | ||
---|---|---|
10 | 10 |
xmlns:local="clr-namespace:Markus.Service.StationController.Views" x:Class="Markus.Service.StationController.Views.DashBoard" |
11 | 11 |
mc:Ignorable="d" Background="White" DataContext="{DynamicResource DashBoardViewModel}" |
12 | 12 |
d:DesignHeight="450" d:DesignWidth="1000"> |
13 |
<!--xmlns:sys="clr-namespace:System;assembly=mscorlib"--> |
|
14 | 13 |
<UserControl.Resources> |
15 | 14 |
<SolidColorBrush x:Key="ActualBrush" Color="#FFCCCCCC" /> |
16 | 15 |
<SolidColorBrush x:Key="TargetBrush" Color="#FF1B9DDE" /> |
... | ... | |
26 | 25 |
</telerik:ChartPalette.GlobalEntries> |
27 | 26 |
</telerik:ChartPalette> |
28 | 27 |
<Style x:Key="TransparentTickStyle" TargetType="Rectangle" /> |
29 |
|
|
30 |
<SolidColorBrush x:Key="ChartBrush1" Color="#FF8EC441" /> |
|
31 |
<SolidColorBrush x:Key="ChartBrush2" Color="#FF1B9DDE" /> |
|
32 |
<SolidColorBrush x:Key="ChartBrush3" Color="#FFF59700" /> |
|
33 |
<SolidColorBrush x:Key="ChartBrush4" Color="#FFD4DF32" /> |
|
34 |
|
|
35 |
<Style x:Key="TextBlockLegendStyle" TargetType="TextBlock"> |
|
36 |
<Setter Property="FontFamily" Value="Segoe UI" /> |
|
37 |
<Setter Property="FontSize" Value="12" /> |
|
38 |
<Setter Property="Foreground" Value="#FF767676" /> |
|
39 |
<Setter Property="Margin" Value="4,2,4,2" /> |
|
40 |
</Style> |
|
41 |
<Style TargetType="telerik:RadLegend" > <!--BasedOn="{StaticResource RadLegendStyle}">--> |
|
42 |
<Setter Property="Margin" Value="10,6,10,0" /> |
|
43 |
<Setter Property="FontFamily" Value="Segoe UI" /> |
|
44 |
<Setter Property="FontSize" Value="11" /> |
|
45 |
<Setter Property="Foreground" Value="#FF767676" /> |
|
46 |
<Setter Property="MinWidth" Value="75"/> |
|
47 |
</Style> |
|
48 |
|
|
49 |
<ControlTemplate x:Key="GridViewCellTemplate" TargetType="telerik:GridViewCell"> |
|
50 |
<ContentPresenter x:Name="PART_ContentPresenter" |
|
51 |
Margin="{TemplateBinding Padding}" |
|
52 |
Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" |
|
53 |
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" |
|
54 |
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/> |
|
55 |
</ControlTemplate> |
|
56 |
|
|
57 |
<Style TargetType="telerik:GridViewCell" > |
|
58 |
<Setter Property="Template" Value="{StaticResource GridViewCellTemplate}"/> |
|
59 |
</Style> |
|
60 |
|
|
61 |
|
|
62 |
|
|
63 |
<RectangleGeometry x:Key="LineSeriesLegendGeometry" Rect="0 5 12 2" /> |
|
64 | 28 |
<RectangleGeometry x:Key="SolidRectLegendGeometry" Rect="0 0 12 12" /> |
65 |
|
|
29 |
<RectangleGeometry x:Key="LineSeriesLegendGeometry" Rect="0 5 12 2" /> |
|
66 | 30 |
<VM:DashBoardViewModel x:Key="DashBoardViewModel"/> |
31 |
<controls:RightAlignedLabelStrategy x:Key="RightAlignedLabelStrategy"/> |
|
67 | 32 |
</UserControl.Resources> |
68 | 33 |
<i:Interaction.Triggers> |
69 | 34 |
<i:EventTrigger EventName="Loaded"> |
... | ... | |
100 | 65 |
HorizontalAlignment="Stretch" |
101 | 66 |
SelectedValue="{Binding SelectedCreateTimeBegin ,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged }" > |
102 | 67 |
</telerik:RadDateTimePicker> |
103 |
<!--<DatePicker Text="{Binding OpenStartTime, StringFormat='yy.mm.dd HH:mm:ss' ,RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" SelectedDate="{Binding SelectedOpenTime}" Width="124" SelectedDateFormat="Long" Margin="0,-1,0,1"/>--> |
|
104 | 68 |
<TextBlock Text=" ~ " VerticalAlignment="Center"/> |
105 | 69 |
<telerik:RadDateTimePicker x:Name="datePicker2" Width="200" |
106 | 70 |
InputMode="DateTimePicker" HorizontalAlignment="Stretch" |
... | ... | |
109 | 73 |
Margin="0,1"> |
110 | 74 |
</telerik:RadDateTimePicker> |
111 | 75 |
<Button Content="Clear" Margin="5" Width="50" Height="20" HorizontalAlignment="Left" Command="{Binding RemoveCreateTimeFilterCommand, Mode=OneWay}"/> |
112 |
|
|
113 |
|
|
114 | 76 |
</StackPanel> |
115 | 77 |
</StackPanel> |
116 |
<StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0" > |
|
117 |
<TextBlock Text="Convert PDF" HorizontalAlignment="Stretch" FontSize="12" FontFamily="Segoe UI" /> |
|
118 |
<Grid x:Name="LayoutRoot"> |
|
119 |
<Grid.ColumnDefinitions> |
|
120 |
<ColumnDefinition Width="*" /> |
|
121 |
<ColumnDefinition Width="Auto" /> |
|
122 |
</Grid.ColumnDefinitions> |
|
123 |
<telerik:RadCartesianChart x:Name="chart" Palette="{StaticResource ActualTargetChartPalette}" ClipToBounds="False" > |
|
124 |
<telerik:RadCartesianChart.VerticalAxis> |
|
125 |
<telerik:CategoricalAxis IsInverse="True" |
|
78 |
<Grid Grid.Row="2"> |
|
79 |
<Grid.ColumnDefinitions> |
|
80 |
<ColumnDefinition Width="*" /> |
|
81 |
<ColumnDefinition Width="Auto" /> |
|
82 |
</Grid.ColumnDefinitions> |
|
83 |
<telerik:RadCartesianChart x:Name="chart" Palette="{StaticResource ActualTargetChartPalette}" MinHeight="90" MaxHeight="90" Margin="10 0 20 0" ClipToBounds="False"> |
|
84 |
<telerik:RadCartesianChart.VerticalAxis> |
|
85 |
<telerik:CategoricalAxis IsInverse="True" |
|
126 | 86 |
MajorTickStyle="{StaticResource TransparentTickStyle}" |
127 | 87 |
LineStroke="Transparent" |
128 | 88 |
LabelStyle="{StaticResource TextBlockCountryStyle}" /> |
129 |
</telerik:RadCartesianChart.VerticalAxis>
|
|
130 |
<telerik:RadCartesianChart.HorizontalAxis>
|
|
131 |
<telerik:LinearAxis ShowLabels="True" ElementBrush="Transparent" />
|
|
132 |
</telerik:RadCartesianChart.HorizontalAxis>
|
|
133 |
<telerik:RadCartesianChart.Series>
|
|
134 |
<telerik:BarSeries CategoryBinding="{Binding Project_NO}"
|
|
135 |
ValueBinding="{Binding Count}"
|
|
136 |
ItemsSource="{Binding ExceptionCount, Mode=TwoWay}"
|
|
89 |
</telerik:RadCartesianChart.VerticalAxis> |
|
90 |
<telerik:RadCartesianChart.HorizontalAxis> |
|
91 |
<telerik:LinearAxis ShowLabels="False" ElementBrush="Transparent" />
|
|
92 |
</telerik:RadCartesianChart.HorizontalAxis> |
|
93 |
<telerik:RadCartesianChart.Series> |
|
94 |
<telerik:BarSeries CategoryBinding="Project_NO"
|
|
95 |
ValueBinding="Count"
|
|
96 |
ItemsSource="{Binding DashBoard, UpdateSourceTrigger=PropertyChanged}"
|
|
137 | 97 |
CombineMode="None" |
138 | 98 |
ShowLabels="True" |
139 |
ClipToPlotArea="False"> |
|
140 |
<!--sdk:ChartAnimationUtilities.CartesianAnimation="Rise">--> |
|
141 |
<telerik:BarSeries.PointTemplate> |
|
142 |
<DataTemplate> |
|
143 |
<Rectangle Fill="{StaticResource ActualBrush}" Margin="0 0 0 3" /> |
|
144 |
</DataTemplate> |
|
145 |
</telerik:BarSeries.PointTemplate> |
|
146 |
<telerik:BarSeries.LegendSettings> |
|
147 |
<telerik:SeriesLegendSettings Title="Count" MarkerGeometry="{StaticResource SolidRectLegendGeometry}" /> |
|
148 |
</telerik:BarSeries.LegendSettings> |
|
149 |
<telerik:BarSeries.LabelDefinitions> |
|
150 |
<telerik:ChartSeriesLabelDefinition Binding="Count" Format="{}{0:F1}" DefaultVisualStyle="{StaticResource TextBlockCountryStyle}" /> |
|
151 |
<!--Strategy="{StaticResource RightAlignedLabelStrategy}" />--> |
|
152 |
</telerik:BarSeries.LabelDefinitions> |
|
153 |
</telerik:BarSeries> |
|
154 |
<telerik:BarSeries CategoryBinding="{Binding Project_NO}" |
|
155 |
ValueBinding="{Binding Count}" |
|
156 |
ItemsSource="{Binding ConvertCount, Mode=TwoWay}" |
|
99 |
ClipToPlotArea="False" |
|
100 |
> |
|
101 |
<telerik:BarSeries.PointTemplate> |
|
102 |
<DataTemplate> |
|
103 |
<Rectangle Fill="{StaticResource ActualBrush}" Margin="0 0 0 3" /> |
|
104 |
</DataTemplate> |
|
105 |
</telerik:BarSeries.PointTemplate> |
|
106 |
<telerik:BarSeries.LegendSettings> |
|
107 |
<telerik:SeriesLegendSettings Title="Count" MarkerGeometry="{StaticResource SolidRectLegendGeometry}" /> |
|
108 |
</telerik:BarSeries.LegendSettings> |
|
109 |
<telerik:BarSeries.LabelDefinitions> |
|
110 |
<telerik:ChartSeriesLabelDefinition Binding="Count" Format="{}{0:F1}" DefaultVisualStyle="{StaticResource TextBlockCountryStyle}" Strategy="{StaticResource RightAlignedLabelStrategy}" /> |
|
111 |
</telerik:BarSeries.LabelDefinitions> |
|
112 |
</telerik:BarSeries> |
|
113 |
<telerik:BarSeries CategoryBinding="Project_NO" |
|
114 |
ValueBinding="ExceptionCount" |
|
115 |
ItemsSource="{Binding DashBoard, UpdateSourceTrigger=PropertyChanged}" |
|
157 | 116 |
CombineMode="None"> |
158 |
<telerik:BarSeries.PointTemplate> |
|
159 |
<DataTemplate> |
|
160 |
<Rectangle Fill="{StaticResource TargetBrush}" Height="2" VerticalAlignment="Bottom" /> |
|
161 |
</DataTemplate> |
|
162 |
</telerik:BarSeries.PointTemplate> |
|
163 |
<telerik:BarSeries.LegendSettings> |
|
164 |
<telerik:SeriesLegendSettings Title="target" MarkerGeometry="{StaticResource LineSeriesLegendGeometry}" /> |
|
165 |
</telerik:BarSeries.LegendSettings> |
|
117 |
<telerik:BarSeries.PointTemplate> |
|
118 |
<DataTemplate> |
|
119 |
<Rectangle Fill="{StaticResource TargetBrush}" Height="2" VerticalAlignment="Bottom" /> |
|
120 |
</DataTemplate> |
|
121 |
</telerik:BarSeries.PointTemplate> |
|
122 |
<telerik:BarSeries.LegendSettings> |
|
123 |
<telerik:SeriesLegendSettings Title="ExceptionCountrget" MarkerGeometry="{StaticResource LineSeriesLegendGeometry}" /> |
|
124 |
</telerik:BarSeries.LegendSettings> |
|
125 |
</telerik:BarSeries> |
|
126 |
</telerik:RadCartesianChart.Series> |
|
127 |
</telerik:RadCartesianChart> |
|
128 |
|
|
129 |
<telerik:RadLegend Grid.Column="1" Grid.Row="1" Margin="24,4,0,0" MinWidth="76" Items="{Binding LegendItems, ElementName=chart}" /> |
|
130 |
</Grid> |
|
131 |
|
|
132 |
|
|
133 |
<!--<telerik:RadCartesianChart x:Name="chart"> |
|
134 |
<telerik:RadCartesianChart.HorizontalAxis> |
|
135 |
<telerik:LinearAxis/> |
|
136 |
</telerik:RadCartesianChart.HorizontalAxis> |
|
137 |
|
|
138 |
<telerik:RadCartesianChart.VerticalAxis> |
|
139 |
<telerik:CategoricalAxis/> |
|
140 |
</telerik:RadCartesianChart.VerticalAxis> |
|
141 |
|
|
142 |
<telerik:RadCartesianChart.Series> |
|
143 |
<telerik:BarSeries> |
|
144 |
|
|
145 |
<telerik:BarSeries.DataPoints> |
|
146 |
<telerik:CategoricalDataPoint Category="rk" Value="10"/> |
|
147 |
<telerik:CategoricalDataPoint Category="나" Value="4"/> |
|
148 |
<telerik:CategoricalDataPoint Category="다" Value="7"/> |
|
149 |
<telerik:CategoricalDataPoint Category="라" Value="11"/> |
|
150 |
<telerik:CategoricalDataPoint Category="마" Value="15"/> |
|
151 |
</telerik:BarSeries.DataPoints> |
|
166 | 152 |
</telerik:BarSeries> |
167 | 153 |
</telerik:RadCartesianChart.Series> |
168 | 154 |
</telerik:RadCartesianChart> |
169 |
|
|
170 |
<telerik:RadLegend Grid.Column="1" Grid.Row="1" Items="{Binding LegendItems, ElementName=chart}" /> |
|
171 |
</Grid> |
|
172 |
</StackPanel> |
|
155 |
</Grid>--> |
|
173 | 156 |
</Grid> |
174 | 157 |
</UserControl> |
ConvertService/ServiceBase/Markus.Service.StationController/Views/DataBaseView.xaml | ||
---|---|---|
114 | 114 |
<ColumnDefinition Width="Auto"/> |
115 | 115 |
</Grid.ColumnDefinitions> |
116 | 116 |
<TextBlock Text="DataBase Items : "/> |
117 |
<TextBlock Text="{Binding SelectedCount.DisplayMember, StringFormat=\{0:d\}}" Grid.Column="1"/>
|
|
117 |
<TextBlock Text="{Binding FilterConvertSource.Count, StringFormat=\{0:d\}}" Grid.Column="1"/>
|
|
118 | 118 |
</Grid> |
119 | 119 |
</telerik:RadExpander.Header> |
120 | 120 |
|
121 |
<!--SelectedItem="{Binding SelectFilterConvertList, Mode=OneWayToSource}" --> |
|
122 |
<!-- controls:GridViewSelectionUtilities.SelectedItems="{Binding SelectFilterConvertList, Source=StaticResource context, Mode=TwoWay}"--> |
|
123 |
<!-- SelectedItem="{Binding SelectFilterConvert, Source=StaticResource context, Mode=TwoWay}"--> |
|
121 | 124 |
<telerik:RadGridView x:Name="dataGrid1" GroupRenderMode="Flat" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" |
122 | 125 |
ItemsSource="{Binding FilterConvertSourceView}" |
123 |
SelectedItem="{Binding SelectFilterConvert, Mode=TwoWay}" |
|
126 |
|
|
127 |
SelectionMode="Extended" |
|
128 |
SelectionUnit="FullRow" |
|
129 |
CanUserSelect ="True" |
|
124 | 130 |
RowDetailsTemplate="{StaticResource RowDetailsTemplate}" |
125 | 131 |
AutoGenerateColumns="False" |
126 | 132 |
ColumnWidth="*" CanUserFreezeColumns="False" |
127 | 133 |
Grid.Row="1" ScrollViewer.CanContentScroll="True" IsFilteringAllowed="True" |
128 | 134 |
LeftFrozenColumnCount="6" |
129 | 135 |
RightFrozenColumnCount="0"> |
136 |
<i:Interaction.Behaviors> |
|
137 |
<controls:GridViewSelectionUtilities SelectedItems="{Binding SelectFilterConvertList, Source={StaticResource DataBaseItemsModel}}" /> |
|
138 |
</i:Interaction.Behaviors> |
|
130 | 139 |
<telerik:RadContextMenu.ContextMenu> |
131 | 140 |
<telerik:RadContextMenu x:Name= "GridContextMenu"> |
132 | 141 |
<telerik:RadMenuItem Header="Convert" Command="{Binding ConvertCommand}"/> |
... | ... | |
260 | 269 |
</DataTemplate> |
261 | 270 |
</telerik:GridViewDynamicHyperlinkColumn.CellTemplate> |
262 | 271 |
</telerik:GridViewDynamicHyperlinkColumn> |
263 |
<telerik:GridViewDataColumn Header=" ConvertPath" |
|
264 |
DataMemberBinding="{Binding ConvertPath}" Width="2.5*" /> |
|
272 |
<!--<telerik:GridViewDataColumn Header=" ConvertPath" |
|
273 |
DataMemberBinding="{Binding ConvertPath}" Width="2.5*" />--> |
|
274 |
<telerik:GridViewDataColumn Header=" ConvertPath" Width="2.5*" Style="{Binding Mode=OneWay, Source={StaticResource borderedTemplate}}"> |
|
275 |
<telerik:GridViewDataColumn.CellTemplate> |
|
276 |
<DataTemplate > |
|
277 |
<StackPanel Orientation="Horizontal"> |
|
278 |
<TextBox Text="{Binding ConvertPath}"/> |
|
279 |
<telerik:RadButton BorderThickness="0" |
|
280 |
Background="Transparent" |
|
281 |
Command="{Binding ConvertPathFileSearchCommand, Source={StaticResource DataBaseItemsModel}}" CommandParameter="{Binding DataContext, RelativeSource={RelativeSource Self}}"> |
|
282 |
<Image Source="E:\Source\MARKUS\ConvertService\ServiceBase\Markus.Service.StationController\Picture\File_Search_Icon.png" Stretch="None" /> |
|
283 |
</telerik:RadButton> |
|
284 |
</StackPanel> |
|
285 |
</DataTemplate> |
|
286 |
</telerik:GridViewDataColumn.CellTemplate> |
|
287 |
</telerik:GridViewDataColumn> |
|
265 | 288 |
<telerik:GridViewDataColumn Header="CreateTime" |
266 | 289 |
DataMemberBinding="{Binding CreateTime, Mode=TwoWay, StringFormat=\{0:yyyy.MM.dd HH:mm:ss\}}" Width="*" /> |
267 | 290 |
<telerik:GridViewDataColumn Header="StartTime" |
... | ... | |
326 | 349 |
</DataTemplate> |
327 | 350 |
</telerik:GridViewDynamicHyperlinkColumn.CellTemplate> |
328 | 351 |
</telerik:GridViewDynamicHyperlinkColumn> |
329 |
<telerik:GridViewDataColumn Header=" ConvertPath" |
|
330 |
DataMemberBinding="{Binding ConvertPath}" Width="2.5*" /> |
|
352 |
<!--<telerik:GridViewDataColumn Header=" ConvertPath" |
|
353 |
DataMemberBinding="{Binding ConvertPath}" Width="2.5*" />--> |
|
354 |
<telerik:GridViewDataColumn Header=" ConvertPath" Width="2.5*" Style="{Binding Mode=OneWay, Source={StaticResource borderedTemplate}}"> |
|
355 |
<telerik:GridViewDataColumn.CellTemplate> |
|
356 |
<DataTemplate > |
|
357 |
<StackPanel Orientation="Horizontal"> |
|
358 |
<TextBox Text="{Binding ConvertPath}"/> |
|
359 |
<telerik:RadButton BorderThickness="0" |
|
360 |
Background="Transparent" |
|
361 |
Command="{Binding ConvertPathFileSearchCommand, Source={StaticResource DataBaseItemsModel}}" CommandParameter="{Binding DataContext, RelativeSource={RelativeSource Self}}"> |
|
362 |
<Image Source="E:\Source\MARKUS\ConvertService\ServiceBase\Markus.Service.StationController\Picture\File_Search_Icon.png" Stretch="None" /> |
|
363 |
</telerik:RadButton> |
|
364 |
</StackPanel> |
|
365 |
</DataTemplate> |
|
366 |
</telerik:GridViewDataColumn.CellTemplate> |
|
367 |
</telerik:GridViewDataColumn> |
|
331 | 368 |
<telerik:GridViewDataColumn Header="CreateTime" |
332 | 369 |
DataMemberBinding="{Binding CreateTime, Mode=TwoWay, StringFormat=\{0:yyyy.MM.dd HH:mm:ss\}}" Width="*" /> |
333 | 370 |
<telerik:GridViewDataColumn Header="StartTime" |
내보내기 Unified diff