Histórico da Página
Ponto de Entrada
Descrição: | Este Ponto de Entrada está localizado na rotina Cancela Venda (OFIOM220) e tem por finalidade realizar a impressão dos itens que componham a nota cancelada. Desta forma o usuário poderá criar uma ordem de cancelamento após a confirmação do cancelamento da nota fiscal. |
Localização: | Atualizações / Mov. Peças / Cancela Venda (OFIOM220) |
Eventos: | ///////////////////// /* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Funcao ³FS_CANCELA³ Autor ³ Andre ³ Data ³ 23/10/00 ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descricao ³ Cancelamento da Venda de Pecas ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ Function FS_CANCELA()
Local i := 0 Local aRegSD2 := {} Local aRegSE1 := {} Local aRegSE2 := {} Local cPrefix := &(GetNewPar("MV_1DUPREF","cSerie")) Local lCupom := VS1->VS1_SERNFI == GetNewPar("MV_SERCUP","CUP") Local cont := 0 Local lNFeCancel := SuperGetMV('MV_CANCNFE',.F.,.F.) .AND. SF2->(FieldPos("F2_STATUS")) > 0
if Alltrim(cPrefix) == "" cPrefix := iif(VS1->VS1_SERNFI <> GetNewPar("MV_SERCUP","CUP"),VS1->VS1_SERNFI,GetNewPar("MV_SERCUP","CUP")) Endif
DbSelectArea("SE1") DBSetOrder(1) //If SE1->(DBSeek(xFilial('SE1')+cPrefix+cNota)) If SE1->(DBSeek(xFilial('SE1')+cPrefix+space(TamSx3("E1_PREFIXO")[1]-Len(cPrefix))+cNota)) While !Eof() .and. SE1->E1_FILIAL == xFilial('SE1') .and. SE1->E1_PREFIXO == cPrefix+space(TamSx3("E1_PREFIXO")[1]-Len(cPrefix)) .and. SE1->E1_NUM == cNota if VS1->VS1_SERNFI <> GetNewPar("MV_SERCUP","CUP") .and. SE1->E1_PREFORI != GetNewPar("MV_PREFBAL","BAL") DBSkip() loop endif If !Empty(SE1->E1_BAIXA) .or. SE1->E1_SALDO != SE1->E1_VALOR MsgInfo(STR0019,STR0020) //Ha titulos baixados referentes a esta Venda..###Atencao Return(.f.) EndIf DbSelectArea("SE1") DbSkip() Enddo EndIf
// Transmite o Cancelamento para o SEFAZ automaticamente If lNFeCancel If !FGX_STATF2("D",VS1->VS1_SERNFI,VS1->VS1_NUMNFI,VS1->VS1_CLIFAT,VS1->VS1_LOJA,"S") // verifica se NF foi Deletada
dbSelectArea("SF2") dbSetOrder(1) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Verifica se o estorno do documento de saída pode ser feito ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If MaCanDelF2("SF2",SF2->(RecNo()),@aRegSD2,@aRegSE1,@aRegSE2) /*Alias da Tabela SF2,Recno do SF2, Array com os registro do SD2, Array com os registro do SE1, Array com os registro do SE2 ) */ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Estorna o documento de saida ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PERGUNTE("MTA521",.f.) If !SF2->(MaDelNFS(aRegSD2,aRegSE1,aRegSE2,(mv_par01 == 1), (mv_par02 == 1), (mv_par03 == 1), (mv_par04 == 1))) lMsErroAuto:= .T. Endif Else lMsErroAuto:= .T. EndIf
If lMsErroAuto Return(.f.) EndIf
If !FGX_STATF2("V",VS1->VS1_SERNFI,VS1->VS1_NUMNFI,VS1->VS1_CLIFAT,VS1->VS1_LOJA,"S") /// Verifica STATUS da NF no SEFAZ Return .f. EndIf Endif EndIf
Begin Transaction
if ( ExistBlock("OFM220IN") ) lRet := ExecBlock("OFM220IN",.f.,.f.) if !lRet DisarmTransaction() Break Return(.f.) Endif EndIf
If !lNFeCancel
dbSelectArea("SF2") dbSetOrder(1) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Verifica se o estorno do documento de saída pode ser feito ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If MaCanDelF2("SF2",SF2->(RecNo()),@aRegSD2,@aRegSE1,@aRegSE2) /*Alias da Tabela SF2,Recno do SF2, Array com os registro do SD2, Array com os registro do SE1, Array com os registro do SE2 ) */ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Estorna o documento de saida ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PERGUNTE("MTA521",.f.) SF2->(MaDelNFS(aRegSD2,aRegSE1,aRegSE2,(mv_par01 == 1), (mv_par02 == 1), (mv_par03 == 1), (mv_par04 == 1))) Else //Nao pode ser excluida. lMsErroAuto:= .T. EndIf
If lMsErroAuto DisarmTransaction() Break EndIf
Endif
//Exclui Pedido ProcRegua(1) IncProc(STR0023) //Cancelando Pedido... If lAbortPrint DisarmTransaction() Break Else lAbortPrint := .F. EndIf
lMsErroAuto := .f.
dbSelectArea("SC5") dbSetOrder(1) if dbSeek(xFilial("SC5")+cNumPed) aMata410Cab := {{"C5_NUM" , cNumPed,Nil}} //Numero do pedido SC5 aMata410Itens := {{"C6_NUM" , cNumPed,Nil}} //Numero do Pedido SC6
//Exclui Pedido SC9->(dbSetOrder(1)) SC9->(dbSeek(xFilial("SC9")+cNumPed)) While !SC9->(Eof()) .And. xFilial('SC9') == SC9->C9_FILIAL .and. cNumPed == SC9->C9_PEDIDO SC9->(a460Estorna()) SC9->(dbSkip()) EndDo
MSExecAuto({|x,y,z|Mata410(x,y,z)},aMata410Cab,{aMata410Itens},5) Endif
If lMsErroAuto == .t. DisarmTransaction() Break EndIf
// Inicio do Cancelamento dos Titulos a Receber If Empty(VS1->VS1_CTCDCI) aParcelas := {} DbSelectArea("SE1") SE1->(DBSetOrder(1)) If SE1->(DBSeek(xFilial('SE1')+cPrefix+space(TamSx3("E1_PREFIXO")[1]-Len(cPrefix))+cNota)) while ! Eof() .and. SE1->E1_FILIAL == xFilial('SE1') .and. SE1->E1_PREFIXO == cPrefix+space(TamSx3("E1_PREFIXO")[1]-Len(cPrefix)) .and. SE1->E1_NUM == cNota if VS1->VS1_SERNFI <> GetNewPar("MV_SERCUP","CUP") .and. SE1->E1_PREFORI != GetNewPar("MV_PREFBAL","BAL") DBSkip() loop endif AADD(aParcelas,{ {"E1_PREFIXO",E1_PREFIXO,nil},{"E1_NUM",E1_NUM,nil},{"E1_PARCELA",E1_PARCELA,nil},; {"E1_TIPO",E1_TIPO,nil},{"E1_NATUREZA",E1_NATUREZA,nil},{"E1_CLIENTE",E1_CLIENTE,nil},; {"E1_LOJA",E1_LOJA,nil},{"E1_EMISSAO",E1_EMISSAO,nil},{"E1_VENCTO",E1_VENCTO,nil},; {"E1_VENCREA",E1_VENCREA,nil},{"E1_VALOR",E1_VALOR,nil} })
DbSelectArea("SE1") DbSkip() Enddo
ProcRegua(1) IncProc(STR0024) //Excluindo Titulos... If lAbortPrint DisarmTransaction() Break Else lAbortPrint := .F. EndIf pergunte("FIN040",.F.) For i = 1 to len(aParcelas) MSExecAuto({|x,y| FINA040(x,y)},aParcelas[i],5) If LMsErroAuto MostraErro() DisarmTransaction() Break EndIf Next
DbSelectArea("VSE") DbSetOrder(1) If DbSeek( xFilial("VSE") + "OR"+VS1->VS1_NUMORC + ' B' ) while !eof() .and. xFilial("VSE") == VSE->VSE_FILIAL .and. VSE->VSE_NUMIDE+VSE->VSE_TIPOPE == "OR"+VS1->VS1_NUMORC+" B" If !RecLock("VSE",.f.,.t.) DisarmTransaction() Break EndIf DbDelete() MsUnlock() WriteSx2("VSE") DbSkip() Enddo EndIf EndIf Else //Exclui Financiamento CDCI ExTitCDCI(VS1->VS1_CTCDCI) ExContCDCI(VS1->VS1_CTCDCI) EndIf
cRecno := AllTrim(VS1->VS1_TITNCC) cStr := AllTrim(VS1->VS1_TITNCC) nTot := 0 if Len(AllTrim(VS1->VS1_TITNCC)) > 0 For cont := 1 to Len(AllTrim(VS1->VS1_TITNCC)) if substr(cStr,cont,1) == "/" nTot++ Endif Next if nTot == 0 nTot := 1 Endif Endif
For cont := 1 to nTot
cRecno := substr(cStr,1,AT("/",cStr)-1) cStr := substr(cStr,AT("/",cStr)+1) dbSelectArea("SE1") dbGoto(val(cRecno))
aBaixa := {{"E1_PREFIXO" ,SE1->E1_PREFIXO ,Nil},; {"E1_NUM" ,SE1->E1_NUM ,Nil},; {"E1_PARCELA" ,SE1->E1_PARCELA ,Nil},; {"E1_TIPO" ,"NCC" ,Nil},; {"AUTMOTBX" ,"NOR" ,Nil},; {"AUTDTBAIXA" ,dDataBase ,Nil},; {"AUTDTCREDITO",dDataBase ,Nil}}
lMSHelpAuto := .f. lMsErroAuto := .f. MSExecAuto({|x,y| FINA070(x,y)},aBaixa,5) If lMsErroAuto lRet := .F. lError := .T. DisarmTransaction() MostraErro() Break EndIf Next
////////////////////////////////////////////////// // EXCLUIR ARQUIVOS ( VEC / VSG ) e ALTERAR VS1 // ////////////////////////////////////////////////// FS_EXCLUIR(cNota,cSerie,1) // 1=Voltar Orcamento para Aberto //////////////////////////////////////////////////
if lCupom //Imprime o cancelamento do Cupom Fiscal iRetorno := 0 cRetorno := ' ' _lRetBema := .T. _cPorta := GetMv("MV_PORTFIS") _cImpressora:= GetMv("MV_IMPFIS") _nDesconto := 0 _nTotal := 0 _nTotDesc := 0 _aIcms := {} _nRet := "" If Type("nHdlECF") == "U" .Or. nHdlEcf == -1 //If !Type("nHdlECF") == "U" .Or. nHdlEcf <> -1 Public nhdlecf nhdlecf := IFAbrir( _cImpressora,_cPorta ) EndIf iRet := IFStatus( nhdlecf, '5', @cRetorno ) //if iRet = 7 iRet := IFCancCup( nhdlecf ) Inkey(8) // dá um tempo para a impressora fazer a impressao do cancelamento //Endif Endif
if ( ExistBlock("OFM220FN") ) lRet := ExecBlock("OFM220FN",.f.,.f.) if !lRet DisarmTransaction() Break Endif EndIf
End Transaction
If lMsErroAuto MostraErro() EndIf
//Executa RdMake da Ordem de Cancelamento if ExistBlock("ORDCANC") ExecBlock("ORDCANC",.f.,.f.) Endif
Return |
Programa Fonte: | OFIOM220.PRW |
Função: | FS_CANCELA() |
Retorno: | Não se aplica. |
Exemplo:
#Include "FiveWin.ch"
#Include "Fileio.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ORDCANC ºAutor ³Thiago º Data ³ 07/03/05 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Imprime ordem de busca º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Oficina º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function ORDCANC()
SetPrvt("cAlias , cNomRel , cGPerg , cTitulo , cDesc1 , cDesc2 , cDesc3 , aOrdem , lHabil , cTamanho , aReturn , ")
SetPrvt("titulo,cabec1,cabec2,nLastKey,wnrel,tamanho")
aReturn := { "", 1,"", 2, 2, 2,,1 }
cAlias := "SF2"
cNomRel:= "ORDCANC"
cGPerg := ""
cTitulo:= "Itens da NFiscal Cancelada"
cDesc1 := "Itens da NFiscal Cancelada"
cDesc2 := cDesc3 := ""
aOrdem := {"Nosso Numero","Codigo do Item"}
lHabil := .f.
lServer := ( GetMv("MV_LSERVER") == "S" )
cTamanho:= "P"
nLastKey:=0
aDriver := LeDriver()
cCompac := aDriver[1]
cNormal := aDriver[2]
cDrive := GetMv("MV_DRVORB")
cNomeImp := GetMv("MV_PORORB")
cNomRel := SetPrint(cAlias,cNomRel,nil,@ctitulo,cDesc1,cDesc2,cDesc3,.F.,"",.F.,cTamanho,nil,nil,nil,cDrive,.T.,lServer,cNomeImp)
If nlastkey == 27
Return(Allwaystrue())
EndIf
SetDefault(aReturn,cAlias)
RptStatus({|lEnd| FS_IMPORDCANC(@lEnd,"OFIM220",'SF2')},Titulo)
Eject
Set Printer to
Set device to Screen
If aReturn[5] == 1
OurSpool( cNomRel )
EndIf
MS_FLUSH()
Return(Allwaystrue())
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³FS_IMPORDBºAutor ³Fabio º Data ³ 07/07/00 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Imprime relatorio de ordem de busca para pecas requisitadas.º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³Oficina º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FS_IMPORDCANC()
SetPrvt("nLin , i , nTotal ")
SetPrvt("cbTxt , cbCont , cString , Li , m_Pag , wnRel , cTitulo , cabec1 , cabec2 , nomeprog , tamanho , nCaracter ")
nCaracter := 0
nLin := 1
i := 0
nTotal := 0
Set Printer to &cNomRel
Set Printer On
Set device to Printer
cbTxt := Space(10)
cbCont := 0
cString := "SF2"
Li := 80
m_Pag := 1
wnRel := "OFIM220"
nomeprog := "ORDCANC"
tamanho := "P"
nCaracter:= 18
limite := 80
nTotal := 0
cabec1 := "NF: "+M->F2_PREFIXO +" " +M->F2_DOC+" "+M->F2_SERIE+ " Emissao: " +Transform(M->F2_EMISSAO,"@D")+" Cliente: "+M->F2_CLIENTE+" "+subs(SA1->A1_NOME,1,27)
cabec2 := ""
ccabx := " Grp Codigo do Item Descricao do Item Un Quant Valor Unit Valor Total Al Data Usuario Locacao Qtd Atu"
// 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
// 1 2 3 4 5 6 7 8 9 1
setprc(0,0)
nLin := cabec(ctitulo,cabec1,cabec2,nomeprog,tamanho,nCaracter) + 1
i:= 1
@ nLin++,0 PSAY &cCompac + ccabx + &cNormal
For i:=1 to Len(aColsNF)
If nLin >= 60
nLin := 1
nLin := cabec(ctitulo,cabec1,cabec2,nomeprog,tamanho,nCaracter) + 1
@ nLin++,0 PSAY &cCompac + ccabx + &cNormal
endif
dbSelectArea("SB1")
dbSetOrder(7)
dbSeek(xFilial("SB1")+aColsNF[i,2]+aColsNF[i,3])
DbSelectArea("SB2")
DbSeek(xFilial("SB2")+SB1->B1_COD+aColsNF[i,20])
DbSelectArea("SB5")
DbSeek(xFilial("SB5")+SB1->B1_COD)
@ nLin++,01 PSAY &cCompac +aColsNF[i,2]+" "+substr(aColsNF[i,3],1,15)+" "+substr(SB1->B1_DESC,1,19)+" "+aColsNF[i,4]+" "+transform(aColsNF[i,6], "999")+" "+transform(aColsNF[i,7],"@E 999,999.99")+" "+transform(aColsNF[i,8], "@E 999,999.99") + space(2) + " " +aColsNF[i,20]+" "+DTOC(dDATABASE)+ " "+SubStr(cUsuario,7,15) + " " + Left(SB5->B5_LOCALIZ,9) + " " + transform(SB2->B2_QATU,"@E 9999999")+&cNormal
Next
if nLin > 60
eject
setprc(0,0)
nLin := cabec(ctitulo,cabec1,cabec2,nomeprog,tamanho,nCaracter) + 1
@ nLin++,0 PSAY &cCompac + ccabx + &cNormal
Endif
DbSelectArea("SF2")
DbSetOrder(1)
*** Deve ser utilizado uma IndRegua
cIndSF2 := CriaTrab(Nil, .F.)
cChave := IndexKey()
cCond := "F2_PREFIXO == 'BAL'" //Orcamento Vendido
IndRegua("SF2",cIndSF2,cChave,,cCond,OemToAnsi("Notas Fiscais de Balcao") )
DbSelectArea("SF2")
nIndex := RetIndex("SF2")
#IFNDEF TOP
DbSetIndex(cIndSF2+ordBagExt())
#ENDIF
DbSetOrder(nIndex+1)
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun‡„o ³ FG_POSVAR ³ Autor ³ Andre/Emilton ³ Data ³ 05/01/00 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descricao ³ Retorna a posicao do campo no aHeader ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ Nome do Campo ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Retorno ³ Posicao do Campo ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ Geral ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function FG_POSVAR(Arg1,Arg2)
If Arg2 == Nil
Arg2 := "aHeader"
Endif
Return (aScan(&Arg2,{|x| AllTrim(x[2])==Arg1}))