GridViewSettingsHelper.cs 27 KB

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