Forum
See question

Botão desbloquear editorvendas.   

61 views
1
0

Existe alguma forma de saber se o utilizador clicou no botão ‘Desbloquear’ no editor de vendas? Ou saber se o documento a vizualizar encontra-se desbloqueado?

Faça login para poder traduzir
General
Integration
V10
Marked as spam
Created 1 year and 11 months ago mateussantos
m
mateussantos Responsiveness Member
2 answers
0
Private answer

Existe forma de saber se o botão "Desbloquear" foi clicado.
Primeiro passo será obter a referência do Bar Manager que contém os botões de menu.
Segundo passo será registar e criar o evento de clique sobre um item do Bar Manager
Estes dois processos podem ser efetuados no evento TipoDocumentoIdentificado.

Abaixo código utilizado:

public override void TipoDocumentoIdentificado(string Tipo, ref bool Cancel, ExtensibilityEventArgs e)
{
base.TipoDocumentoIdentificado(Tipo, ref Cancel, e);

try
{
//Obtem a referencia do barmanager e cria o evento de clique
DevExpress.XtraBars.BarManager barManager = GetBarManager();
barManager.ItemClick += new ItemClickEventHandler(barManager_ItemClick);

}
catch (Exception ex)
{
Services.Utilities.MostraErro(PSO, ex);
}
}

 

/// <summary>
/// Trata o clique nos itens do barmanager
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void barManager_ItemClick(object sender, ItemClickEventArgs e)
{
try
{
if (e.Item.Name == "mnuDesbloquear")
PSO.MensagensDialogos.MostraAviso("O botão "Desbloquear" foi clicado.");
}
catch (Exception)
{
throw;
}
}

/// <summary>
/// Obtem o barmanager que contém os itens de menu
/// </summary>
/// <returns></returns>
private DevExpress.XtraBars.BarManager GetBarManager()
{
try
{
DevExpress.XtraBars.BarManager result = null;
FormCollection formCol = Application.OpenForms;
foreach (System.Windows.Forms.Form item in formCol)
{
string fn = item.Name;
string t = "";

if (fn == "frmDocVendas")
{
Control[] controls = item.Controls.Find("CmbRelatorio", true);
if (controls.Count() > 0)
{
cmbMapaImpressao = (ComboBox)controls[0];
cmbMapaImpressao.SelectedIndexChanged += CmbMapaImpressao_SelectedIndexChanged;
}

foreach (Control itemC in item.Controls)
{
if (itemC.GetType().Equals(typeof(DevExpress.XtraBars.BarDockControl)) && itemC.Controls.Count == 1)
{
//Encontrou ocontrolo que contém o menu do formulario de vendas
foreach (var itemD in itemC.Controls)
{
if (itemD.GetType().Equals(typeof(DevExpress.XtraBars.Controls.DockedBarControl)))
{
DevExpress.XtraBars.Controls.DockedBarControl dbControl = (DevExpress.XtraBars.Controls.DockedBarControl)itemD;
return dbControl.Bar.Manager;
}
}
}
}
}
}
return result;
}
catch (Exception)
{
throw;
}
}

Faça login para poder traduzir
Marked as spam
Created 1 year and 10 months ago vitorhugosilva
vitorhugosilva Responsiveness Member
    Comments
    Ola @vitorhugosilva,onde conseguiste obter o método "GetBarManager();"?
    1 year and 3 months ago
    danyrocha
      Olá, Fui eu que o criei depois de alguma investigação e experimentação.
      1 year and 3 months ago
      vitorhugosilva
        Como é que conseguiste obter a referência do Bar Manager. Poderias por favor partilhar aqui o método "GetBarManager()"?
        1 year and 3 months ago
        danyrocha
          Bom dia, Todo o código está partilhado neste post. Inclusive o método GetBarManager() /// /// Obtem o barmanager que contém os itens de menu /// /// private DevExpress.XtraBars.BarManager GetBarManager() { try { DevExpress.XtraBars.BarManager result = null; FormCollection formCol = Application.OpenForms; foreach (System.Windows.Forms.Form item in formCol) { string fn = item.Name; string t = ""; if (fn == "frmDocVendas") { Control[] controls = item.Controls.Find("CmbRelatorio", true); if (controls.Count() > 0) { cmbMapaImpressao = (ComboBox)controls[0]; cmbMapaImpressao.SelectedIndexChanged += CmbMapaImpressao_SelectedIndexChanged; } foreach (Control itemC in item.Controls) { if (itemC.GetType().Equals(typeof(DevExpress.XtraBars.BarDockControl)) && itemC.Controls.Count == 1) { //Encontrou ocontrolo que contém o menu do formulario de vendas foreach (var itemD in itemC.Controls) { if (itemD.GetType().Equals(typeof(DevExpress.XtraBars.Controls.DockedBarControl))) { DevExpress.XtraBars.Controls.DockedBarControl dbControl = (DevExpress.XtraBars.Controls.DockedBarControl)itemD; return dbControl.Bar.Manager; } } } } } } return result; } catch (Exception) { throw; } }
          1 year and 3 months ago
          vitorhugosilva
            1
            Private answer

            Infelizmente não existe essa opção.

            Faça login para poder traduzir
            Marked as spam
            Created 1 year and 10 months ago brunogomes
            brunogomes Responsiveness Member