Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

User function LOCXCONCEP()
Local cArea := GetArea()
Local cCodProd := PARAMIXB[1] // Item+Código del producto.
Local cItem := PARAMIXB[2] // Número del Item.
Local aDetFac := {"","","","","",""} // Arreglo que contiene la información del producto.
Local nRecSD2 := 0

/*
aDetFac[1] := ClaveProdSer
aDetFac[2] := No. Identificación
aDetFac[3] := Cantidad
aDetFac[4] := ClaveUnidad *Si es nulo omitir el atributo Unidad
aDetFac[5] := Unidad
aDetFac[6] := Descripcion
*/

//Realizar tratamiento conforme tamaño del campo DXD2_ITEM
cItem := SubStr(cCodProd,1,2)
cCod := SubStr(cCodProd,3)

...

RestArea(cArea)
Return aDetFac


Ejemplo 4: Búsqueda en tabla SD1 

#include 'protheus.ch'

User function LOCXCONCEP()
Local cArea := GetArea()
Local cCodProd := PARAMIXB[1] // Item+Código del producto.
Local cItem := PARAMIXB[2] // Número del Item.
Local aDetFac := {"","","","","",""} // Arreglo que contiene la información del producto.
Local nRecSD2 := 0

/*
aDetFac[1] := ClaveProdSer
aDetFac[2] := No. Identificación
aDetFac[3] := Cantidad
aDetFac[4] := ClaveUnidad *Si es nulo omitir el atributo Unidad
aDetFac[5] := Unidad
aDetFac[6] := Descripcion
*/

//Realizar tratamiento conforme tamaño del campo D1_ITEM
cItem := SubStr(cCodProd,1,4)
cCod := SubStr(cCodProd,5)

BeginSQL Alias "SD1TMP"
SELECT D1_ITEM,D1_DESCRI
FROM %Table:SD1% SD1
WHERE SD1.D1_FILIAL = %xFilial:SD1%
AND SD1.D1_SERIE = %Exp:SF1->F1_SERIE%
AND SD1.D1_DOC = %Exp:SF1->F1_DOC%
AND SD1.D1_FORNECE = %Exp:SF1->F1_FORNECE%
AND SD1.D1_LOJA = %Exp:SF1->F1_LOJA%
AND SD1.D1_TIPO = %Exp:SF1->F1_TIPO%
AND SD1.%NotDel%
EndSQL

DbSelectArea("SD1TMP")
While !SD1TMP ->(Eof())
if AllTrim(SD1TMP -> D1_ITEM) == AllTrim(cItem)
aDetFac[6] := AllTrim(SD1TMP -> D1_DESCRI)
EndIf
SD1TMP -> (dbskip())
EndDo

SD1TMP ->(dbCloseArea())

RestArea(cArea)

Return aDetFac

NOTA: Cabe mencionar que al momento de la ejecución del punto de entrada, se puede posicionar en algunas tablas como de Clientes (SA1) , Productos(SB1), Items de factura(SD2|SD1), por lo que se podrán utilizar campos que ya existen de estas tablas  o campos nuevos que sean agregados y definir la regla para el armado del los atributos del nodo Conceptos.

Para la tabla de Items de factura(SD2|SD1) ,se recomienda apegarse al ejemplo descrito y usar la instrucción BeginSql para sql embebido , ya que las instrucciones como DbSetOrder y DbSeek causan conflicto por el uso de un archivo temporal.

...