Gente:
Estoy migrando de dbf a sql y hasta ahora voy avanzando pero ahora tengo que mostrar el stock de art铆culos, mi tabla de art铆culos esta dise帽ada
asi:
[img]http://s2.subirimagenes.com/otros/previo/thump_9890276select-de-articulo.jpg" alt="" loading="lazy">
[/img]
la tabla detguiat es una tabla transaccional que contiene los movimientos y esta relacionada con la tabla art铆culos para mostrar el stock:
y estas son las definiciones de las funciones que invoco en la definici贸n del xbrowse
La pregunta del TRILLON como hacer esto mismo con sentencias sql? que me recomiendan usar VISTAS? No he usado vistas, tendr谩n un ejemplo
Estoy migrando de dbf a sql y hasta ahora voy avanzando pero ahora tengo que mostrar el stock de art铆culos, mi tabla de art铆culos esta dise帽ada
asi:
[/img]
la tabla detguiat es una tabla transaccional que contiene los movimientos y esta relacionada con la tabla art铆culos para mostrar el stock:
聽 聽select detguiat
聽 聽SET RELATION TO detguiat->articu INTO articulo additive
聽 聽REDEFINE XBROWSE oBrwDet 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ; 聽 聽 聽 聽
聽 聽 聽 DATASOURCE detguiat 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 COLUMNS "articu", "Articulo->DesG","Articulo->UM","Articulo->Cap","Cantid" 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 聽 聽 ,"salant('articulo')+ingmes('articulo')-salmes('articulo')-cantid" ;
聽 聽 聽 聽 聽 聽 ,"PRECIO" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 FIELDSIZES 65,195,30,30,40,80,40 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 HEADERS "CODIGO" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 聽 聽 聽,"DESCRIPCI脫N" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽,"U.M." 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 聽 聽 聽,"CAP" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽,"CANT." 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽,"STOCK" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽,"PRECIO"y estas son las definiciones de las funciones que invoco en la definici贸n del xbrowse
聽 聽 FUNCTION INGANO(cAlias, nMes) // devuelve la suma todo los ingresos hasta el mes que le indique en el parametro
聽 聽 聽 MEMVAR mMes
聽 聽 聽 LOCAL nSuma := 0, i
聽 聽 聽 LOCAL cMes
聽 聽 聽 DEFAULT nMes 聽 := mMes
聽 聽 聽 nMes -= 1
聽 聽 聽 FOR i = 0 to nMes
聽 聽 聽 聽 聽 cMes := 'CONING'+STRZERO(i,2)
聽 聽 聽 聽 聽 nSuma += (cAlias)->&cMes
聽 聽 聽 NEXT
聽 聽 Return(nSuma)
/* --------------------------------------------------------- */
聽 聽 FUNCTION SALANO(cAlias, nMes) //devuelve la suma de todas las salidas hasta el mes que le indique en el parametro
聽 聽 聽 MEMVAR mMes
聽 聽 聽 LOCAL nSuma := 0, i
聽 聽 聽 LOCAL cMes
聽 聽 聽 DEFAULT nMes 聽 := mMes
聽 聽 聽 nMes -= 1
聽 聽 聽 FOR i = 0 to nMes
聽 聽 聽 聽 聽 cMes := 'CONSAL'+StrZero(i,2)
聽 聽 聽 聽 聽 nSuma += (cAlias)->&cMes
聽 聽 聽 NEXT
聽 聽 RETURN(nSuma)
/* --------------------------------------------------------- */
聽 聽 FUNCTION INGMES(cAlias, nMes) //devuelve los ingresos de un mes
聽 聽 聽 MEMVAR mMes
聽 聽 聽 LOCAL cMes, nIng
聽 聽 聽 DEFAULT nMes 聽 := mMes
聽 聽 聽 cMes := 'CONING'+ STRZERO(nMes,2)
聽 聽 聽 nIng := (cAlias)->&cMes
聽 聽 RETURN( nIng )
/* --------------------------------------------------------- */
聽 聽 FUNCTION SALMES(cAlias, nMes) //devuelve las salidas de un mes
聽 聽 聽MEMVAR mMes
聽 聽 聽LOCAL cMes, nSal 聽
聽 聽 聽DEFAULT nMes 聽 := mMes
聽 聽 聽cMes := 'CONSAL' + 聽STRZERO(nMes,2)
聽 聽 聽nSal := (cAlias)->&cMes
聽 聽RETURN( nSal )
/* --------------------------------------------------------- */
聽 聽 FUNCTION SALANT(cAlias, nMes) 聽//devuelve las salidas de un mes
聽 聽 聽 MEMVAR mMes
聽 聽 聽 LOCAL cMes, nIng, nSal
聽 聽 聽 DEFAULT nMes 聽 := mMes
聽 聽 聽 nIng :=INGANO(cAlias,nMes)
聽 聽 聽 nSal :=SALANO(cAlias,nMes)
聽 聽 RETURN ( nIng - nSal )La pregunta del TRILLON como hacer esto mismo con sentencias sql? que me recomiendan usar VISTAS? No he usado vistas, tendr谩n un ejemplo
cSql:="SELECT d.cod, a.descripcion, a.um, a.cap, d.cantid, [FUNCION DE USUARIO QUE CALCULE STOCK], a.precio from #ppru as d left join articulo as a on d.cod=a.cod "fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql