*<InterfaceDefined>
* Botón de llamada al producto CommandButton ("cmdProduc")
* cntCombo1 (combobox) Selector de precios
* txtNum1 (textbox) Muestra el precio seleccionado (Numérico)
*</InterfaceDefined>
*<DataDefined>
*!* Archivo de productos con cuatro o más campos para precios.
*!* De modo que en el mismo registro están todos los precios.
*</DataDefined>
*<Sample>
* Minibrow es mi buscador en tablas (formulario con grid y botones)
* Reemplazar por form de búsqueda propio
* Tabla de productos: "PRODUC" (reemplazar por lo que corresponda)
* Campos de precios: "PRECIOA","PRECIOB","PRECIOC","PRECIOD"
*!* Se podrían haber llamado PRECIO1, PRECIO2, etc.
*!* Para ese caso, modificar la generación de combobox
*
* El combobox se construye con tres columnas:
*!* 1 - Muestra para el ususario
*!* 2 - Contiene el precio TRANSFORM(talprecio,lcFormato)
*!* Esto se agrega porque se pueden .ColumnCount=2 con un ColumnWidths
*!* apropiado y mostrar el valor del precio en el combo
*!* 3 - Boundcolumn, "" y los campos de la tabla
*</Sample>
*<cmdProduc.Click>
* Nota: Minibrow, Produc, Precioa, PrecioB, PrecioC, PrecioD, son elementos de mi sistema.
* Reemplazar por lo que sea usual en el tuyo.
LOCAL lAceptar,nit,i
DO FORM Minibrow WITH "PRODUC",0 TO lAcepta
IF !lAcepta
RETURN
ENDIF
SELECT produc
* Generar el contenido del Combobox
thisform.AddProperty("TomarPrecio","")
nit=0
WITH this.Parent.cmbcombo1
.Clear
.BoundColumn=3
.ControlSource='thisform.TomarPrecio'
nit=nit+1
.addlistitem("(Seleccione Precio)",nit,1)
.addlistitem("",nit,2)
.addlistitem("",nit,3)
FOR i=65 TO 68 && Chr(65)="A"
lcValor="Precio"+chr(i)
nit=nit+1
.addListitem(lcValor,nit,1)
.addListitem(TRANSFORM(EVALUATE(lcValor),"999,999.99"),nit,2)
.addListitem(lcValor,nit,3)
NEXT
.requery
.refresh
ENDWITH
*</cmdProduc.Click>
*<cntCombo1.InteractiveChange>
LOCAL lcSelect,lcEvaluate
lcSelect=this.ListItem(this.listitemid,3)
IF !EMPTY(lcSelect)
lcEvaluate="PRODUC."+LcSelect
this.Parent.txtnum1.Value=EVALUATE(lcEvaluate)
ENDIF
*</cntCombo1.InteractiveChange>