#Include "PROTHEUS.CH" #Include "TOTVS.CH" #Include "TOPCONN.CH" User Function FVISITAA() Local oButton1, oButton2, oButton3 , oButton4 Local oGet1 Local cGet1 := Space(30) Local cGet2 := Space(09) Local aOptions:= {"NOME","CPF","COD.VISIT"} Local oRadio, nRadio :=1 Local nX := 0 Local oListBox1 /*Local cVazio := 0 // VLDD VAZIO */ Local nTam := 0 //Local nBline Private cCont1 := 0 Private oFont1 := TFont():New( "Calibri",0,16,,.T.,0,,700,.T.,.F.,,,,,, ) Private aVisitt := {{" "," "," "}} Private aVisit1 := {{"","",""}} nTam:=Len(aVisit1) //IF cVazio < 1 //oListBox1:Refresh() /* Else nX:= 0 For nX := 1 to cCont1 nBline:=aVisit1[nX,2] oListbox1:ObterReg(nX, @aVisit1[nX, 1]) nbline := nbline + 1 aVisit1[nX, 2] := nbline oListbox1:GravarReg(nX, @aVisit1[nX, 1]) //aAdd(aVisit1,{' ',' ',' '}) //conout("tudo certo ate aqui +ou-,tamcont",cCont1) Next oListBox1:Refresh() conout("saiu ",nTam) EndIf */ Static oDlg //ALTURA, HORIZONTAL DEFINE MSDIALOG oDlg TITLE "CONTROLE DE VISITANTES" FROM 000, 000 TO 515, 650 COLORS 0, 16777215 PIXEL For nX := 1 to cCont1 +1 aAdd(aVisit1,{' ',' ',' '}) /* conout("Primeira condicao cont_banc",cCont1) nTam:=1 cVazio++ */ Next //@ ALTURA, HORIZONTAL oRadio:= tRadMenu():New(05,10,aOptions,; {|u|if(PCount()>0,nRadio:=u,nRadio)},; oDlg,,,,,,,,100,20,,,,.T.) // TESTE DO bChange oRadio:bChange := { ||cGet2 := aOptions[nRadio]} //@ 005, 045 MSGET oGet1 VAR cGet1 SIZE 100, 010 OF oDlg PICTURE "@R 999.999.999-99" COLORS 0, 16777215 PIXEL //cGet1 = VALOR CPF @ 005, 045 MSGET oGet1 VAR cGet1 SIZE 100, 010 OF oDlg PICTURE "@!" COLORS 0, 16777215 PIXEL @ 020, 098.5 BUTTON oButton1 PROMPT "CONSULTA" SIZE 045, 010 OF oDlg ACTION func1(cGet1,cGet2,cCont1,nX) PIXEL //FUNC1 = C.P.F //HORIZONTAL,ALTURA, @ 038, 007 LISTBOX oListBox1 Fields HEADER "COD.VISITA","NOME","CPF" SIZE 315, 190 OF oDlg COLORS 0, 16777215 PIXEL //ITENS {} = DADOS DO BANCO oListBox1:SetArray(aVisit1) nAt:= nX oListBox1:bLine := { || {aVisit1[oListBox1:nAt,03], aVisit1[oListBox1:nAt,02], aVisit1[oListBox1:nAt,01]}} olistbox1:Flush() oListBox1:Refresh() oListBox1:bLDblClick := {|| if(cGet1 = Space(15) .or. Empty(aVisit1),"",puxad(aVisitt[oListBox1:nAt,11])) } @ 235, 145 BUTTON oButton2 PROMPT "ENCERRAR VISITA" SIZE 048, 012 OF oDlg ACTION func2() PIXEL //FUNC2 = ENCERRA ENTREVISTA @ 235, 275 BUTTON oButton3 PROMPT "INCLUIR VISITA" SIZE 045, 012 OF oDlg ACTION func3(aVisitt[oListBox1:nAt,11]) PIXEL //FUNC3 = INCLUI ENTREVISTA //@ 235, 007 BUTTON oButton4 PROMPT "NOVO VISITANTE" SIZE 045, 012 OF oDlg ACTION func4() PIXEL //FUNC4 = VISITANTE NOVO @ 235, 007 BUTTON oButton4 PROMPT "TESTE" SIZE 045, 012 OF oDlg ACTION MsgStop("Escolheu " + aOptions[nRadio] ) PIXEL ACTIVATE MSDIALOG oDlg CENTERED Return() //***FUNC1()************* Static Function func1(cGet1,cGet2,cCont1,nX)//CONSULTA **FUNCIONANDO Local cDadoVal := cGet1 If cGet2 = "NOME" msgInfo("TA INDO BUSCA NOME!") busc1(cDadoVal,cGet2,cCont1,nX) Endif If cGet2 = "CPF" msgInfo("TA INDO BUSCA CPF!") busc2(cDadoVal) //fVerifica(cDadoVal) Endif If cGet2 = "COD.VISIT" msgInfo("TA INDO BUSCA VISITA!") busc3(cDadoVal) Endif Return() //***BUSC2()************** Static Function busc2(cDadoVal) Local cAliasT := GetNextAlias() Local cCpfw := "" Local cNomec := "" Local cAtsiv := "" If Empty(cDadoVal) MsgInfo("Campo CPF Vazio") //U_FVISITAA() oDlg:Refresh() EndIf BeginSql Alias cAliasT SELECT TOP 1 PW_CPF, PW_NOME,; PW_VISITA FROM %Table:SPW% WHERE PW_FILIAL = %xFilial:SPW%; AND PW_CPF = %Exp:cDadoVal%; AND %Table:SPW%.%NotDel% EndSQL If Select(cAliasT) == 0 (cAliasT)-> (DbCloseArea()) msgInfo("teste") Endif (cAliasT)->( dbGoTop()) While !(cAliast)->(EOF()) cCpfw := Transform(SUBSTR((cAliasT)->PW_CPF,1,12),"@R 999.999.999-99") cNomec := SUBSTR((cAliasT)->PW_NOME,1,30) cAtsiv := (cAliasT)->PW_VISITA (cAliasT)->(dbSkip()) EndDo If Empty(cNomec) msgInfo("Visitante não cadastrado!") oDlg:Refresh() U_FVISITAA() EndIf IF !Empty(cAtsiv) IF MsgYesNo("Visitante:"+ cValtoChar(cNomec) + "Codigo de Visita:"+cValtochar(cAtsiv),"Confirma visitante?") fCarregaDados(cDadoVal) Else oDlg:Refresh() U_FVISITAA() EndIf Endif Return //***FCARREGADADOS()************** Static Function fCarregaDados(cDadoVal) Local cAliasProd := GetNextAlias() Local cNumer := "" Local cDataEn := "" Local cDataSa := "" Local cNomee := "" Local cVista := "" BeginSql Alias cAliasProd SELECT TOP 1 PW_CPF,PW_NOME,; PY_DATAE, PY_ENTRADA,; PW_POSNOM1, PY_NUMERO,; PY_DTVISIT,PY_CRACHA,PY_VISITA,; PY_PLVEICU, PY_PLCAVAL,; PY_DATAS, PY_SAIDA FROM %Table:SPY% LEFT JOIN %Table:SPW% ON PY_VISITA = PW_VISITA AND %Table:SPW%.%NotDel%; WHERE PY_FILIAL = %xFilial:SPY% AND %Table:SPY%.%NotDel% AND PW_CPF = %Exp:cDadoVal%; ORDER BY PY_DATAE DESC EndSQL If Select( cAliasProd ) == 0 (cAliasProd)->( dbCloseArea() ) //FECHA O BANCO EndIf DbSelectArea(cAliasProd) (cAliasProd)->( dbGoTop()) ASIZE(aVisit1,0) aVisitt := {} //ConOut( "ABTES DO LACO",cCpfVal) While ! (cAliasProd)->(EOF()) AADD ( aVisitt, { Transform(SUBSTR((cAliasProd)->PW_CPF,1,12),"@R 999.999.999-99") ,; SUBSTR((cAliasProd)->PW_NOME,1,30) ,; STOD((cAliasProd)->PY_DATAE) ,; (cAliasProd)->PY_ENTRADA ,; SUBSTR((cAliasProd)->PW_POSNOM1,1,30) ,; STOD((cAliasProd)->PY_DATAS) ,; Transform((cAliasProd)->PY_SAIDA, "@R 99:99") ,; Transform((cAliasProd)->PY_PLVEICU,"@!@R AAA-9999") ,; Transform((cAliasProd)->PY_PLCAVAL,"@!@R AAA-9999") ,; (cAliasProd)->PY_NUMERO ,; (cAliasProd)->PY_VISITA + (cAliasProd)->PY_DTVISIT + (cAliasProd)->PY_CRACHA + (cAliasProd)->PY_NUMERO }) cNumer := (cAliasProd)->PY_VISITA + (cAliasProd)->PY_DTVISIT + (cAliasProd)->PY_CRACHA + (cAliasProd)->PY_NUMERO cDataEn := (cAliasProd)->PY_DATAE cDataSa := (cAliasProd)->PY_DATAS cNomee := (cAliasProd)->PW_NOME cVista := (cAliasProd)->PY_VISITA (cAliasProd)->( dbSkip()) EndDo If !Empty(cDataEn) .AND. Empty(cDataSa) puxad(cNumer) EndIf If !Empty(cDataEn) .AND. !Empty(cDataSa) //If MsgYesNo("Visitante:"+ cValtoChar(cNomee) + "Codigo de Visita:"+cValtoChar(cVista),"Deseja Incluir Visita?") func3(cNumer) //conout("cnumer", cNumer) ELSE U_FVISITAA() EndIf Return() //***FUNC2()************* Static Function func2() //ENCERRA ** FUNCIONANDO - TRAZER O DADO PONA340() Return() //***FUNC3()************* Static Function func3(cNumer) //NOVA VISITA Local bError := { |e| oError := e , Break(e) } Local bErrorBlock := ErrorBlock( bError ) Local nOpc := 3 Local cCodvis := cNumer Private LPONA340AUT := .F. Private oBRWPN340 Private INCLUI := (nOpc==3) Private cCadastro := "" Private nLastRec := NIL Private oBrowse := Nil IF Empty(cCodvis) //msgInfo("cNumer esta vazio") PONA340() Else DbselectArea("SPY") FWLoadMenuDef("PONA340") SPY->(DbSetOrder(1)) SPY->(DbSeek(xFilial("SPY")+cCodvis)) BEGIN SEQUENCE Pn340Rot("SPY",SPY->(RecNo()),nOpc) return .F. Recover //conout("Deu aquele erro lá ") U_FVISITAA() End Sequence ErrorBlock( oError ) EndIf Return() //***FUNC4()************* Static Function func4() //NOVO VISITANTE-( Botão incluir ) Funcionando Local nOpc := 3 Private INCLUI := (nOpc==3) DbselectArea("SPW") FWLoadMenuDef("PONA330") SPW->(DbSetOrder(1)) SPW->(DbSeek(xFilial("SPW"))) Pn330Rot("SPW",SPW->(RecNo()),nOpc) //msgInfo("Visitante Cadastrado!") Return() //***PUXAD(CNUMER)************* Static Function puxad(cNumer) //***Funcionando 100% Local bError := { |e| oError := e , Break(e) } Local bErrorBlock := ErrorBlock( bError ) Local cCodvis := cNumer local nOpc := 4 Private LPONA340AUT := .F. Private oBRWPN340 Private INCLUI := (nOpc==3) Private ALTERA := (nOpc==4) Private cCadastro := "" Private nLastRec := NIL Private nOpcAlt := 7 Private oBrowse := Nil DbselectArea("SPY") FWLoadMenuDef("PONA340") SPY->(DbSetOrder(1)) SPY->(DbSeek(xFilial("SPY")+cCodvis)) BEGIN SEQUENCE Pn340Rot("SPY",SPY->(RecNo()),nOpc) return .F. Recover // conout("Deu aquele erro lá ") U_FVISITAA() End Sequence ErrorBlock( oError ) Return(NIL) //***SAIR()*************** Static Function Sair() oDlg:END() Return( NIL ) //***BUSC1()*************** Static Function busc1(cDadoVal,cGet2,cCont1,nX) Local cAliasT1 := GetNextAlias() Local cNome1 := "" //Local cCont1 := 0 //Local cAtsiv := "" cWhere := "%'%" cWhere +=ALLTRIM(cDadoVal) cWhere +="%'%" If Empty(cDadoVal) MsgInfo("Campo Pesquisa está Vazio") U_FVISITAA() EndIf BeginSql Alias cAliasT1 SELECT PW_CPF, PW_NOME,; PW_VISITA FROM %Table:SPW% WHERE PW_FILIAL = %xFilial:SPW%; AND PW_CPF <> ''; AND PW_NOME LIKE %Exp:cWhere% ; AND %Table:SPW%.%NotDel% EndSQL DbSelectArea(cAliasT1) (cAliasT1)->(dbGoTop()) aVisit1 :={} ASIZE(aVisit1,0) While !(cAliasT1)->(EOF()) AADD(aVisit1, { Transform(SUBSTR((cAliasT1)->PW_CPF,1,12),"@R 999.999.999-99"),; SUBSTR((cAliasT1)->PW_NOME,1,30) ,; (cAliasT1)->PW_VISITA }) cCont1++ cNome1:=(cAliasT1)->PW_NOME (cAliasT1)->(dbSkip()) EndDo For nX := 1 to cCont1 +1 aAdd(aVisit1,{' ',' ',' '}) conout("Primeira condicao cont_banc",cCont1) /* nTam:=1 cVazio++*/ Next If Select(cAliasT1) == 0 (cAliasT1)-> (DbCloseArea()) msgInfo("NAO ENCONTROU NADA") Endif If Empty(cNome1) MsgInfo("SEM RETORNO"+cNome1) EndIf If Empty(aVisit1) aVisit1 := {{ "","","" }} MsgInfo("ACABOOOOOOOOOOOOOOOOO") //oDlg:Refresh() //U_FVISITAA() EndIf (cAliasT1)-> (DbCloseArea()) conout("valor do banco",cCont1) //If cVazio >= 1 // ATUALIST() //ENDIF //oDlg:Refresh() RETURN() //***BUSC3()*************** Static Function ATULIST(nX) nX:= 0 For nX := 1 to cCont1 nBline:=aVisit1[nX,2] oListbox1:ObterReg(nX, @aVisit1[nX, 1]) nbline := nbline + 1 aVisit1[nX, 2] := nbline oListbox1:GravarReg(nX, @aVisit1[nX, 1]) //aAdd(aVisit1,{' ',' ',' '}) //conout("tudo certo ate aqui +ou-,tamcont",cCont1) Next oListBox1:Refresh() //conout("saiu ",nTam) Return