Carga de datos
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Hola, a ver si alguien me puede orientar. La función de mas abajo la uso para buscar un producto y obtener los datos del mismo para cargar en los pedidos, remitos o facturas los distintos productos . Funciona bien
Pero cuando llamo de nuevo el pedido y quiero añadir otro producto me aparece el listbox vacío
Aquí me carga bien el formulario pero si quiero agregar un producto el listbox con los mismos me aparece vacío.
No pude encontrar el porque de este comportamiento.
Gracias
- Code: Select all Expand view
////
Case nCol == 1
bValid:= {|| iif(bprodu(ubuffer,oNsto), .T. , (Alert( "Codigo Articulo Inexistente :-("),.F.)) }
If lContinue:= oBrw:lEditCol( nColReal, @uBuffer, "@ZE 9999", bValid,,CLR_YELLOW)
aPedido:aDet[nAt,1]:= oNsto:codigo
aPedido:aDet[nAt,2]:= oNsto:producto
aPedido:aDet[nAt,8]:= oNsto:abrevia
aPedido:aDet[nAt,12] := oNsto:alpeso
aPedido:aDet[nAt,6]:= oNsto:abrevia
EndIf
///etc
FUNCTION BPRODU(ncod,odbf)
local lacepto := .F.
local olbm, odlg
local nbut
odbf:setorder(2) //ordeno por nombre
odbf:gotop()
if empty(ncod)
DEFINE ICON surge resource "icoprog"
DEFINE DIALOG oDlg resource "lisbus_1" ICON surge
odlg:cCaption:= "Productos"
REDEFINE LISTBOX olbm FIELDS (oDbf:calias) ->producto ID 101;
ON DBLCLICK (lacepto:= .t.,odlg:end()) of odlg
olbm:setfocus()
olbm:bSkip := { | nRecs | oDbf:Skipper( nRecs ) }
oLbm:bSeek := {|lRet| oLbm:DbfSeek(.T.) }
oLbm:bkeydown := {|nkey,nflags| iif(nKey = VK_RETURN, nBut:setfocus(),.f.)}
olbm:nClrBackFocus := CLR_CYAN
olbm:nClrForeFocus := CLR_WHITE
REDEFINE BUTTON NBUT ID 102 ACTION (lacepto := .t.,odlg:end())
REDEFINE BUTTON ID 103 ACTION( clientes( olbm, .t.,odbf),olbm:refresh())
ACTIVATE DIALOG ODLG
ELSE
odbf:setorder(1)
odbf:seek(ncod)
if odbf:found()
lacepto := .t.
endif
ENDIF
if lacepto
RETURN .t.
endif
return .f.
Pero cuando llamo de nuevo el pedido y quiero añadir otro producto me aparece el listbox vacío
- Code: Select all Expand view
if !lnuevo // si es un pedido existente cargo en el formulario todos los datos
///
eval(beval)
oPmemo:seek(oPinterno:pedido)
if oPmemo:found()
aPedido:observa := oPmemo:observa
endif
aPedido:totales := aPedido:totpes
busnap(oMae,oPinterno:ncli)
aPedido:ncli := oMae:ncli
aPedido:nape := oMae:nape
aPedido:domi := oMae:domi
aPedido:vendedor := oPinterno:vendedor
if oPinterno:estado = "A"
cEstado := "Autorizado"
elseif oPinterno:estado = "R"
cEstado := "Remito " + oPinterno:remito
endif
oDpedido:seek(oPinterno:pedido)
if oDpedido:found()
do /
aadd(aPedido:aDet,{oDpedido:codigo,[size=150]eval(bprodu)[/size], oDpedido:unidad,oDpedido:cantidad,oDpedido:precio,oDpedido:envase,oDpedido:comision,oNsto:abrevia,oDpedido:recno(),.t.,.t.,oNsto:alpeso,0,0,0})
oDpedido:skip()
until oDpedido:pedido # oPinterno:pedido
Aquí me carga bien el formulario pero si quiero agregar un producto el listbox con los mismos me aparece vacío.
No pude encontrar el porque de este comportamiento.
Gracias