Masquer des onglets dans un signalétique en fonction des données contenues dans la fiche

0000003225     -      03/06/2024

La programmation montrée dans cette page montre comment masquer un onglet dans un signalétique en fonction des données contenues dans la fiche. L'exemple est donné pour le signalétique des articles.  L'onglet est masqué ou montré lors du changement de fiche. Cet événement est inscrit sur l'AfterRead d'un TextBox présent dans le signalétique, peu importe lequel. Dans notre exemple, son id est 45CD8C1B17.

L'onglet qui doit être masqué ou montré conditionnellement a pour id Y38I0NOD08.

Dans cet exemple, l'onglet est masqué ou affiché en fonction d'une valeur de rayon.

Les valeurs surlignées en jaune doivent être adaptées avec les id notés depuis le paramétrage d'écran.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Linq;

namespace SigStock
{
	public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
	{

		public void FormLoadCustomize(System.Windows.Forms.Form form)
		{
			MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm) form;
			MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox)sigForm.MovableControls["45CD8C1B17"];
			textBox.AfterRead += textBox_AfterRead;
		}

		public void FormClosedCustomize(System.Windows.Forms.Form form)
		{
			MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm) form;
			MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox)sigForm.MovableControls["45CD8C1B17"];
			textBox.AfterRead -= textBox_AfterRead;
		}

		void textBox_AfterRead(object sender, EventArgs e) 
		{
			MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox) sender;
			MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm) textBox.Form;
			
			MercatorUi.Forms.Sig.SigClasses.SigTabItem tabItem = (MercatorUi.Forms.Sig.SigClasses.SigTabItem)sigForm.TabStrip.Tabs["tabItem_Y38I0NOD08"];
			tabItem.Visible = sigForm.DataSourceRow["s_id_rayon"].ToString() != "...";
		}
	}
}