GridViewSettingsHelper.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  1. using DevExpress.Data;
  2. using DevExpress.Utils;
  3. using DevExpress.Web;
  4. using DevExpress.Web.ASPxThemes;
  5. using DevExpress.Web.Mvc;
  6. using GreenTree.Nachtragsmanagement.Core.Authentication;
  7. using System;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. namespace GreenTree.Nachtragsmanagement.Web.Extensions
  11. {
  12. public static class GridViewSettingsHelper
  13. {
  14. /// <summary>
  15. /// Current user context
  16. /// </summary>
  17. public static UserContext _userContext = Core.CommonHelper.UserContext();
  18. /// <summary>
  19. /// Creates GridViewSettings for the site gridView
  20. /// </summary>
  21. /// <param name="html">Current HtmlHelper context.</param>
  22. public static GridViewSettings SiteGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  23. {
  24. var s = new GridViewSettings();
  25. s.Name = "devGridViewSite";
  26. s.KeyFieldName = "Id";
  27. s.CallbackRouteValues = new { Controller = "Site", Action = "PartialSites" };
  28. s.Width = Unit.Percentage(100);
  29. s.Settings.ShowFilterRow = true;
  30. s.Settings.ShowFilterRowMenu = true;
  31. s.Settings.ShowFooter = true;
  32. s.Settings.ShowGroupPanel = true;
  33. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  34. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  35. s.Settings.VerticalScrollableHeight =
  36. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  37. ? 400
  38. : (int)html.ViewData["ScrollHeight"];
  39. s.SettingsExport.Landscape = true;
  40. s.SettingsExport.FileName = "Baustellenliste";
  41. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  42. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  43. s.SettingsBehavior.EnableCustomizationWindow = true;
  44. s.Toolbars.Add(t =>
  45. {
  46. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  47. refreshItem.Text = "Aktualisieren";
  48. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  49. expandItem.Text = "Alle aufklappen";
  50. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  51. collapseItem.Text = "Alle einklappen";
  52. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  53. filterItem.Text = "Filter entfernen";
  54. t.Items.Add(i =>
  55. {
  56. i.Text = "Spalten anzeigen / ausblenden";
  57. i.Name = "ToggleColumnChooser";
  58. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  59. i.BeginGroup = true;
  60. });
  61. t.Items.Add(i =>
  62. {
  63. i.Text = "Exportieren nach";
  64. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  65. i.BeginGroup = true;
  66. i.Items.Add(exportitem =>
  67. {
  68. exportitem.Name = "Pdf";
  69. exportitem.Text = "PDF";
  70. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  71. });
  72. i.Items.Add(exportitem =>
  73. {
  74. exportitem.Name = "Xlsx";
  75. exportitem.Text = "XLSX";
  76. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  77. });
  78. i.Items.Add(exportitem =>
  79. {
  80. exportitem.Name = "Xls";
  81. exportitem.Text = "XLS";
  82. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  83. });
  84. });
  85. });
  86. //if (_userContext == null)
  87. // _userContext = Core.CommonHelper.UserContext();
  88. if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit"))
  89. {
  90. s.Columns.Add(column =>
  91. {
  92. column.Caption = "#";
  93. column.SetDataItemTemplateContent(c =>
  94. {
  95. html.ViewContext.Writer.Write(
  96. "<a href=\"#\" onclick=\"editSite(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Bearbeiten</a>&nbsp;" +
  97. "<a href=\"#\" onclick=\"confirmDelete(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Löschen</a>"
  98. );
  99. });
  100. column.SetHeaderTemplateContent(c =>
  101. {
  102. html.ViewContext.Writer.Write(
  103. "<a href=\"#\" onclick=\"editSite(-1)\">Neu</a>&nbsp;");
  104. });
  105. column.Settings.AllowDragDrop = DefaultBoolean.False;
  106. column.Settings.AllowSort = DefaultBoolean.False;
  107. column.Width = new Unit(150, UnitType.Pixel);
  108. });
  109. }
  110. s.Columns.Add(column =>
  111. {
  112. column.Caption = "Kostenstelle";
  113. column.FieldName = "CustomNumber";
  114. column.MinWidth = 100;
  115. column.Width = new Unit(10, UnitType.Percentage);
  116. });
  117. s.Columns.Add(column =>
  118. {
  119. column.Caption = "Bauvorhaben";
  120. column.FieldName = "Description";
  121. column.Width = new Unit(13, UnitType.Percentage);
  122. });
  123. s.Columns.Add(column =>
  124. {
  125. column.Caption = "Start";
  126. column.FieldName = "Start";
  127. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  128. column.MinWidth = 110;
  129. column.Width = new Unit(8, UnitType.Percentage);
  130. });
  131. s.Columns.Add(column =>
  132. {
  133. column.Caption = "Ende";
  134. column.FieldName = "End";
  135. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  136. column.MinWidth = 110;
  137. column.Width = new Unit(8, UnitType.Percentage);
  138. });
  139. s.Columns.Add(column =>
  140. {
  141. column.Caption = "VA";
  142. column.FieldName = "DeviationDescription";
  143. column.MinWidth = 150;
  144. column.Width = new Unit(12, UnitType.Percentage);
  145. });
  146. s.Columns.Add(column =>
  147. {
  148. column.Caption = "VA-Summe";
  149. column.FieldName = "DeviationValue";
  150. column.PropertiesEdit.DisplayFormatString = "c2";
  151. column.MinWidth = 120;
  152. column.Width = new Unit(10, UnitType.Percentage);
  153. });
  154. s.Columns.Add(column =>
  155. {
  156. column.Caption = "Nachträge";
  157. column.FieldName = "AppendixDescription";
  158. column.Width = new Unit(10, UnitType.Percentage);
  159. });
  160. s.Columns.Add(column =>
  161. {
  162. column.Caption = "Mitarbeiter";
  163. column.FieldName = "UserDescription";
  164. column.MinWidth = 150;
  165. column.Width = new Unit(20, UnitType.Percentage);
  166. });
  167. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
  168. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
  169. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  170. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  171. s.ClientLayout = (sender, e) =>
  172. {
  173. if (e.LayoutMode == ClientLayoutMode.Loading)
  174. {
  175. if (System.Web.HttpContext.Current.Session["SiteGridState"] != null)
  176. e.LayoutData = (string)System.Web.HttpContext.Current.Session["SiteGridState"];
  177. }
  178. else
  179. System.Web.HttpContext.Current.Session["SiteGridState"] = e.LayoutData;
  180. };
  181. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  182. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  183. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  184. return s;
  185. }
  186. /// <summary>
  187. /// Creates GridViewSettings for the deviation gridView
  188. /// </summary>
  189. /// <param name="html">Current HtmlHelper context.</param>
  190. public static GridViewSettings DeviationGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  191. {
  192. var s = new GridViewSettings();
  193. s.Name = "devGridViewDeviation";
  194. s.KeyFieldName = "Id";
  195. s.CallbackRouteValues = new { Controller = "Deviation", Action = "PartialDeviations" };
  196. s.Width = Unit.Percentage(100);
  197. s.Settings.ShowFilterRow = true;
  198. s.Settings.ShowFilterRowMenu = true;
  199. s.Settings.ShowFooter = true;
  200. s.Settings.ShowGroupPanel = true;
  201. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  202. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  203. s.Settings.VerticalScrollableHeight =
  204. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  205. ? 400
  206. : (int)html.ViewData["ScrollHeight"];
  207. s.SettingsExport.Landscape = true;
  208. s.SettingsExport.FileName = "Vertragsabweichungsliste";
  209. s.SettingsBehavior.EnableCustomizationWindow = true;
  210. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  211. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  212. s.Toolbars.Add(t =>
  213. {
  214. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  215. refreshItem.Text = "Aktualisieren";
  216. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  217. expandItem.Text = "Alle aufklappen";
  218. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  219. collapseItem.Text = "Alle einklappen";
  220. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  221. filterItem.Text = "Filter entfernen";
  222. t.Items.Add(i =>
  223. {
  224. i.Text = "Spalten anzeigen / ausblenden";
  225. i.Name = "ToggleColumnChooser";
  226. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  227. i.BeginGroup = true;
  228. });
  229. t.Items.Add(i =>
  230. {
  231. i.Text = "Exportieren nach";
  232. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  233. i.BeginGroup = true;
  234. i.Items.Add(exportitem =>
  235. {
  236. exportitem.Name = "Pdf";
  237. exportitem.Text = "PDF";
  238. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  239. });
  240. i.Items.Add(exportitem =>
  241. {
  242. exportitem.Name = "Xlsx";
  243. exportitem.Text = "XLSX";
  244. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  245. });
  246. i.Items.Add(exportitem =>
  247. {
  248. exportitem.Name = "Xls";
  249. exportitem.Text = "XLS";
  250. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  251. });
  252. });
  253. });
  254. s.Columns.Add(column =>
  255. {
  256. column.Caption = "Nummer";
  257. column.FieldName = "CustomNumber";
  258. column.MinWidth = 80;
  259. column.Width = new Unit(8, UnitType.Percentage);
  260. });
  261. s.Columns.Add(column =>
  262. {
  263. column.Caption = "Bezeichnung";
  264. column.FieldName = "Description";
  265. column.MinWidth = 200;
  266. column.Width = new Unit(14, UnitType.Percentage);
  267. });
  268. s.Columns.Add(column =>
  269. {
  270. column.Caption = "Baustelle";
  271. column.FieldName = "SiteDescription";
  272. column.MinWidth = 120;
  273. column.Width = new Unit(10, UnitType.Percentage);
  274. });
  275. s.Columns.Add(column =>
  276. {
  277. column.Caption = "Nachtrag";
  278. column.FieldName = "AppendixDescription";
  279. column.MinWidth = 120;
  280. column.Width = new Unit(10, UnitType.Percentage);
  281. });
  282. s.Columns.Add(column =>
  283. {
  284. column.Caption = "Einreichung";
  285. column.FieldName = "ReceiptDate";
  286. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  287. column.MinWidth = 110;
  288. column.Width = new Unit(8, UnitType.Percentage);
  289. });
  290. s.Columns.Add(column =>
  291. {
  292. column.Caption = "Tage VA - NT";
  293. column.FieldName = "DaysReceiptToAppendixOffering";
  294. column.MinWidth = 110;
  295. column.Width = new Unit(8, UnitType.Percentage);
  296. });
  297. s.Columns.Add(column =>
  298. {
  299. column.Caption = "Schätzung bew.";
  300. column.FieldName = "PercentageValue";
  301. column.PropertiesEdit.DisplayFormatString = "c2";
  302. column.MinWidth = 100;
  303. column.Width = new Unit(9, UnitType.Percentage);
  304. });
  305. s.Columns.Add(column =>
  306. {
  307. column.Caption = "Status";
  308. column.FieldName = "StatusDescription";
  309. column.MinWidth = 160;
  310. column.Width = new Unit(12, UnitType.Percentage);
  311. });
  312. s.Columns.Add(column =>
  313. {
  314. column.Caption = "VA-Kategorien";
  315. column.FieldName = "DisturbanceValuesDescription";
  316. column.MinWidth = 200;
  317. column.Width = new Unit(14, UnitType.Percentage);
  318. });
  319. s.Columns.Add(column =>
  320. {
  321. column.Caption = "Art";
  322. column.FieldName = "KindDescription";
  323. column.MinWidth = 140;
  324. column.Width = new Unit(10, UnitType.Percentage);
  325. });
  326. s.Columns.Add(column =>
  327. {
  328. column.Caption = "Kommentar";
  329. column.CellStyle.Wrap = DefaultBoolean.True;
  330. column.SetDataItemTemplateContent(c =>
  331. {
  332. var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
  333. var comment = DataBinder.Eval(c.DataItem, "Comment");
  334. var text = comment == null
  335. ? String.Empty
  336. : comment.ToString();
  337. if (text.ToString().Length > 40)
  338. {
  339. html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
  340. html.ViewContext.Writer.Write("<a href=\"#\" onclick='showComment(\"deviation\"," + id + ",this)'><br />Anzeigen</a>");
  341. }
  342. else
  343. html.ViewContext.Writer.Write(text);
  344. });
  345. column.MinWidth = 120;
  346. column.Width = new Unit(8, UnitType.Percentage);
  347. column.Visible = false;
  348. });
  349. var totalDaysReceiptToAppendixOfferingSum = 0;
  350. var totalDaysReceiptToAppendixOfferingCount = 0;
  351. s.CustomSummaryCalculate = (sender, e) =>
  352. {
  353. if (e.SummaryProcess == CustomSummaryProcess.Start)
  354. {
  355. totalDaysReceiptToAppendixOfferingSum = 0;
  356. totalDaysReceiptToAppendixOfferingCount = 0;
  357. }
  358. if (e.SummaryProcess == CustomSummaryProcess.Calculate)
  359. {
  360. var val = e.GetValue("DaysReceiptToAppendixOffering");
  361. if (val != null)
  362. {
  363. totalDaysReceiptToAppendixOfferingCount++;
  364. totalDaysReceiptToAppendixOfferingSum += Convert.ToInt32(val);
  365. }
  366. }
  367. if (e.SummaryProcess == CustomSummaryProcess.Finalize)
  368. e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount;
  369. };
  370. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
  371. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
  372. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  373. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  374. s.TotalSummary.Add(new ASPxSummaryItem
  375. {
  376. FieldName = "DaysReceiptToAppendixOffering",
  377. SummaryType = DevExpress.Data.SummaryItemType.Custom,
  378. DisplayFormat = "Schnitt = {0:n0}",
  379. });
  380. s.GroupSummary.Add(new ASPxSummaryItem
  381. {
  382. FieldName = "DaysReceiptToAppendixOffering",
  383. SummaryType = DevExpress.Data.SummaryItemType.Custom,
  384. DisplayFormat = "Schnitt = {0:n0}"
  385. });
  386. s.ClientLayout = (sender, e) =>
  387. {
  388. if (e.LayoutMode == ClientLayoutMode.Loading)
  389. {
  390. if (System.Web.HttpContext.Current.Session["DeviationGridState"] != null)
  391. e.LayoutData = (string)System.Web.HttpContext.Current.Session["DeviationGridState"];
  392. }
  393. else
  394. System.Web.HttpContext.Current.Session["DeviationGridState"] = e.LayoutData;
  395. };
  396. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  397. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  398. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  399. return s;
  400. }
  401. /// <summary>
  402. /// Creates GridViewSettings for the appendix gridView
  403. /// </summary>
  404. /// <param name="html">Current HtmlHelper context.</param>
  405. public static GridViewSettings AppendixGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  406. {
  407. var s = new GridViewSettings();
  408. s.Name = "devGridViewAppendix";
  409. s.KeyFieldName = "Id";
  410. s.CallbackRouteValues = new { Controller = "Appendix", Action = "PartialAppendices" };
  411. s.Width = Unit.Percentage(100);
  412. s.Settings.ShowFilterRow = true;
  413. s.Settings.ShowFilterRowMenu = true;
  414. s.Settings.ShowFooter = true;
  415. s.Settings.ShowGroupPanel = true;
  416. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  417. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  418. s.Settings.VerticalScrollableHeight =
  419. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  420. ? 400
  421. : (int)html.ViewData["ScrollHeight"];
  422. s.SettingsExport.Landscape = true;
  423. s.SettingsExport.FileName = "Nachtragsliste";
  424. s.SettingsBehavior.EnableCustomizationWindow = true;
  425. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  426. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  427. s.Toolbars.Add(t =>
  428. {
  429. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  430. refreshItem.Text = "Aktualisieren";
  431. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  432. expandItem.Text = "Alle aufklappen";
  433. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  434. collapseItem.Text = "Alle einklappen";
  435. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  436. filterItem.Text = "Filter entfernen";
  437. t.Items.Add(i =>
  438. {
  439. i.Text = "Spalten anzeigen / ausblenden";
  440. i.Name = "ToggleColumnChooser";
  441. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  442. i.BeginGroup = true;
  443. });
  444. t.Items.Add(i =>
  445. {
  446. i.Text = "Exportieren nach";
  447. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  448. i.BeginGroup = true;
  449. i.Items.Add(exportitem =>
  450. {
  451. exportitem.Name = "Pdf";
  452. exportitem.Text = "PDF";
  453. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  454. });
  455. i.Items.Add(exportitem =>
  456. {
  457. exportitem.Name = "Xlsx";
  458. exportitem.Text = "XLSX";
  459. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  460. });
  461. i.Items.Add(exportitem =>
  462. {
  463. exportitem.Name = "Xls";
  464. exportitem.Text = "XLS";
  465. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  466. });
  467. });
  468. });
  469. s.Columns.Add(column =>
  470. {
  471. column.Caption = "Nummer";
  472. column.FieldName = "CustomNumber";
  473. column.MinWidth = 80;
  474. column.Width = new Unit(8, UnitType.Percentage);
  475. });
  476. s.Columns.Add(column =>
  477. {
  478. column.Caption = "Bezeichnung";
  479. column.FieldName = "Description";
  480. column.MinWidth = 200;
  481. column.Width = new Unit(14, UnitType.Percentage);
  482. });
  483. s.Columns.Add(column =>
  484. {
  485. column.Caption = "Baustelle";
  486. column.FieldName = "SiteDescription";
  487. column.MinWidth = 120;
  488. column.Width = new Unit(10, UnitType.Percentage);
  489. });
  490. s.Columns.Add(column =>
  491. {
  492. column.Caption = "Einreichung";
  493. column.FieldName = "OfferingDate";
  494. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  495. column.MinWidth = 110;
  496. column.Width = new Unit(8, UnitType.Percentage);
  497. });
  498. s.Columns.Add(column =>
  499. {
  500. column.Caption = "Angeb.-Sum.";
  501. column.FieldName = "OfferingValue";
  502. column.PropertiesEdit.DisplayFormatString = "c2";
  503. column.MinWidth = 140;
  504. column.Width = new Unit(8, UnitType.Percentage);
  505. });
  506. s.Columns.Add(column =>
  507. {
  508. column.Caption = "Verhand.-Sum.";
  509. column.FieldName = "NegotiationValue";
  510. column.PropertiesEdit.DisplayFormatString = "c2";
  511. column.MinWidth = 140;
  512. column.Width = new Unit(8, UnitType.Percentage);
  513. });
  514. s.Columns.Add(column =>
  515. {
  516. column.Caption = "Verh. Angeb./Verha.";
  517. column.FieldName = "RelationOfferingToNegotiation";
  518. column.PropertiesEdit.DisplayFormatString = "p2";
  519. column.MinWidth = 140;
  520. column.Width = new Unit(10, UnitType.Percentage);
  521. });
  522. s.Columns.Add(column =>
  523. {
  524. column.Caption = "VA";
  525. column.FieldName = "DeviationDescription";
  526. column.MinWidth = 100;
  527. column.Width = new Unit(6, UnitType.Percentage);
  528. });
  529. s.Columns.Add(column =>
  530. {
  531. column.Caption = "Verh. Angeb./VA.";
  532. column.FieldName = "RelationOfferingToDeviations";
  533. column.PropertiesEdit.DisplayFormatString = "n2";
  534. column.MinWidth = 140;
  535. column.Width = new Unit(10, UnitType.Percentage);
  536. });
  537. s.Columns.Add(column =>
  538. {
  539. column.Caption = "Status";
  540. column.FieldName = "StateDescription";
  541. column.MinWidth = 100;
  542. column.Width = new Unit(6, UnitType.Percentage);
  543. });
  544. s.Columns.Add(column =>
  545. {
  546. column.Caption = "NT-Kategorien";
  547. column.FieldName = "CategoryValuesDescription";
  548. column.MinWidth = 200;
  549. column.Width = new Unit(12, UnitType.Percentage);
  550. });
  551. s.Columns.Add(column =>
  552. {
  553. column.Caption = "Kommentar";
  554. column.CellStyle.Wrap = DefaultBoolean.True;
  555. column.SetDataItemTemplateContent(c =>
  556. {
  557. var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
  558. var comment = DataBinder.Eval(c.DataItem, "Comment");
  559. var text = comment == null
  560. ? String.Empty
  561. : comment.ToString();
  562. if (text.ToString().Length > 40)
  563. {
  564. html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
  565. html.ViewContext.Writer.Write("<a href=\"#\" onclick='showComment(\"appendix\"," + id + ",this)'><br />Anzeigen</a>");
  566. }
  567. else
  568. html.ViewContext.Writer.Write(text);
  569. });
  570. column.MinWidth = 250;
  571. column.Width = new Unit(14, UnitType.Percentage);
  572. });
  573. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  574. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  575. s.TotalSummary.Add(new ASPxSummaryItem
  576. {
  577. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  578. FieldName = "OfferingValue",
  579. DisplayFormat = "{0:c2}"
  580. });
  581. s.GroupSummary.Add(new ASPxSummaryItem
  582. {
  583. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  584. FieldName = "OfferingValue",
  585. DisplayFormat = "{0:c2}"
  586. });
  587. s.TotalSummary.Add(new ASPxSummaryItem
  588. {
  589. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  590. FieldName = "NegotiationValue",
  591. DisplayFormat = "{0:c2}"
  592. });
  593. s.GroupSummary.Add(new ASPxSummaryItem
  594. {
  595. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  596. FieldName = "NegotiationValue",
  597. DisplayFormat = "{0:c2}"
  598. });
  599. s.ClientLayout = (sender, e) =>
  600. {
  601. if (e.LayoutMode == ClientLayoutMode.Loading)
  602. {
  603. if (System.Web.HttpContext.Current.Session["AppendixGridState"] != null)
  604. e.LayoutData = (string)System.Web.HttpContext.Current.Session["AppendixGridState"];
  605. }
  606. else
  607. System.Web.HttpContext.Current.Session["AppendixGridState"] = e.LayoutData;
  608. };
  609. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  610. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  611. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  612. return s;
  613. }
  614. }
  615. }