Histórico da Página
#Include "Protheus.ch"
User Function AT890CMP()
Local aDados := PARAMIXB[1]
Local aCabec := PARAMIXB[2]
Local cTbl := PARAMIXB[3]
Local nX := 0
Local nY := 0
Local aCabecPe := {}
Local aAreaSB1 := {}
DbSelectArea("SB1")
aAreaSB1 := SB1->(GetArea())
SB1->(DbSetOrder(1))
If cTbl == "TFG"
aCabecPe := {"Tipo","Unidade"}
For nY := 1 to Len(aCabecPe)
aAdd(aCabec, aCabecPe[nY] )
For nX := 1 to Len(aDados)
If SB1->(DbSeek(xFilial("SB1")+aDados[nX,2]))
If aCabecPe[nY] == "Tipo"
aAdd(aDados[nX],SB1->B1_TIPO)
ElseIf aCabecPe[nY] == "Unidade"
aAdd(aDados[nX],SB1->B1_UM)
Endif
Else
aAdd(aDados[nX],"")
Endif
Next nX
Next nY
ElseIf cTbl == "TFH"
aCabecPe := {"Tipo","Unidade"}
For nY := 1 to Len(aCabecPe)
aAdd(aCabec, aCabecPe[nY] )
For nX := 1 to Len(aDados)
If SB1->(DbSeek(xFilial("SB1")+aDados[nX,2]))
If aCabecPe[nY] == "Tipo"
aAdd(aDados[nX],SB1->B1_TIPO)
ElseIf aCabecPe[nY] == "Unidade"
aAdd(aDados[nX],SB1->B1_UM)
Endif
Else
aAdd(aDados[nX],"")
Endif
Next nX
Next nY
Endif
RestArea(aAreaSB1)
aRetArray := {aDados,aCabec}
Return aRetArray
01. DADOS GERAIS
Produto: |
| ||||
---|---|---|---|---|---|
Linha de Produto: |
| ||||
Segmento: |
| ||||
Módulo: | Terceirização (SIGATEC) | ||||
Função: | teca890.prw | ||||
País: | Brasil | ||||
Ticket: | Não há | ||||
Requisito/Story/Issue (informe o requisito relacionado) : | DSERSGS-13911 |
02. SITUAÇÃO/REQUISITO
É necessário incluir mais colunas nas consultas dos campos de apontamento de materiais TFT_CODTFH e TFS_CODTFG.
03. SOLUÇÃO
Ponto de Entrada
Descrição: | Microsiga Protheus® | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Localização: | Serviços | |||||||||||||
Programa Fonte: | TECA890.PRW | |||||||||||||
Função: | AT890CMP | |||||||||||||
Parâmetros |
| |||||||||||||
Retorno | aRetArray | Retorno | aHoras |
1 | #Include "Protheus.ch" User Function AT890CMP() Local aDados := PARAMIXB[1] Local aCabec := PARAMIXB[2] Local cTbl := PARAMIXB[3] Local nX := 0 Local nY := 0 Local aCabecPe := {} Local aAreaSB1 := {} DbSelectArea("SB1") aAreaSB1 := SB1->(GetArea()) SB1->(DbSetOrder(1)) If cTbl == "TFG" aCabecPe := {"Tipo","Unidade"} For nY := 1 to Len(aCabecPe) aAdd(aCabec, aCabecPe[nY] ) For nX := 1 to Len(aDados) If SB1->(DbSeek(xFilial("SB1")+aDados[nX,2])) If aCabecPe[nY] == "Tipo" aAdd(aDados[nX],SB1->B1_TIPO) ElseIf aCabecPe[nY] == "Unidade" aAdd(aDados[nX],SB1->B1_UM) Endif Else aAdd(aDados[nX],"") Endif Next nX Next nY ElseIf cTbl == "TFH" aCabecPe := {"Tipo","Unidade"} For nY := 1 to Len(aCabecPe) aAdd(aCabec, aCabecPe[nY] ) For nX := 1 to Len(aDados) If SB1->(DbSeek(xFilial("SB1")+aDados[nX,2])) If aCabecPe[nY] == "Tipo" aAdd(aDados[nX],SB1->B1_TIPO) ElseIf aCabecPe[nY] == "Unidade" aAdd(aDados[nX],SB1->B1_UM) Endif Else aAdd(aDados[nX],"") Endif Next nX Next nY Endif RestArea(aAreaSB1) aRetArray := {aDados,aCabec} Return aRetArray |
Obs: O retorno sempre deverá ser um array com duas posições , sendo elas a primeira o horário de início e a segunda o horário de fim. O array do calendário é passado por parâmetro, ela é gerada apartir do criacalend.conforme o exemplo,
04. DEMAIS INFORMAÇÕES
...
Não há
05. ASSUNTOS RELACIONADOS
...