void TWorkersSettings::LoadGroups(void) { SGClear(sgGroups,1); ++sgGroups->RowCount; sgGroups->Cells[0][1] = "Все"; sgGroups->Cells[1][1] = "..."; sgGroups->Cells[2][1] = "..."; TADOQuery *rez = DB->SendSQL("select " "convert(`a`.`group_id`, char) group_id, " "`a`.`name` name, " "convert(`a`.`p_kol`, char) p_kol, " "convert(count(`b`.`tab_no`), char) kol " "from `manufacture`.`worker_groups` `a` " "left join `manufacture`.`workers` `b` on `a`.`group_id` = `b`.`group_id` and `b`.`date_to` is null " "group by `a`.`group_id`"); if (rez) { for (rez->First(); !rez->Eof; rez->Next()) { size_t row = sgGroups->RowCount-1; sgGroups->Cells[0][row] = rez->FieldByName("name")->Value; sgGroups->Cells[1][row] = rez->FieldByName("kol")->Value; sgGroups->Cells[2][row] = rez->FieldByName("p_kol")->Value; sgGroups->Cells[3][row] = rez->FieldByName("group_id")->Value;//id ++sgGroups->RowCount; } if (sgGroups->RowCount > 2) --sgGroups->RowCount; delete rez; } AutoWidthSG(sgGroups); }
String TUrovenList::Init() { TADOQuery *q = new TADOQuery(DM); TUroven *s; try { q->Connection = DM->AsConnection1; q->SQL->Clear(); q->SQL->Add("SELECT * FROM Uroven"); q->Open(); while (!q->Eof) { s = new TUroven; s->UrovenID = q->FieldByName("UrovenID")->AsInteger; s->UrovenYear = q->FieldByName("UrovenYear")->AsString; s->UrovenName = q->FieldByName("UrovenName")->AsString; s->PackageType = q->FieldByName("PackageType")->AsInteger; Add(s); q->Next(); } q->Close(); } catch (...) { return "error in UrovenList init!"; } return ""; }
//группы рабочих void __fastcall TWorkersSettings::N1Click(TObject *Sender) { //добавить TWorkerGroup *wnd = new TWorkerGroup(this); if (wnd->ShowModal() == mrOk) { std::string group_name = AnsiString(wnd->group_name->Text).c_str(); long r_kol = wnd->r_kol->Text.ToIntDef(0); TADOQuery *rez = DB->SendSQL(std::string("select count(*) as cnt from `manufacture`.`worker_groups` where name = '"+ group_name +"'").c_str()); if (rez) { int cnt = (int)rez->FieldByName("cnt")->Value; if (!cnt) { std::stringstream sql; sql << "insert into `manufacture`.`worker_groups` (name,p_kol) values ('"<<group_name<<"','"<<r_kol<<"')"; DB->SendCommand(sql.str().c_str()); } delete rez; } LoadGroups(); } delete wnd; }
void TWorkersSettings::LoadWorkers(std::string group_id) { SGClear(sgWorkers,1); std::stringstream sql; sql << "select " "convert(`a`.`tab_no`, char) tab_no," "convert(`a`.`family`, char) family," "convert(`a`.`name`, char) name," "convert(`a`.`otch`, char) otch," "convert(`a`.`razr`, char) razr," "convert(`a`.`proff`, char) proff " "from `manufacture`.`workers` `a` " "where `a`.`date_to` is null "; if (!group_id.empty()) sql << "and group_id = '"<<group_id<<"' "; sql << "order by tab_no"; TADOQuery *rez = DB->SendSQL(sql.str().c_str()); if (rez) { for (rez->First(); !rez->Eof; rez->Next()) { size_t row = sgWorkers->RowCount-1; sgWorkers->Cells[0][row] = rez->FieldByName("tab_no")->Value; sgWorkers->Cells[1][row] = rez->FieldByName("family")->Value; sgWorkers->Cells[2][row] = rez->FieldByName("name")->Value; sgWorkers->Cells[3][row] = rez->FieldByName("otch")->Value; sgWorkers->Cells[4][row] = rez->FieldByName("proff")->Value; sgWorkers->Cells[5][row] = rez->FieldByName("razr")->Value; ++sgWorkers->RowCount; } if (sgWorkers->RowCount > 2) --sgWorkers->RowCount; delete rez; } AutoWidthSG(sgWorkers); }