/
nea
/
androidGroupBuilder
Обзор
Документация
Войти
/
nea
/
androidGroupBuilder
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/src/main/java/com/ea/groupbuilder/dbViewActivity.java
1 737 строк
120 KB
ea
Группа Автоморфизмов отлажено 23_04_2026
23 апр 2026, 17:08
23 апр 2026, 17:08
4513276
Код
Авторство
О чём код?
package com.ea.groupbuilder; import static java.util.Objects.isNull; import android.content.Intent; import android.content.pm.ActivityInfo; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; public class dbViewActivity extends AppCompatActivity implements InputIntInterface { private static final String TAG = "GRUGRA_REP"; final static private boolean DISPLAYLOG = false; // Прочее static final int REPORT_1_VID = 4; // запросить № подгруппы для отчетов этого вида private DbHelper dbH = null; private static SQLiteDatabase db = null; final static public String sqlSelect[] = { // 0 "select _id, sylow_num, pe, deg, forming, primitiv, name, ciklos, cykl_len, substitution, pairing_num, center_num, switchboard_num, stabilizer, iteration, parity, nomer_soc " + "from elements order by _id asc;", // 1 "Все элементы группы с непересекающимся циклами по классам сопряженных элементов", "select E._id as _id, P.class_area as pairing_num, E.name as name, E.substitution as substitution, E.ciklos as ciklos, E.deg as deg, E.pe as pe,\n" + " E.forming as forming, E.primitiv as primitiv, E.sylow_num as sylow_num, E.cykl_len as cykl_len, E.center_num as center_num, E.switchboard_num as switchboard_num,\n" + " E.stabilizer as stabilizer, E.iteration as iteration, E.parity as parity, E.nomer_soc as nomer_soc\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs\n" + " order by pairing_num asc;", // 2 "select _id, sylow_num, pe, deg, forming, primitiv, name, ciklos, cykl_len, substitution, pairing_num, center_num, switchboard_num, stabilizer, iteration, parity, nomer_soc " + "from elements order by sylow_num asc, deg asc, forming asc;", // 3 "select E._id as _id, I.name as name, E.substitution as substitution, E.ciklos as ciklos, E.deg as deg, E.switchboard_num as switchboard_num, E.center_num as center_num " + " from inputpods I, elements E where E.name = I.name order by E._id asc;", // 4 "5. Таблица умножения", "select L._id as _id, L._id as idl, R._id as idR, E._id as idm, L.name as namel, R.name as namer, E.name as namem, L.ciklos as ciklosl, " + " R.ciklos as ciklosr, E.ciklos as ciklosm, " + "L.cykl_len as lcykll, R.cykl_len as lcyklr, E.cykl_len as lcykle, " + " L.deg as degl, R.deg as degr, E.deg as degm, M.iteration as iteration " + "from temp_multiplication M, elements L, elements R, elements E " + "where L._id = M.idleft and R._id = M.idright AND M.idproiz = E._id ; ", // 5 6. 4. Нормальные и характеристические подгруппы и их порядки "select 0 as _id, num, sum(ccc) as itog_sub, sum(carac) as charc from (\n" + " select S.num_maim as num, count( P.id_subs ) as ccc, 0 as carac\n" + " from pairing_area P, sub_structure S\n" + " where P.class_area = S.num_subs\n" + " group by S.num_maim\n" + " union all\n" + " select S.num_subs as num, 0 as ccc, 1 as carac\n" + " from charac_group S\n" + " ) group by num \n" + " order by num asc;", // 6 "Коммутаторы с циклами" "select L._id as _id, L.name as namel, L.substitution as substitutionl, L.ciklos as ciklosl, R.name as namer, R.substitution as substitutionr, R.ciklos as ciklosr, M.name as namem, M.substitution as substitutionm, M.ciklos as ciklosm " + "from switchboard S, elements L, elements R, elements M " + "where L._id = S.id_left and R._id = S.id_right and M._id = S.id_switch and not M.ciklos = '';", // 7 Центр группы "select _id, name, substitution, deg, ciklos, iteration from elements where center_num = " + 0 + " order by _id asc;", // 8 Число силовских подгрупп по простым" "select 0 as _id, pe, sum(ccc0) as count0, sum(ccc2) as count2 from (\n" + "select pe, count(distinct num) as ccc0, 0 as ccc2 from sylov_table \n" + "\tgroup by pe \n" + " union\n" + "select pe, 0 as ccc0, count(distinct num) as ccc2 from sylov_table \n" + "\twhere parity = 0 and not id_s = 4" + "\tgroup by pe \n" + " ) group by pe \n" + " order by pe asc;", // 9 Число силовских подгрупп куда входят их общие элементы "select C._id as _id, C.pe as pe, E.sylow_num as sylow_num, C.id_s as id_s, E.ciklos as ciklos, E.deg as deg, C.count_id as count_id\n" + "from sylov_common C, elements E " + "where E._id = C.id_s and C.parity = 0 " + // parity= 0 - вся группа, parity = 1 - четная часть "order by C.pe asc, C.id_s asc; ", // 10 " Подгруппы общих элементов силовских подгрупп", "select G._id as _id, G.pe as pe, G.sylow_zag as sylow_zag, G.id_s as id_s, E.parity as parity, " + "E.cykl_len as cykl_len, E.ciklos as ciklos, E.pairing_num as pairing_num, G.nomer1 as nomer1, G.nomer2 as nomer2, E.deg as deg " + "from sylov_com_grup G, elements E\n" + "where G.id_s = E._id \n" + "order by G.pe asc, G.nomer2 asc, G.nomer1 asc, G.sylow_zag asc, G.id_s asc\n", // 11 2. 6. Порядки классов ссопряженных элементов общих элементов силовских подгрупп "select 0 as _id, pe, nomer2, nomer1, pairing_num, cykl_len, count(distinct Eid) as ccc from (\n" + "select E.pe as pe, G.nomer2 as nomer2, G.nomer1 as nomer1, P.class_area as pairing_num, E.cykl_len as cykl_len, E._id Eid\n" + " from elements E, sylov_com_grup G, pairing_area P\n" + " where E._id = G.id_s and P.id_subs = E._id and E.pe > 0\n" + "\tunion all\n" + "\t select E.pe as pe, null nomer2, null nomer1, P.class_area as pairing_num, 'всего в классе' cykl_len, E._id Eid\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs and E.pe > 0\n" + " )\n" + " group by pe, pairing_num, cykl_len, nomer2, nomer1\n" + " order by pe asc, pairing_num asc, nomer2 desc, nomer1 asc;", // "12 Элементы силовских подгрупп не всходящие в подгруппу четных подстановок "select distinct 0 as _id, C.pe as pe, C.num as num, C.id_s as id_s, E.ciklos as ciklos, E.deg as deg\n" + " from sylov_table C, elements E \n" + " where E._id = C.id_s and C.parity = 1 \n" + " order by C.pe asc, C.id_s asc; ", // 13 Подгруппы Силова "", // 14 Порядки классов сопряженных элементов "select 0 as _id, num, sum(cc) as ccc, sum(pp) as ppp from (\n" + "select pairing_num as num, 1 as cc, 0 as pp from elements\n" + " union all\n" + "select pairing_num as num, 0 as cc, 1 as pp from elements\n" + " where parity = 0\n" + ")\n" + "group by num\n" + "order by num asc;", // 15 Порядки классов сопряженных элементов без объединения центра", // 1.6 "select 0 as _id, klass, num, cykl_len, sum(cc) as ccc, sum(pp) as ppp from (\n" + "select P.class_area as klass, P.num as num, 1 as cc, 0 as pp, E.cykl_len as cykl_len" + " from pairing_area P, elements E\n" + " where P.id_subs = E._id\n" + " union all\n" + "select P.class_area as klass, P.num as num, 0 as cc, 1 as pp, E.cykl_len as cykl_len" + " from pairing_area P, elements E\n" + // четные подстановки " where E.parity = 0 and P.id_subs = E._id\n" + ")\n" + "group by num, klass, cykl_len\n" + "order by klass asc;", // 2. 8. Порядки силовских подгрупп", 16 "select 0 _id, num, pe, count(id_s) as ccc\n" + " from sylov_table\n" + " group by num, pe\n" + " order by pe asc, num asc;", /* 2. 8. Классы, cопрягающие силовские подгруппы", // 16 "select distinct 0 _id, E.pe pe1, E.sylow_num as num1, EE.sylow_num as num2,\n" + " P.class_area class1, PP.class_area class2, P.cykl_len cykl1, PP.cykl_len cykl2, WW.cykl_len cyklw, count(distinct W.id_left) ccc\n" + " from switchboard W, pairing_area P, pairing_area PP, elements E, elements EE, elements WW\n" + " where W.id_right = E._id and W.id_pair = EE._id and WW._id = W.id_left and \n" + " P.id_subs = E._id and PP.id_subs = EE._id and not E.sylow_num is null and E.sylow_num < EE.sylow_num\n" + " group by E.pe, E.sylow_num, EE.sylow_num, PP.cykl_len, P.cykl_len, P.class_area, PP.class_area, WW.cykl_len\n" + " order by E.pe asc, E.sylow_num asc, EE.sylow_num asc, P.class_area asc, PP.class_area asc;", */ // 17 // id_pair код сопряженного элемента = (idleft**-1) * idright * idleft "select W._id as _id, E1.pe as pe, E1.sylow_num as sylow_num, W.id_left as id_left, W.id_right as id_right, W.id_pair as id_pair, \n" + "E0.deg as deg0, E1.deg as deg1, " + "E0.ciklos as ciklos0, E1.ciklos as ciklos1, E2.ciklos as ciklos2, \n" + "E0.name as name0, E1.name as name1, E2.name as name2, " + " E0.pairing_num as pairing_num0, E1.pairing_num as pairing_num1, E2.pairing_num as pairing_num2 " + "from switchboard W, elements E0, elements E1, elements E2 \n" + "where e0._id = W.id_left and E1._id = W.id_right and E2._id = W.id_pair and not E1.pe = 0\n" + "order by E0.pe asc, E0.sylow_num asc, W.id_right asc\n;", // 18 "select L._id as _id, R._id as rid, M._id as mid, L.name as namel, L.substitution as substitutionl, L.ciklos as ciklosl, R.name as namer, R.substitution as substitutionr, R.ciklos as ciklosr, M.name as namem, M.substitution as substitutionm, M.ciklos as ciklosm, " + "M.pairing_num as pairing_numm " + "from switchboard S, elements L, elements R, elements M " + "where L._id = S.id_left and R._id = S.id_right and M._id = S.id_pair order by M.pairing_num asc, L._id asc; ", // 19 id_pair код сопряженного элемента = (idleft**-1) * idright * idleft "select m._id as _id, e1.pe as pe, m.idleft as idleft, m.idright as idright, m.idproiz as idproiz, e1.deg as deg1, e2.deg as deg2, e0.deg as deg0, \n" + " e1.ciklos as ciklos1 , e2.ciklos as ciklos2 , e0.ciklos as ciklos0, " + "e1.name as name1, e2.name as name2, e0.name as name0 \n" + "from temp_multiplication m, elements e1, elements e2, elements e0 \n" + "where e1._id = m.idleft and e2._id = m.idright and e0._id = idproiz and \n" + " e1.pe = e2.pe and not e0.pe = e1.pe and not e1.pe = 0 and not e0.deg = 0 " + "order by e1.pe asc, e0.deg asc, e1.deg asc;", // 20 Порядки централизаторов классов сопряженных элементов" "select DISTINCT 0 as _id, C.pairing_num as pairing_num, C.count_permutation as count_permutation," + " C.count_pairing as count_pairing " + "from centers C order by pairing_num asc;", // 21 "select C._id as _id, C.class_pair as pairing_numc, E1.name as name1, E1.ciklos as ciklos1, E1.center_num as center_num, E1.switchboard_num as switchboard_num, E1.deg as deg1," + "E.name as namee, E.ciklos as ciklos, E.deg as deg, E.pe as pe, E.pairing_num as pairing_nume, E.stabilizer as stabilizer " + "from elements E, elements E1, centralizer C " + "where C.id_imagine = E1._id and C.id_subs = E._id and E1.deg > 0 " + "order by C.class_pair asc, E.pairing_num asc, E1.name asc, E.name asc;", // 22 "select _id, text_ratios, iteration from ratios order by _id asc;", // 23 6.10. Координаты вершин построенного графа Кэли "select P._id as _id, P.id_element as id_element, P.iteration as iteration, P.xp as xp, P.yp as yp, P.zp as zp, \n" + " E1.name as name, E1.ciklos as ciklos, E1.sylow_num as sylow_num, E1.pairing_num as pairing_num, E1.deg as deg, P.ind_point ind_point \n" + " from points P, elements E1\n" + "where E1._id = P.id_element\n" + " order by _id asc;", // 24 Ребра графика "select L._id as _id, L.id_1 as id_1, L.id_2 as id_2, id_start, L.name as name0,\n" + " E1.name as name1, E2.name as name2, \n" + " E0.ciklos as ciklos0, E1.ciklos as ciklos1, E2.ciklos as ciklos2, \n" + " P1.xp as xp1, P1.yp as yp1, P1.zp as zp1, P2.xp as xp2, P2.yp as yp2, P2.zp as zp2, L.color color \n" + " from lines L, points P1, points P2, elements E0, elements E1, elements E2\n" + " where L.id_1 = E1._id and L.id_2 = E2._id and L.id_start = E0._id and L.id_1 = P1.id_element and L.id_2 = P2.id_element order by L.nomer asc, _id asc;", // 25 "select _id, pairing_num, name, substitution, ciklos, deg, cykl_len, center_num, switchboard_num, stabilizer, iteration, parity, nomer_soc \n" + "from elements \n" + "where sylow_num isnull \n" + "order by pairing_num asc, _id asc;", // 26 Четные подстановки коммутанта "select distinct L._id as _id, L.name as name, L.substitution as substitution, L.ciklos as ciklos, L.deg as deg, L.sylow_num as sylow_num, l.pairing_num as pairing_num, L.switchboard_num as switchboard_num, L.parity as parity\n" + " from elements L\n" + " where L.parity = 0 and L.switchboard_num > 0 \n" + " order by L.switchboard_num asc, l.pairing_num asc, L.ciklos asc; ", // 27 Вложение в группу подстановок на множестве своих элементов "select M._id as _id, M.name as name, M.ciklos as ciklos, A.cykl as cykl, m.deg as degm, A.deg as dega,\n" + " M.cykl_len as cykl_len, A.clength as clength, M.parity as parityM, A.parity as parityA, A.stabilizer as stabilizer" + " from elements M, addition A\n" + " where M._id = A.main_id\n" + " order by M._id asc", // 28 "26. Отличия при вложение в группу подстановок на множестве своих элементов", "select M._id as _id, M.name as name, M.ciklos as ciklos, A.cykl as cykl, m.deg as degm, A.deg as dega,\n" + " M.cykl_len as cykl_len, A.clength as clength, M.parity as parityM, A.parity as parityA\n" + " from elements M, addition A\n" + " where M._id = A.main_id\n and not (m.deg = A.deg and M.parity = A.parity)" + " order by M._id asc;", // 29 таблица умножения четных подстановок "select L._id as _id, L._id as idl, R._id as idR, E._id as idm, L.name as namel, R.name as namer, E.name as namem, L.ciklos as ciklosl, \n" + " R.ciklos as ciklosr, E.ciklos as ciklosm, \n" + " L.cykl_len as lcykll, R.cykl_len as lcyklr, E.cykl_len as lcykle, \n" + " L.deg as degl, R.deg as degr, E.deg as degm, M.iteration as iteration, \n" + " L.parity as lparity, R.parity as rparity, E.parity as mparity \n" + " from temp_multiplication M, elements L, elements R, elements E \n" + " where L._id = M.idleft and R._id = M.idright AND M.idproiz = E._id and " + "L.parity = 0 and R.parity = 0 order by L._id asc, R._id asc;", // 30 Группировка общих элементов силовских подгрупп "select distinct 0 as _id, pe, sylow_num " + "from elements where instr(sylow_num, ' ') > 0 and pe > 0 order by pe asc;", // 31 2.12 Классы сопряженных элементов силовских подгрупп 31 "select 0 as _id, pe, sylow_num, pairing_num, cykl_len, count(Eid) as ccc, deg from (\n" + "select E.pe as pe, T.num sylow_num, P.class_area as pairing_num, E.cykl_len as cykl_len, E._id Eid, E.deg as deg\n" + " from elements E, pairing_area P, sylov_table T\n" + " where E._id = P.id_subs and E.pe > 0 and E._id = T.id_s\n" + " UNION ALL \n" + " select E.pe as pe, 'Всего эл-тов в классе' sylow_num, P.class_area as pairing_num, E.cykl_len as cykl_len, E._id Eid, E.deg as deg\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs and E.pe > 0 \n" + ")\n" + " group by pairing_num, cykl_len, deg, pe, sylow_num\n" + " order by pairing_num asc, pe asc, sylow_num asc;", // 32 2.13 Классы сопряженных элементов не входящих в силовские подгруппы "select 0 as _id, pairing_num, cykl_len, count(_id) as ccc, deg \n" + " from elements where sylow_num isnull \n" + " group by pairing_num, cykl_len, deg\n" + " order by pairing_num asc;", // 33 "select _id, parm, ind, val, val_txt from params;", // 34 Таблица умножения силовской подгруппы "select T._id as _id, T.idleft as idleft, T.idright as idright, T.idproiz as idproiz, T.num1 as num1, T.num2 as num2,\n" + " E1.ciklos as ciklos1, E2.ciklos as ciklos2, E0.ciklos as ciklos0, T.pe as pe\n" + " from temp_sylow T, elements E1, elements E2, elements E0\n" + " where T.idleft = E1._id and T.idright = E2._id and T.idproiz = E0._id\n" + " order by T.pe asc, T.idleft asc, T.idright asc;", // 35 Таблица умножения общей подгруппы силовских подгруппах "select T._id as _id, T.idleft as idleft, T.idright as idright, T.idproiz as idproiz, T.num1 as num1, T.num2 as num2,\n" + "E1.ciklos as ciklos1, E2.ciklos as ciklos2, E0.ciklos as ciklos0,\n" + "T.pe as pe\n" + "from temp_sylow T, elements E1, elements E2, elements E0\n" + "where T.idleft = E1._id and T.idright = E2._id and T.idproiz = E0._id\n" + "order by T.pe asc, T.idleft asc, T.idright asc;", // 36 общие элементы общих подгрупп в силовских подгруппых "select 0 as _id, U.pe as pe, U.id_s as id_s, U.ccc as ccc, E.name as name, E.ciklos as ciklos, nomer_soc \n" + "from (\n" + " select G.pe, G.id_s, count(nomer1) as ccc \n" + "\tfrom sylov_com_grup G\n" + "\tgroup by G.pe, id_s\n" + " ) U, elements E\n" + " where U.ccc > 1 and E._id = U.id_s\n" + "order by U.pe asc, id_s asc;", // 37 2.14 Порядки P подгрупп по уровням вложенности "select 0 as _id, pe, ur, nom, sum(ccc) as kolvo, sum(kkk) as kokom, sum(ppp) as koppp from (\n" + " select pe, nomer2 as ur, nomer1 as nom, 1 as ccc, 0 as kkk, 0 as ppp from sylov_com_grup\n" + " union ALL\n" + " select G.pe as pe, G.nomer2 as ur, G.nomer1 as nom, 0 as ccc, 1 as kkk, 0 as ppp from sylov_com_grup G, elements E\n" + " where E._id = G.id_s and E.switchboard_num > 0\n" + " union ALL\n" + " select G.pe as pe, G.nomer2 as ur, G.nomer1 as nom, 0 as ccc, 0 as kkk, 1 as ppp from sylov_com_grup G, elements E\n" + " where E._id = G.id_s and E.parity = 0\n" + " union ALL\n" + " select pe, 0 as ur, num as nom, 1 as ccc, 0 as kkk, 0 as ppp from sylov_table\n" + " union ALL\n" + " select S.pe as pe, 0 as ur, num as nom, 0 as ccc, 1 as kkk, 0 as ppp from sylov_table S, elements E\n" + " where E._id = S.id_s and E.switchboard_num > 0\n" + " union ALL\n" + " select S.pe as pe, 0 as ur, num as nom, 0 as ccc, 0 as kkk, 1 as ppp from sylov_table S, elements E\n" + " where E._id = S.id_s and E.parity = 0\n" + " )\n" + " group by pe, ur, nom\n" + " order by pe, ur, nom;", // 38 2.17 Количество общих P подгрупп по уровням "select 0 as _id, pe, ur, count(ccc) as kolvo from (\n" + " select distinct pe, nomer2 as ur, nomer1 as ccc from sylov_com_grup\n" + " union ALL\n" + " select distinct pe, 0 as ur, num as ccc from sylov_table\n" + " )\n" + " group by pe, ur\n" + " order by pe, ur;", // 39 "2.9 Количество сопрягающих элементов у силовских подгрупп" // 39 "select 0 as _id, S.pe as pe, S.num1 as num1, S.num2 as num2, count(S.id_conj) as ccc\n" + " from sylow_conj S, elements E1, elements E2\n" + " where S.id_conj = E1._id and S.id_reverse = E2._id\n" + "\t group by S.pe, S.num1, S.num2\n" + " order by S.pe asc, S.num1 asc, S.num2 asc; ", // 40 2.16 Иерархия общих P подгрупп "select _id, main_lelel, att_level, pe, mail_num, att_num, att_order, att_index " + "from sylow_attachments " + " order by pe, main_lelel, att_level, mail_num, att_num; ", // "5. 3 Отличия в цикловых типах при вложение в группу подстановок" // 41 "select 0 as _id, m.deg as degm, M.cykl_len as cykl_len, A.clength as clength\n" + " from elements M, addition A\n" + " where M._id = A.main_id and not M.cykl_len = A.clength\n" + " order by m.deg asc;", // 1. 7 Число элементов одного порядка в группе" // 42 "select 0 as _id, deg, count(*) as chislo from elements group by deg order by deg asc;", // "1. 8 Число элементов одного циклового типа в группе" // 43 "select 0 as _id, deg, cykl_len, count(*) as chislo from elements group by deg, cykl_len order by deg asc, cykl_len asc;", // "2.19. Порядки общих силовские подгруппы", // 44 "select 0 _id, pe, nomer1, nomer2, sylow_zag, count(*) ccc\n" + "from sylov_com_grup\n" + " group by nomer1, nomer2, pe, sylow_zag\n" + " order by pe asc, nomer1 asc, nomer2 asc;;", /* 2.19. Элементы, сопрягающие силовские подгруппы", // 44 "select distinct 0 _id, X.sylow_num as num1, Y.sylow_num as num2, X.pe as pe, M.deg deg0, M.cykl_len as cykl_len0, P.class_area as pairing_num,\n" + " X.deg as deg1, X.cykl_len as cykl_len1, Y.deg as deg2, Y.cykl_len as cykl_len2,\n" + " M.ciklos ciklos0, X.ciklos ciklos1, Y.ciklos ciklos2, M._id id0, X._id id1, Y._id id2\n" + " from switchboard V, elements M, elements X, elements Y, pairing_area P\n" + " where V.id_left = M._id and M._id = P.id_subs and M.deg > 0 and not X.sylow_num = Y.sylow_num and\n" + " X._id = V.id_right and Y._id = V.id_pair\n" + " order by X.sylow_num ASC, Y.sylow_num ASC, P.class_area ASC, x.PE ASC\n", */ // "2.22. Нормализаторы силовских подгрупп", // 45 "select N.pe pe, N.num num, id_s _id, E.pe epe, E.cykl_len cykl_len, E.ciklos ciklos, P.class_area class_area " + " from normalizer N, elements E, pairing_area P " + " where P.id_subs = E._id and N.id_s = E._id " + " order by pe asc, num asc, E.pe asc, id_s asc;", // 4. 3 Эпиморфизм на группу подстановок на силовских подгруппах", // 46 "select F.pe as pe, M._id as _id, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF, \n" + " M.sylow_num as sylow_num, M.deg as degM, F.deg as degF\n" + "from elements M, epimorphism F\n" + "where M._id = F.id_element and F.pe = 2\n" + "order by F.pe asc, M._id asc;", // "4. 4 Обрах при эпиморфизме на группу подстановок на силовских подгруппах", // 47 "select distinct F.pe as pe, F.id_obraz as id_obraz, F.substitution as substitutionF, F.ciklos as ciklosF,\n" + " F.cykl_len as cykl_lenF, F.deg as degF\n" + "from epimorphism F\n" + "where F.pe = 2\n" + "order by F.pe asc, F.id_element asc;", // "4. 5 Ядро при эпиморфизме на группу подстановок на силовских подгруппах", // 48 "", // "4. 6 Смежные классы при эпиморфизме на группу подстановок на силовских подгруппах" // 49 "", // "4. 7 Силовские подгруппы при эпиморфизме на группу подстановок на силовских подгруппах", // 50 "", // "4. 8 Порядки силовских подгрупп при эпиморфизме на группу подстановок на силовских подгруппах", // 51 "", // "7.14 Образы образующих при эпиморфизме на группу подстановок на силовских подгруппах" // 52 " select F.pe as pe, M._id as _id, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF, \n" + " M.sylow_num as sylow_num, M.deg as degM, F.deg as degF\n" + " from elements M, epimorphism F\n" + " where M._id = F.id_element and M.iteration = 0\n" + " order by F.pe asc, M._id asc;", // "6.15 Перенумирация силовских подгрупп при эпиморфизме на группу подстановок на силовских подгруппах" // 53 "select pe, num_old, num, 0 as _id from accordance \n" + " order by pe asc, num_old asc;", // 54 "4. 9 Таблица умножения ядра при эпиморфизме на группу подстановок на силовских подгруппах", // 54 "select T._id as _id, T.idleft as idleft, T.idright as idright, T.idproiz as idproiz, T.num1 as num1, T.num2 as num2,\n" + " E1.ciklos as ciklos1, E2.ciklos as ciklos2, E0.ciklos as ciklos0, E1.deg as deg1, E2.deg as deg2, E0.deg as deg0\n" + " from temp_sylow T, elements E1, elements E2, elements E0\n" + " where T.idleft = E1._id and T.idright = E2._id and T.idproiz = E0._id\n" + " order by T.pe asc, T.idleft asc, T.idright asc;", // "1. 9 Вхождение элементов в основные подгруппы", // 55 "", // "1.10 Порядки основных подгрупп" // 56 "", // "1. 3. Коммутант любого расчитанного уровня" // 57 "", // "4.11 Таблица умножения коммутанта любого расчитанного уровня" // 58 "", // "6. 1 Цоколь" // 59 "select _id, pairing_num, name, substitution, ciklos, deg, pe, sylow_num, cykl_len, center_num, switchboard_num, stabilizer, nomer_soc " + " from elements where not nomer_soc isnull order by nomer_soc asc, pairing_num asc;", // "6. 6 Элементы нормальной подгруппы", // 60 "", // "6. 2 Состав и порядки нормальных подгрупп // 61 soc_list "select _id, num, num_klass, count_klass, deg, comm_level, even_flag, soc_level, centr_flag, dubl_flag, sylow_num, connon_sylow, " + "sostav, summa_num, epi_pe\n" + " from soc_list\n" + " order by dubl_flag asc, num_klass asc;", // "1.11 Элементы группы по цикловому типу" // 62 "select E._id as _id, abs(substr(P.cykl_len, 1, instr(trim(P.cykl_len) ||' ', ' '))) as sym1, length(P.cykl_len) as len, \n" + " P.class_area as class_area, P.cykl_len as cykl_len, P.num as num, ciklos, deg, sylow_num, center_num, switchboard_num, stabilizer, substitution\n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " order by length(P.cykl_len) asc,\n" + " abs(substr(P.cykl_len, 1, instr(trim(P.cykl_len) ||' ', ' '))) asc,\n" + " P.cykl_len asc, P.class_area asc;", // "6.12. Моноид классов сопряженных элементов" // 63 "select distinct 0 as _id, EA.pairing_num as num1, EB.pairing_num as num2, ER.pairing_num as num0,\n" + " EA.cykl_len as cykl1, EB.cykl_len as cykl2, ER.cykl_len as cykl0,\n" + " count(distinct EA._id) as k1, count(distinct EB._id) as k2, count(distinct ER._id) as k0\n" + " from temp_multiplication M,\n" + " elements EA, elements EB, elements ER\n" + " where ER._id = M.idproiz and EA._id = M.idleft and EB._id = M.idright\n" + " group by EA.pairing_num, EB.pairing_num, ER.pairing_num,\n" + " EA.cykl_len, EB.cykl_len, ER.cykl_len\n" + " order by num1 asc, num2 asc, num0 asc;", /* "6. 5 Разложение группы в прямое произведение своих подгрупп" 64 select iter, num_maim, num_subs, deg from sub_summa order by iter asc, num_maim asc; */ "select _id, iter, num_maim, num_subs, deg from sub_summa order by iter asc, num_maim asc;", // "6. 6 Вложенность нормальных подгрупп" // 65 "select N._id as _id, N.num_maim as num_maim, N.num_sub as num_sub, LM.nrow as nrowm, LS.nrow as nrows,\n" + " LM.count_klass as c_main, LM.deg as deg_m,\n" + " LS.count_klass as c_sub, LS.deg as deg_s, LS.num as nums\n" + " from normal_subgroup N, soc_list LM, soc_list LS\n" + " where N.num_maim = LM.num_klass and N.num_sub = LS.num_klass\n" + " order by LM.nrow asc, LS.nrow asc, N.num_maim asc;", // 6. 7 Классы нормальных подгрупп" // 66 "", // "6. 8 Таблица умножения подгруппы (классы)" // 67 "", // "6. 8 Порядки нормальных подгрупп" // 68 "select 0 as _id, txt, klass, num, sum(ccc) as itog_sub from (\n" + " select ' ' as txt, S.num_maim as num, P.class_area as klass, count( P.id_subs ) as ccc\n" + " from pairing_area P, sub_structure S\n" + " where P.class_area = S.num_subs \n" + " group by S.num_maim, P.class_area\n" + " union all\n" + " select 'Итго по подгруппе' as txt, S.num_maim as num, ' ' as klass, count( P.id_subs ) as ccc\n" + " from pairing_area P, sub_structure S\n" + " where P.class_area = S.num_subs \n" + " group by S.num_maim, P.class_area\n" + ") group by txt, num, klass\n" + " order by num asc, klass asc\n", // "6.11 Классы при умножении элементов одного класса" // 69 "select distinct 0 as _id, EA.class_area as kla, ER.class_area as kl0, EA.cykl_len as ca, ER.cykl_len as cr\n" + " from temp_multiplication M,\n" + " pairing_area EA, pairing_area EB, pairing_area ER\n" + " where ER.id_subs = M.idproiz and EA.id_subs = M.idleft and EB.id_subs = M.idright and\n" + " EA.class_area = EB.class_area\n" + " order by EA.class_area asc, ER.class_area asc;", // 7. 6 Силовские подгруппы в составе Sn 70 "", // 7. 3 Классы подгруппы в классах Sn с элементами // 71 "select distinct 0 _id, nclass, mclass, id_true, id, ncykl, mcykl from (\n" + "select PN.class_area nclass, PM.class_area mclass, N.id_true id_true, M._id id, N.cykl_len ncykl, M.cykl_len mcykl\n" + " from elements_n N, pairing_area_n PN, elements M, pairing_area PM\n" + " where PN.id_subs = N.id_true and PM.id_subs = M._id and M._id = N.link_to_elements and N.for_n <= 0 \n" + " union ALL\n" + "select PN.class_area nclass, null mclass, N.id_true, null, N.cykl_len, null " + " from elements_n N, pairing_area_n PN\n" + " where PN.id_subs = N.id_true and N.link_to_elements is null and N.for_n <= 0 \n" + " ) order by nclass asc, mclass asc, id_true asc ;", // 7. 4 Порядки классоов подгруппы в классах Sn", 72 "select 0 _id, nclass, mclass, count(id_true) nnn, count(id) mmm, ncykl, mcykl \n" + " from (\n" + "select 0 _id, PN.class_area nclass, PM.class_area mclass, N.id_true id_true, M._id id, N.cykl_len ncykl, M.cykl_len mcykl\n" + " from elements_n N, pairing_area_n PN, elements M, pairing_area PM\n" + " where PN.id_subs = N.id_true and PM.id_subs = M._id and M._id = N.link_to_elements and N.for_n <= 0 \n" + " union ALL\n" + "select 0 _id, PN.class_area nclass, null mclass, N.id_true id_true, null id, N.cykl_len ncykl, null mcykl\n" + " from elements_n N, pairing_area_n PN\n" + // " where PN.id_subs = N.id_true and N.link_to_elements is null \n" + " where PN.id_subs = N.id_true and N.link_to_elements is null and N.for_n <= 0 \n" + " )\n" + " group by nclass, mclass, ncykl, mcykl \n" + " order by nclass asc, mclass asc, nnn desc\n", // 1. 8 Классы элементов одного порядка (в спектре группы)", // 73 "select 0 as _id, E.deg deg, P.class_area class_area, count(*) as chislo, E.cykl_len cykl_len \n" + " from elements E, pairing_area P \n" + " where E._id = P.id_subs\n" + " group by E.deg, P.class_area, E.cykl_len \n" + " union all \n" + " select 0 as _id, 'всего в классе' deg, P.class_area class_area, count(*) as chislo, null cykl_len \n" + " from elements E, pairing_area P \n" + " where E._id = P.id_subs " + " group by E.deg, P.class_area \n" + " order by P.class_area asc, E.deg asc;" , // 7. 9 Классы подгруппы в классах Sn только классы", // 74 "select distinct 0 _id, stabilizer, pairing_num, deg, cykl_len, sum(chisloS) sss, sum(distinct chisloG) ggg from (\n" + "select distinct '' stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(distinct M._id) chisloS, 0 chisloG\n" + " from elements_n M, pairing_area_n P\n" + " where M.id_true = P.id_subs and M.for_n <= 0 \n" + " group by P.class_area, M.deg, M.cykl_len\n" + " union all\n" + "select distinct '' stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, 0 chisloS, Count(distinct M._id) chisloG\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by P.class_area, M.deg, M.cykl_len\n" + " union all\n" + " select distinct 'Всего эл-тов в классе' as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, 0 chisloS, Count(distinct M._id) chisloG\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by P.class_area, M.deg, M.cykl_len\n" + " union all\n" + " select distinct 'Всего эл-тов в классе' as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(distinct M._id) chisloS, 0 chisloG\n" + " from elements_n M, pairing_area_n P\n" + " where M.id_true = P.id_subs and M.for_n <= 0 \n" + " group by P.class_area, M.deg, M.cykl_len\n" + "\t\t )\n" + " group by pairing_num, deg, cykl_len, stabilizer\n" + " order by pairing_num, deg, stabilizer;\n", // 7. 1 Элементы подгруппы не содержащиеся в Sn 75 "select distinct E._id _id, E.name name, E.substitution substitution, E.ciklos ciklos,\n" + " E.sylow_num sylow_num, E.switchboard_num switchboard_num, E.center_num center_num, \n" + " E.cykl_len cykl_len, E.pe pe, E.iteration iteration, E.nomer_soc nomer_soc, E.pairing_num pairing_num, P.class_area class_area \n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id and not E._id in\n" + " (select N.link_to_elements from elements_n N\n" + " where not N.link_to_elements is null and N.for_n <= 0 \n" + " ) \n" + " order by E._id asc;", // 7. 5 Пересечение подгруппы с Sn", // 76 "select distinct E._id _id, N.id_true id_true, E.name name, N.name name_n, E.substitution substitution, E.ciklos ciklos,\n" + " E.sylow_num sylow_num, E.switchboard_num switchboard_num, E.center_num center_num, \n" + " E.cykl_len cykl_len, E.pe pe, E.iteration iteration, E.nomer_soc nomer_soc, E.pairing_num pairing_num, N.pairing_num pairing_num_n,\n" + " P.class_area class_area, PN.class_area class_area_n \n" + " from elements E, pairing_area P, elements_n N, pairing_area_n PN\n" + " where P.id_subs = E._id and E._id = N.link_to_elements and " + " not N.link_to_elements is null and PN.id_subs = N.id_true and N.for_n <= 0 \n" + " order by E._id asc;", // 7. 7 Порядки P подгрупп подгруппы и Sn" // 77 "select 0 _id, pe, num_s, num_p, sum(yyy) sum_n, sum(xxx) sum_p\n" + " from (\n" + "select distinct SN.pe pe, SN.num num_s, SM.num num_p, 0 yyy, count(*) xxx\n" + " from elements AA, elements_n BB, sylov_table SM, sylov_table_n SN\n" + " where AA._id = BB.link_to_elements and\n" + " AA._id = SM.id_s and BB.id_true = SN.id_s and\n" + " substr(BB.sylow_num, (\n" + " select substr( '0000', 1, 3 - length(S.num)) || S.num\n" + " from sylov_table_n S)\n" + " ) > 0 and BB.for_n <= 0 \n" + " group by SN.pe, SN.num, SM.num\n" + " having count(*) > 1\n" + " union all\n" + "select distinct SN.pe pe, SN.num num_s, null num_p, count(id_s) yyy, 0 xxx\n" + " from sylov_table_n SN, elements_n BB \n" + " where BB.id_true = SN.id_s and BB.for_n <= 0 \n" + " group by SN.pe, SN.num\n" + " )\n" + " group by pe, num_s, num_p\n" + " order by pe asc, num_s asc, num_p asc;", // 7. 2 Подгруппа в Sn " // 78 "select distinct id_true, _id, nname, mname, n_cykl, m_cykl, ncik, mcik, n_class, m_class, \n" + " npairing_num, mpairing_num, nsylow_num, msylow_num, ncenter_num, mcenter_num, \n" + " nswitchboard_num, mswitchboard_num, pe, \n" + " nsubstitution, msubstitution from (\n" + "select N.id_true, M._id _id, N.name nname, M.name mname, N.cykl_len n_cykl, M.cykl_len m_cykl, N.ciklos ncik, M.ciklos mcik, Pn.class_area n_class, PM.class_area m_class,\n" + " N.pairing_num npairing_num, M.pairing_num mpairing_num, N.sylow_num nsylow_num, M.sylow_num msylow_num,N.center_num ncenter_num, M.center_num mcenter_num, \n" + " N.switchboard_num nswitchboard_num, M.switchboard_num mswitchboard_num, N.pe pe, \n" + " N.substitution nsubstitution, M.substitution msubstitution\n" + " from elements_n N, elements M, pairing_area_n PN, pairing_area PM\n" + " where PN.id_subs = N.id_true and PM.id_subs = M._id and M._id = N.link_to_elements and N.for_n <= 0 \n" + " union ALL\n" + "select N.id_true, 0 _id, N.name nname, '' mname, N.cykl_len n_cykl, '' m_cykl, N.ciklos as ncik, '' mcik, Pn.class_area n_class, null m_class,\n" + " N.pairing_num npairing_num, null mpairing_num, N.sylow_num nsylow_num, null msylow_num, N.center_num ncenter_num, null mcenter_num,\n" + " N.switchboard_num nswitchboard_num, null mswitchboard_num, N.pe pe,\n" + " N.substitution nsubstitution, null msubstitution\n" + " from elements_n N, pairing_area_n PN\n" + " where PN.id_subs = N.id_true and N.link_to_elements is null and N.for_n <= 0 \n" + " ) order by id_true asc;", // "7. 8 Общие элементы силовских подгрупп" 79 "select BB.pe pe, BB.sylow_num nnum, AA.sylow_num mnum, AA._id _id, BB.id_true id_true,\n" + " BB.name nname, AA.name mname, BB.cykl_len n_cykl, AA.cykl_len m_cykl, BB.ciklos ncik, AA.ciklos mcik\n" + " from elements AA, elements_n BB\n" + " where AA._id = BB.link_to_elements and\n" + " substr(BB.sylow_num, (\n" + " select substr( '0000', 1, 3 - length(S.num)) || S.num\n" + " from sylov_table_n S)\n" + " ) > 0 and BB.for_n <= 0 \n" + " order by BB.pe, BB.sylow_num asc, AA.sylow_num asc;", // "2.21. Классы p-жлементов по их степеням" // 80 "select 0 as _id, P.class_area class_area, E.pe, E.deg deg, count(*) as chislo\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs and E.pe > 0\n" + " group by E.deg, P.class_area, E.pe\n" + "\t union all\n" + "select 0 as _id, P.class_area class_area, null pe, 'всего в классе' deg, count(*) as chislo\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs and P.class_area in (\n" + "\t\tselect P.class_area class_area\n" + " from elements E, pairing_area P\n" + " where E._id = P.id_subs and E.pe > 0\n" + "\t )\n" + " group by P.class_area\n" + "\t order by P.class_area asc, E.deg asc;", // 2.22. Классы силовских подгрупп по степеням элементов" // 81 "select 0 as _id, E.deg deg, E.cykl_len cykl_len, P.class_area class_area, E.sylow_num, E.pe pe, count(*) as chislo \n" + " from elements E, pairing_area P \n" + " where E._id = P.id_subs\n" + " group by E.deg, E.sylow_num, P.class_area, E.cykl_len, E.pe\n" + " union all \n" + " select 0 as _id, null deg, E.cykl_len cykl_len, P.class_area class_area, 'всего в классе' sylow_num, E.pe pe, count(*) as chislo \n" + " from elements E, pairing_area P \n" + " where E._id = P.id_subs and P.class_area in (\n" + "\t\tselect P.class_area class_area\n" + " from elements E, pairing_area P \n" + " where E._id = P.id_subs\n" + "\t\t )\n" + " group by P.class_area, E.cykl_len, E.pe \n" + " order by P.class_area asc, E.deg asc, E.sylow_num;", // 2.20. Число сопрягающих элементов силовских подгруппы с другими подгруппами" // 82 "select distinct 0 _id, M.pe as pe, V.num1 as num1, V.num2 as num2, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(distinct P.class_area) chislo\n" + " from sylow_conj V, elements M, pairing_area P\n" + " where V.id_conj = M._id and M._id = P.id_subs and V.num1 < V.num2\n" + " group by V.pe, V.num1, V.num2, P.class_area, M.deg, M.cykl_len\n" + " union all\n" + " select distinct 0 as _id, M.pe as pe, 'всего в классе' as num1, null num2, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(distinct P.class_area) chislo\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by M.pe, P.class_area, M.deg, M.cykl_len\n" + " order by pairing_num asc, deg asc, num1 asc;", // 1.13. Классы стабилизаторов элементов // 83 "select distinct 0 _id, M.pe as pe, M.stabilizer as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(*) chislo\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs \n" + " group by M.pe, M.stabilizer, P.class_area, M.deg, M.cykl_len \n" + " union all \n" + "select distinct 0 as _id, null as pe, 'Всего эл-тов в классе' as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(*) chislo\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by P.class_area, M.deg, M.cykl_len\n" + " order by pairing_num, deg, stabilizer;", // 2.23. Порядки нормализаторов силовских подгрупп" // 84 "select pe, num, 0 _id, sum(ppp) sumn, sum(ggg) sgr from ( \n" + " select N.pe pe, N.num num, 1 ppp, 0 ggg \n" + " from normalizer N\n" + " union ALL\n" + " select pe, num as nom, 0 as ppp, 1 as ggg from sylov_table\n" + " ) \n" + " group by pe, num\n" + " order by pe asc, num asc;", // "4.12. Порядки ядра и образа при эпиморфизме на силовские подгруппы" 85 "select 0 _id, pe, sum(ooo) obr, sum(jjj)/ sum(ooo) jdro from (\n" + "select pe, count(id_obraz) ooo, 0 jjj\n" + " from epimorphism\n" + " group by pe\n" + " union ALL\n" + "select pe, 0 ooo, count(id_element) jjj\n" + " from epimorphism\n" + " group by pe\n" + ")\n" + " group by pe\n" + "order by pe asc;", // "1.14. Не сопряженные классы" // 86 "select distinct 0 _id, P.cykl_len cykl_len, count( distinct P.class_area) ccc \n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " GROUP by E.cykl_len\n" + " having count(distinct P.class_area) > 1\n" + " order by E.cykl_len asc;", // "1.15. Не сопряженные группы подстановок" // 87 "select distinct EE._id _id, Q.cykl_len cykl_len, Q.class_area cls, EE.substitution substitution, EE.ciklos ciklos\n" + " from elements EE, pairing_area Q\n" + " where Q.cykl_len in (\n" + "\t\t select distinct cykl_len from (\n" + " select P.cykl_len cykl_len, count( distinct P.class_area)\n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " GROUP by E.cykl_len\n" + " having count(distinct P.class_area) > 1\n" + " order by E.cykl_len asc\n" + " )) and Q.id_subs = EE._id \n" + " order by Q.cykl_len asc, Q.class_area asc;", // 7.10. Спектр группы и Sn" // 88 "select 0 as _id, deg, sum(dega) da, sum(degs) ds from (\n" + " select deg, count(*) as dega, 0 degs from elements group by deg \n" + " union ALL\n" + " select deg, 0 as dega, count(*) degs from elements_n " + " where for_n <= 0 \n" + " group by deg \n" + " )\n" + " group by deg \n" + " order by deg asc;", // "7.11. Спектр в разрезе классов" // 89 "select 0 as _id, nnn, clsa, deg, cykl_len, sum(dega) da, sum(degs) ds from (\n" + " select '' nnn, deg, P.class_area clsa, P.cykl_len cykl_len, count(distinct E._id) as dega, 0 degs " + "from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " group by deg, P.cykl_len, P.class_area\n" + " union ALL\n" + " select '' nnn, deg, P.class_area clsa, P.cykl_len cykl_len, 0 as dega, count(distinct E._id) degs " + "from elements_n E, pairing_area_n P\n" + " where P.id_subs = E.id_true and E.for_n <= 0 \n" + " group by deg, P.cykl_len, P.class_area\n" + " union ALL\n" + " select 'всего в классе' nnn, deg, P.class_area clsa, P.cykl_len cykl_len, count(distinct E._id) as dega, 0 degs\n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " group by deg, P.cykl_len, P.class_area\n" + " union ALL\n" + " select 'всего в классе' nnn, deg, P.class_area clsa, P.cykl_len cykl_len, 0 as dega, count(distinct E._id) degs\n" + " from elements_n E, pairing_area_n P\n" + " where P.id_subs = E.id_true and E.for_n <= 0 \n" + " group by deg, P.cykl_len, P.class_area\n" + " )\n" + " group by deg, cykl_len, clsa, nnn\n" + " order by deg asc, cykl_len asc, clsa asc;\n", // 6. 3. Состав нормальных подгрупп с классами", // 90 soc_list "select _id, num, num_klass, count_klass, deg, comm_level, even_flag, soc_level, centr_flag, dubl_flag, sylow_num, connon_sylow, " + "sostav_type, sostav_count, summa_num, epi_pe\n" + " from soc_list\n" + " order by dubl_flag asc, num_klass asc;", // 7.12. Классы стабилизаторов группы и Sn" // 91 "select distinct 0 _id, pe, stabilizer, pairing_num, deg, cykl_len, sum(chisloS) sss, sum(chisloG) ggg from (\n" + "select distinct M.pe as pe, M.stabilizer as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(*) chisloS, 0 chisloG\n" + " from elements_n M, pairing_area_n P\n" + " where M.id_true = P.id_subs and M.for_n <= 0 \n" + " group by M.pe, M.stabilizer, P.class_area, M.deg, M.cykl_len \n" + " union all \n" + "select distinct M.pe as pe, M.stabilizer as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, 0 chisloS, Count(*) chisloG\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by M.pe, M.stabilizer, P.class_area, M.deg, M.cykl_len \n" + " union all \n" + " select distinct null as pe, 'Всего эл-тов в классе' as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, 0 chisloS, Count(*) chisloG\n" + " from elements M, pairing_area P\n" + " where M._id = P.id_subs\n" + " group by P.class_area, M.deg, M.cykl_len\n" + " union all \n" + " select distinct null as pe, 'Всего эл-тов в классе' as stabilizer, P.class_area as pairing_num, M.deg as deg, M.cykl_len as cykl_len, Count(*) chisloS, 0 chisloG\n" + " from elements_n M, pairing_area_n P\n" + " where M.id_true = P.id_subs and M.for_n <= 0 \n" + " group by P.class_area, M.deg, M.cykl_len\n" + " )\n" + " group by pairing_num, deg, cykl_len, stabilizer\n" + " order by pairing_num, deg, stabilizer;", // 4.13. Таблица умножения цикловых типов" // 92 "select distinct 0 as _id, \n" + " EA.cykl_len as cykl1, EB.cykl_len as cykl2, ER.cykl_len as cykl0\n" + " from temp_multiplication M,\n" + " elements EA, elements EB, elements ER\n" + " where ER._id = M.idproiz and EA._id = M.idleft and EB._id = M.idright\n" + "\t order by EA.cykl_len asc, EB.cykl_len asc;", // 8. 1. Экспоненты", // 93 "select 0 _id, pe, val_exp \n" + " from exponent \n" + " order by pe asc;", // "4.14. Таблица умножения цикловых типов p-элементов группы", // 94 "select distinct 0 as _id,\n" + " EA.cykl_len as cykl1, EB.cykl_len as cykl2, ER.cykl_len as cykl0\n" + " from temp_multiplication M, elements EA, elements EB, elements ER\n" + " where ER._id = M.idproiz and EA._id = M.idleft and EB._id = M.idright\n" + " and EA.pe > 0 and EB.pe > 0\n" + " order by EA.cykl_len asc, EB.cykl_len asc;", // "4.10. Таблица умножения цикловых типов p-элементов Sn" // 95 "select distinct 0 as _id,\n" + " EA.cykl_len as cykl1, EB.cykl_len as cykl2, ER.cykl_len as cykl0\n" + " from temp_multiplication_n M, elements_n EA, elements_n EB, elements_n ER\n" + " where ER._id = M.idproiz and EA._id = M.idleft and EB._id = M.idright\n" + " and EA.pe > 0 and EB.pe > 0\n" + " order by EA.cykl_len asc, EB.cykl_len asc;;", // 8. 2. Экспоненты Sn", 96 "select 0 _id, pe, val_exp \n" + " from exponent_n \n" + " order by pe asc;", // 8. 3. Элементы порядки которых = экспоненте", // 97 "select E._id _id, E.pe pe, E.ciklos ciklos, E.deg deg, E.cykl_len cykl_len, E.sylow_num sylow_num, P.class_area as pairing_num, E.name as namee\n" + " from elements E, exponent Q, pairing_area P\n" + " where E.pe = Q.pe and E.deg = Q.val_exp and P.id_subs = E._id\n" + " order by E.pe asc, E.cykl_len asc;", // "7.13. Силовские подгруппы в Sn", // 98 " select distinct id_true, _id, pe, nsylow_num, msylow_num, n_cykl, m_cykl, ncik, mcik, n_class, m_class,\n" + " ncenter_num, mcenter_num,\n" + " nswitchboard_num, mswitchboard_num, nname, mname, \n" + " nsubstitution, msubstitution from (\n" + "select N.id_true id_true, M._id _id, N.name nname, M.name mname, N.cykl_len n_cykl, M.cykl_len m_cykl, N.ciklos ncik, M.ciklos mcik, Pn.class_area n_class, PM.class_area m_class,\n" + " N.sylow_num nsylow_num, M.sylow_num msylow_num,N.center_num ncenter_num, M.center_num mcenter_num,\n" + " N.switchboard_num nswitchboard_num, M.switchboard_num mswitchboard_num, N.pe pe,\n" + " N.substitution nsubstitution, M.substitution msubstitution\n" + " from elements_n N, elements M, pairing_area_n PN, pairing_area PM\n" + " where PN.id_subs = N.id_true and PM.id_subs = M._id and M._id = N.link_to_elements and N.for_n <= 0 \n" + " union ALL\n" + " select N.id_true id_true, 0 _id, N.name nname, '' mname, N.cykl_len n_cykl, '' m_cykl, N.ciklos as ncik, '' mcik, Pn.class_area n_class, null m_class,\n" + " N.sylow_num nsylow_num, null msylow_num, N.center_num ncenter_num, null mcenter_num,\n" + " N.switchboard_num nswitchboard_num, null mswitchboard_num, N.pe pe,\n" + " N.substitution nsubstitution, null msubstitution\n" + " from elements_n N, pairing_area_n PN\n" + " where PN.id_subs = N.id_true and N.link_to_elements is null and N.for_n <= 0 \n" + " ) where not nsylow_num is null\n" + " order by pe asc, nsylow_num asc, msylow_num asc;", // "7.14. Отдельная силовская подгруппа группы в Sn (без e)" // 99 "", // "9. 4. Коммутант силовской подгруппы", // 100 "", // "8. 5. Структура силовской подгруппы", // 101 "", // ". Разбиение классов" // 102 "select 0 _id, PL.class_area cls1, L.cykl_len lel1, PR.class_area cls2, R.cykl_len lel2, Pm.class_area cls3, M.cykl_len lel3, \n" + // " L._id p_l, R._id p_r, M._id p_m \n" + "count( distinct L._id) p_l, count( distinct R._id) p_r, count( distinct M._id) p_m \n" + " from switchboard S, elements L, elements R, elements M, \n" + " pairing_area PL, pairing_area PR, pairing_area PM \n" + " where L._id = S.id_left and R._id = S.id_right and M._id = S.id_pair and \n" + " PL.id_subs = L._id and PR.id_subs = R._id and PM.id_subs = M._id \n" + " group by PL.class_area, PR.class_area, PM.class_area, L.cykl_len, R.cykl_len, M.cykl_len \n" + " order by PM.class_area asc, PR.class_area asc, Pl.class_area asc;", // 1.16. Порядки классов в разрезе цикловых типов " // 103 "select 0 _id, P.class_area class_area, E.cykl_len cykl_len, count(E._id) xxx\n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id\n" + " group by class_area, E.cykl_len\n" + " union " + "select 0 _id, null class_area, 'Всего классов ' || count(distinct P.class_area) || ', всего цикловых типов ' || count(distinct E.cykl_len) cykl_len, " + " null xxx \n" + " from elements E, pairing_area P\n" + " where P.id_subs = E._id \n" + " order by cykl_len asc;", // 104 9. 1 Группа автоморфизмов" "select E._id as _id, P.class_area as pairing_num, E.name as name, E.substitution as substitution, E.ciklos as ciklos, E.deg as deg, E.pe as pe,\n" + " E.forming as forming, E.primitiv as primitiv, E.sylow_num as sylow_num, E.cykl_len as cykl_len, E.center_num as center_num, E.switchboard_num as switchboard_num,\n" + " E.stabilizer as stabilizer, E.iteration as iteration, E.parity as parity, E.nomer_soc as nomer_soc, " + " E.link_to_group link_to_group, E.link_to_sn link_to_sn \n" + " from elements_a E, pairing_area_a P\n" + " where E._id = P.id_subs\n" + " order by pairing_num asc;", // 105 9. 2 Группа внутренних автоморфизмов", // 105 "select E._id as _id, A._id as ida, E.substitution as substitution, E.pairing_num as pairing_num, A.pairing_num as pairing_a, " + "E.ciklos as ciklos, A.ciklos as ciklosa, E.cykl_len as cykl_len, A.cykl_len as cykl_a, " + " E.deg as deg, A.deg as dega, E.pe as pe, A.pe as pea, \n" + " E.sylow_num as sylow_num, A.sylow_num as sylow_numa, E.switchboard_num as switchboard_num, A.switchboard_num as switchboard_a,\n" + " E.nomer_soc as nomer_soc, A.nomer_soc as nomer_soca " + " from elements_a A, elements E " + " where E._id = A.link_to_group \n" + " order by A.ciklos asc;", // 106 9. 3 Порядки силовских подгрупп группы автоморфизмов", // 106 "select 0 _id, pe, num, sum(ccc) aaa, sum(ooo) ggg from (\n" + "select num, pe, count(id_s) as ccc, 0 ooo\n" + " from sylov_table_a\n" + " group by num, pe\n" + " union ALL\n" + " select num, pe, 0 ccc, count(id_s) as ooo\n" + " from sylov_table\n" + " group by num, pe\n" + "\t\t)\n" + " group by num, pe\n" + " order by pe asc, num asc;", // 107 " 9.16 Изменение циклового типа при автоморфизмах", // 107 "select A._id, A.ciklos aciklos, E._id old_id, O._id new_id, E.ciklos old_ciklos, O.ciklos new_ciklos, \n" + "E.pairing_num old_pairing, O.pairing_num new_pairing, E.cykl_len old_cykl_len, O.cykl_len new_cykl, \n" + "E.substitution old_s, O.substitution new_s, A.link_to_group link_to_group, A.name name\n" + "from elements E, elements O, elements_a A, sub_scribe_a F\n" + "where F.id_s = A._id and O._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4) AND\n" + " not E.cykl_len = O.cykl_len\n" + " order by A._id asc, E._id asc;", "", // " 9. 5 Действие одного автоморфизма", // 108 "", // 9. 6 Действие всех автоморфизмов на выбранный элемент группы", // 109 // 9. 7 Подгруппы неподвижных элементов автоморфизмов ", // 110 "select 0 _id, srt, aid, aciklos, old_id, new_ciklos, sylow_num, pairing, cykl_len, old_s, link_to_group, ccc itogo from (\n" + " select A._id aid, A.ciklos aciklos, E._id old_id, E.ciklos new_ciklos, 0 srt, \n" + " E.pairing_num pairing, E.cykl_len cykl_len, E.sylow_num sylow_num, \n" + " E.substitution old_s, A.link_to_group link_to_group, null ccc\n" + " from elements E, elements_a A, sub_scribe_a F\n" + " where F.id_s = A._id and E._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4)\n" + " union all \n" + " select A._id aid, A.ciklos aciklos, null old_id, null new_ciklos, 1 srt, \n" + " null pairing, 'Итого по подгруппе' cykl_len, null sylow_num, \n" + " null old_s, null link_to_group, count(E._id) ccc\n" + " from elements E, elements_a A, sub_scribe_a F\n" + " where F.id_s = A._id and E._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4)\n" + " group by A._id, A.ciklos, srt\n" + " order by srt asc, aid asc\n" + ")\n" + " order by aid asc, srt asc;", // 9.10 Централизатор группы в Sn ", // 111 "select A.id_true _id, A.ciklos aciklos, A.cykl_len cykl_len, A.pe pe, A.deg deg, A.pairing_num pairing_num " + " from elements_n A, auto_centralizer C " + " where A.id_true = C.id_sn", // 9. 9 Нормализатор группы в Sn", // 112 "select A.id_true _id, A.ciklos aciklos, A.cykl_len cykl_len, A.pe pe, A.deg deg, A.pairing_num pairing_num " + " from elements_n A, auto_normalizer C " + " where A.id_true = C.id_sn", // 9.11 Образы классов группы", // 113 "select A._id _id, A.class_in cin, A.class_out cout, A.chararter chararter, A.porjadok porjadok, cykl_in, cykl_out " + " from charac_class A " + " order by 1 asc, 2 asc;", // 9.12 Образы цикловых типов группы", // 114 "select A._id _id, A.cykl_in cin, A.cykl_out cout, A.chararter chararter, A.porjadok porjadok, classes_in, classes_out " + " from charac_cykls A " + " order by 1 asc, 2 asc;", // 9.13 Характеристические подгруппы ", // 115 "select A._id _id, A.num_subs num_subs, A.porjadok cout, A.cykl_len cykl_len \n" + " from charac_group A \n" + " order by 1 asc;", // " 9. 7 Порядки подгрупп неподвижных элементов автоморфизмов", // 116 "select A._id _id, A.link_to_group link_to_group, A.ciklos aciklos, A.pe pe, A.pairing_num pairing_num, A.sylow_num sylow_num," + "A.switchboard_num switchboard_num, A.center_num center_num, count(E._id) ccc \n" + "from elements E, elements_a A, sub_scribe_a F\n" + "where F.id_s = A._id and E._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4) " + " group by A._id, A.ciklos, A.pe, A.pairing_num, A.sylow_num" + " order by A._id asc, E._id asc;", // " 9.14 Образы нормальных подгрупп", // 117 "SELECT distinct 0 _id, num_in, num_out, porjadok, harac \n" + "from (\n" + "SELECT distinct A.num_in num_in, A.num_out num_out, A.porjadok porjadok, 1 harac\n" + " FROM auto_group A, charac_group H\n" + " where H.num_subs = num_in and H.num_subs = num_out \n" + " union all \n" + "SELECT distinct A.num_in num_in, A.num_out num_out, A.porjadok porjadok, 0 harac\n" + " FROM auto_group A \n" + " where A.num_in not in (\n" + " select HH.num_subs from charac_group HH\n" + " )\n" + ")\n" + "order by num_in asc, num_out asc;", // " 9.15 Образы силовских подгрупп", // 118 "SELECT 0 _id, S.pe pe, num_in, num_out, count(S.id_s) ccc from (\n" + " SELECT distinct 0 _id, C.pe pe, C.num_in num_in, C.num_out num_out \n" + " FROM charac_sylow C\n" + "), sylov_table S \n" + " where num_in = S.num \n" + "group by S.pe, num_in, num_out\n" + "order by S.pe, num_in, num_out;", // " 9.16 Образы силовских подгрупп с автоморфизмами", // 119 "SELECT distinct 0 _id, C.pe pe, C.num_in num_in, C.num_out num_out, \n" + " C.id_auto id_auto, A.Pe ape, A.ciklos ciklos, A.cykl_len cykl_len, A.link_to_group lgr, A.link_to_sn lsn \n" + " FROM charac_sylow C, elements_a A \n" + " where A._id = C.id_auto \n" + "order by C.id_auto asc, C.pe, num_in, num_out;", // " 9.17 Образы цикловых типов с автоморфизмами", // 120 "SELECT 0 _id, C.id_auto id_auto, C.cykl_in cykl_in, C.cykl_out cykl_out,\n" + " A.Pe ape, A.ciklos ciklos, A.cykl_len cykl_len, A.link_to_group lgr, A.link_to_sn lsn \n" + "FROM auto_cykls C, elements_a A\n" + " where A._id = C.id_auto \n" + "order by C.id_auto asc, C.cykl_in asc, C.cykl_out asc;", // " 9.19 Образы классов с автоморфизмами", // 121 "SELECT 0 _id, C.id_auto id_auto, C.class_in class_in, C.class_out class_out,\n" + " A.Pe ape, A.ciklos ciklos, A.cykl_len cykl_len, A.link_to_group lgr, A.link_to_sn lsn \n" + "FROM auto_class C, elements_a A\n" + " where A._id = C.id_auto \n" + "order by C.id_auto asc, C.class_in asc, C.class_out asc", // 9.17 Нормальные подгруппы группы автоморфизмов их порядки", // 122 "select 0 as _id, num, ccc as itog_sub from (\n" + " select S.num_maim as num, count( P.id_subs ) as ccc \n" + " from pairing_area_a P, sub_structure_a S\n" + " where P.class_area = S.num_subs\n" + " group by S.num_maim \n" + ") order by num asc;", // " 9.18 Внутренние автоморфизмы", // 123 " SELECT B._id _id, \n" + " A.Pe ape, B.Pe bpe, A.name aname, B.name bname, A.ciklos aciklos, B.ciklos bciklos, A.cykl_len acykl_len, B.cykl_len bcykl_len,\n" + " A.deg adeg, B.deg bdeg, A.center_num acenter_num, B.center_num bcenter_num, \n" + " A.stabilizer astabilizer, B.stabilizer bstabilizer, A.sylow_num asylow_num, B.sylow_num bsylow_num, A.pairing_num apairing_num, B.pairing_num bpairing_num,\n" + " A.link_to_sn lsn \n" + " FROM elements_a A, elements B \n" + " where B._id = A.link_to_group \n" + " order by B._id asc;", }; final private static String vidLstTxt [] = { "1. Основные отчеты", "2. По P-подгруппам", "3. По четным подстановкам", "4. Эпиморфизмы на подстановки силовских подгрупп, таблицы умножения", "5. Правое регулярное представление", "6. Нормальные подгруппы, цоколь", "7. Построенная группа как подгркппа Sn", "8. Подгруппа силова", "9 Группа автоморфизмов", "10. Прочее"}; private Spinner tbSpinner; //выбор отчета private ListView tableListView; // сам отчет static private myOtchet oOtchet; // объект настройки отчета mAplication mApp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setContentView(R.layout.activity_db_view); mApp = (mAplication) getApplication(); dbH = mApp.dbH; db = DbHelper.db; // Log.e(TAG, "onCreate "); tableListView = findViewById(R.id.db_listview); setTitle("Результаты расчета " + mApp.groupName); dbH.f_getParm(0, 6, 0); // считать число эл-тов группы,... // Log.d(TAG, "onCreate: faktSubsLen = " + DbHelper.faktSubsLen ); oOtchet = new myOtchet(); f_putListOtchet(); // выбор списка всех таблиц https://www.sqlite.org/fileformat.html // заполняю спинер видов отчета vidSpiner данными Spinner vidSpiner = // выбор группы отчетов findViewById(R.id.spinnerDb111); ArrayAdapter<String> vidAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, vidLstTxt); vidAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); vidSpiner.setAdapter(vidAdapter); vidSpiner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View itemSelected, int position, long selectedId) { indexVids = position + 1; f_putListOtchet(); Log.d(TAG, "itemClick: position = " + position + " indexVids = " +indexVids ); } public void onNothingSelected(AdapterView<?> parent) { } }); } private void f_putListOtchet() { // сделан выбор вида отчета // заполняю спинер выбора отчета tbSpinner данными oOtchet.f_init(indexVids); // вид отчета = 1 tbSpinner = findViewById(R.id.spinnerDb); ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, myOtchet.textSpiner); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); tbSpinner.setAdapter(dataAdapter); } private int autoReport = 0; // "*' - отчет для автоморфизмов public void f_otchet() { // показать таблицу, которая в tbSpinner int indexTable = 0, // индекс выбранного отчета в textSpinerAll задает номер отчета для построения в oOtchet j , k = tbSpinner.getSelectedItemPosition(); // индекс выбранной строки в textSpiner - подмножество для вида отчетов String selVal = myOtchet.textSpiner.get(k); // строка заголовка отчета autoReport = selVal.indexOf("*"); for (j=0; j< myOtchet.textSpinerAll.length; j++) if (myOtchet.textSpinerAll[j].equals(selVal)) { indexTable = j; break; } sqlSelect [7] = // Центр группы "select _id, name, substitution, deg, ciklos, iteration from elements where center_num = "+ (flagAuto ? DbHelper.countElements_a : DbHelper.countElements) + " order by ciklos asc;"; sqlSelect [8] = // Число силовских подгрупп по простым "select 0 as _id, pe, sum(ccc0) as count0, sum(ccc2) as count2 from (\n" + "select pe, count(distinct num) as ccc0, 0 as ccc2 from sylov_table \n" + "\tgroup by pe \n" + " union\n" + "select pe, 0 as ccc0, count(distinct num) as ccc2 from sylov_table \n" + "\twhere parity = 0 and not id_s = " + (flagAuto ? substitutionS.codEdinicy_a : substitutionS.codEdinicy) + "\tgroup by pe \n" + " ) group by pe \n" + " order by pe asc;"; if (DISPLAYLOG) Log.e(TAG, "f_otchet k = "+k + " autoReport = " + autoReport + " selVal= " + selVal + " indexTable="+ indexTable); if (indexTable == 61) // пополнить колонку коммутанта dbH.f_SwitchToSocList(); nZaprosa = 1; if ((indexVids == REPORT_1_VID && !(indexTable == 85 || indexTable == 92 || indexTable == 94 || indexTable == 95)) | indexTable == 70 | indexTable == 99 | indexTable == 100 | indexTable == 101 | indexTable == 13 | indexTable == 57 | indexTable == 60 | indexTable == 66 | indexTable == 67 | indexTable == 108 | indexTable == 109) { // запросить параметр для select select31 = new AdapterSelectOne(this, dbH, indexTable, nZaprosa); } else f_OtchetUjeSelect(indexTable, 0); } public void f_setAdapterValue(String setVal, int inTable) { // для отчетов с настройкоы indexTable == REPORT_1_VID // сделан выбор в AdapterSelectOne // inTable = 34 - силовскую подгруппа, 35 - общую группу силовских подгруппа if (DISPLAYLOG) Log.e(TAG, "f_setAdapterValue selectetFromAdapter = "+setVal + " indexOf= " + (setVal.indexOf("№ ") + 2) + " substring = " + setVal.substring(setVal.indexOf("№ ") + 2) + " nZaprosa= " + nZaprosa ); if ( nZaprosa == 1) { select31 = null; nomerPodgrup[0] = Integer.parseInt(setVal.substring(setVal.indexOf("№ ") + 2)); // выбранный номер подгруппы if (DISPLAYLOG) Log.e(TAG, "f_setAdapterValue nomerPodgrup[0] = " + nomerPodgrup[0] + " nZaprosa= " + nZaprosa ); f_OtchetUjeSelect(inTable, nomerPodgrup[0]); } else {// nZaprosa == 2 - вторая подгруппа nomerPodgrup[1] = Integer.parseInt(setVal.substring(setVal.indexOf("№ ") + 2)); select32 = null; } if (DISPLAYLOG) Log.e(TAG, "f_setAdapterValue selectetFromAdapter = "+setVal + " nZaprosa= " + nZaprosa + " nomerPodgrup= "+ nomerPodgrup[0] + " " + nomerPodgrup[1]); f_OtchetUjeSelect(inTable, nomerPodgrup[0]); } static private int indexVids = 1; // выбранный вид отчета static public int nZaprosa = 1; // номер запроса подгруппы, при запосе 2-х подгруппы для отчета final static private int nomerPodgrup[] = {0, 0}; // выбранные пользователем номера подгруппы в 1-й раз и 2-й раз private AdapterSelectOne select31, select32; private Cursor mCursor = null; private SimpleCursorAdapter mCursorAd; private int selITable; private int selSqlAdd; private String SQL; private void f_OtchetUjeSelect(int iTable, int sqlAdd) { /* отчет уже выбран, номера подгрупп установлены, создание курсора и адаптера sqlAdd - выбранное значение для indexVids == REPORT_1_VID */ String ss; int urCommGr, i, k = 0; selITable = iTable; // запомнить для f_next() selSqlAdd = sqlAdd; SQL = sqlSelect[iTable]; // заменить for_n <= 0 на for_n <= DbHelper.faktSubsLen ss = SQL; Log.d(TAG, "onCreate: faktSubsLen = " + DbHelper.faktSubsLen + " ss = " + ss ); SQL = ss.replaceAll("for_n <= 0", "for_n <= " + DbHelper.faktSubsLen); if (indexVids == REPORT_1_VID | iTable == 70 | iTable == 99 | iTable == 100 | iTable == 108 | iTable == 109 | iTable == 101 | iTable == 13 | iTable == 57 | iTable == 60 | iTable == 66 | iTable == 67) { // выбран номер подгруппы силова () или общей подгр сил подгр switch (iTable) { case 99: // 8.19. Отдельная силовская подгруппа группы в Sn" // 99 SQL = "select pe, num, nump, _id, idp, sylow_num, sylow_nump, cykl_len, cykl_lenp, ciklos, ciklosp, deg, degp,\n" + " pairing_num, pairing_nump, center_num,\n" + " switchboard_num, parity from (\n" + "select S.pe as pe, S.num as num, null nump, E.id_true as _id, null idp, E.cykl_len cykl_len, null cykl_lenp ,\n" + "E.ciklos as ciklos, null ciklosp, E.deg as deg, null degp, E.pairing_num as pairing_num, null pairing_nump,\n" + " E.center_num as center_num, E.sylow_num sylow_num, null sylow_nump,\n" + " null switchboard_num, E.parity as parity\n" + "from elements_n E, sylov_table_n S\n" + " where S.id_s = E.id_true and E.link_to_elements is null and E.for_n <= " + DbHelper.faktSubsLen + "\n" + " union all\n" + "select S.pe as pe, S.num as num, SM.num nump, E.id_true as _id, M._id idp, E.cykl_len cykl_len, M.cykl_len cykl_lenp ,\n" + "E.ciklos as ciklos, M.ciklos ciklosp, E.deg as deg, M.deg degp, E.pairing_num as pairing_num, M.pairing_num pairing_nump,\n" + " E.center_num as center_num, E.sylow_num sylow_num, M.sylow_num sylow_nump,\n" + " M.switchboard_num as switchboard_num, E.parity as parity\n" + "from elements_n E, sylov_table_n S, elements M, sylov_table SM\n" + " where S.id_s = E.id_true and E.link_to_elements = M._id and SM.id_s = M._id and not E.link_to_elements is null and E.for_n <= " + DbHelper.faktSubsLen + "\n" + " ) where nump = " + nomerPodgrup[0] + " and deg > 0\n" + " order by pe asc, num asc, nump asc, cykl_len asc;"; break; case 100: // "8. 4. Коммутант силовской подгруппы", // 100 SQL = "select distinct T.num num, M.sylow_num sylow_num, M.pe pe, M._id _id, PM.class_area class, M.ciklos ciklos, M.cykl_len cl, M.deg deg, M.switchboard_num switch\n" + " from switchboard S, elements L, elements R, elements M, pairing_area PM, sylov_table T\n" + " where L._id = S.id_left and R._id = S.id_right and M._id = S.id_switch and\n" + " PM.id_subs = M._id and\n" + " L.sylow_num = R.sylow_num and T.id_s = R._id and T.num = " + nomerPodgrup[0] + "\n" + " order by PM.class_area asc, M.deg asc, M.cykl_len asc;"; break; case 101: // "8. 5. Структура силовской подгруппы", // 101 SQL = "select 0 _id, T.num numsyl, id_1 idl, idm idmain, id_2 iditog, class0, classM, gpe, syl_g, syl_0,\n" + " degn, degg, deg0,\n" + " sw_g, sw_0, sw_s,\n" + " ciklos0, ciklosM, lystm, forming0 from (\n" + " select id_1, id_s idm, id_2, P.class_area class0, null classM, G.pe gpe, G.sylow_num syl_g, E.sylow_num syl_0,\n" + " G.ndeg degn, G.deg degg, E.deg deg0,\n" + " G.switchboard_num sw_g, E.switchboard_num sw_0, G.switchboard_s sw_s,\n" + " E.ciklos ciklos0, null ciklosM, G.list_num lystm, E.forming forming0\n" + " from temp_prim G, elements E, pairing_area P\n" + " where E._id = G.id_s and P.id_subs = E._id and G.id_2 = 0\n" + " union all\n" + " select id_1, id_s idm, id_2, P.class_area class0, PM.class_area classM, G.pe gpe, G.sylow_num syl_g, E.sylow_num syl_0,\n" + " G.ndeg degn, G.deg degg, E.deg deg0,\n" + " G.switchboard_num sw_g, E.switchboard_num sw_0, G.switchboard_s sw_s,\n" + " E.ciklos ciklos0, M.ciklos ciklosM, G.list_num lystm, E.forming forming0\n" + " from temp_prim G, elements E, elements M, pairing_area P, pairing_area PM\n" + " where E._id = G.id_s and P.id_subs = E._id and PM.id_subs = M._id and M._id = G.id_2\n" + " ), sylov_table T\n" + " where T.id_s = idm and T.num = " + nomerPodgrup[0] + "\n" + " order by idm asc, id_1 asc, id_2 asc, syl_g asc;"; break; case 108: // 9. 5 Действие выбранного автоморфизма", // 108 SQL = "select A._id _id, A.ciklos aciklos, E._id old_id, O._id new_id, E.ciklos old_ciklos, O.ciklos new_ciklos,\n" + "E.pairing_num old_pairing, O.pairing_num new_pairing, E.cykl_len old_cykl_len, O.cykl_len new_cykl," + "E.sylow_num syl_old, O.sylow_num syl_new, \n" + "E.substitution old_s, O.substitution new_s, A.link_to_group, A.name\n" + "from elements E, elements O, elements_a A, sub_scribe_a F\n" + "where F.id_s = A._id and O._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4) AND\n" + " A._id = " + nomerPodgrup[0] + "\n" + " order by O._id asc, A._id asc;"; break; case 109: // 9. 6 Действие всех автоморфизмов на выбранный элемент группы", // 109 if (DISPLAYLOG) Log.e(TAG, "f_OtchetUjeSelect iTable = " + iTable); SQL = "select A._id _id, A.ciklos aciklos, E._id old_id, O._id new_id, E.ciklos old_ciklos, O.ciklos new_ciklos,\n" + "E.pairing_num old_pairing, O.pairing_num new_pairing, E.cykl_len old_cykl_len, O.cykl_len new_cykl,\n" + "E.sylow_num syl_old, O.sylow_num syl_new, \n" + "E.substitution old_s, O.substitution new_s, A.link_to_group, A.name\n" + "from elements E, elements O, elements_a A, sub_scribe_a F\n" + "where F.id_s = A._id and O._id = substr(F.text_sub, 2 + 5*(E._id - 1), 4) AND\n" + " E._id = " + nomerPodgrup[0] + "\n" + " order by A._id asc, E._id asc, O._id asc;"; if (DISPLAYLOG) Log.e(TAG, "f_OtchetUjeSelect iTable = " + iTable + " nomerPodgrup[0] = " + nomerPodgrup[0] + " SQL = " + SQL); break; case 70: // 7. 1 Подгруппы силова // _resech - подгруппа elements AA SQL = "select pe, num, num_resech, _id, id_resech," + " ciklos, ciklos_resech, sylow_num, sylow_num_resech, for_n from (\n" + "select S.pe, S.num, S.num_resech, S.id_s as _id, S.id_resech, AA.ciklos as ciklos_resech, BB.ciklos, BB.sylow_num, AA.sylow_num as sylow_num_resech, BB.for_n\n" + " from sylov_table_n S, elements AA, elements_n BB\n" + " where AA._id = S.id_resech and BB.id_true = S.id_s and S.num = " + nomerPodgrup[0] + " and BB.for_n <= " + DbHelper.faktSubsLen + "\n" + " union all\n" + "select S.pe, S.num, S.num_resech, S.id_s as _id, S.id_resech, '' as ciklos_resech, BB.ciklos, BB.sylow_num, '' as sylow_num_resech, BB.for_n\n" + " from sylov_table_n S, elements_n BB\n" + " where S.id_resech is null and BB.id_true = S.id_s and S.num = " + nomerPodgrup[0] + " and BB.for_n <= " + DbHelper.faktSubsLen + "\n" + ") order by pe asc, for_n asc, num asc, num_resech asc; "; break; case 13: // 2. 7. Подгруппы силова SQL = "select S.effort effort, S.pe as pe, S.num as num, E._id as _id, E.name as namee, E.cykl_len cykl_len, E.ciklos as ciklos, E.deg as deg, P.class_area as pairing_num, E.forming as forming, E.primitiv as primitiv, E.center_num as center_num,\n" + " E.switchboard_num as switchboard_num, E.parity as parity, E.nomer_soc as nomer_soc\n" + " from elements E, sylov_table S, pairing_area P\n" + " where S.id_s = E._id and P.id_subs = E._id and\n" + " S.num = " + nomerPodgrup[0] + " \n" + " order by S.pe asc, S.num asc, E.cykl_len asc; "; break; case 34: // 34 dbH.f_testSylow(sqlAdd); break; case 35: // определить уровень urCommGr = dbH.f_getCount("select distinct nomer2 as ccc " + " from sylov_com_grup \n" + " where nomer1 = " + sqlAdd); dbH.f_testCommonSylov(sqlAdd, false, urCommGr); break; case 46: // "4. 3 Эпиморфизм на группу подстановок на силовских подгруппах", // 46 SQL = "select F.pe as pe, M._id as _id, F.id_element as id_element, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF,\n" + " M.sylow_num as sylow_num, M.deg as degM, F.deg as degF, M.switchboard_num as switchboard_num, M.pairing_num as pairing_num, M.center_num as center_num, M.nomer_soc as nomer_soc\n" + " from elements M, epimorphism F\n" + " where M._id = F.id_element and F.pe = " + nomerPodgrup[0] + " order by F.id_element asc;"; break; case 47: // "4. 4 Образ при эпиморфизме на группу подстановок на силовских подгруппах", // 47 SQL = "select distinct 0 as _id, F.pe as pe, F.id_obraz as id_obraz, F.substitution as substitutionF, F.ciklos as ciklosF,\n" + " F.cykl_len as cykl_lenF, F.deg as degF\n" + " from epimorphism F\n" + " where F.pe = " + nomerPodgrup[0] + " and id_obraz > 0 " + " order by F.id_obraz asc;"; break; case 48: // "4. 5 Ядро при эпиморфизме на группу подстановок на силовских подгруппах", // 48 SQL = "select F.pe as pe, M._id as _id, F.id_element as id_element, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF,\n" + " M.sylow_num as sylow_num, M.deg as degM, F.deg as degF, M.switchboard_num as switchboard_num, P.class_area as pairing_num, M.center_num as center_num, M.nomer_soc as nomer_soc\n" + "from elements M, epimorphism F, pairing_area P \n" + "where M._id = F.id_element and M._id = P.id_subs and " + "F.pe = " + nomerPodgrup[0] + " and F.deg = 0 " + " order by F.id_element asc;"; /* select F.pe as pe, M._id as _id, F.id_element as id_element, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF, M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF, M.sylow_num as sylow_num, M.deg as degM, F.deg as degF, M.switchboard_num as switchboard_num, P.class_area as pairing_num, M.center_num as center_num, M.nomer_soc as nomer_soc from elements M, epimorphism F, pairing_area P where M._id = F.id_element and M._id = P.id_subs and F.pe = 2 and F.substitution = '[1, 2, 3]' order by F.id_element asc; */ break; // CREATE TABLE pairing_area (_id INTEGER primary key autoincrement, class_area INTEGER, num INTEGER, id_subs INTEGER NOT NULL ) case 49: // 4. 6 Смежные классы при эпиморфизме на группу подстановок на силовских подгруппах, // 49 SQL = "select F.pe as pe, F.adjacent as adjacent, M._id as _id, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF,\n" + " M.sylow_num as sylow_num, M.deg as degM, F.deg as degF\n" + "from elements M, epimorphism F\n" + "where M._id = F.id_element and F.pe = " + nomerPodgrup[0] + " order by F.adjacent asc, M._id asc;"; break; case 50: // "4. 7 Силовские подгруппы при эпиморфизме на группу подстановок на силовских подгруппах", // 50 SQL = "select F.pe as pe, S.pe as pesyl, A.num_old as num, A.num as sylow_new, M._id as _id, F.id_obraz as id_obraz, M.name as name, M.substitution as substitutionM, F.substitution as substitutionF, M.ciklos as ciklosM, F.ciklos as ciklosF,\n" + " M.cykl_len as cykl_lenM, F.cykl_len as cykl_lenF,\n" + " M.deg as degM, F.deg as degF\n" + " from elements M, epimorphism F, sylov_table S, accordance A\n" + " where M._id = F.id_element and S.id_s = M._id and id_obraz > 0\n" + " and A.num_old = S.num and F.pe = " + nomerPodgrup[0] + "\n" + " order by S.pe asc, A.num_old asc, M._id asc; "; break; case 51: // "4. 8 Порядки силовских подгрупп при эпиморфизме на группу подстановок на силовских подгруппах", // 51 SQL = "select pe, pesyl, num, numold, sum(cobraz) as cobr, sum(cmain) as cmn, 0 as _id from (\n" + " select F.pe as pe, S.pe as pesyl, A.num as num, S.num as numold, count(distinct S.id_s) as cobraz, 0 as cmain\n" + " from epimorphism F, sylov_table S, accordance A\n" + " where S.id_s = F.id_element and id_obraz > 0 and A.num_old = S.num\n" + " and F.pe = " + nomerPodgrup[0] + "\n" + " group by F.pe, S.pe, A.num, S.num\n" + " union\n" + " select " + nomerPodgrup[0] + " as pe, S.pe as pesyl, A.num as num, S.num as numold, 0 as cobraz, count(distinct S.id_s) as cmain\n" + " from sylov_table S, accordance A\n" + " where A.num_old = S.num and A.pe = S.pe\n" + " group by S.pe, A.num, S.num\n" + " )\n" + " group by pe, pesyl, num, numold\n" + " order by pesyl asc, num asc;"; break; case 54: // "4. 9 Таблица умножения ядра при эпиморфизме на группу подстановок на силовских подгруппах", if (substitutionS.epiPe.size() > 0) { for (i = 0; i < substitutionS.epiPe.size(); i++) if (nomerPodgrup[0] == substitutionS.epiPe.get(i)) { k = i; break; } ss = substitutionS.epiEdinica.get(k); } else ss = "0"; dbH.f_testKerEpi(sqlAdd, ss); break; case 57: // "4.10 Коммутант любого расчитанного уровня" // 57 select count(*) as ccc from elements where switchboard_num = SQL = "select L._id as _id, L.switchboard_num as switchboard_num, L.name as namel, L.substitution as substitutionl, L.ciklos as ciklos, L.center_num as center_num, L.deg as deg, L.sylow_num as sylow_num, L.parity as parity, L.pairing_num as pairing_num " + " from elements L " + " where L.switchboard_num >= " + nomerPodgrup[0] + " order by L._id asc; "; break; case 58: // "4.11 Таблица умножения коммутанта любого расчитанного уровня" // 58 dbH.f_testCommMul(nomerPodgrup[0]); SQL = "select T._id as _id, T.idleft as idleft, T.idright as idright, T.idproiz as idproiz, E1.switchboard_num as num1, E2.switchboard_num as num2,\n" + " E0.switchboard_num as num0, \n" + " E1.ciklos as ciklos1, E2.ciklos as ciklos2, E0.ciklos as ciklos0 \n" + " from temp_sylow T, elements E1, elements E2, elements E0\n" + " where T.idleft = E1._id and T.idright = E2._id and T.idproiz = E0._id\n" + " order by T.idleft asc, T.idright asc;"; break; case 60: // "6. 6 Нормальная подгруппа SQL = "select distinct P.id_subs as _id, P.num as num, S.num_maim as num_maim,\n" + " E.ciklos as ciklos, E.sylow_num as sylow_num, E.center_num as center_num, E.stabilizer as stabilizer,\n" + " E.switchboard_num as switchboard_num, E.substitution as substitution, E.deg as deg, P.class_area as class_area\n" + " from pairing_area P, sub_structure S, elements E\n" + " where S.num_subs = P.class_area and E._id = P.id_subs\n" + " and S.num_maim = " + nomerPodgrup[0] + "\n" + " order by S.num_maim asc, P.id_subs asc;"; break; case 66: // 6. 7 Порядок подгруппы по классам SQL = "select 0 as _id, ' ' as txt, klass, num, sum(ccc) as itog_sub, sum(fff) as no_sub, sum(ccc + fff) as itog from (\n" + "select S.num_maim as num, P.class_area as klass, count( P.id_subs ) as ccc, 0 as fff\n" + "from pairing_area P, sub_structure S\n" + "where P.class_area = S.num_subs and S.num_maim = " + nomerPodgrup[0] + "\n" + "group by S.num_maim, P.class_area\n" + " union all\n" + "select null as num, P.class_area as klass, 0 as ccc, count( P.id_subs ) as fff\n" + "from pairing_area P\n" + "where P.class_area not in (\n" + " select P.class_area\n" + " from pairing_area P, sub_structure S\n" + " where P.class_area = S.num_subs and S.num_maim = " + nomerPodgrup[0] + "\n" + " )\n" + " group by klass\n" + ") group by num, klass\n" + " union\n" + "select 0 as _id, 'Итого' as txt, 'XXXXX', null, sum(ccc) as itog_sub, sum(fff) as no_sub, sum(ccc + fff) as itog from (\n" + "select S.num_maim as num, P.class_area as klass, count( P.id_subs ) as ccc, 0 as fff\n" + "from pairing_area P, sub_structure S\n" + "where P.class_area = S.num_subs and S.num_maim = " + nomerPodgrup[0] + "\n" + "group by S.num_maim, P.class_area\n" + " union all\n" + "select null as num, P.class_area as klass, 0 as ccc, count( P.id_subs ) as fff\n" + "from pairing_area P\n" + "where P.class_area not in (\n" + " select P.class_area\n" + " from pairing_area P, sub_structure S\n" + " where P.class_area = S.num_subs and S.num_maim = " + nomerPodgrup[0] + "\n" + " )\n" + " group by klass\n" + ")\n" + " order by klass asc;"; break; case 67: // "6. 8 Таблица умножения подгруппы (классы)" // 67 SQL = "select distinct 0 as _id, S1.num_maim as num, P1.class_area as klass1, P2.class_area as klass2, P0.class_area as klass0\n" + "from pairing_area P1, sub_structure S1, pairing_area P2, sub_structure S2, pairing_area P0, \n" + " temp_multiplication M \n" + "where P1.class_area = S1.num_subs and P2.class_area = S2.num_subs and \n" + " P1.id_subs = M.idleft and P2.id_subs = M.idright AND M.idproiz = P0.id_subs and \n" + " S1.num_maim = S2.num_maim and S1.num_maim = " + nomerPodgrup[0] + "\n" + "order by klass2 asc, klass1 asc;"; break; default: break; } } if (iTable == 55 || iTable == 56) { // выбираю max число силовских подгрупп final int mx = dbH.f_getCount("select max(nnn) as ccc from (\n" + "select count( distinct num) as nnn, pe from sylov_table\n" + "\tgroup by pe\n" + "\t)"); if (mx > 3) { // запрос числа силовских подгрупп для отображения inputInt iI = inputInt.newInstance(); iI.f_init(this, "Задайте число выводимых однотипных групп, их может быть "+mx, 3); iI.show(getSupportFragmentManager(), "inputInt"); // продолжение f_go() } else { f_go(3); } } f_next(); } static private int countSylowGrup = 3; // число выдавемых подгрупп в окне P подгрупп @Override public void f_go(int chislo) { // inputInt вызывает при выборе числа // интерфейс ввода числа if (DISPLAYLOG) Log.e(TAG, "f_go " + chislo); countSylowGrup = chislo; f_next(); } public boolean flagAuto = false; // выбирать из G или _a ? - задается * в заголовке отчета // замена имен таблиц если выбан flagAuto для SQL final static String tablesToReplace[] = {"temp_multiplication", "elements", "centers", "centralizer", "sylov_table", "sylov_com_grup", "normalizer", "exponent", "sylov_common", "pairing_area", "sub_structure", "soc_list", "soc_subs", "normal_subgroup", "sylow_attachments", "sylow_conj", "switchboard", "subgrups", "sub_summa", "sub_scribe", "epimorphism", "accordance" }; private void f_next() { /* selITable = iTable; запомнить для f_next() selSqlAdd = sqlAdd; */ switch (selITable) { case 55: // "1. 9 Вхождение элементов в основные подгруппы", // 55 dbH.f_buildSelectSubgrups(countSylowGrup, false, false, false); SQL = DbHelper.selectGrupGrid; break; case 56: // "1.10 Порядки основных подгрупп" // 56 dbH.f_buildSelectSubgrups(countSylowGrup, true, false, false); SQL = DbHelper.selectGrupSum; break; default: break; } LinearLayout ll; oOtchet.f_create(selITable); // для autoReport > 0 - в названии отчета есть * - автоморфизмы - настроить SQL if (autoReport > 0 && flagAuto) { int j, n; String nSQL = ""; for (j = 0; j < tablesToReplace.length; j++) { n = SQL.indexOf("from"); nSQL = SQL.substring(n).replaceAll(tablesToReplace[j] + " ", tablesToReplace[j] + "_a "); // Log.e(TAG, "f_next xSQL "+ xSQL + " nSQL="+ nSQL + " SQL.substring(0, n)=" + SQL.substring(0, n) ); SQL = SQL.substring(0, n) + " " + nSQL; // Log.e(TAG, "f_next SQL "+ SQL ); } } int colOtchCount = myOtchet.colCount; if (DISPLAYLOG) Log.e(TAG, "f_next indTable "+selITable + " flagAuto = " + flagAuto + " autoReport = " + autoReport + " sqlAdd="+ selSqlAdd + " SQL=" + SQL ); mCursor = db.rawQuery(SQL, null); mCursorAd = new SimpleCursorAdapter(this, myOtchet.dbItem, mCursor, myOtchet.from, myOtchet.to, 0); ll = (LinearLayout) LayoutInflater.from(getApplication()).inflate(myOtchet.dbItem, null); tableListView.setAdapter(mCursorAd); tableListView.setClickable(true); tableListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); tableListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { // long curId = mCursorAd.getItemId(position); // Object o = tableListView.; // Log.d(TAG, "onItemClick position="+ position + " arg1="+ arg1.getId() + " arg1="+ arg1.getTag() ); Toast.makeText(getApplicationContext(), "Строка " + (position + 1) + ", всего строк "+ mCursorAd.getCount(), Toast.LENGTH_SHORT).show(); // tableListView.setSelection(position); } }); // registerForContextMenu(ll); // !!! // Log.d(TAG, "onItemClick SQL="+ SQL ); f_OtchetText(colOtchCount, ll); } private void f_OtchetText(int colCount, LinearLayout ll) { // настройка текстов шапки int maxCol = classIds.MAX_COL_NUM, i; TextView tvz1, textView[] = new TextView[maxCol]; // тексты данных LinearLayout.LayoutParams lpView = null; // для настройка заголовкров по таблице данных for (i = 0; i < maxCol; i++) { if (colCount > i) textView[i] = ll.findViewById(classIds.idbN[i]); } for (i = 0; i < maxCol; i++) { if (i < colCount) { lpView = (LinearLayout.LayoutParams) textView[i].getLayoutParams(); } tvz1 = findViewById(classIds.idbD[i]); // if (DISPLAYLOG) // Log.e(TAG, "f_OtchetText colCount=" + colCount + " i=" + i + " maxCol=" + maxCol + " tvz1 = " + tvz1.getText()); if (i < colCount) { tvz1.setLayoutParams(lpView); tvz1.setText(myOtchet.zag[i]); tvz1.setVisibility(View.VISIBLE); } else { tvz1.setText(""); tvz1.setVisibility(View.GONE); } tvz1.requestLayout(); } } private Spinner spinnGorA; // задает режим построения группы: "Группа G" или A public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_db_view, menu); MenuItem menuItemGorA = menu.findItem(R.id.menu_spin_rep); spinnGorA = (Spinner) menuItemGorA.getActionView(); // Создаём адаптер из массива в strings.xml ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource (mApp.activityDb, R.array.what_is_group, android.R.layout.simple_spinner_item); // Устанавливаем стиль для выпадающего списка adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Применяем адаптер к Spinner spinnGorA.setAdapter(adapter); // Обработчик выбора элемента spinnGorA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // Получаем выбранный элемент String selectedItem = parent.getItemAtPosition(position).toString(); // Показываем Toast с выбранным элементом /* mApp.putProt("Выбрано: " + selectedItem); <item>Группа G</item> <item>Автоморфизмы</item> */ if (selectedItem.equals("Группа G")) flagAuto = false; else flagAuto = true; } @Override public void onNothingSelected(AdapterView<?> parent) { } }); return super.onCreateOptionsMenu(menu); } public boolean onPrepareOptionsMenu(Menu menu) { // изменить меню int yAuto = dbH.f_getCount("select _id as ccc from params where parm = 'Автоморфизмы';"); if (yAuto == 0) { spinnGorA.setSelection(0); spinnGorA.setEnabled(false); } else { spinnGorA.setEnabled(true); } return true; } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.action_db_nazad: finish(); break; case R.id.action_db_help: Intent intent = new Intent(dbViewActivity.this, helpActivity.class); startActivity(intent); break; case R.id.action_db_create: // Создать отчет f_otchet(); break; } return super.onOptionsItemSelected(item); } @Override protected void onDestroy( ) { super.onDestroy() ; if (DISPLAYLOG) Log.d(TAG, "onDestroy" ); if (! isNull( mCursor)) mCursor.close(); } @Override protected void onStart(){ super.onStart(); mApp.activityDb = this; } @Override protected void onStop(){ super.onStop(); mApp.activityDb = null; } /* https://startandroid.ru/ru/uroki/vse-uroki-spiskom/278-urok-136-cursorloader.html private static final int CM_DELETE_ID = 1; public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, CM_DELETE_ID, 0, "zzzzzz"); } public boolean onContextItemSelected(MenuItem item) { if (item.getItemId() == CM_DELETE_ID) { // получаем из пункта контекстного меню данные по пункту списка AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) item .getMenuInfo(); // извлекаем id записи и удаляем соответствующую запись в БД Log.e(TAG, "acmi.id "+ acmi.id); // db.delRec(acmi.id); // получаем новый курсор с данными // getSupportLoaderManager().getLoader(0).forceLoad(); return true; } return super.onContextItemSelected(item); } */ } //---------------------------