Usuário com melhor resposta
Usando a posição de uma lista pela seleção de um combobox

Pergunta
-
Estou com seguinte Problema.
carrego um lista para dentro de 02 combobox que de acordo com a seleção carrega outros combobox porem gostaria de fazer esta filtragem pela posição do elemento na lista. o problema é que quando seleciono pelo evento_click acaba tendo um erro na hora de carregar os demais combobox se a seleção for feita pelos combo que contem a sigla.
exemplo:
private void cb_n_mat_SelectedIndexChanged(object sender, EventArgs e)
{
/*ANSI B16.11 TAMPAO*/
string id_n_mat = cb_n_mat.Text;
//("CC" == id_n_mat | "EF" == id_n_mat | "CF" == id_n_mat | "AB" == id_n_mat | "EC" == id_n_mat | "OE" == id_n_mat)
if ("PVC ASTM D1784 CL12454" == id_n_mat | "ASTM A182 GR F316L" == id_n_mat | "ASTM A182 GR F304L" == id_n_mat | "ASTM A105" == id_n_mat | "ASTM A182 GR F316" == id_n_mat | "ASTM A182 F55 UNS S32760" == id_n_mat)
{ Carregar_Tampao_ND_ANSI_B16_11(); }
//("EZ" == id_n_mat | "CY" == id_n_mat | "AK" == id_n_mat | "CX" == id_n_mat | "OI" == id_n_mat | "EY" == id_n_mat)
else if ("ASTM A403 GR WP316L" == id_n_mat | "ASTM A403 WP304" == id_n_mat | "ASTM A234 GR WPB" == id_n_mat | "ASTM A403 GR WP304L" == id_n_mat | "ASTM A815 UNS32760" == id_n_mat | "ASTM A403 GR WP316" == id_n_mat)
{ Carrega_Tampao_ND_ANSI_B16_9(); }
else if ("GE" == id_n_mat) Carrega_Tampao_ND_ANSI_B16_3();// CHAMA OUTRA LISTA COM VALORES DIFERENTES
else if ("KB" == id_n_mat)
{
IList<MaterialDGT> List_ND = new List<MaterialDGT>();
List_ND.Add(new MaterialDGT { ID_N_DIMEN = "AE", DESC_N_DIM_PT = "ASTM D2467", DESC_N_DIM_US = "ASTM D2467", DESC_N_DIM_SPN = "" });
cb_n_dim.DisplayMember = "DESC_N_DIM_PT";
cb_n_dim.DataSource = List_ND;
cb_id_n_dim.DisplayMember = "ID_N_DIMEN";
cb_id_n_dim.DataSource = List_ND;
IList<MaterialDGT> List_DIM = new Caps_Tampoes_Bujoes_BLL().Carrega_DIM_Tampao_AE(MAT);
cb_id_dim.DisplayMember = "ID_DIM";
cb_id_dim.DataSource = List_DIM;
cb_dim.DisplayMember = "DES_DIM_PT";
cb_dim.DataSource = List_DIM;
IList<MaterialDGT> List_SCH = new Caps_Tampoes_Bujoes_BLL().Carrega_SC_Bujao(MAT);
this.cb_id_sc.DisplayMember = "id_sc";
this.cb_id_sc.DataSource = List_SCH;
this.cb_sch.DisplayMember = "des_sch_pt";
this.cb_sch.DataSource = List_SCH;
IList<MaterialDGT> List_Ext = new List<MaterialDGT>();
List_Ext.Add(new MaterialDGT { ID_EXT = "L", DES_EXT_PT = "EXTREMIDADE ENCAIXE SOLDA F", DES_EXT_US = "SOCKET WELDING ENDS F", DES_EXT_SPN = "" });
List_Ext.Add(new MaterialDGT { ID_EXT = "S", DES_EXT_PT = "EXTREMIDADE ROSCADA NPT F", DES_EXT_US = "THREADED ENDS NPT F", DES_EXT_SPN = "" });
this.cb_id_ext.DisplayMember = "id_ext";
this.cb_id_ext.DataSource = List_Ext;
this.cb_ext.DisplayMember = "des_ext_pt";
this.cb_ext.DataSource = List_Ext;
IList<MaterialDGT> List_INS = new Caps_Tampoes_Bujoes_BLL().Carrega_INS_Bujao(MAT);
this.cb_id_ins.DisplayMember = "ID_INSP";
this.cb_id_ins.DataSource = List_INS;
this.cb_ins.DisplayMember = "des_ins_pt";
this.cb_ins.DataSource = List_INS;
}
} public IList<MaterialDGT> Carrega_NM_Tampao(MaterialDGT MAT)
{
List<MaterialDGT> list_NM = new List<MaterialDGT>();
list_NM.Add(new MaterialDGT { ID_N_MAT = "CC", DESC_N_MAT_PT = "ASTM A182 GR F304", DESC_N_MAT_US = "ASTM A182 GR F304", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "EF", DESC_N_MAT_PT = "ASTM A182 GR F316L", DESC_N_MAT_US = "ASTM A182 GR F316L", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "CF", DESC_N_MAT_PT = "ASTM A182 GR F304L", DESC_N_MAT_US = "ASTM A182 GR F304L", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "AB", DESC_N_MAT_PT = "ASTM A105", DESC_N_MAT_US = "ASTM A105", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "EC", DESC_N_MAT_PT = "ASTM A182 GR F316", DESC_N_MAT_US = "ASTM A182 GR F316", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "OE", DESC_N_MAT_PT = "ASTM A182 F55 UNS S32760", DESC_N_MAT_US = "ASTM A182 F55 UNS S32760", DESC_N_MAT_SPN = "" });
/*ANSI B16.9*/
list_NM.Add(new MaterialDGT { ID_N_MAT = "EZ", DESC_N_MAT_PT = "ASTM A403 GR WP316L", DESC_N_MAT_US = "ASTM A403 GR WP316L", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "CY", DESC_N_MAT_PT = "ASTM A403 WP304", DESC_N_MAT_US = "ASTM A403 WP304", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "AK", DESC_N_MAT_PT = "ASTM A234 GR WPB", DESC_N_MAT_US = "ASTM A234 GR WPB", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "CX", DESC_N_MAT_PT = "ASTM A403 GR WP304L", DESC_N_MAT_US = "ASTM A403 GR WP304L", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "OI", DESC_N_MAT_PT = "ASTM A815 UNS32760", DESC_N_MAT_US = "ASTM A815 UNS32760", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "EY", DESC_N_MAT_PT = "ASTM A403 GR WP316", DESC_N_MAT_US = "ASTM A403 GR WP316", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "GE", DESC_N_MAT_PT = "ASTM A197", DESC_N_MAT_US = "ASTM A197", DESC_N_MAT_SPN = "" });
list_NM.Add(new MaterialDGT { ID_N_MAT = "KB", DESC_N_MAT_PT = "PVC ASTM D1784 CL12454", DESC_N_MAT_US = "PVC ASTM D1784 CL12454", DESC_N_MAT_SPN = "" });
return list_NM;
}
Respostas
-
eu dessa forma e que achei mais facil e util
private void lookUpEdit3_MouseDown(object sender, MouseEventArgs e) { var codigo = Conexao.Conexao.Buscar_Codigo_Tabela("ID_VERSAOFRENTE", "VERSAO_FRENTE", "VERSAOFRENTE", lookUpEdit2.Text); if (!string.IsNullOrWhiteSpace(codigo)) { Conexao.Conexao.Carregar_Combobox(lookUpEdit3, $"SELECT ID_VERSAONUCLEO, VERSAONUCLEO FROM VERSAO_NUCLEO WHERE ATIVO = 'SIM' AND ID_VERSAOFRENTE = '{codigo}' ORDER BY VERSAONUCLEO ASC", "ID_VERSAONUCLEO", "VERSAONUCLEO"); } else { XtraMessageBox.Show("Selecione a versão do frente para poder selecionar a versão do núcleo.", "Click Soluções", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 12 de janeiro de 2017 19:16
Todas as Respostas
-
Boa tarde Robert,
Você poderia por gentileza postar a mensagem de erro?
Atenciosamente.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Boa tarde Robert,
Você poderia por gentileza postar a mensagem de erro?
Atenciosamente.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Boa tarde Robert,
Você poderia tentar estreitar ainda mais onde está o problema? O que está dando errado é que para as duas outras línguas não está retornando nada no campo descrição?
Obrigado.
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Bom dia Robson, o problema é o seguinte, observe a imagem que eu coloquei a cima,
de acordo com a seleção escolho uma SUBFAMILIA , que carrega o TIPO
então de acordo com a seleção do Campo TIPO ele carrega todos os demais campos, e monta um determinado tipo de material.
A ideia é montar diversos tipos diferente de material . porem tem um porem de acordo com a seleção da NORMA MATERIAL, Tem que carregar NORMAS DIMENSIONAL ,DIMENSÕES,SCH,EXTREMIDADES,INSPEÇÕES, especifica a norma material selecionada.
porque existe vários tipo de tubos exemplo: De PVC, Aço entre outro .
O problema ocorre quando começo a fazer a montagem deste material. estou fazendo ao filtragem do das condições "if" e "else if ". nos campos que tem a sigla. só que caso o usuário tente escolher o item na descrição acaba ocorrendo um atraso na hora de carregar o campo seguinte. e se fizer esta filtragem pelo campo de descrição terei que refazer todo o código para os outros dois idiomas já que algumas medida e especificação tem alguma diferença entre elas de acordo com o idioma. em relação ao outros idiomas. é simples, de acordo com o radiobutton selecionado, o campo descrição recebe a lista
- Editado Robert Sancts sexta-feira, 24 de junho de 2016 12:04
-
Bom dia,
Eu indicaria você usar case ao invés de IF e outra coisa porque você não carrega o combobox quando clicar em cima dele.
private void lookUpEdit1_MouseDown(object sender, MouseEventArgs e) { lookUpEdit1.Properties.DataSource = Util.Listar_Enum((typeof(Enum.Enum_Ramo_Atividade))); lookUpEdit1.Properties.DisplayMember = "Value"; lookUpEdit1.Properties.ValueMember = "Key"; }
segue um exemplo.
-
Bom dia,
Eu indicaria você usar case ao invés de IF e outra coisa porque você não carrega o combobox quando clicar em cima dele.
private void lookUpEdit1_MouseDown(object sender, MouseEventArgs e) { lookUpEdit1.Properties.DataSource = Util.Listar_Enum((typeof(Enum.Enum_Ramo_Atividade))); lookUpEdit1.Properties.DisplayMember = "Value"; lookUpEdit1.Properties.ValueMember = "Key"; }
segue um exemplo.
Bom dia, muito obrigado vou tentar e dou feedback.
Então sobre carrega pelo combobox ate carrega, porem o que acontece é um delay na hora de carregar.
Pq se fizer a condição no campo da descrição funciona certo porem este form apresenta mais dois idiomas,e terei que criar os mesmo código para os outros dois.
Então uso o campo de id que é um campo único independente do idioma. se você faz a escolha por esse campo também funciona certo, porem o usuário vai mesmos na descrição, e é ai onde ocorre o erro.
-
eu dessa forma e que achei mais facil e util
private void lookUpEdit3_MouseDown(object sender, MouseEventArgs e) { var codigo = Conexao.Conexao.Buscar_Codigo_Tabela("ID_VERSAOFRENTE", "VERSAO_FRENTE", "VERSAOFRENTE", lookUpEdit2.Text); if (!string.IsNullOrWhiteSpace(codigo)) { Conexao.Conexao.Carregar_Combobox(lookUpEdit3, $"SELECT ID_VERSAONUCLEO, VERSAONUCLEO FROM VERSAO_NUCLEO WHERE ATIVO = 'SIM' AND ID_VERSAOFRENTE = '{codigo}' ORDER BY VERSAONUCLEO ASC", "ID_VERSAONUCLEO", "VERSAONUCLEO"); } else { XtraMessageBox.Show("Selecione a versão do frente para poder selecionar a versão do núcleo.", "Click Soluções", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 12 de janeiro de 2017 19:16