#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
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 |
Descreva a situação/requisito.
Descrição: | Microsiga Protheus® | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Localização: | Serviços | |||||||||
Programa Fonte: | TECA890.PRW | |||||||||
Função: | AT890CMP | |||||||||
Parâmetros |
| |||||||||
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.
Outras ações/ações relacionadas