Пример #1
0
        /*
         * public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte)
         * {
         *  CResultAErreur result = base.TraitementAvantSauvegarde(contexte);
         *
         *  if (!result)
         *      return result;
         *
         *  DataTable table = contexte.Tables[GetNomTable()];
         *  if (table == null)
         *      return result;
         *
         *  List<DataRow> lstCrees = new List<DataRow>();
         *
         *  ArrayList lstRows = new System.Collections.ArrayList(table.Rows);
         *  foreach (DataRow row in lstRows)
         *  {
         *      // Stockage temporaire des enregistrements dans une liste
         *      // pour traitement dans AfterSave (messages pour
         *      // EmessEM). Car à ce niveau, on ne dispose pas de l'ID de l'équipement
         *      CSpvEquip spvEquip;
         *      if (row.RowState == DataRowState.Added)
         *      {
         *          spvEquip = new CSpvEquip(row);
         *          if (spvEquip.ASuperviser)
         *              lstCrees.Add(row);
         *
         *          spvEquip.TraitementMetier(row.RowState);
         *      }
         *      else if (row.RowState == DataRowState.Modified)
         *      {
         *          spvEquip = new CSpvEquip(row);
         *          spvEquip.TraitementMetier(row.RowState);
         *
         *          if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true &&
         *              !spvEquip.ASuperviser) || (
         *              (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true &&
         *               spvEquip.ASuperviser && (
         *               spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] !=
         *               spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || (
         *               spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] !=
         *               spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME]))))
         *          {
         *              // Message pour EmessEM
         *              CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee);
         *              spvMessem.CreateNewInCurrentContexte();
         *              spvMessem.FormatMessDelEquip(spvEquip.Id,
         *                  (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original],
         *                  (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original],
         *                  spvEquip.ASuperviser);
         *          }
         *
         *          if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == false &&
         *              spvEquip.ASuperviser) || (
         *              (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true &&
         *              spvEquip.ASuperviser && (
         *              spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] !=
         *              spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || (
         *              spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] !=
         *              spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME]))))
         *          {
         *              // Message pour EmessEM
         *              CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee);
         *              spvMessem.CreateNewInCurrentContexte();
         *              spvMessem.FormatMessCreEquip(spvEquip.Id);
         *          }
         *      }
         *      else if (row.RowState == DataRowState.Deleted)
         *      {
         *          spvEquip = new CSpvEquip(row);
         *          if ((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true)
         *          {
         *              // Message pour EmessEM
         *              CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee);
         *              spvMessem.CreateNewInCurrentContexte();
         *              spvMessem.FormatMessDelEquip(spvEquip.Id,
         *                  (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original],
         *                  (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original],
         *                  spvEquip.ASuperviser);
         *          }
         *      }
         *  }
         *  table.ExtendedProperties.Add(CDivers.c_cleRowCrees, lstCrees);
         *  return result;
         * }*/

        public override IDataAdapter GetDataAdapter(DataRowState rowsPriseEnCharge, params string[] champsExclus)
        {
            IDataAdapter         adapter       = base.GetDataAdapter(rowsPriseEnCharge, champsExclus);
            C2iOracleDataAdapter oracleAdapter = adapter as C2iOracleDataAdapter;

            if (oracleAdapter != null)
            {
                oracleAdapter.RowUpdated += new OracleRowUpdatedEventHandler(OnRowUpdated);
            }
            return(oracleAdapter);
        }
Пример #2
0
 void OnRowUpdated(object sender, OracleRowUpdatedEventArgs e)
 {
     if (e.StatementType == StatementType.Insert ||
         e.StatementType == StatementType.Update)
     {
         C2iOracleDataAdapter adapter    = sender as C2iOracleDataAdapter;
         CSpvEquip            equipement = new CSpvEquip(e.Row);
         bool bSuperviser = equipement.ASuperviser;
         if (e.StatementType == StatementType.Insert ||
             e.Row[CSpvEquip.c_champEQUIP_TOSURV] != e.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original])
         {
             int           nValeurMasquage = bSuperviser ? 0 : 2;
             OracleCommand cmd             = e.Command.Connection.CreateCommand();
             cmd.Transaction = e.Command.Transaction;
             cmd.CommandText = "Begin SetMaskAdmEquip(" +
                               equipement.Id + "," + nValeurMasquage + "); end;";
             cmd.ExecuteScalar();
         }
     }
 }