Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Во вкладке Database в панели области просмотра найдите кнопку Labels и откройте ее раскрывающийся список. В нем находится предварительно загруженный список автоматических меток для иерархии уровня и полей запасов. Вы можете расширить этот список, добавив в него пользовательские метки.

  1. Нажмите значок шестеренки, находящийся справа от раскрывающегося списка Label.

  2. Нажмите синюю кнопку со знаком плюса, чтобы добавить новую метку.

  3. Измените имя метки на «Record» (Запись).

  4. Вставьте фрагмент формулы в редактор кода.

  5. Подсказки по кодам можно посмотреть дважды щелкнув по Available Formulas (Доступные формулы).

  6. Нажмите ОК для завершения.

Примеры пользовательских меток

Пример 1. Создание пользовательской идентификационной метки

public class Label : ILabelTextProvider
{
	public string GetLabel(RecordAndShadingContext rsc)
	{
		if(rsc.Record.Table.HoldsDumps)
			return "";

			var Name = rsc.Record.GetNames();
			var pit = Name[2];
			var bench = Name[4];
			var blast = Name[5];
			return pit + "_" + bench + "_" + blast;
	}
}

Пример 2. Идентификационная метка только для выемочного блока GC

    public class Label : ILabelTextProvider
    {
        public string GetLabel(RecordAndShadingContext rsc)
        {
			//If dump record or a blast solid, return nothing. 
			if(!rsc.Record.GetNames()[0].Eq("Reserves") || !rsc.Record.IsDigLeaf)
				return "";
			
            var agent = rsc.CurrentAgent;
            var database = rsc.Record.Database;
            var digBlock = rsc.Record.GetStringValue(database.FindField("DigSolid", "reservesDataSource"), (IParcelSubset)null);
            var isGradeControl = digBlock.Eq("BlockModel");

            var blast = string.Empty;
            var flitch = string.Empty;
	
            if (isGradeControl)
            {

			var Name = rsc.Record.GetNames();
			var pit = Name[2];
			var bench = Name[4];
			var shot = Name[5];
            return agent + "  " + flitch + "RL" + Environment.NewLine + shot ;
            }

            var names = rsc.Record.GetNames();
			
            flitch = names[6];
            blast = names[5];
			return agent + "  " + flitch + "RL" + Environment.NewLine + blast + "_" + parcel + "_" + block;
        }
    }

Пример 3. Объем и тонны для блока

public class Label : ILabelTextProvider	
{
    PatriField miningVol;
	PatriField miningDt;
	
	public string GetLabel(RecordAndShadingContext rsc)
	{
		
        miningDt ??= rsc.ShadingContext.Database.FindField("mining_drytonnes");	
		miningVol ??= rsc.ShadingContext.Database.FindField ("mining_volume");
		
		return "dig: " + rsc.Record.GetDoubleValue(miningVol, ParcelAll.Default).ToString("#,##0") + " bcm" 
		+ Environment.NewLine + rsc.Record.GetDoubleValue(miningDt, ParcelAll.Default).ToString("#,##0") + " t";
	}
}

Пример 4. Когда блок был запланирован в первый раз

public class Label : ILabelTextProvider
{
	public string GetLabel(RecordAndShadingContext rsc)
	{
		var date = rsc.FirstScheduledTime.ToString();
		var ignoreDate = "31/12/9999 11:59:59 PM";
		
	//Skip Conditions
		if(date == ignoreDate) 		return "" ;
		else 						return date;
	}
}
  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.