public static void prepareGruppGrid( vdXceed.vdPlainGrid ug, bool readOnly ) { ug.G.ScrollBars = GridScrollBars.ForcedVertical; ug.addColumn("#", typeof (int), 25); var col = ug.addColumn("", typeof (int), 30); col.HorizontalAlignment = Xceed.Grid.HorizontalAlignment.Center; col.CellViewer = new GridStatusCellPainter(); ug.addColumn("Typ", 35); ug.addColumn("Grupp", 150); ug.addColumn("Slogan", 70); ug.addColumn("På b", typeof (int), 35); ug.addColumn("Frv", typeof (int), 35); ug.addColumn("Utg", typeof (int), 35); ug.addColumn("GEx", typeof (int), 35); ug.addColumn("", 20); ug.addColumn("", 20); foreach (Column c in ug.G.Columns) c.ReadOnly = readOnly || (c.Index != 0 && c.Index != 8); ug.setColumnFullWidth(3); }
public static void checkErrorsX( Skola skola, vdXceed.vdPlainGrid grd, out string strText, out bool fSevere ) { var sb = new System.Text.StringBuilder(); fSevere = false; { var strOklar = ""; var strBeskrSakn = ""; var fHasAtLeastOneGroupPicture = false; var dicScanCodesWithPortraits = new Dictionary<string, Person>(); foreach (Grupp grupp in skola.Grupper.GrupperIOrdning()) { if (grupp.GruppTyp == GruppTyp.GruppInfällning) continue; if (!string.IsNullOrEmpty(grupp.ThumbnailKey) /*&& grupp.Thumbnails.Count != 0*/) { switch (grupp.Numrering) { case GruppNumrering.Klar: case GruppNumrering.EjNamnsättning: case GruppNumrering.EjNumrering: if (grd == null) break; var strTyp = string.Empty; if ((grupp.Special & TypeOfGroupPhoto.Gruppbild) != 0) strTyp += "G"; if ((grupp.Special & TypeOfGroupPhoto.Katalog) != 0) strTyp += "K"; if ((grupp.Special & TypeOfGroupPhoto.Spex) != 0) strTyp += "P"; if ((grupp.Special & TypeOfGroupPhoto.SkyddadId) != 0) strTyp += "S"; var row = grd.addRow(); row.Cells[0].Value = grd.G.DataRows.Count; row.Cells[1].Value = (int) grupp.Numrering; row.Cells[2].Value = strTyp; row.Cells[3].Value = grupp.Namn; row.Cells[4].Value = grupp.Slogan; row.Cells[5].Value = grupp.PersonerNärvarande.Count; row.Cells[6].Value = grupp.PersonerFrånvarande.Count; row.Cells[7].Value = grupp.PersonerSlutat.Count; if (grupp.AntalGratisEx >= 0) row.Cells[8].Value = grupp.AntalGratisEx; row.Cells[9].Value = string.IsNullOrEmpty(grupp.ThumbnailGrayKey) ? "" : "G"; row.EndEdit(); row.Tag = grupp; break; default: strOklar += " " + grupp.Namn + "\r\n"; break; } fHasAtLeastOneGroupPicture = true; var tn = grupp.Thumbnails[grupp.ThumbnailKey]; if (tn == null || !grupp.ThumbnailLocked ) { fSevere = true; sb.AppendFormat("FEL:\r\nSaknar vald och låst bild för gruppen \"{0}\"! Du måste välja en bild och sätta hänglås på den!\r\n", grupp.Namn); } } else if (grupp.GruppTyp == GruppTyp.GruppNormal) { if (grupp.isAggregated && (grupp.Special & TypeOfGroupPhoto.Gruppbild) == 0) { grupp.EjFotoOrsak1 = "Övrigt"; grupp.EjFotoOrsak2 = "Samfotad: " + grupp.aggregate.Namn; } else if (!Global.GrpNoPhoto_Reasons_Complete.Contains(grupp.EjFotoOrsak1)) if (grupp.EjFotoOrsak2 == null || grupp.EjFotoOrsak2.Length < 5) strBeskrSakn += " " + grupp.Namn + "\r\n"; } foreach (var person in grupp.AllaPersoner) { if (string.IsNullOrEmpty(person.ThumbnailKey) && person.Thumbnails.Count == 0) continue; var tn = person.Thumbnails[person.ThumbnailKey]; if (tn == null || !person.ThumbnailLocked) { fSevere = true; sb.AppendFormat( "FEL:\r\nSaknar vald och låst bild för \"{0}\" i \"{1}\"! Du måste välja en bild och sätta hänglås på den!\r\n", person.Namn, grupp.Namn); } if (!string.IsNullOrEmpty(person.ScanCode)) { Person p; if (dicScanCodesWithPortraits.TryGetValue(person.ScanCode, out p)) { fSevere = true; sb.AppendFormat( "FEL:\r\n\"{0}\" i grupp \"{1}\" och \"{2}\" i grupp \"{3}\" är båda porträttfotade med samma kundid!\r\n", p.Namn, p.Grupp.Namn, person.Namn, person.Grupp.Namn); } else dicScanCodesWithPortraits.Add(person.ScanCode, person); } } } foreach (var grupp in skola.MakuleradeGrupper) if (!Global.GrpNoPhoto_Reasons_Complete.Contains(grupp.EjFotoOrsak1)) if (grupp.EjFotoOrsak2 == null || grupp.EjFotoOrsak2.Length < 5) strBeskrSakn += " " + grupp.Namn + "\r\n"; if (strOklar.Length != 0) { sb.Append("FEL:\r\nDu kan inte bränna eftersom följande grupper ännu inte numrerats:\r\n" + strOklar + "\r\n"); fSevere = true; } if (strBeskrSakn.Length != 0 && fHasAtLeastOneGroupPicture) { sb.Append("FEL:\r\nDu kan inte bränna innan du angett skäl till varför följande grupper inte fotograferats:\r\n" + strBeskrSakn + "\r\n"); fSevere = true; } } { var gruppInf = skola.Grupper.GruppMedTyp(GruppTyp.GruppInfällning); if (gruppInf != null) foreach (var person in gruppInf.PersonerNärvarande) { bool fCorrectGroupName = false; foreach (var grupp in skola.Grupper) if (string.Compare(person.Titel, grupp.Namn, true) == 0) fCorrectGroupName = true; if (!fCorrectGroupName) { sb.AppendFormat( "FEL:\r\nInfällningen {0} är placerad i en grupp som inte finns!!! Åtgärda detta först!\r\n\r\n", person.Namn); fSevere = true; } } } { int nAntal, nLovade, nValda; Global.Skola.Vimmel.räkna(out nAntal, out nLovade, out nValda); if (nAntal != 0 && (nLovade + nValda) < 15) sb.Append("VARNING:\r\nDu har inte valt femton vimmelbilder!\r\n\r\n"); } //if (Global.Preferences.Brand == Brand.Photomic) //{ // var hasGray = false; // foreach (var grupp in skola.Grupper) // if (grupp.Thumbnails[grupp.ThumbnailGrayKey] != null) // hasGray = true; // if (!hasGray) // sb.Append("VARNING:\r\nDu har inte markerat något gråkort!\r\n\r\n"); //} strText = sb.ToString(); }
private void ugG_DragDropEvent(vdXceed.vdPlainGrid sender, vdXceed.vdPlainGrid.DragDropAction action, Cell cell, DragEventArgs args, ref bool fCancel) { var p = args!=null ? ugG.PointToClient( new Point( args.X, args.Y ) ) : Point.Empty; Type typeFound; try { switch ( action ) { case vdXceed.vdPlainGrid.DragDropAction.QueryBeginDrag: if ( ugG.selectedDataRow!=null ) { var grupper = new PlataDM.Grupp[ugG.G.SelectedRows.Count]; for ( var i = 0 ; i < grupper.Length ; i++ ) grupper[i] = ugG.G.SelectedRows[i].Tag as PlataDM.Grupp; this.DoDragDrop( new DataObject(grupper), DragDropEffects.Copy ); ugG.HighlightRow = null; } break; case vdXceed.vdPlainGrid.DragDropAction.QueryDrop: ugG.HighlightRow = cell!=null ? cell.ParentRow : null; typeFound = getFirstPresentType( args.Data, typeof(PlataDM.Grupp[]) ); if ( typeFound!=null ) args.Effect = args.AllowedEffect; else args.Effect = DragDropEffects.None; if ( p.Y<15 ) ugG.G.Scroll( ScrollDirection.Up ); else if ( p.Y > ugG.Height-15 ) ugG.G.Scroll( ScrollDirection.Down ); // System.Diagnostics.Debug.WriteLine( string.Format("{0} {1}", args.X, args.Y ) ); break; case vdXceed.vdPlainGrid.DragDropAction.Dropped: ugG.HighlightRow = null; typeFound = getFirstPresentType( args.Data, typeof(PlataDM.Grupp[]) ); if ( typeFound==null ) return; foreach ( PlataDM.Grupp grupp in Global.Skola.Grupper ) grupp.Ordning *= 100; int nDropAtIndex; var grupperDragged = (PlataDM.Grupp[])args.Data.GetData( typeFound ); if ( cell==null ) { if ( p.Y < 15 ) nDropAtIndex = 0; else nDropAtIndex = 1000000; } else nDropAtIndex = ((cell.ParentRow as DataRow).Tag as PlataDM.Grupp).Ordning - 1; foreach ( var grupp in grupperDragged ) grupp.Ordning = nDropAtIndex++; vdUsr.vdOneShotTimer.start( 1, new EventHandler(delayedGroupRefresh), null ); break; } } catch ( Exception ex ) { Global.showMsgBox( this, ex.ToString() ); } }