by A&C » Thu Aug 24, 2006 7:41 pm
Antonio molestanto de nuevo,, no me funciona oControl:oJump....
pq sera.. mira el codigo fuente...
REDEFINE GET TgGet[19] VAR Det [01] ID 218 OF oDlg COLOR nRGB(0,0,128), nRGB(255,255,255) PICTURE "@!" VALID BusProd(TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)
Function BusProd (TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)
Do Case
Case vCbx2="TF"
//Scopes de Productos
oProducto:Setorder(1)
oProducto:Gotop()
oProducto:Seek(Det[01])
If oProducto:found()
Det[1]=oProducto:codprod
Det[2]=oProducto:descri
Else
Det[01]:=space(27)
Det[02]:=space(40)
VNominaP(oProducto,Det,TgGet,oPreprod)
Endif
//
If !empty(Det[1])
//Buscar Precio
oPreprod:Setorder(2)
oPreprod:Gotop()
oPreprod:Seek(PADR((Alltrim(Det[1])+Alltrim(PPD[1])),29))
If oPreprod:Found()
Det[4]=oPreprod:total
Det[8]=oPreprod:desc
Det[9]=oPreprod:total
Else
//Buscar Precio por Defecto
oPreprod:Setorder(2)
oPreprod:Gotop()
oPreprod:Seek(PADR((Alltrim(Det[1])+Alltrim(Defecto)),29))
If oPreprod:Found()
MsgInfo("No existe Precio de Referencia para Producto"+CHR(13)+"Se utilizaran el precio de Defecto del sistema")
Det[4]=oPreprod:total
Det[8]=oPreprod:desc
Det[9]=oPreprod:total
Else
MsgInfo("No existe Precio de Referencia para Producto")
Det[01]:=space(27)
Det[02]:=space(40)
Det[03]=0
Det[04]=0
Det[05]=0
Det[06]=0
Det[07]=0
Det[08]=0
Det[09]=0
Endif
Endif
Else
Det[01]:=space(27)
Det[02]:=space(40)
Det[03]=0
Det[04]=0
Det[05]=0
Det[06]=0
Det[07]=0
Det[08]=0
Det[09]=0
Endif
//
For x=19 to 24
TgGet[x]:Refresh()
Next x
TgGet[19]:oJump=TgGet[21]
Otherwise
Endcase
Return .T.
Function VNominaP(oProducto,Det,TgGet,oPreprod)
Local oDlg
Local oFont
Local oSay
Local oCbx
Local vCombox
Local oGet
Local vGet
Local oBtn1,oBtn2
Local oTbr
Local oBp
Local oBmp
//
oProducto:Setorder(4)
oProducto:Gotop()
//
DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-12
DEFINE DIALOG oDlg RESOURCE 22 FONT oFont
REDEFINE BITMAP oBmp ID 600 OF oDlg FILENAME "bmp\cemento.bmp" TRANSPAREN
REDEFINE BITMAP oBmp ID 601 OF oDlg FILENAME "bmp\osb.bmp" TRANSPAREN
REDEFINE BITMAP oBmp ID 602 OF oDlg FILENAME "bmp\pizarre.bmp" TRANSPAREN
REDEFINE SAY oSay ID 100 OF oDlg COLOR nRGB(0,0,128)
REDEFINE COMBOBOX oCbx VAR vCombox ITEMS {oemtoansi("Por C¢digo"),"Por Grupo",oemtoansi("Por Descripci¢n")} ID 300 OF oDlg ON CHANGE VCboP(oProducto,vCombox,oTbr)
REDEFINE GET oGet VAR vGet ID 200 OF oDlg COLOR nRGB(0,0,128),nRGB(255,255,255) PICTURE "@!"
REDEFINE BTNBMP oBtn ID 50 OF oDlg FILENAME "bmp\Buscar.bmp" ACTION SSBBrowse(oProducto,oTbr,vGet),Refresco(oTbr,oProducto),vGet:=Space(40),oGet:Refresh()
REDEFINE BROWSE oBp ID 501 OF oDlg FONT oFont
ADD COLUMN TO BROWSE oBp DATA oPreprod:Descri;
HEADER "Tipo"+CHR(13)+"Cliente";
SIZE 100;
PICTURE "@";
ALIGN DT_LEFT,DT_CENTER;
3DLOOK TRUE
ADD COLUMN TO BROWSE oBp DATA oPreprod:Sigla;
HEADER "T"+CHR(13)+"C";
SIZE 20;
PICTURE "@";
ALIGN DT_LEFT,DT_CENTER;
3DLOOK TRUE
ADD COLUMN TO BROWSE oBp DATA oPreprod:Neto;
HEADER "Precio"+CHR(13)+"Neto";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE
ADD COLUMN TO BROWSE oBp DATA oPreprod:iva;
HEADER "IVA";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE
ADD COLUMN TO BROWSE oBp DATA oPreprod:Total;
HEADER "TOTAL";
SIZE 70;
PICTURE "9,999,999";
ALIGN DT_RIGHT,DT_CENTER;
3DLOOK TRUE
oBp:Setcolor({2,15},{;
nRGB(220,255,220),; //Fondo Linea
nRGB(255,200,255) ; //Lineas del Grid
})
oBp:SetOdbf(oPreprod)
oBp:lNoHScroll := .T. //Conecta la barra scroll horizontal
oBp:nFreeze:=1
REDEFINE BROWSE oTbr ID 500 OF oDlg FONT oFont;
ON CHANGE (MMDatos(oProducto,oFont,oTbr,oBp,oPreprod))
ADD COLUMN TO BROWSE oTbr DATA oProducto:Codprod;
HEADER oemtoansi("C¢digo");
SIZE 150;
PICTURE "@!";
ALIGN DT_LEFT;
3DLOOK TRUE
ADD COLUMN TO BROWSE oTbr DATA oProducto:codi_fami;
HEADER "Grupos"+CHR(13)+"T/F";
SIZE 50 ;
PICTURE "999";
ALIGN DT_LEFT;
3DLOOK TRUE
ADD COLUMN TO BROWSE oTbr DATA oProducto:Descri;
HEADER oemtoansi("Descripci¢n");
SIZE 300 ;
PICTURE "@!";
ALIGN DT_LEFT;
3DLOOK TRUE
ADD COLUMN TO BROWSE oTbr DATA oProducto:Stock;
HEADER "Stock Producto";
SIZE 100 ;
COLOR nRGB(0,0,255);
PICTURE "9,999,999.99";
ALIGN DT_RIGHT;
3DLOOK TRUE
oTbr:Setcolor({2,15},{;
nRGB(255,255,220),; //Fondo Linea
nRGB(255,200,255) ; //Lineas del Grid
})
oTbr:Setcolor({1},{;
{|| If(oProducto:Stock>=0,nRGB(0,0,255),nRGB(255,0,0))} ; //Texto Linea
},4)
oTbr:SetOdbf(oProducto)
oTbr:nFreeze :=1
oTbr:lNoHScroll := .F. //Conecta la barra scroll horizontal
oTbr:bkeydown := { |nKey|VKP(oProducto,oTbr,nKey,Det,TgGet,oDlg)}
oTbr:bLDblClicked := { || VKDbP(oProducto,oTbr,Det,TgGet,oDlg)}
REDEFINE SBUTTON oBtn1 ID 400 OF oDlg ACTION VKDbP(oProducto,oTbr,Det,TgGet,oDlg)
REDEFINE SBUTTON oBtn2 ID 401 OF oDlg ACTION oDlg:End()
oCbx:LostFocus()
vCombox:=oemtoansi("Por Descripci¢n")
ACTIVATE DIALOG oDlg ON PAINT oTbr:Setfocus()
Return
EL PROBLEMA LO TENGO CUANDO INGRESO UN CODIGO DE PRODUCTO ATRAVEZ DE TGGET[19] VAR DET[1],, Y EL PRODUCTO NO SE ENCUENTRA,, AHI ES DONDE SE ABRE LA FUNCTION VNOMINAP,, PARA SELECCIONAR UNO DE LA LISTA,,, AL SELECCIONAR CUALQUIERA O APRETAR EL ESC... CUANDO SE SALE DE LA FUNCTION VNOMINAP,,, EL FOCO NO QUE EN EL TGGET[19], SE VA A OTRO OBJETO
PORFA ILUMINAME,,,
GRACIAS
ahhh.. y referente a como pasa las variables las paso igual que en este codigo fuente las defino entre parentesis con en busprod... o esta mal hacerlo asi...,, del la duda que tenia sabes que si uso matrices me se actualiza su valor pero si son variables locales no,, QUE RARO
Function BusProd (TgGet,Det,oProducto,oProduct1,oPreprod,oPrepro1,vCbx2,PPD,TPD,Defecto)