Histórico da Página
Descrição | Localizado na rotina de Fechamento de Os Modelo 2 (OFIXA100), este ponto de entrada é utilizado para a impressão do formulário de pré-fechamento. |
---|
Observações
Exemplos | // ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍ» |
---|
/*/ |
---|
³ PREFECT2 º Autor ³ Microsiga |
---|
º Data ³ |
---|
25/10/11 º±± |
---|
±±º ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/User Function
º±± |
---|
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Declaracao de Variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := "Pré-Fechamento"
Local cPict := ""
Local titulo := "Pré-Fechamento"
Local nLin := 80
Local Cabec1 := ""
Local Cabec2 := ""
Local imprime := .T.
Local aOrd := {}
Private lEnd := .F.
Private lAbortPrint := .F.
Private limite := 80
Private tamanho := "P"
Private nomeprog := "PREFECT2" // Coloque aqui o nome do programa para impressao no cabecalho
Private nTipo := 18
Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
Private nLastKey := 0
Private cbtxt := Space(10)
Private cbcont := 00
Private CONTFL := 01
Private m_pag := 01
Private wnrel := "PREFECT2" // Coloque aqui o nome do arquivo usado para impressao em disco
Private cString := "VOO"
dbSelectArea("VOO")
dbSetOrder(1)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Monta a interface padrao com o usuario... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
wnrel := SetPrint(cString,NomeProg,"",@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.F.,Tamanho,,.F.)
If nLastKey == 27
Return
Endif
SetDefault(aReturn,cString)
If nLastKey == 27
Return
Endif
nTipo := If(aReturn4==1,15,18)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processamento. RPTSTATUS monta janela com a regua de processamento. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RptStatus({|| RunReport(Cabec1,Cabec2,Titulo,nLin,aOS) },Titulo)
Return
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºFun‡„o ³RUNREPORT º Autor ³ AP6 IDE º Data ³ 10/07/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescri‡„o ³ Funcao auxiliar chamada pela RPTSTATUS. A funcao RPTSTATUS º±±
±±º ³ monta a janela com a regua de processamento. º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Programa principal º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function RunReport(Cabec1,Cabec2,Titulo,nLin,aOS)
Local nCntFor
Local nCntFor2
Local aValPec
Local aValSer
Local cCliCod
Local cCliLoj
Local cCGC
Local dDataDis
Local aTotaliz := {}
SetRegua(Len(aOS))
For nCntFor := 1 to Len(aOS)
aTotaliz := {}
Aadd( aTotaliz , { 0 , 0 } ) // 1 - Totaliza Servicos
Aadd( aTotaliz , { 0 , 0 } ) // 2 - Totaliza Pecas
Aadd( aTotaliz , { 0 , 0 } ) // 3 - Totaliza OS e Descontos
aValPec := FMX_CALPEC( aOSnCntFor,01, aOSnCntFor,02, , , .f., .t., .f., .f., .t., .f., .f. )
aValSer := FMX_CALSER( aOSnCntFor,01, aOSnCntFor,02, , , .f., .t., .f., .t., .f., .f. )
If Len(aValPec) == 0 .and. Len(aValSer) == 0
Loop
EndIf
If Len(aValPec) <> 0
cCliCod := aValPec1,15
cCliLoj := aValPec1,16
dDataDis := aValPec1,17
Else
cCliCod := aValSer1,20
cCliLoj := aValSer1,21
dDataDis := aValSer1,22
EndIf
VO1->(dbSetOrder(1))
VO1->(MsSeek(xFilial("VO1") + aOSnCntFor,01 ))
SA1->(dbSetOrder(1))
SA1->(MsSeek(xFilial("SA1") + cCliCod + cCliLoj ))
VAI->(dbSetOrder(1))
VAI->(MsSeek(xFilial("VAI") + VO1->VO1_FUNABE ))
VV1->(dbSetOrder(1))
VV1->(dbSeek(xFilial("VV1") + VO1->VO1_CHAINT ))
VE1->(dbSetOrder(1))
VE1->(dbSeek(xFilial("VE1") + VV1->VV1_CODMAR ))
VV2->(dbSetOrder(1))
VV2->(dbSeek(xFilial("VV2") + VV1->VV1_CODMAR + VV1->VV1_MODVEI ))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica o cancelamento pelo usuario... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If lAbortPrint
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Exit
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Impressao do cabecalho do relatorio. . . ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If nLin > 55 // Salto de Página. Neste caso o formulario tem 55 linhas...
Cabec1 := "Ordem de Serviço: " + AllTrim(VO1->VO1_NUMOSV) + " - Emissão: " + DtoC(VO1->VO1_DATABE) + " - Liberação : "+DtoC(dDataDis)
Cabec2 := "Consultor: " + AllTrim(VO1->VO1_FUNABE) + " " + AllTrim(VAI->VAI_NOMTEC)
Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
nLin := 8
cCGC := TRANSFORM(SA1->A1_CGC,PicPes(SA1->A1_PESSOA))
@ ++nLin,00 PSAY "Cliente.: " + PadR(SA1->A1_COD + "" + SA1>A1_LOJA +" "+SA1->A1_NOME,38) + "| Placa..: " + TRANSFORM(VV1->VV1_PLAVEI,"@R XXX-9999")
@ ++nLin,00 PSAY "Endereco: " + PadR(SA1->A1_END,38) + "| Modelo.: " + PadR(VV2->VV2_DESMOD,17)
@ ++nLin,00 PSAY "Bairro..: " + PadR(SA1->A1_BAIRRO,38) + "| Marca..: " + PadR(VE1->VE1_DESMAR,17)
@ ++nLin,00 PSAY "Cidade..: " + PadR(SA1->A1_MUN,38) + "| Chassi.: " + PadR(ALLTRIM(VV1->VV1_CHASSI),17)
@ ++nLin,00 PSAY "Telefone: " + PadR(SA1->A1_TEL,38) + "| Ano....: " + TRANSFORM(VV1->VV1_FABMOD,"@R 9999/9999")
@ ++nLin,00 PSAY "CNPJ/CPF: " + PadR(cCGC,38) + "| Odomet.: " + TRANSFORM(VO1->VO1_KILOME,"@E 999,999,999")
@ ++nLin,00 PSAY "Insc....: " + PadR(SA1->A1_INSCR,38) + "| Frota..: " + PadR(VV1->VV1_CODFRO,15)
@ ++nLin,00 PSAY "Contato.: " + PadR(SA1->A1_CONTATO,38) + "| Motoris: " + PadR(VO1->VO1_CODMOT,15)
@ ++nLin,00 PSAY PadC(" Venda Zero ",80,"-")
@ ++nLin,00 PSAY "Revend..: " + PadR(VV1->VV1_CODCON,38) + "| Data...: " + TRANSFORM(VV1->VV1_DATVEN,"@D")
@ ++nLin,00 PSAY Replicate("-",80)
nLin++
@ ++nLin,00 PSAY PadC("OS Preventiva ( ) OS Corretiva ( )",80)
nLin++
Endif
If Len(aValSer) <> 0
@ ++nLin,00 PSAY Repl("-",80)
@ ++nLin,00 PSAY "Serviços Executados Vlr. Total"
@ ++nLin,00 PSAY Repl("-",80)
For nCntFor2 := 1 to Len(aValSer)
If nLin > 55 // Salto de Página. Neste caso o formulario tem 55 linhas...
Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
nLin := 8
EndIf
@ ++nLin,00 PSAY PadR( AllTrim(aValSernCntFor2,01) + " " + AllTrim(aValSernCntFor2,02) + " " + AllTrim(aValSernCntFor2,15) , 69 )
If aValSernCntFor2,06 == "0" // VOK_INCMOB - Mao de Obra Gratuita
@ nLin , 71 PSAY "Cortesia"
Else
@ nLin , 70 PSAY Transform(aValSernCntFor2,07,"@E 999,999.99")
EndIf
aTotaliz1,1 += aValSernCntFor2,07
aTotaliz1,2 += aValSernCntFor2,08
aTotaliz3,1 += aValSernCntFor2,07
aTotaliz3,2 += aValSernCntFor2,08
Next nCntFor2
@ ++nLin,00 PSAY Repl("-",80)
@ ++nLin,43 PSAY "Sub-Total de Serviços: " + Transform( aTotaliz1,1 , "@E 999,999,999.99")
@ ++nLin,43 PSAY "Descontos............: " + Transform( aTotaliz1,2 , "@E 999,999,999.99")
@ ++nLin,43 PSAY "Total de Serviços....: " + Transform( aTotaliz1,1 - aTotaliz1,2 , "@E 999,999,999.99")
EndIf
If Len(aValPec) <> 0
@ ++nLin,00 PSAY Repl("-",80)
@ ++nLin,00 PSAY "Peças Utilizadas UM Qtde Vlr. Unit. Vlr. Total"
@ ++nLin,00 PSAY Repl("-",80)
SB1->(dbSetOrder(7))
For nCntFor2 := 1 to Len(aValPec)
If nLin > 55 // Salto de Página. Neste caso o formulario tem 55 linhas...
Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
nLin := 8
EndIf
SB1->(dbSeek( xFilial("SB1") + aValPecnCntFor2,01 + aValPecnCntFor2,02 ))
@ ++nLin,00 PSAY PadR( aValPecnCntFor2,01 + " " + AllTrim(aValPecnCntFor2,02) + " " + AllTrim(SB1->B1_DESC) , 45 ) + " " + SB1->B1_UM + " " + Transform(aValPecnCntFor2,05,"@R 999.99") + " " + Transform(aValPecnCntFor2,09,"@E 999,999.99") + " " + Transform(aValPecnCntFor2,10,"@E 999,999.99")
aTotaliz2,1 += aValPecnCntFor2,10
aTotaliz2,2 += aValPecnCntFor2,07
aTotaliz3,1 += aValPecnCntFor2,10
aTotaliz3,2 += aValPecnCntFor2,07
Next nCntFor2
@ ++nLin,00 PSAY Repl("-",80)
@ ++nLin,43 PSAY "Sub-Total de Peças...: " + Transform( aTotaliz2,1 , "@E 999,999,999.99")
@ ++nLin,43 PSAY "Descontos............: " + Transform( aTotaliz2,2 , "@E 999,999,999.99")
@ ++nLin,43 PSAY "Total de Peças.......: " + Transform( aTotaliz2,1 - aTotaliz2,2 , "@E 999,999,999.99")
EndIf
If nLin > 55 // Salto de Página. Neste caso o formulario tem 55 linhas...
Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo)
nLin := 8
EndIf
nLin++
@ ++nLin,00 PSAY Replicate("=",80)
@ ++nLin,43 PSAY "Total Peças/Serviços.: " + Transform(aTotaliz3,1 - aTotaliz3,2,"@E 999,999,999.99")
@ ++nLin,00 PSAY Replicate("=",80)
nLin+=3
@ ++nLin,03 PSAY Replicate("",25) + space(23) + Replicate("",25)
@ ++nLin,11 PSAY "Consultor" + space(37) + "Administração"
nLin := 100
Next nCntFor
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Finaliza a execucao do relatorio... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SET DEVICE TO SCREEN
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Se impressao em disco, chama o gerenciador de impressao... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If aReturn5==1
dbCommitAll()
SET PRINTER TO
OurSpool(wnrel)
Endif
MS_FLUSH()
Return
] oReport := ReportDef() // Nesta função nós definimos a estrutura do relatório, por exemplo as seções, campos, totalizadores e etc. /*/ cOS := cEmi := cLib := "" cCli := cPla := cEnd := cMod := "" cRev := cDat := "" cOSP := cOSC := "" cSer := cSVl := cSCt := "" cPec := cPUM := cQtd := cPVU := cPVl := "" cTot := cTVl := "" // Descrição // TReport // Cabeçalho oSection1:SetLineStyle() // Define se imprime as células da seção em linhas TRCell():New(oSection1, "oOS" ,, "Ordem de Serviço" , "@!", 33,, {|| cOS },,,,,,,,, .t.) // Ordem de Serviço // Dados Complemento oSection2:SetLineStyle() // Define se imprime as células da seção em linhas TRCell():New(oSection2, "oCli",, "Cliente.", "@!", 50,, {|| cCli },,,,,,,,,) // Cliente // Dados (Venda Zero) oSection3:SetLineStyle() // Define se imprime as células da seção em linhas TRCell():New(oSection3, "oRev",, "Revend..", "@!", 50,, {|| cRev },,,,,,,,,) // Revend. // Tipo de OS oSection4:SetLineStyle() // Define se imprime as células da seção em linhas TRCell():New(oSection4, "oOSP",, "", "@!", 50,, {|| cOSP },,,,,,,,,) // OS Preventiva // Serviços oSection5:SetLinesBefore(2) // Define a quantidade de linhas que serão saltadas antes da impressão da seção TRCell():New(oSection5, "oSer",, "Serviços Executados", "@!" , 150,, {|| cSer },,, ,,,,,,) // Serviços Executados // Peças oSection6:SetLinesBefore(2) // Define a quantidade de linhas que serão saltadas antes da impressão da seção TRCell():New(oSection6, "oPec",, "Peças Utilizadas", "@!" , 100,, {|| cPec },,, ,,,,,,) // Peças Utilizadas // Totais oSection7:SetLineStyle() // Define se imprime as células da seção em linhas TRCell():New(oSection7, "oTot",, "", "@!" , 25,, {|| cTot },,, ,,,,,,) // Descrições /*/ // OS por Tipo de Tempo aValPec := FMX_CALPEC(aOS[nCntFor, 1], aOS[nCntFor, 2],,, .f., .t., .t., .f., .t., .f., .f.,,,, .f.) If Len(aValPec) == 0 .And. Len(aValSer) == 0 If Len(aValPec) <> 0 dbSelectArea("VOO") cCGC := TRANSFORM(SA1->A1_CGC, PicPes(SA1->A1_PESSOA)) // CNPJ/CPF // Cabeçalho cOS := AllTrim(VO1->VO1_NUMOSV) // Ordem de Serviço oSection1:PrintLine() oReport:ThinLine() oSection1:Finish() // Dados Complemento cCli := PadR(SA1->A1_COD + "-" + SA1->A1_LOJA + " " + SA1->A1_NOME, 38) // Cliente oSection2:PrintLine() oReport:ThinLine() oSection2:Finish() oReport:SkipLine(1) // Dados (Venda Zero) cRev := PadR(VV1->VV1_CODCON, 38) // Contato oSection3:PrintLine() oReport:ThinLine() oSection3:Finish() // Tipo de OS cOSP := "OS Preventiva ( )" // OS Preventiva oSection4:PrintLine() oReport:SkipLine(2) oSection4:Finish() // Serviços For nCntFor2 := 1 to Len(aValSer) oSection5:PrintLine() // Total Serviços // Total Geral oReport:ThinLine() oSection5:Finish() // Totais (Serviços) cTot := "Sub-Total de Serviços:" oSection7:PrintLine() cTot := "Descontos............:" oSection7:PrintLine() cTot := "Total de Serviços....:" oSection7:PrintLine() oReport:ThinLine() oSection7:Finish() // Peças SB1->(dbSetOrder(7)) For nCntFor2 := 1 to Len(aValPec) cPec := PadR(aValPec[nCntFor2, 1] + " " + AllTrim(aValPec[nCntFor2, 2]) + " " + AllTrim(SB1->B1_DESC), 45) // Peças Utilizadas oSection6:PrintLine() // Total Peças // Total Geral oReport:ThinLine() oSection6:Finish() // Totais (Peças) cTot := "Sub-Total de Peças...:" oSection7:PrintLine() cTot := "Descontos............:" oSection7:PrintLine() cTot := "Total de Peças.......:" oSection7:PrintLine() oReport:ThinLine() oSection7:Finish() // Totais (Peças / Serviços) cTot := "Total Peças/Serviços.:" oSection7:PrintLine() oReport:ThinLine() oSection7:Finish() oReport:SkipLine(1) // Observação While !Eof() .And. xFilial("SYP") == SYP->YP_FILIAL .And. SYP->YP_CHAVE == VOO->VOO_OBSMNF oReport:PrintText(Space(7) + cDescri) DbSelectArea("SYP") oReport:SkipLine(5) |
---|
Preview
Veja também
Idioma | Português(Brasil) |
---|---|
Versões | Todas |
Sistemas Operacionais Suportados | Todos |
Compatível com as Bases de Dados | Todas |
Parâmetros | aOSPreFec - Matriz com as OS/TT (no formato [1] - Numero da OS , [2] - Tipo de Tempo) selecionados para fechamento. |
---|---|
Retorno | Não há |
Eventos de chamada do Ponto de Entrada | Static Function OX100IMPPF() Local aOSPreFec := {} // Salva Negociacao ... For nCntFor := 1 to Len(aVetTTP) |
Fechamento ExecBlock("PREFECT2",.F.,.F.,{aOSPreFec}) Return |
---|
Variáveis | |
---|---|
Programa Fonte | OFIXX100.PRW |