Automatically get a list of items on the invoice.

Purpose: in the moment when the user selects the desired order in the edit form, invoice, neobhodimo create detaily (ЗаписьВНакладной) on the basis of what is specified in the order.

1.Add Заказ in the string representation of the order, remove the check mark in the box Видимость.

2.To regenerate the objects. 3.in NakladnayaE.aspx.cs to register:

using ICSSoft.STORMNET.Business;
using ICSSoft.STORMNET.FunctionalLanguage;
using ICSSoft.STORMNET.Windows.Forms;

4.Further, to correct the method PreApplyToControls as follows:

protected override void PreApplyToControls()
{
	if (IsPostBack && (DataObject == null || DataObject.GetStatus(true) == ObjectStatus.Created))
	{
		var заказ = ctrlЗаказ.SelectedMasterPK;
		ctrlЗаказ.MasterViewName = Заказ.Views.ЗаказL.Name;

		var langdef = ExternalLangDef.LanguageDef;
		var lcs = LoadingCustomizationStruct.GetSimpleStruct(typeof(СтрокаЗаказа), СтрокаЗаказа.Views.СтрокаЗаказаE);
		lcs.LimitFunction = langdef.GetFunction(langdef.funcEQ,
										new VariableDef(langdef.GuidType, Information.ExtractPropertyPath<СтрокаЗаказа>(x => x.Заказ)), заказ);
		var строкиЗаказа = DataServiceProvider.DataService.LoadObjects(lcs);

		foreach (var s in строкиЗаказа)
		{
			var строкаЗаказа = (СтрокаЗаказа)s;
			DataObject.ЗаписьВНакладной.Add(new ЗаписьВНакладной { Количество = строкаЗаказа.Количество, Товар = строкаЗаказа.Товар });
		}
	}
}

This method checks whether there has been PostBack, and then using the service data loaded detaily class Заказ (uploaded view has detaily), because by default they are not loaded. After loading in a loop are formed and are filled detaily. Don’t forget to change the setting flexberryautogenerated on false to form not to lose the changes upon regeneration.

5.To ensure that the method PreApplyToControls worked immediately after selecting the values in lucapa, you must add an event handler change lucapa, which cause PostBack. In NakladnayaE.aspx to register:

<script type="text/javascript">
	$('#<%= ctrlЗаказ.ClientID %>').on('change', function (e, d) {
		$.ics.postBack('', '');
	});
</script>

6.Not to forget each modified file to change the setting flexberryautogenerated to avoid losing changes.

Go

Переведено сервисом «Яндекс.Переводчик» http://translate.yandex.ru