private void actMenu_Opening(object sender, CancelEventArgs e) { ZootehJob zJob = null; if (lvZooTech.SelectedItems.Count == 0) { e.Cancel = true; return; } else if (lvZooTech.SelectedItems.Count == 1) { zJob = lvZooTech.SelectedItems[0].Tag as ZootehJob; this.setMenu(zJob.Type, zJob); } else { JobType jtAssumed = JobType.None; foreach (ListViewItem lvi in lvZooTech.SelectedItems) { zJob = lvi.Tag as ZootehJob; // проверяем чтобы все выбранные записи имели один тип if (jtAssumed != JobType.None && jtAssumed != zJob.Type) { jtAssumed = JobType.None; break; } if (jtAssumed == JobType.None) { jtAssumed = zJob.Type; } } this.setMenu(jtAssumed, null); } }
/// <summary> /// Открывает один из пунктов(работ) в контекстном меню, /// когда жмут правой кнопкой на одну из строк в listView с зоотехПланом /// </summary> /// <param name="type">Тип работы</param> /// <param name="job"></param> protected void setMenu(JobType type, ZootehJob job) { foreach (ToolStripMenuItem i in actMenu.Items) { if (i == miPrint) { continue; } i.Visible = i.Name == "mi" + type.ToString(); } switch (type) { //case JobType.Okrol: miOkrol.Visible = true; break; //case JobType.NestOut: miNestOut.Visible = true; break; case JobType.CountKids: miCountKidsChanged.Visible = true; break; //case JobType.PreOkrol: miPreOkrol.Visible = true; break; //case JobType.BoysOut: miBoysOut.Visible = true; break; //case JobType.GirlsOut: miGirlsOut.Visible = true; break; case JobType.F**k: if (job != null) { miFuck.Text = (job.JobName == "Случка" ? "Случить" : "Вязать"); miLust.Visible = job.Flag2 == 0; } break; //case JobType.Vaccine: miVaccine.Visible = true; break; //case JobType.NestSet: miNestSet.Visible = true; break; //case JobType.BoysByOne: miBoysByOne.Visible = true; break; //case JobType.SpermTake: miSpermTake.Visible = true; break; } }
private void printMenuItem_Click(object sender, EventArgs e) { List <String> fuckers = new List <string>(); XmlDocument rep = new XmlDocument(); rep.AppendChild(rep.CreateElement("Rows")).AppendChild(rep.CreateElement("Row")).AppendChild(rep.CreateElement("date")).AppendChild(rep.CreateTextNode(reportDate.ToLongDateString() + " " + reportDate.ToLongTimeString())); XmlDocument doc = new XmlDocument(); XmlDocument f***s = new XmlDocument(); XmlElement root = doc.CreateElement("Rows"); doc.AppendChild(root); XmlElement f**k = f***s.CreateElement("Rows"); f***s.AppendChild(f**k); XmlElement rw; for (int i = 0; i < lvZooTech.Items.Count; i++) { ListViewItem li = lvZooTech.Items[i]; ZootehJob j = (ZootehJob)li.Tag; rw = doc.CreateElement("Row"); rw.AppendChild(doc.CreateElement("type")).AppendChild(doc.CreateTextNode(((int)j.Type).ToString())); rw.AppendChild(doc.CreateElement("days")).AppendChild(doc.CreateTextNode(j.Days.ToString())); //ReportHelper.Append( rw.AppendChild(doc.CreateElement("name")).AppendChild(doc.CreateTextNode(j.JobName)); rw.AppendChild(doc.CreateElement("rabbit")).AppendChild(doc.CreateTextNode(j.RabName)); rw.AppendChild(doc.CreateElement("address")).AppendChild(doc.CreateTextNode(j.Address)); rw.AppendChild(doc.CreateElement("breed")).AppendChild(doc.CreateTextNode(j.RabBreed)); rw.AppendChild(doc.CreateElement("age")).AppendChild(doc.CreateTextNode(j.RabAge.ToString())); if (j.Type == JobType.F**k) { int id = getFuckerId(j.Partners, fuckers); string cmt = String.Format("см. {0:d}{1:d}", (id + 1), j.Flag > 1 ? Environment.NewLine + "N" + j.Flag.ToString() : ""); rw.AppendChild(doc.CreateElement("comment")).AppendChild(doc.CreateTextNode(cmt)); } else { rw.AppendChild(doc.CreateElement("comment")).AppendChild(doc.CreateTextNode(j.Comment)); } root.AppendChild(rw); } for (int i = 0; i < fuckers.Count; i++) { rw = f***s.CreateElement("Row"); rw.AppendChild(f***s.CreateElement("id")).AppendChild(f***s.CreateTextNode((i + 1).ToString())); rw.AppendChild(f***s.CreateElement("names")).AppendChild(f***s.CreateTextNode(fuckers[i])); f**k.AppendChild(rw); } XmlDocument[] xmls = new XmlDocument[] { doc, rep, f***s }; String plan = "zooteh"; if (fuckers.Count == 0) { plan += "_nofuck"; xmls = new XmlDocument[] { doc, rep }; } new ReportViewForm("Зоотехплан " + reportDate.ToLongDateString() + " " + reportDate.ToLongTimeString(), plan, xmls).ShowDialog(); }
/// <summary> /// Выполняет одну из зоотехнических работ /// </summary> private void makeOneJob(ZootehJob job) { if (job == null) { return; } _fullUpdate = Engine.opt().getIntOption(Options.OPT_ID.UPDATE_ZOO) == 1; if (this.performJob(job, ref _fullUpdate) == DialogResult.OK) { int idx = lvZooTech.SelectedItems[0].Index; lvZooTech.SelectedItems[0].Remove(); if (idx < lvZooTech.Items.Count) { lvZooTech.Items[idx].Selected = true; } _rsb.Run(); } }
private DialogResult performJob(ZootehJob job, ref bool needUpdate) { DialogResult res = DialogResult.OK; switch (job.Type) { case JobType.NestOut: RabNetEngBuilding b = Engine.get().getBuilding(job.ID); b.setNest(false, (job.ID2 == 0 ? 0 : 1)); needUpdate = false; break; case JobType.PreOkrol: Engine.get().preOkrol(job.ID); //_fullUpdate = false; break; case JobType.BoysOut: case JobType.GirlsOut: ReplaceForm rf = new ReplaceForm(); rf.AddRabbit(job.ID); if (job.Type == JobType.BoysOut) { rf.SetAction(ReplaceForm.Action.BOYSOUT); } res = rf.ShowDialog(); break; case JobType.CountKids: RabNetEngRabbit rrr = Engine.get().getRabbit(job.ID); CountKids ck = new CountKids(job.ID); int id2 = 0; for (int i = 0; i < rrr.Youngers.Count; i++) { if (rrr.Youngers[i].ID == job.ID2) { id2 = i; } } if (_makeFlag == 0) { //rrr.CountKids(0, 0, 0, rrr.Youngers[id2].Group, rrr.Youngers[id2].Age, 0); ck.MakeCount(); ck.Dispose(); needUpdate = false; } else { //ck = new CountKids(job.ID, job.Flag == 1); //ck.SetGroup(id2); res = ck.ShowDialog(); } break; case JobType.F**k: int id = job.ID; if (_makeFlag == -1) { needUpdate = false; Engine.db().SetRabbitVaccine(id, Vaccine.V_ID_LUST); res = DialogResult.OK; break; } if (job.Flag > 1) { id = 0; ReplaceBrideForm rb = new ReplaceBrideForm(job.ID); res = rb.ShowDialog(); if (res == DialogResult.OK) { id = rb.getGirlOut(); } res = DialogResult.Cancel; } if (id != 0) { res = (new FuckForm(id)).ShowDialog(); } break; case JobType.Okrol: res = (new OkrolForm(job.ID)).ShowDialog(); break; case JobType.Vaccine: //прививка RabNetEngRabbit rab = Engine.get().getRabbit(job.ID); AddRabVacForm dlg = new AddRabVacForm(rab, false, job.ID2); res = dlg.ShowDialog(); if (res == DialogResult.OK) { rab.SetVaccine(dlg.VacID, dlg.VacDate, false); if (rab.ParentID != 0 && Engine.opt().getBoolOption(Options.OPT_ID.VACC_MOTHER)) { RabNetEngRabbit r2 = Engine.get().getRabbit(rab.ParentID); r2.SetVaccine(dlg.VacID, dlg.VacDate, false); } } needUpdate = false; break; case JobType.NestSet: //установка гнездовья RabPlace rp = RabPlace.Parse(job.Rabplace); if (rp.CanHaveNest()) { RabNetEngBuilding rbe = RabNetEngBuilding.FromPlace(job.Rabplace, Engine.get()); rbe.setNest(true, rp.Section); res = DialogResult.OK; needUpdate = false; break; } ReplaceForm f = new ReplaceForm(); f.AddRabbit(job.ID); f.SetAction(ReplaceForm.Action.SET_NEST); res = f.ShowDialog(); break; case JobType.BoysByOne: f = new ReplaceForm(); f.AddRabbit(job.ID); res = f.ShowDialog(); break; case JobType.SpermTake: RabNetEngRabbit r = Engine.get().getRabbit(job.ID); r.SpermTake(); needUpdate = false; break; } return(res); }