Llenar multiple combobox

csharp
Etiquetas: #<Tag:0x00007fb8ddb629f0>

#1

Hola Buen principio de semana a todos, mi duda es poder llenar combobox desde otro, tengo esto:
image
Es seguir lo mismo que tiene el bussines parner , en el combobox Pais, ya solo tengo que me salgan los paises que tengan un banco creado, en el segundo quise ejecutar una query para cuando se llene es:

string SqlCad3 = ("select odsc.BankCode,odsc.BankName from odsc inner join ocry on odsc.Countrycod = ocry.code WHERE odsc.CountryCod='" + ComboBox4.Value.ToString() + "'")


 

la cual me trae lo que tiene el combobox por defecto pero cuando presiono de nuevo el combobox no me trae por ejemplo los bancos de Grecia, es decir solo funciona la primera vez, entonces se que debería hacerse con eventos no?
muchas gracias por toda su ayuda como siempre.
saludos,


#2

Hol@ @Esteban_P:

Buen día para usted, cuando requieres esto se complete? Bueno las alternativas podrían ser:

  • Búsquedas formateadas que se vayan completando cada vez que el usuario haga click sobre ellas.
  • Búsquedas formateadas que actualice los campos cada vez que se cumpla una condición.
  • Transaction cuando se crea algo.
  • Transcation cuando se actualice algo.

Salud@s :raised_hand_with_fingers_splayed:t5:


#3

hola oscarezh, pienso que seria ,Búsquedas formateadas que se vayan completando cada vez que el usuario haga click sobre ellas.
ya que el primer combo hace cambios en el segundo y este segundo cambia varios combos y campos hacia abajo , como se podría hacer esta búsqueda formateada?


#4

Hol@ @Esteban_P:

Entonces vamos por parte:

  • Primero esto que quieres completar donde se encuentra o cuando lo realizan, es un pago de casualidad?
  • Segundo el primer campo por lo que leo ya lo tienes resuelto?
  • Tercero en la query, faltaría vincular esto con el bussines partner, sino al encontrar coincidencias en los banco te traerá todo y no solo lo del cliente.

Salud@s :raised_hand_with_fingers_splayed:t5:


#5

hola,

Primero, si vas al business partner, en payment run podras encontrar lo que estoy haciendo, pero lo que yo hago esto emulando eso en un form propio, entonces mas que nada como dices tu es para cuando realicen el pago.
segundo, el primer campo mas que nada le hice un distinct, entonces solo me trae dos países, que son los cuales poseen bancos en mi sap, asi que si estaría resuelto.
tercero,con respecto a la query al menos me trae el banco que tiene seleccionado, pero tienes razon debo agregar el bussines parner, pero mas que nada el form que creo, esta agregando, modificando y actualizando, sera un tipo diferente de proveedor por decirlo asi.
saludos


#6

Hola, ¿Quieres hacer esto en un form propio hecho desde Viusal Studio (AddOn)?
o por el contrario son campos agregados por el diseñador UI del Formulario.


#7

hola Gabriel, seria como addon, creado en visual studio, mas que nada como lo menciono arriba necesito que si el usuario cambia algo del combobox superios los campos ( combobox y campos) se modifique a la selección que se acaba de realizar.


#8

Vale, entonces es muy facil, en ese caso no es recomendable hacerlo por FS (Busquedas Formateadas), ya que la logica quedaria separada del AddOn (Al menos que adiciones las busquedas por DIAPI en el AddOn, pero seria mas complejo y poco coherente).

La solucion es hacer la programacion por eventos, si estas usando el Business One Studio Suite para VS, deberas ejecutar la Query de Bancos en el ComboBox Pais en el evento ComboSelectAfter()

Private Sub ComboBoxPais_ComboSelectAfter(sboObject As Object, pVal As SAPbouiCOM.SBOItemEventArg)
            
      string SqlCad3 = ("select odsc.BankCode,odsc.BankName from odsc inner join ocry on odsc.Countrycod = ocry.code WHERE odsc.CountryCod='" + ComboBoxPais.Value.ToString() + "'")
      ''' Ejecutar la Query por un DT o RS'
      ''' Llenar el ComboBox Pais con los Datos Obtenidos.'

        End Sub

Para Optimizar el proceso y puedes crear una propiedad (o Variable o UserDataSource) llamada PaisSeleccionado la cual registre el ultimo pais seleccionado (Al cargar los datos del form o seleccionar un pais) y que cada vez que se ejecute el ComboSelectAfter, verifique que el pais seleccionado es distinto al que estaba anteriormente y asi solo ejectutar la Query cuando sea necesario.

Saludos.


#9

Gracias Gabriel nuevamente me has ayudado mucho,
me sirvió perfecto tu ejemplo.
muchas gracias nuevamente, saludos


#10

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.