Jump to content
Fivewin Brasil

rubensma

Membros
  • Posts

    455
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by rubensma

  1. Bom dia, acabei de receber a seguinte mensagem do Luiz: Já depositei em juízo 3600 reais falta 1200 reais tenho que arrumar este valor ate em 8 dias senão tenho 90 dias para deixar o imóvel Ta batendo o desespero pois não consegui ainda Pessoal, quem puder ajudar um amigo que tanto colaborou aqui, veja a situação que está passando por motivo de doença. Desculpa Luiz por postar sua mensagem, mas aqui sei que terá uma chance de poder continuar com sua luta. Abraços e boa sorte.
  2. Olá, Luiz, enviei um e-mail pra ti. Solicitação atendida, boa sorte.
  3. Uso assim para testar os dados, funciona bem. Espero que ajude function gerarlote(vTot,oMeter,oText,nOption,numlote) LOCAL oExcel, oHoja dbSelectArea( "con" ) // seleciona arquivo contábil con->( dbGoTop() ) vNomenum := "Lote_"+"&numlote."+".txt" // usando macro precisa por ponto if nOption = 2 // foi selecionado arquivo texto copy to &vNomenum delimited // separado por virgula WinExec("Notepad &vNomenum",1) // 1 = diretorio corrente return nil endif nRow := 1 // reinicia a linha da planilha nCount := 0 // Zerar o total do meter oExcel := TOleAuto():New( "Excel.Application" ) oExcel:WorkBooks:Add() oHoja := oExcel:Get( "ActiveSheet" ) *::: Seleciona a guia BOLETINS para preenchimento oExcel:Sheets("Plan1"):Name := "Boletins" // nomear a 1ª guia oExcel:Sheets("Boletins"):Select() // selecionar a guia nomeada oMeter:cCaption := "Lote dos Boletins" oHoja := oExcel:Get( "ActiveSheet" ) FOR nCol := 1 TO FCOUNT() // percorrer todas as colunas oHoja:Cells( nRow, nCol ):Value := FieldName( nCol ) // linhadegrade(oHoja,nRow,nCol) NEXT DO WHILE .NOT. EOF() nRow++ FOR nCol := 1 TO FCOUNT() if ValType( FieldGet( nCol ) ) = "D" // se for campo data converte p/string oHoja:Cells( nRow, nCol ):Value := dtoc(FieldGet( nCol )) else if ValType( FieldGet( nCol ) ) = "N" // se for campo numérico com valor oHoja:Cells( nRow, 4 ):NumberFormat = "###.##0,00" // Formata numerico valor oHoja:Cells( nRow, 28 ):NumberFormat = "###.##0,00" // Formata numerico oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol ) else if ValType( FieldGet( nCol ) ) = "L" // se for campo lógico oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol ) else oHoja:Cells( nRow, nCol ):NumberFormat = "@" // FORMATAR TEXTO oHoja:Cells( nRow, nCol ):Value := alltrim(FieldGet( nCol )) endif endif endif // linhadegrade(oHoja,nRow,nCol) NEXT oMeter:Set(++nCount) oMeter:nTotal := con->( RecCount()*1 ) oText:SetText("Exportando a Guia Boletins!"+chr(13)+; "Processando Registro : "+str(nCount,6)+"/"+str(oMeter:nTotal,6) ) con->( DBSKIP(1) ) ENDDO FOR nCol := 1 TO FCOUNT() oHoja:Columns( nCol ):AutoFit() // ajusta o tamanho das colunas NEXT cPath := CURDRIVE() + ":\" + GETCURDIR() // caminho do diretorio corrente cFilexls := cPath //+"\"+cFile vNomenum := "Lote_"+"&numlote."+".xls" // nome do arquivo a gravar cArqui := cPath + "\" + vNomenum // caminho do diretorio corrente oExcel:ActiveWorkBook:SaveAs( cArqui ) // salva como o arquivo msginfo( "O arquivo foi gerado e gravado com sucesso."+chr(13)+; "Será aberto no Excel.","Informação") cMod := "LOTE GERADO" cSer := "Foi gerado o arquivo nome: &vNomenum - Lote: &numlote" registra( cMod , cSer ) oExcel:Visible := .T. hWnd:=oExcel:hWnd ShowWindow(hWnd, 3) //3 = Maximizada, 1=Normal e 6 = Minimizada BringWindowToTop(hWnd) con->( dbZap() ) return nil
  4. Bom-dia! Estou usando esse e funciona, encontrei aqui mesmo no forum REDEFINE GET oCepcli VAR cCepcli PICTURE "99999-999" ID 4045 oF oDlgx COLOR CLR_BLACK,CLR_AZULCLARO; VALID iif(empty(cCepcli),.t.,TCepweb():New(oGet5,oGet8,oGet9,oGet10,cCepcli,oGet5)) oCepcli:bGotFocus := { || oCepcli:SetPos(1) , oCepcli:SelectAll() } // manter selecionado oCepcli:bChange := { || oBmpa:enable() } oCepcli:cTooltip := "Digite o CEP e tecle TAB para pesquisar" ///////////////////////////////////////////////////////////////////////////////////////////////// // CLASSE PARA LOCALIZAR O CEP DO ENDEREÇO ///////////////////////////////////////////////////////////////////////////////////////////////// Class TCepweb METHOD NEW EndClass METHOD New(oEndere1,oBairro1,oCidade1,oEstado1,cCep,oNumero) CLass TCepweb local oPg, tmp,cBuf,cResult, error_net,oerror,nMySQL local cUrl := "http://republicavirtual.com.br/web_cep.php?cep="//REPUBLICA VIRTUAL O CEPS ESTÃO DESATUALIZADO local cUr2 := "http://impperio.com.br/cep.php?cep=" //DIRETO PELO SITE DO CORREIO local cEstado,cCidade,cBairro,cEndere local cMsgSto:= "ATENÇÃO" //"COLOQUE NOME DA SUA EMPRESA" //if !InternetGetConnectedState() // MsgStop("Não Há Coneccão com a INTERNET","SEM SINAL PARA CONECÇÃO") // TSetfocus():New(oEndere1) // Return(.T.) //endif oPg = CreateObject("Microsoft.XMLHTTP") oPg:Open("GET",cUr2 + cCep + "&formato=xml",.F.) ERROR_NET:=.T. Try oPg:Send() catch oError msgstop("ERRO AO CONSULTAR C.E.P..!!! " + oError:Description + ". FAÇA MANUALMENTE",cMsgsto) ERROR_NET:=.F. END TRY if ERROR_NET==.T. cBuf = oPg:ResponseBody cResult =substr(cBuf, at('<resultado>',cBuf)+11,1) if left(cBuf,2) # "OK" ERROR_NET :=.T. endif //?cBuf else oPg = CreateObject("Microsoft.XMLHTTP") oPg:Open("GET",cUrl + cCep + "&formato=xml",.F.) ERROR_NET:=.T. Try oPg:Send() catch oError Msgstop("ERRO AO CONSULTAR C.E.P..!!! " + oError:Description + ". FAÇA MANUALMENTE",cMsgsto) ERROR_NET:=.F. END TRY if ERROR_NET==.T. cBuf = oPg:ResponseBody cResult =substr(cBuf, at('<resultado>',cBuf)+11,1) if left(cBuf,2) # "OK" ERROR_NET :=.T. endif endif endif if(cResult<>"1") oPg = CreateObject("Microsoft.XMLHTTP") oPg:Open("GET",cUrl + cCep + "&formato=xml",.F.) ERROR_NET:=.T. Try oPg:Send() catch oError Msgstop("ERRO AO CONSULTAR C.E.P..!!! " + oError:Description + ". FAÇA MANUALMENTE",cMsgsto) ERROR_NET:=.F. END TRY if ERROR_NET==.T. cBuf = oPg:ResponseBody cResult =substr(cBuf, at('<resultado>',cBuf)+11,1) if left(cBuf,2) # "OK" ERROR_NET :=.T. endif endif if(cResult<>"1") MsgStop("CEP Não Existe na base de Dados",cMsgsto) // TSetfocus():New(oEndere1) return(.T.) endif endif //? cBuf cEstado =sAcento(substr(cBuf, at('<uf>', cBuf) + 4, 2)) cCidade =sAcento(substr(cBuf, at('<cidade>', cBuf) + 8, at('</cidade>',cBuf) - (at('<cidade>', cBuf) + 8))) cBairro =sAcento(substr(cBuf, at('<bairro>', cBuf) + 8,at('</bairro>', cBuf) - (at('<bairro>', cBuf) + 8))) cEndere:=sAcento(substr(cBuf, at('<tipo_logradouro>', cBuf) + 17, at('</tipo_logradouro>', cBuf) - (at('<tipo_logradouro>', cBuf) + 17))) cEndere+= " "+sAcento(substr(cBuf, at('<logradouro>', cBuf) + 12, at('</logradouro>', cBuf) - (at('<logradouro>', cBuf) + 12))) oEstado1:Varput(substr(cEstado+space(2),1,2)) oCidade1:Varput(substr(cCidade+space(30),1,30)) oBairro1:Varput(substr(cBairro+space(30),1,30)) oEndere1:Varput(substr(cEndere+space(60),1,60)) oEstado1:Refresh() oCidade1:Refresh() oBairro1:Refresh() oEndere1:Refresh() oNumero:Setfocus() return(.T.) static function sAcento(cTes) cTes =strtran(cTes,'ã','A') cTes =strtran(cTes,'á','A') cTes =strtran(cTes,'é','E') cTes =strtran(cTes,'ê','E') cTes =strtran(cTes,'õ','O') cTes =strtran(cTes,'ó','O') cTes =strtran(cTes,'ç','C') cTes =sTrtran(cTes,'ú','U') Return cTes
  5. O culpado é o ransomware “WannaCrypt”, que utilizou uma vulnerabilidade nos sistemas Microsoft Windows para infectar as máquinas. A própria Microsoft já havia lançado correções para essas vulnerabilidades em 14/03/2017 (https://technet.microsoft.com/en-us/library/security/ms17-010.aspx). As máquinas infectadas não estavam com seus sistemas operacionais atualizados, o que infelizmente é uma falha comum.
  6. Valeu João, vou tentar em casa. Obrigado.
  7. Desculpe, aproveitando o tópico, João sua rotina de centralizar vai me servir, porém não sei como definir a linha (nRow), quanto incrementar para mudar de linha. Estou usando o oPrn:cmSay que é em centimetros, aí fica fácil porém não centraliza com qualquer fonte. Sabe me dizer como controlar a linha em pixel
  8. Alguém sabe onde posso baixar bitmaps 32x32 para usar em buttons
  9. Valdir, Grato pela sugestão mas já tentei várias combinações de letras e não muda nada, os zeros continuam lá. Vou deixar assim mesmo com os zeros Abs.
  10. Também não. No help tem esses valores abaixo porém o @Z não funciona. Não sou especialista em Pelles, pode ser que seja lá, mas não encontrei nada nas propriedades. GET PICTURE Format Functions --------------------------------------------------------------------- Function Type Action --------------------------------------------------------------------- A C Allows only alphabetic characters. B N Displays numbers left-justified. C N Displays CR after positive numbers. D D,N Displays dates in SET DATE format. E D,N Displays dates with day and month inverted independent of the current DATE SETting, numerics with comma and period reverse (European style). K ALL Deletes default text if first key is not a cursor key. R C Nontemplate characters are inserted in the display but not saved in the variable. S<n> C Allows horizontal scrolling within a GET. <n> is an integer that specifies the width of the region. X N Displays DB after negative numbers. Z N Displays zero as blanks. ( N Displays negative numbers in parentheses with leading spaces. ) N Displays negative numbers in parentheses without leading spaces. ! C Converts alphabetic character to uppercase.
  11. Agradeço porém não deu, continuam os zeros.
  12. Como tirar o zero do GET (não quero que apareça o zero) Estou usando picture "@Z 9,999,999.99", mas o zero não some, usando o Pelles. REDEFINE GET oDir[v+7] VAR baseinss[x] ID 4074 OF oDlg pict "@Z 9,999,999.99"; ON CHANGE ( salvar:enable() , oDir[v+7]:setfocus() ) REDEFINE GET oDir[v+8] VAR baseir[x] ID 4075 OF oDlg pict "@Z 9,999,999.99"; ON CHANGE ( salvar:enable() , oDir[v+8]:setfocus() ) REDEFINE GET oDir[v+9] VAR inssempre[x] ID 4092 OF oDlg pict "@Z 9,999,999.99"; ON CHANGE ( salvar:enable() , oDir[v+9]:setfocus() ) REDEFINE GET oDir[v+10] VAR irrf[x] ID 4093 OF oDlg pict "@Z 9,999,999.99"; ON CHANGE ( salvar:enable() , oDir[v+10]:setfocus() ) REDEFINE GET oDir[v+11] VAR inss[x] ID 4110 OF oDlg pict "@Z 9,999,999.99"; ON CHANGE ( salvar:enable() , oDir[v+11]:setfocus() )
  13. Bom-dia Outro exemplo testando formatações function gerarlote(vTot,oMeter,oText,nOption,numlote) LOCAL oExcel, oHoja dbSelectArea( "con" ) // seleciona arquivo contábil con->( dbGoTop() ) vNomenum := "Lote_"+"&numlote."+".txt" // usando macro precisa por ponto if nOption = 2 // foi selecionado arquivo texto copy to &vNomenum delimited // separado por virgula WinExec("Notepad &vNomenum",1) // 1 = diretorio corrente return nil endif nRow := 1 // reinicia a linha da planilha nCount := 0 // Zerar o total do meter oExcel := TOleAuto():New( "Excel.Application" ) oExcel:WorkBooks:Add() oHoja := oExcel:Get( "ActiveSheet" ) *::: Seleciona a guia BOLETINS para preenchimento oExcel:Sheets("Plan1"):Name := "Boletins" // nomear a 1ª guia oExcel:Sheets("Boletins"):Select() // selecionar a guia nomeada oMeter:cCaption := "Lote dos Boletins" oHoja := oExcel:Get( "ActiveSheet" ) FOR nCol := 1 TO FCOUNT() // percorrer todas as colunas oHoja:Cells( nRow, nCol ):Value := FieldName( nCol ) // linhadegrade(oHoja,nRow,nCol) // contorno da célula NEXT DO WHILE .NOT. EOF() nRow++ FOR nCol := 1 TO FCOUNT() if ValType( FieldGet( nCol ) ) = "D" // se for campo data converte p/string oHoja:Cells( nRow, nCol ):Value := dtoc(FieldGet( nCol )) else if ValType( FieldGet( nCol ) ) = "N" // se for campo numérico com valor oHoja:Cells( nRow, 4 ):NumberFormat = "###.##0,00" // Formata numerico valor oHoja:Cells( nRow, 28 ):NumberFormat = "###.##0,00" // Formata numerico oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol ) else if ValType( FieldGet( nCol ) ) = "L" // se for campo lógico oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol ) else oHoja:Cells( nRow, nCol ):NumberFormat = "@" // FORMATAR TEXTO oHoja:Cells( nRow, nCol ):Value := alltrim(FieldGet( nCol )) endif endif endif // linhadegrade(oHoja,nRow,nCol) NEXT oMeter:Set(++nCount) oMeter:nTotal := con->( RecCount()*1 ) oText:SetText("Exportando a Guia Boletins!"+chr(13)+; "Processando Registro : "+str(nCount,6)+"/"+str(oMeter:nTotal,6) ) con->( DBSKIP(1) ) ENDDO FOR nCol := 1 TO FCOUNT() oHoja:Columns( nCol ):AutoFit() // ajusta o tamanho das colunas NEXT cPath := CURDRIVE() + ":\" + GETCURDIR() // caminho do diretorio corrente cFilexls := cPath //+"\"+cFile vNomenum := "Lote_"+"&numlote."+".xls" // nome do arquivo a gravar cArqui := cPath + "\" + vNomenum // caminho do diretorio corrente oExcel:ActiveWorkBook:SaveAs( cArqui ) // salva como o arquivo msginfo( "O arquivo foi gerado e gravado com sucesso."+chr(13)+; "Será aberto no Excel.","Informação") cMod := "LOTE GERADO" cSer := "Foi gerado o arquivo nome: &vNomenum - Lote: &numlote" registra( cMod , cSer ) oExcel:Visible := .T. hWnd:=oExcel:hWnd ShowWindow(hWnd, 3) //3 = Maximizada, 1=Normal e 6 = Minimizada BringWindowToTop(hWnd) con->( dbZap() ) return nil
  14. Resolvi problemas de impressão instalando o drive da impressora na máquina, mesmo sem ela, não sei se é o caso e acredito que isso não tem nada a ver, mas deu certo. jfaguiar, no seu prg não vi a "destruição" ( ofont:end() ) dos fontes e pen que abriu.
  15. Edu, e se vc criar quatro bitmaps com uma, duas, tres e outro com as quatro imagens ou mais como quiser e vai carregando conforme o caso.
  16. Também não consegui
  17. Valeu a dica João, deu certo apenas indexando pela coluna, mas mesmo assim gostaria de saber se existe o Sort. Abraços
  18. Prezados, bom-dia! Montei a planilha e enviei para o Excel, tudo certo. Quero classificar (Sort) a planilha por uma determinada coluna via programa. Alguém já fez isso?
  19. Perfeito, agora sim, grato pela ajuda. Abraços
  20. Prezados, boa noite Preciso gerar arquivo texto e abri-lo em um editor qualquer, tipo assim: copy to texto.tx sdf ou delimited with ";" winexec("notepad(texto.tx)") Alguém teria alguma dica?
  21. Uso assim para colar texto gerado no aplicativo para o Excel // clipboard para capturar o texto e colar no excell DEFINE CLIPBOARD oClp OF oLbx dUltdia := ctod("01/"+substr(cArquivo,4,2)+"/"+substr(cArquivo,6,4)) cCabecalho := "LT"+strzero(&cAlia->lote,3)+" "+alltrim(&cAlia->usuario)+" "+dtoc(ultimodia(dUltdia))+; " - Doc "+iif(&cAlia->quant = 1,strzero(&cAlia->docfim,3),+; strzero(&cAlia->docini,3)+" a "+strzero(&cAlia->docfim,3)) ...... REDEFINE SAY oSay VAR cCabecalho ID 104 OF oDlg UPDATE //oSay:bGotFocus := { || oSay:SelectAll() } // manter selecionado oSay:cTooltip := "Utilize o texto para colar no Lote do Excel" oSay:disable() oSay:settext( cCabecalho ) oSay:refresh() oClp:SetText( cCabecalho ) // clipboard para capturar o texto e colar no excell
  22. Pessoal, tem como imprimir array usando Report, Não encontrei exemplo
×
×
  • Create New...