Esempio n. 1
0
      public void ReadCriteria(ref string Criteria, ref string CritFormula, DataTable dtObject)
      {
          int    i, Sort;
          string Fld, Op, Link, T;

          string[] Crit;
          int      Typ, Idx;
          string   Value;
          DateTime Vdate = new DateTime();

          if ((_RepCriteria != ""))
          {
              Crit = Regex.Split(_RepCriteria, ";");
              //Crit = _RepCriteria.Split(';');
              for (i = 0; i <= (Crit.Length - 1); i++)
              {
                  if ((Crit[i].ToString().Trim() == ""))
                  {
                      // TODO: Continue For... Warning!!! not translated
                  }

                  Fld   = DataTools.GetStrPart(Crit[i].ToString(), 0, "^^^");
                  Op    = DataTools.GetStrPart(Crit[i].ToString(), 1, "^^^");
                  Value = DataTools.GetStrPart(Crit[i].ToString(), 2, "^^^");
                  Sort  = (DataTools.GetStrPart(Crit[i].ToString(), 3, "^^^") == "" ? 0: Int32.Parse(DataTools.GetStrPart(Crit[i].ToString(), 3, "^^^")));
                  Link  = DataTools.GetStrPart(Crit[i].ToString(), 4, "^^^");
                  Idx   = DataTools.GetStrSerial(DataTools.ReadField(dtObject.Rows[0]["CriteriaFields"]), Fld);
                  T     = DataTools.GetStrPart(DataTools.ReadField(dtObject.Rows[0]["CriteriaFieldsTables"]), Idx);
                  //Val(GenericMethods.GetStrPart(GenericMethods.ReadField(dtObject.Rows(0)("CriteriaFieldsTypes")), Idx))
                  Typ = (DataTools.GetStrPart(DataTools.ReadField(dtObject.Rows[0]["CriteriaFieldsTypes"]), Idx) == ""?0: Int32.Parse(DataTools.GetStrPart(DataTools.ReadField(dtObject.Rows[0]["CriteriaFieldsTypes"]), Idx)));
                  if ((Typ == 7))
                  {
                      Value = Value.Replace("-", "/").Replace(" ", "/").Replace("\\", "/");
                      Vdate = new DateTime(Int32.Parse(Value.Split('/')[2]), Int32.Parse(Value.Split('/')[1]), Int32.Parse(Value.Split('/')[0]));
                  }

                  //if ((Sort != 0))//later
                  //{
                  //    rpt.DataDefinition.SortFields.Item[rpt.DataDefinition.SortFields.Count].SortDirection = ((Sort == 1) ? SortDirection.AscendingOrder : SortDirection.DescendingOrder);
                  //    if ((T.Substring(0, 1) == "@"))
                  //    {
                  //        rpt.DataDefinition.SortFields.Item[rpt.DataDefinition.SortFields.Count].Field = rpt.DataDefinition.FormulaFields[Fld];
                  //    }
                  //    else
                  //    {
                  //        rpt.DataDefinition.SortFields.Item[rpt.DataDefinition.SortFields.Count].Field = rpt.Database.Tables[dtObject.Rows[0]["Source"].ToString()].Fields[Fld];
                  //    }

                  //}

                  if ((T == "@@"))
                  {
                      if ((Typ == 7))
                      {
                          rpt.DataDefinition.FormulaFields[Fld].Text = ("Date (" + (Vdate.Year + ("," + (Vdate.Month + ("," + (Vdate.Day + ")"))))));
                      }
                      else if ((Typ == 3))
                      {
                          rpt.DataDefinition.FormulaFields[Fld].Text = Value;
                      }
                      else
                      {
                          rpt.DataDefinition.FormulaFields[Fld].Text = ("\'" + (Value + "\'"));
                      }
                  }
                  else if ((T.Substring(0, 1) == "@"))
                  {
                      if ((T == "@"))
                      {
                          T = ("@" + dtObject.Rows[0]["Source"]);
                      }

                      T = T.Substring(1);
                      if ((Value == "NULL"))
                      {
                          CritFormula = (CritFormula + ("(IsNull({" + (((Fld.Substring(0, 1) == "@") ? Fld : (T + ("." + Fld))) + ("})= " + ((Op == "<>") ? "FALSE" : "TRUE")))));
                      }
                      else
                      {
                          CritFormula = (CritFormula + ("({" + (((Fld.Substring(0, 1) == "@") ? Fld : (T + ("." + Fld))) + "} ")));
                          if ((Typ == 7))
                          {
                              CritFormula = (CritFormula + (Op + (" Date (" + (Vdate.Year + ("," + (Vdate.Month + ("," + (Vdate.Day + ")"))))))));
                          }
                          else if ((Typ == 3))
                          {
                              CritFormula = (CritFormula + (Op + (" " + Value)));
                          }
                          else
                          {
                              CritFormula = (CritFormula + (Op + (" \'" + (Value + "\'"))));
                          }
                      }

                      CritFormula = (CritFormula + (") " + (Link + " ")));
                  }
                  else
                  {
                      Value = Value.Replace("*", "%");
                      if ((Value == "NULL"))
                      {
                          Criteria = (Criteria + (((Op == "<>") ? " NOT" : "") + ("(" + (((T == "") ? Fld : (T + ("." + Fld))) + " IS Null"))));
                      }
                      else
                      {
                          Value    = (((Typ == 3) ? "" : "\'") + (((Typ == 7) ? string.Format("MM/dd/yyyy", Vdate) : Value) + ((Typ == 3) ? "" : "\'")));
                          Criteria = (Criteria + ("(" + (((T == "") ? "" : (T + ".")) + (Fld + (" " + (Op + (" " + Value)))))));
                      }

                      Criteria = (Criteria + (") " + (Link + " ")));
                  }
              }
          }

          if ((CritFormula != ""))
          {
              CritFormula = ("(" + (CritFormula.Substring(0, (CritFormula.Length - 4)) + ")"));
              CritFormula = CritFormula.Replace(" AND ", ") AND (");
          }

          if ((DataTools.ReadField(dtObject.Rows[0]["FilterOnFormula"]) != ""))
          {
              CritFormula = (CritFormula + (((CritFormula == "") ? "" : " AND ") + ("(" + (DataTools.ReadField(dtObject.Rows[0]["FilterOnFormula"]) + ")"))));
          }

          if ((Criteria != ""))
          {
              Criteria = ("(" + (Criteria.Substring(0, (Criteria.Length - 4)) + ")"));
              Criteria = Criteria.Replace(") AND (", ")) AND ((");
          }

          if ((DataTools.ReadField(dtObject.Rows[0]["FilterOn"]) != ""))
          {
              Criteria = (Criteria + (((Criteria == "") ? "" : " AND ") + ("(" + (DataTools.ReadField(dtObject.Rows[0]["FilterOn"]) + ")"))));
          }

          Fld = ApplyBranchPermissions(dtObject);
          if ((Fld != ""))
          {
              if ((Fld.IndexOf("{")) == 0)
              {
                  CritFormula = (CritFormula + (((CritFormula == "") ? "" : " AND ") + ("(" + (Fld + ")"))));
              }
              else
              {
                  Criteria = (Criteria + (((Criteria == "") ? "" : " AND ") + ("(" + (Fld + ")"))));
              }
          }

          Fld = ApplySalesmanPermissions(dtObject);
          if ((Fld != ""))
          {
              if ((Fld.IndexOf("{")) == 0)
              {
                  CritFormula = (CritFormula + (((CritFormula == "") ? "" : " AND ") + ("(" + (Fld + ")"))));
              }
              else
              {
                  Criteria = (Criteria + (((Criteria == "") ? "" : " AND ") + ("(" + (Fld + ")"))));
              }
          }
      }