Ejemplo n.º 1
0
        public IActionResult MasterView(string prefix, int go2pid, int j72id)    //grid horní + spodní panel
        {
            TheGridInstanceViewModel v = inhaleGridViewInstance(prefix, go2pid, true);

            v.j72id = j72id;
            if (v.j72id == 0)
            {
                v.j72id = Factory.CBL.LoadUserParamInt("masterview-j72id-" + prefix);
            }

            BO.TheEntity ce   = BL.TheEntities.ByPrefix(prefix);
            var          tabs = new List <NavTab>();

            switch (prefix)
            {
            case "p13":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p13/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Technologický rozpis operací", Entity = "p14MasterOper", Url = "SlaveView?prefix=p14"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Master produkty", Entity = "p10MasterProduct", Url = "SlaveView?prefix=p10"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Klientská receptura", Entity = "p12ClientTpv", Url = "SlaveView?prefix=p12"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientské produkty", Entity = "p11ClientProduct", Url = "SlaveView?prefix=p11"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });
                break;

            case "p19":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p19/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Master receptury", Entity = "p13MasterTpv", Url = "SlaveView?prefix=p13"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Master produkty", Entity = "p10MasterProduct", Url = "SlaveView?prefix=p10"
                });
                break;

            case "p28":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p28/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Lidé", Entity = "j02Person", Url = "SlaveView?prefix=j02"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Objednávky", Entity = "p51Order", Url = "SlaveView?prefix=p51"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Zakázky", Entity = "p41Task", Url = "SlaveView?prefix=p41"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Skupiny zařízení", Entity = "p26Msz", Url = "SlaveView?prefix=p26"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Licence", Entity = "p21License", Url = "SlaveView?prefix=p21"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientská receptura", Entity = "p12ClientTpv", Url = "SlaveView?prefix=p12"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientské produkty", Entity = "p11ClientProduct", Url = "SlaveView?prefix=p11"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });

                break;

            case "p21":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p21/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Master produkty", Entity = "p10MasterProduct", Url = "SlaveView?prefix=p10"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Master receptury", Entity = "p13MasterTpv", Url = "SlaveView?prefix=p13"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientské receptury", Entity = "p12ClientTpv", Url = "SlaveView?prefix=p12"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientské produkty", Entity = "p11ClientProduct", Url = "SlaveView?prefix=p11"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });

                break;

            case "p10":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p10/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Technologický rozpis operací", Entity = "p14MasterOper", Url = "SlaveView?prefix=p14"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Licence", Entity = "p21License", Url = "SlaveView?prefix=p21"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Klientské produkty", Entity = "p11ClientProduct", Url = "SlaveView?prefix=p11"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });

                break;

            case "j02":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/j02/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Založené objednávky", Entity = "p51Order", Url = "SlaveView?prefix=p51"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Založené zakázky", Entity = "p41Task", Url = "SlaveView?prefix=p41"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Outbox", Entity = "x40MailQueue", Url = "SlaveView?prefix=x40"
                });
                tabs.Add(new NavTab()
                {
                    Name = "PING Log", Entity = "j92PingLog", Url = "SlaveView?prefix=j92"
                });
                tabs.Add(new NavTab()
                {
                    Name = "LOGIN Log", Entity = "j90LoginAccessLog", Url = "SlaveView?prefix=j90"
                });
                break;

            case "p26":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p26/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Zařízení", Entity = "p27MszUnit", Url = "SlaveView?prefix=p27"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Zakázky", Entity = "p41Task", Url = "SlaveView?prefix=p41"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });
                break;

            case "o23":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/o23/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                break;

            //klientské prostředí
            case "p12":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p12/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Technologický rozpis operací", Entity = "p15ClientOper", Url = "SlaveView?prefix=p15"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Produkty", Entity = "p11ClientProduct", Url = "SlaveView?prefix=p11"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });
                break;

            case "p11":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p11/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Technologický rozpis operací", Entity = "p15ClientOper", Url = "SlaveView?prefix=p15"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Použití Produktu ve VZ", Entity = "p44TaskOperPlan", Url = "SlaveView?prefix=p44"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Licence", Entity = "p21License", Url = "SlaveView?prefix=p21"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Zakázky", Entity = "p41Task", Url = "SlaveView?prefix=p41"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Položky objednávek", Entity = "p52OrderItem", Url = "SlaveView?prefix=p52"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Objednávky", Entity = "p51Order", Url = "SlaveView?prefix=p51"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });
                break;

            case "p41":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p41/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Plán výrobních operací", Entity = "p44TaskOperPlan", Url = "SlaveView?prefix=p44"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Technologický rozpis operací", Entity = "p15ClientOper", Url = "SlaveView?prefix=p15"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Skutečná výroba", Entity = "p45TaskOperReal", Url = "SlaveView?prefix=p45"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });


                break;

            case "p51":
                tabs.Add(new NavTab()
                {
                    Name = "Info", Url = "/p51/Index?pid=" + AppendPid2Url(v.go2pid)
                });
                tabs.Add(new NavTab()
                {
                    Name = "Položky objednávky", Entity = "p52OrderItem", Url = "SlaveView?prefix=p52"
                });
                tabs.Add(new NavTab()
                {
                    Name = "Zakázky", Entity = "p41Task", Url = "SlaveView?prefix=p41"
                });

                tabs.Add(new NavTab()
                {
                    Name = "Dokumenty", Entity = "o23Doc", Url = "SlaveView?prefix=o23"
                });

                break;
            }
            string strDefTab = Factory.CBL.LoadUserParam("masterview-tab-" + prefix);
            var    deftab    = tabs[0];

            foreach (var tab in tabs)
            {
                tab.Url += "&master_entity=" + ce.TableName + "&master_pid=" + AppendPid2Url(v.go2pid);

                if (strDefTab != "" && tab.Entity == strDefTab)
                {
                    deftab = tab;  //uživatelem naposledy vybraná záložka
                }
            }
            deftab.CssClass += " active";
            if (go2pid > 0)
            {
                v.go2pid_url_in_iframe = deftab.Url;
                //v.go2pid_url_in_iframe = deftab.Url.Replace("@pid", go2pid.ToString());
            }

            v.NavTabs = tabs;
            return(View(v));
        }
Ejemplo n.º 2
0
        public DataTable GetList(BO.myQuery mq, bool bolGetTotalsRow = false)
        {
            var sb = new System.Text.StringBuilder();

            sb.Append("SELECT ");
            if (mq.TopRecordsOnly > 0)
            {
                sb.Append("TOP " + mq.TopRecordsOnly.ToString() + " ");
            }

            if (mq.explicit_columns == null || mq.explicit_columns.Count() == 0)
            {
                mq.explicit_columns = new BL.TheColumnsProvider(_mother.App).getDefaultPallete(false, mq);    //na vstupu není přesný výčet sloupců -> pracovat s default sadou
            }
            if (bolGetTotalsRow)
            {
                sb.Append(string.Join(",", mq.explicit_columns.Select(p => p.getFinalSqlSyntax_SUM())));   //součtová řádka gridu
            }
            else
            {
                sb.Append(string.Join(",", mq.explicit_columns.Select(p => p.getFinalSqlSyntax_SELECT()))); //grid sloupce
            }
            sb.Append("," + GetSQL_SELECT_Ocas(mq.Prefix, bolGetTotalsRow));                                //konstantní pole jako pid,isclosed
            if (bolGetTotalsRow == false && (mq.Prefix == "p21" || mq.Prefix == "p41" || mq.Prefix == "o23" || mq.Prefix == "p51" || mq.Prefix == "p10" || mq.Prefix == "p26" || mq.Prefix == "p11"))
            {
                sb.Append(",bc.b02Color as bgcolor");
            }
            else
            {
                sb.Append(",NULL as bgcolor");
            }
            if (mq.explicit_selectsql != null)
            {
                sb.Append("," + mq.explicit_selectsql);
            }

            sb.Append(" FROM ");
            BO.TheEntity ce = BL.TheEntities.ByPrefix(mq.Prefix);
            sb.Append(ce.SqlFromGrid);    //úvodní FROM klauzule s primární "a" tabulkou

            List <string> relSqls = new List <string>();

            foreach (BO.TheGridColumn col in mq.explicit_columns.Where(x => x.RelName != null && x.RelName != "a"))
            {
                if (col.RelSqlDependOn != null && relSqls.Exists(p => p == col.RelSqlDependOn) == false)
                {
                    //if (mq.Prefix=="p41" && (col.RelName == "p11_p20" || col.RelName== "p11_p20pro"))
                    //{   //natvrdo relace, protože bohužel neumíme závilost ob dvě relace:
                    //    if (relSqls.Exists(p => p == "INNER JOIN p52OrderItem p41_p52 ON a.p52ID = p41_p52.p52ID") == false)
                    //    {
                    //        relSqls.Add("INNER JOIN p52OrderItem p41_p52 ON a.p52ID=p41_p52.p52ID");
                    //        sb.Append(" INNER JOIN p52OrderItem p41_p52 ON a.p52ID=p41_p52.p52ID");
                    //    }
                    //}

                    relSqls.Add(col.RelSqlDependOn);
                    sb.Append(" ");
                    sb.Append(col.RelSqlDependOn);
                }
                if (relSqls.Exists(p => p == col.RelSql) == false)
                {
                    relSqls.Add(col.RelSql);
                    sb.Append(" ");
                    sb.Append(col.RelSql);
                }
            }



            //vždy musí být nějaké výchozí třídění v ce.SqlOrderBy!!
            if (bolGetTotalsRow == false && String.IsNullOrEmpty(mq.explicit_orderby))
            {
                mq.explicit_orderby = ce.SqlOrderBy;
            }



            //parametrický dotaz s WHERE klauzulí

            DL.FinalSqlCommand q = DL.basQuery.ParseFinalSql(sb.ToString(), mq, _mother.CurrentUser, true);    //závěrečné vygenerování WHERE a ORDERBY klauzule

            if (bolGetTotalsRow == false && mq.OFFSET_PageSize > 0)
            {
                q.FinalSql += " OFFSET @pagesize*@pagenum ROWS FETCH NEXT @pagesize ROWS ONLY";
                if (q.Parameters4DT == null)
                {
                    q.Parameters4DT = new List <DL.Param4DT>();
                }
                q.Parameters4DT.Add(new DL.Param4DT()
                {
                    ParamType = "int", ParName = "pagesize", ParValue = mq.OFFSET_PageSize
                });
                q.Parameters4DT.Add(new DL.Param4DT()
                {
                    ParamType = "int", ParName = "pagenum", ParValue = mq.OFFSET_PageNum
                });
            }

            return(_db.GetDataTable(q.FinalSql, q.Parameters4DT));
        }
Ejemplo n.º 3
0
        public static List <BO.EntityRelation> getApplicableRelations(string strPrimaryPrefix)
        {
            TestPallete();
            var lis = new List <BO.EntityRelation>();

            BO.TheEntity ce = ByPrefix(strPrimaryPrefix);

            //lis.Add(new BO.EntityRelation() { IsPrimaryTable = true, TableName = ce.TableName, AliasSingular = ce.AliasSingular, RelName = "a", SqlFrom = ce.SqlFromGrid });


            switch (strPrimaryPrefix)
            {
            case "j02":
                lis.Add(getREL("j03User", "j02_j03", "Uživatelský účet", "LEFT OUTER JOIN j03User j02_j03 ON a.j02ID=j02_j03.j02ID LEFT OUTER JOIN j04UserRole j03_j04 ON j02_j03.j04ID=j03_j04.j04ID"));
                lis.Add(getREL("p28Company", "j02_p28", "Klient", "LEFT OUTER JOIN p28Company j02_p28 ON a.p28ID=j02_p28.p28ID"));
                lis.Add(getREL("j02Person", "j02_owner", "Vlastník záznamu", getOwnerSql("j02")));
                lis.Add(getREL("o54TagBindingInline", "j02_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='j02') j02_o54 ON a.j02ID=j02_o54.o54RecordPid"));
                break;

            case "j90":
                lis.Add(getREL("j03User", "j90_j03", "Uživatelský účet", "INNER JOIN j03User j90_j03 ON a.j03ID=j90_j03.j03ID INNER JOIN j04UserRole j03_j04 ON j90_j03.j04ID=j03_j04.j04ID"));
                break;

            case "j92":
                lis.Add(getREL("j03User", "j92_j03", "Uživatelský účet", "INNER JOIN j03User j92_j03 ON a.j03ID=j92_j03.j03ID INNER JOIN j04UserRole j03_j04 ON j92_j03.j04ID=j03_j04.j04ID"));
                break;

            case "p10":
                lis.Add(getREL("p20Unit", "p10_p20", "MJ", "INNER JOIN p20Unit p10_p20 ON a.p20ID=p10_p20.p20ID"));
                lis.Add(getREL("p20Unit", "p10_p20pro", "VJ", "LEFT OUTER JOIN p20Unit p10_p20pro ON a.p20ID_Pro=p10_p20pro.p20ID"));
                lis.Add(getREL("p13MasterTpv", "p10_p13", "Master receptura", "LEFT OUTER JOIN p13MasterTpv p10_p13 ON a.p13ID=p10_p13.p13ID"));
                lis.Add(getREL("b02Status", "p10_b02", "Workflow stav", "LEFT OUTER JOIN b02Status p10_b02 ON a.b02ID = p10_b02.b02ID"));

                lis.Add(getREL("o54TagBindingInline", "p10_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p10') p10_o54 ON a.p10ID=p10_o54.o54RecordPid"));
                break;

            case "p11":
                lis.Add(getREL("p20Unit", "p11_p20", "Měrná jednotka", "INNER JOIN p20Unit p11_p20 ON a.p20ID=p11_p20.p20ID"));
                lis.Add(getREL("p20Unit", "p11_p20pro", "Výrobní jednotka", "LEFT OUTER JOIN p20Unit p11_p20pro ON a.p20ID_Pro=p11_p20pro.p20ID"));
                lis.Add(getREL("p21License", "p11_p21", "Licence", "INNER JOIN p21License p11_p21 ON a.p21ID=p11_p21.p21ID"));
                lis.Add(getREL("p28Company", "p21_p28", "Klient licence", "LEFT OUTER JOIN p28Company p21_p28 ON p11_p21.p28ID=p21_p28.p28ID", "p11_p21"));
                lis.Add(getREL("p12ClientTpv", "p11_p12", "Receptura", "INNER JOIN p12ClientTpv p11_p12 ON a.p12ID=p11_p12.p12ID"));
                lis.Add(getREL("p25MszType", "p12_p25", "Typ zařízení", "LEFT OUTER JOIN (select xa.p13ID,xb.* from p13MasterTpv xa INNER JOIN p25MszType xb ON xa.p25ID=xb.p25ID) p12_p25 ON p11_p12.p13ID_Master=p12_p25.p13ID", "p11_p12"));
                lis.Add(getREL("p10MasterProduct", "p11_p10", "Master produkt", "LEFT OUTER JOIN p10MasterProduct p11_p10 ON a.p10ID_Master = p11_p10.p10ID"));
                lis.Add(getREL("p19Material", "p11_p19", "Surovina", "LEFT OUTER JOIN p19Material p11_p19 ON a.p11Code=p11_p19.p19Code"));

                lis.Add(getREL("b02Status", "p11_b02", "Workflow stav produktu", "LEFT OUTER JOIN b02Status p11_b02 ON a.b02ID = p11_b02.b02ID"));
                lis.Add(getREL("o54TagBindingInline", "p11_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p11') p11_o54 ON a.p11ID=p11_o54.o54RecordPid"));

                lis.Add(getREL("z03_produkty_plan_vyroby", "p11_z03", "Σ plán a objednávky", "LEFT OUTER JOIN dbo.z03_produkty_plan_vyroby(@gd1,@gd2) p11_z03 ON a.p11ID=p11_z03.p11ID"));
                lis.Add(getREL("z04_produkty_plan_vyroby_polotovar", "p11_z04", "Σ plán a objednávky polotovar", "LEFT OUTER JOIN dbo.z04_produkty_plan_vyroby_polotovar(@gd1,@gd2) p11_z04 ON a.p11ID=p11_z04.p11ID"));

                //string ss = "LEFT OUTER JOIN (";
                //ss += "select xb.p11ID,count(xa.p41ID) as PocetVZ,sum(xa.p41PlanUnitsCount) as PlanMnozstvi,min(xa.p41PlanStart) as MinStart,max(xa.p41PlanStart) as MaxStart,min(xa.p41Code) as p41CodeFirst";
                //ss += ",sum(case when xa.b02ID IN (23,37,24,25,27) then xa.p41PlanUnitsCount end) as PlanMnozstvi1";
                //ss += " FROM p41Task xa INNER JOIN p52OrderItem xb ON xa.p52ID=xb.p52ID";
                //ss += " WHERE xa.p41PlanEnd BETWEEN @gd1 AND @gd2 GROUP BY xb.p11ID";
                //ss += ") sum_p11_p41 ON a.p11ID=sum_p11_p41.p11ID";

                //lis.Add(getREL("sum_p11_p41", "sum_p11_p41", "Σ plán výroby", ss));


                //ss = "LEFT OUTER JOIN (";
                //ss += " SELECT xa.p11ID,count(DISTINCT xb.p51ID) as PocetP51,count(xa.p52ID) as PocetP52,sum(xa.p52UnitsCount) as ObjednaneMnozstvi";
                //ss += ",sum(case when xb.b02ID NOT IN (14,20) then xa.p52UnitsCount end) as ObjednaneMnozstvi1";
                //ss += ",sum(xc.PlanMnozstvi0) as PlanMnozstvi0";
                ////ss += ",sum(case when isnull(xb.p51DateDeliveryConfirmed,xb.p51DateDelivery) BETWEEN @gd1 AND @gd2 then xa.p52UnitsCount end) as ObjednaneMnozstvi_Obdobi";
                ////ss += ",sum(case when xb.b02ID NOT IN (14,20) AND isnull(xb.p51DateDeliveryConfirmed,xb.p51DateDelivery) BETWEEN @gd1 AND @gd2 then xa.p52UnitsCount end) as ObjednaneMnozstvi1_Obdobi";
                //ss += " FROM p52OrderItem xa INNER JOIN p51Order xb ON xa.p51ID=xb.p51ID";
                //ss += " LEFT OUTER JOIN (select p52ID,sum(p41PlanUnitsCount) as PlanMnozstvi0 FROM p41Task WHERE b02ID IN (23,37,24,25,27) GROUP BY p52ID) xc ON xa.p52ID=xc.p52ID";
                //ss += " GROUP BY xa.p11ID";
                //ss += ") sum_p11_p51 ON a.p11ID=sum_p11_p51.p11ID";

                ////lis.Add(getREL("sum_p11_p51", "sum_p11_p51", "Σ objednáno", ss));



                break;

            case "p12":
                lis.Add(getREL("p25MszType", "p12_p25", "Typ zařízení", "INNER JOIN p25MszType p12_p25 ON a.p25ID=p12_p25.p25ID"));
                lis.Add(getREL("p21License", "p12_p21", "Licence", "INNER JOIN p21License p12_p21 ON a.p21ID=p12_p21.p21ID"));
                lis.Add(getREL("p28Company", "p21_p28", "Klient", "LEFT OUTER JOIN p28Company p21_p28 ON p12_p21.p28ID=p21_p28.p28ID", "p12_p21"));
                lis.Add(getREL("p13MasterTpv", "p12_p13", "Master receptura", "LEFT OUTER JOIN p13MasterTpv p12_p13 ON a.p13ID_Master=p12_p13.p13ID"));
                lis.Add(getREL("o54TagBindingInline", "p12_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p12') p12_o54 ON a.p12ID=p12_o54.o54RecordPid"));
                break;

            case "p13":
                lis.Add(getREL("p25MszType", "p13_p25", "Typ zařízení", "INNER JOIN p25MszType p13_p25 ON a.p25ID=p13_p25.p25ID"));
                lis.Add(getREL("o54TagBindingInline", "p13_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p13') p13_o54 ON a.p13ID=p13_o54.o54RecordPid"));
                break;

            case "p14":
                lis.Add(getREL("p19Material", "p14_p19", "Suroviny", "LEFT OUTER JOIN p19Material p14_p19 ON a.p19ID=p14_p19.p19ID"));
                lis.Add(getREL("p18OperCode", "p14_p18", "Kód operace", "LEFT OUTER JOIN p18OperCode p14_p18 ON a.p18ID=p14_p18.p18ID"));
                break;

            case "p15":
                lis.Add(getREL("p19Material", "p15_p19", "Suroviny", "LEFT OUTER JOIN p19Material p15_p19 ON a.p19ID=p15_p19.p19ID"));
                lis.Add(getREL("p18OperCode", "p15_p18", "Kód operace", "LEFT OUTER JOIN p18OperCode p15_p18 ON a.p18ID=p15_p18.p18ID"));
                break;

            case "p18":
                lis.Add(getREL("p25MszType", "p18_p25", "Typ zařízení", "INNER JOIN p25MszType p18_p25 ON a.p25ID=p18_p25.p25ID"));
                lis.Add(getREL("p19Material", "p18_p19", "Suroviny", "LEFT OUTER JOIN p19Material p18_p19 ON a.p19ID=p18_p19.p19ID"));
                lis.Add(getREL("o54TagBindingInline", "p18_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p18') p18_o54 ON a.p18ID=p18_o54.o54RecordPid"));
                break;

            case "p19":
                lis.Add(getREL("p20Unit", "p19_p20", "Měrná jednotka", "INNER JOIN p20Unit p19_p20 ON a.p20ID=p19_p20.p20ID"));
                lis.Add(getREL("p28Company", "p19_p28", "Klient", "LEFT OUTER JOIN p28Company p19_p28 ON a.p28ID=p19_p28.p28ID"));
                lis.Add(getREL("p10MasterProduct", "p19_p10", "Master produkt (Polotovar)", "LEFT OUTER JOIN p10MasterProduct p19_p10 ON a.p10ID_Master = p19_p10.p10ID"));
                lis.Add(getREL("j02Person", "p19_owner", "Vlastník záznamu", getOwnerSql("p19")));
                lis.Add(getREL("o54TagBindingInline", "p19_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p19') p19_o54 ON a.p19ID=p19_o54.o54RecordPid"));
                break;

            case "p20":
                lis.Add(getREL("p28Company", "p20_p28", "Klient", "LEFT OUTER JOIN p28Company p20_p28 ON a.p28ID=p20_p28.p28ID"));
                lis.Add(getREL("j02Person", "p20_owner", "Vlastník záznamu", getOwnerSql("p20")));

                break;

            case "p21":
                lis.Add(getREL("p28Company", "p21_p28", "Klient licence", "LEFT OUTER JOIN p28Company p21_p28 ON a.p28ID=p21_p28.p28ID"));
                lis.Add(getREL("b02Status", "p21_b02", "Workflow stav licence", "LEFT OUTER JOIN b02Status p21_b02 ON a.b02ID = p21_b02.b02ID"));

                lis.Add(getREL("o54TagBindingInline", "p21_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p21') p21_o54 ON a.p21ID=p21_o54.o54RecordPid"));
                break;

            case "p26":
                lis.Add(getREL("p25MszType", "p26_p25", "Typ zařízení", "INNER JOIN p25MszType p26_p25 ON a.p25ID=p26_p25.p25ID"));
                lis.Add(getREL("b02Status", "p26_b02", "Workflow stav skupiny", "LEFT OUTER JOIN b02Status p26_b02 ON a.b02ID = p26_b02.b02ID"));
                lis.Add(getREL("p28Company", "p26_p28", "Klient stroje", "LEFT OUTER JOIN p28Company p26_p28 ON a.p28ID=p26_p28.p28ID"));

                lis.Add(getREL("o54TagBindingInline", "p26_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p26') p26_o54 ON a.p26ID=p26_o54.o54RecordPid"));
                break;

            case "p27":
                lis.Add(getREL("p25MszType", "p27_p25", "Kmenový typ zařízení", "INNER JOIN p25MszType p27_p25 ON a.p25ID_HW=p27_p25.p25ID"));
                lis.Add(getREL("p31CapacityFond", "p27_p31", "Časový fond", "LEFT OUTER JOIN p31CapacityFond p27_p31 ON a.p31ID=p27_p31.p31ID"));

                lis.Add(getREL("o54TagBindingInline", "p27_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p27') p27_o54 ON a.p27ID=p27_o54.o54RecordPid"));
                break;

            case "p28":
                lis.Add(getREL("j02Person", "p28_owner", "Vlastník záznamu", getOwnerSql("p28")));
                lis.Add(getREL("o54TagBindingInline", "p28_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p28') p28_o54 ON a.p28ID=p28_o54.o54RecordPid"));
                break;

            case "p31":
                lis.Add(getREL("p28Company", "p31_p28", "Klient", "LEFT OUTER JOIN p28Company p31_p28 ON p31_owner.p28ID=p31_p28.p28ID", "p31_owner"));
                lis.Add(getREL("j02Person", "p31_owner", "Vlastník záznamu", getOwnerSql("p31")));
                break;

            case "p41":
                lis.Add(getREL("p27MszUnit", "p41_p27", "Zařízení", "LEFT OUTER JOIN p27MszUnit p41_p27 ON a.p27ID=p41_p27.p27ID"));
                lis.Add(getREL("b02Status", "p41_b02", "Workflow stav", "LEFT OUTER JOIN b02Status p41_b02 ON a.b02ID = p41_b02.b02ID"));

                lis.Add(getREL("p52OrderItem", "p41_p52", "Položka objednávky", "INNER JOIN p52OrderItem p41_p52 ON a.p52ID=p41_p52.p52ID"));
                lis.Add(getREL("p11ClientProduct", "p52_p11", "Produkt", "INNER JOIN p11ClientProduct p52_p11 ON p41_p52.p11ID = p52_p11.p11ID", "p41_p52"));
                lis.Add(getREL("p20Unit", "p11_p20", "Měrná jednotka", "LEFT OUTER JOIN p20Unit p11_p20 ON p52_p11.p20ID=p11_p20.p20ID", "p52_p11"));
                lis.Add(getREL("p20Unit", "p11_p20pro", "Výrobní jednotka", "LEFT OUTER JOIN p20Unit p11_p20pro ON p52_p11.p20ID_Pro=p11_p20pro.p20ID", "p52_p11"));


                lis.Add(getREL("p51Order", "p52_p51", "Objednávka", "INNER JOIN p51Order p52_p51 ON p41_p52.p51ID=p52_p51.p51ID", "p41_p52"));
                lis.Add(getREL("p28Company", "p51_p28", "Klient", "LEFT OUTER JOIN p28Company p51_p28 ON p52_p51.p28ID=p51_p28.p28ID", "p52_p51"));
                lis.Add(getREL("o54TagBindingInline", "p41_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p41') p41_o54 ON a.p41ID=p41_o54.o54RecordPid"));

                lis.Add(getREL("p41Task", "p41_successor", "Následovník", "LEFT OUTER JOIN p41Task p41_successor ON a.p41SuccessorID = p41_successor.p41ID"));
                lis.Add(getREL("p41Task", "p41_predecessor", "Předchůdce", "LEFT OUTER JOIN (select * from p41Task where p41SuccessorID IS NOT NULL) p41_predecessor ON a.p41ID = p41_predecessor.p41SuccessorID"));

                break;

            case "p44":
                lis.Add(getREL("p19Material", "p44_p19", "Suroviny", "LEFT OUTER JOIN p19Material p44_p19 ON a.p19ID=p44_p19.p19ID"));
                lis.Add(getREL("p18OperCode", "p44_p18", "Kód operace", "LEFT OUTER JOIN p18OperCode p44_p18 ON a.p18ID=p44_p18.p18ID"));
                lis.Add(getREL("p41Task", "p44_p41", "Zakázka", "LEFT OUTER JOIN p41Task p44_p41 ON a.p41ID=p44_p41.p41ID"));
                lis.Add(getREL("p27MszUnit", "p41_p27", "Zařízení", "LEFT OUTER JOIN p27MszUnit p41_p27 ON p44_p41.p27ID=p41_p27.p27ID", "p44_p41"));
                break;

            case "p45":
                lis.Add(getREL("p19Material", "p45_p19", "Suroviny", "LEFT OUTER JOIN p19Material p45_p19 ON a.p19ID=p45_p19.p19ID"));
                lis.Add(getREL("p18OperCode", "p45_p18", "Kód operace", "LEFT OUTER JOIN p18OperCode p45_p18 ON a.p18ID=p45_p18.p18ID"));
                break;

            case "p51":
                lis.Add(getREL("p28Company", "p51_p28", "Klient", "LEFT OUTER JOIN p28Company p51_p28 ON a.p28ID=p51_p28.p28ID"));
                lis.Add(getREL("b02Status", "p51_b02", "Workflow stav", "LEFT OUTER JOIN b02Status p51_b02 ON a.b02ID = p51_b02.b02ID"));
                lis.Add(getREL("j02Person", "p51_owner", "Vlastník záznamu", getOwnerSql("p51")));
                lis.Add(getREL("o54TagBindingInline", "p51_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p51') p51_o54 ON a.p51ID=p51_o54.o54RecordPid"));
                break;

            case "p52":
                lis.Add(getREL("p51Order", "p52_p51", "Objednávka", "INNER JOIN p51Order p52_p51 ON a.p51ID = p52_p51.p51ID"));
                lis.Add(getREL("p11ClientProduct", "p52_p11", "Produkt", "INNER JOIN p11ClientProduct p52_p11 ON a.p11ID = p52_p11.p11ID"));
                lis.Add(getREL("p28Company", "p51_p28", "Klient", "LEFT OUTER JOIN p28Company p51_p28 ON p52_p51.p28ID=p51_p28.p28ID", "p52_p51"));
                lis.Add(getREL("p20Unit", "p11_p20", "Měrná jednotka", "INNER JOIN p20Unit p11_p20 ON p52_p11.p20ID=p11_p20.p20ID", "p52_p11"));
                lis.Add(getREL("p20Unit", "p11_p20pro", "Výrobní jednotka", "LEFT OUTER JOIN p20Unit p11_p20pro ON p52_p11.p20ID_Pro=p11_p20pro.p20ID", "p52_p11"));
                lis.Add(getREL("p13MasterTpv", "p10_p13", "Master receptura", "LEFT OUTER JOIN p10MasterProduct p11_p10 ON p52_p11.p10ID_Master=p11_p10.p10ID LEFT OUTER JOIN p13MasterTpv p10_p13 ON p11_p10.p13ID=p10_p13.p13ID", "p52_p11"));
                lis.Add(getREL("p25MszType", "p13_p25", "Typ zařízení", "LEFT OUTER JOIN p25MszType p13_p25 ON p10_p13.p25ID=p13_p25.p25ID"));

                break;

            case "o23":
                lis.Add(getREL("b02Status", "o23_b02", "Workflow stav", "LEFT OUTER JOIN b02Status o23_b02 ON a.b02ID = o23_b02.b02ID"));

                lis.Add(getREL("j02Person", "o23_owner", "Vlastník záznamu", getOwnerSql("o23")));
                lis.Add(getREL("o54TagBindingInline", "o23_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='o23') o23_o54 ON a.o23ID=o23_o54.o54RecordPid"));
                break;

            case "j40":
                lis.Add(getREL("j02Person", "j40_owner", "Vlastník záznamu", getOwnerSql("j40")));
                break;

            case "o51":
                lis.Add(getREL("o53TagGroup", "o51_o53", "Kategorie", "LEFT OUTER JOIN o53TagGroup o51_o53 ON a.o53ID=o51_o53.o53ID"));
                //lis.Add(getREL("j02Person", "o51_owner", "Vlastník záznamu", getOwnerSql("o51")));
                break;

            case "z01":
                lis.Add(getREL("p10MasterProduct", "z01_p10", "Master produkt", "INNER JOIN p10MasterProduct z01_p10 ON a.p10ID = z01_p10.p10ID"));
                lis.Add(getREL("p13MasterTpv", "z01_p13", "Master receptura", "LEFT OUTER JOIN p13MasterTpv z01_p13 ON a.p13ID=z01_p13.p13ID"));
                lis.Add(getREL("p19Material", "z01_p19", "Surovina", "LEFT OUTER JOIN p19Material z01_p19 ON a.p10Code=z01_p19.p19Code"));
                lis.Add(getREL("p11ClientProduct", "z01_p11", "Klientský produkt", "INNER JOIN p11ClientProduct z01_p11 ON a.p11ID = z01_p11.p11ID"));
                break;

            case "z02":
                lis.Add(getREL("p19Material", "z02_p19", "Surovina", "INNER JOIN p19Material z02_p19 ON a.p19ID=z02_p19.p19ID"));
                lis.Add(getREL("p10MasterProduct", "z02_p10", "Master produkt", "LEFT OUTER JOIN p10MasterProduct z02_p10 ON a.p19Code = z02_p10.p10Code"));

                lis.Add(getREL("p20Unit", "z02_p20", "Měrná jednotka", "INNER JOIN p20Unit z02_p20 ON a.p20ID=z02_p20.p20ID"));


                lis.Add(getREL("o54TagBindingInline", "p19_o54", "Kategorie", "LEFT OUTER JOIN (SELECT * FROM o54TagBindingInline WHERE o54RecordEntity='p19') p19_o54 ON a.p19ID=p19_o54.o54RecordPid"));
                break;

            case "y02":
                lis.Add(getREL("p31CapacityFond", "y02_p31", "Časový fond", "LEFT OUTER JOIN p31CapacityFond y02_p31 ON a.p31ID=y02_p31.p31ID"));
                lis.Add(getREL("p27MszUnit", "y02_p27", "Zařízení", "LEFT OUTER JOIN p27MszUnit y02_p27 ON a.p27ID=y02_p27.p27ID"));

                break;

            default:
                break;
            }

            return(lis);
        }