예제 #1
0
        protected virtual bool SkipExtNulls(DataRow R, CopyContext Ctx)
        {
            foreach (string field in SkipFieldsWhenNull)
            {
                if (R[field] == DBNull.Value)
                {
                    continue;
                }

                object o = null;
                if (myContext.IsDefined(field))
                {
                    //I traduttori privati prevalgono su quelli pubblici e non risentono del codice esterno
                    o = myContext.Translate(field, R[field]);
                }
                else
                {
                    o = Ctx.Translate(GetExternalCodeForField(field), R[field]);
                }
                if (o == null || o == DBNull.Value)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #2
0
        protected void Comment(DataAccess Dest, CopyContext Ctx, CopyDisplay CD)
        {
            DataTable T = Dest.CreateTableByName(table, "*");

            //Verifica quanti codici sono definiti e crea una stringa
            string comment = "";

            foreach (DataColumn C in T.Columns)
            {
                string extcode = GetExternalCodeForField(C.ColumnName);
                //esamina i campi  a  codifica esterna
                if (extcode != C.ColumnName)
                {
                    comment += "[" + C.ColumnName + " -> " + extcode + "] ";
                }

                if (myContext.IsDefined(extcode))
                {
                    if (extcode == C.ColumnName)
                    {
                        comment += "[" + extcode + " priv]";
                    }
                }
                else
                {
                    if (Ctx.IsDefined(extcode))
                    {
                        if (extcode == C.ColumnName)
                        {
                            comment += "[" + extcode + " ext]";
                        }
                    }
                    else
                    {
                        if (extcode != C.ColumnName)
                        {
                            comment += "\r\n\r\n>>>>>>>> E R R O R : " + extcode + " is not a defined translator <<<<<<<<<\r\n\r\n";
                        }
                    }
                }
            }
            foreach (string field in SkipFieldsWhenNull)
            {
                comment += "[Skips on " + field + " null] ";
            }
            if (comment != "")
            {
                comment = "Table " + table.ToUpper() + ":" + comment;
                CD.Comment(comment);
            }
        }
예제 #3
0
 /// <summary>
 /// Checks whether external fields have already been defined
 /// </summary>
 /// <param name="Ctx"></param>
 /// <param name="L"></param>
 /// <returns></returns>
 public bool CheckDependencies(CopyContext Ctx, List <string> L)
 {
     foreach (DataColumn C in T.Columns)
     {
         string codetosearch = GetExternalCodeForField(C.ColumnName);
         if (!L.Contains(codetosearch))
         {
             continue;                             //non è nella mandatory list, tutto ok
         }
         if (PRETrlist.ContainsKey(codetosearch))
         {
             continue;                                      //è un campo gestito da questo copyer stesso
         }
         //è nella mandatorylist, vede se il Contesto per quel campo è stato definito
         if (Ctx.IsDefined(codetosearch))
         {
             continue;
         }
         return(false); //field has not yet been defined
     }
     return(true);
 }