Jump to content
Fivewin Brasil

gunafe

Membros
  • Posts

    599
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by gunafe

  1. Bom dia, Rochinha, é exatamente isso que a lib faz. Abraços,
  2. Boa noite, A ideia da lib, não é gerar o qrcode, mas sim o código, ou seja, gerar o código com os dados do pix, e com esse código, gerar o qrcode pra ser lido pelo aplicativo do banco, é isso.
  3. Deveria gerar o qrcode. A diálogo abriu e está mostrando os dados que você passou? Consegue mandar um print para meu zap? ( 41996350697 ) Luiz
  4. No primeiro arquivo que postei, está junto a dll qrcode.dll que é a lib que gera o qrcode, verifica se ela está na mesma pasta que seu exe. No caso da chave telefone, informe : +55DDDNumerodotelefone, ok?
  5. Bom dia, Verifique na pasta onde voce colocou o exe pra testar a lib se existe o arquivo : PixQRCode.bmp Outra coisa, voce precisa passar os dados, ou seja, chave, nome, cidade e valor que o qrcode vai ser mostrado na dialog gerada e pode ser lido pelo aplicativo do banco; existe tambem a possibilidade de enviar via zap/email o codigo usado pra gerar o qrcode, onde o pagador pode copiar e colar no aplicativo do banco pra pagar o pix. Peço desculpas pela mensagem que aparece antes, era somente um teste de posicionamento que precisei mostrar na tela e esqueci de tirar, segue novo arquivo anexo já corrigido. A lib pode ser usada livremente para os testes necessarios por 20 dias, a partir dai, caso seja do interesse, posso liberar o uso sem restrição por uma pequena taxa. CODEPIX.lib
  6. Bom dia, Veja na descrição dos parâmetros a passar, a chave pode ser telefone, CPF/CNPJ, email ou chave aleatória, é só trocar pra chave que vai ser usada, belê? Luiz
  7. Boa Noite, É gerado um bitmap do qrcode com os dados do pix a receber, que o pagador pode ler com o aplicativo do banco. Este qrcode é gravado no diretorio onde está seu exe, mas a cada novo pagamento, ele é superposto. Basta compilar a lib junto com o exemplo que vou postar abaixo que voce vê como funciona: #include "FiveWin.ch" //------------------------------------------------ Function Main() local t_CHAVE := '+55DDDNUMERODOTELEFONE',; t_NOME := 'NOMEDOBENEFICIARIO',; t_CIDADE := 'NOMEDACIDADE',; // Ex.: RIO DE JANEIRO t_VALOR := 10.00 Pag_Pix( t_CHAVE, t_NOME, t_CIDADE, t_VALOR ) Return Nil
  8. Bom dia, Pequena lib para gerar qrcode pix. modo de usar : compilar a lib junto com seu sistema, xharbour + bcc7 fazer a seguinte chamada : Pag_Pix( t_CHAVE, t_NOME, t_CIDADE, t_VALOR ) onde: t_CHAVE := '+55DDDNUMERODOTELEFONE' OU 'CNPJ/CPF' OU 'EMAIL' OU 'CHAVE ALEATORIA' t_NOME := 'NOME DO RECEBEDOR' t_CIDADE := 'CIDADEDORECEBEDOR' t_VALOR := VALOR DO PIX( EX.: 10.00 ) CODEPIX.rar
  9. Bom dia, Não entendi o que você precisa, poderia explicar? Estou perguntando porque eu faço emissão de nota de serviços para RJ.
  10. Bom dia Mkyx, Eu fiz um aplicativo que simula um terminal gertec no android para digitação pelo garçon. Luiz
  11. Bom dia a todos, Se algum colega do forum faz nota fiscal de serviços paulistana pode me dizer se conseguiu resolver a TAG assinatura? É que, mesmo fazendo a assinatura sempre que mando meu xml para weservice da prefeitura recebo a mensagem de erro abaixo: <Erro xmlns=""><Codigo>1206</Codigo><Descricao>Assinatura Digital do RPS incorreta - String verificada (56663072UNICA00000003803720190819TNN00000000000010000000000000000008494300000000000000)</Descricao><ChaveRPS><InscricaoPrestador>56663072</InscricaoPrestador><SerieRPS>UNICA</SerieRPS><NumeroRPS>38037</NumeroRPS></ChaveRPS></Erro><Erro xmlns=""><Codigo>1204</Codigo><Descricao>Valor Total de Serviços não confere com o enviado (0).</Descricao></Erro> Agradeço quem puder ajudar, Luiz Augusto
  12. gunafe

    Modulo TEF

    Boa Noite, Para TEF CAPPTA, tenho dll que faz a integração com a dll deles, já em produção em sistemas homologados. Mais informação me chame no skype, gunafe. []´s Luiz
  13. Boa noite Crisvam, Para o RJ, PR e PA que eu testei, esta funcionando normal a versão 4,00 e QRCode 2,0. Caso precise tirar alguma duvida, meu skype é gunafe. []´s Luiz
  14. Boa tarde, Só tem velhinho neste seleto grupo, no qual me incluo, comecei a programar em 1984, usava dbaseII, dbaseIII, depois veio o clipper e não parei mais, bons tempos aqueles.
  15. Bom dia, eu uso desta forma: dbSelectArea( "Desp_pag" ) //-------------------------------------------------------------------- cPro := ( oPesq:oGet:Buffer ) lAchou := .f. //-------------------------------------------------------------------- // Busca pelo CAMPO NUM DOC a primeira Ocorrencia do Código Digitado //-------------------------------------------------------------------- IF Desp_pag->( dbSeek( Left( cPro, oPesq:nPos - 1 ), .t. ) ) lAchou := .t. EndIF // Filtra todos os Itens que satisfaçam a letra digitada cPro := IF( Valtype( tPesq ) = 'D', Dtos( tPesq ), Alltrim( tPesq ) ) ordScope( 0, Rtrim( cPro ) ) ordScope( 1, Rtrim( cPro ) ) dbGotop() oLbx:Refresh() // listbox xSetFocus( oLbx ) o filtro só mostra no browse o que esta no OrdScope
  16. Boa noite, faço minhas as palavras do Kabi em relação ao meu mano véio Luiz Carlos, como diria meu pai: "Este ai é pedra 90!" Grande abraço,
  17. Bom dia, Procure por Cappta TEF, é uma empresa de São Paulo, faz a homologação via remoto, usando troca de arquivos ou API deles. Eu integrei meu sistema via API criando uma dll de integração com a dll deles, já que via xharbour direto não estava conseguindo. Qualquer dúvida, posta ai.
  18. Bom dia, Estes são os campos de retorno da função: //-------------------- // tratar txtNFe [resNFe]|NSU|chNFe|CNPJ|CPF|xNome|IE|dEmi|tpNF|vNF|digVal|dhRecibo|cSitNFe|cSitConf [resCanc]|NSU|chNFe|CNPJ|CPF|xNome|IE|dEmi|tpNF|vNF|digVal|dhRecibo|cSitNFe|cSitConf [resCCe]|NSU|chNFe|dhEvento|tpEvento|nSeqEvento|descEvento|xCorrecao|tpNF|dhRecibo //-------------------- que voce pode tratar e copiar para um dbf e depois mostrar na tela com um browse; retorna também um xml, mas é mais simples trabalhar no txt que a função monta.
  19. Bom dia, O campo do CEST tem tamanho de 7 caracteres e já existe o campo no comando da flexdocs( produtoNT2015003 ), inclusive com atualização do schema do xml e, será obrigatório informar a partir de 1 de julho de 2017 em produção, sendo que já é obrigatório em homologação. Veja mais informações neste link: http://www.newssystems.eti.br/blog/2015/11/compreendendo-o-novo-campo-cest-na-nf-e/
  20. Boa tarde Kapi, tudo tranquilo? Coloque esta linha no Main() SetUnhandledExceptionFilter( @GpfHandler() ) e, compile o prg abaixo junto com seu sistema // Error handler system adapted to FiveWin // ErrSysW.prg #include "FiveWin.ch" #include "error.ch" external _fwGenError // Link FiveWin generic Error Objects Generator #define NTRIM(n) ( LTrim( Str( n ) ) ) #ifdef __CLIPPER__ #define DLG_TITLE "FiveWin: The CA-Clipper for Windows Library" #else #ifdef __HARBOUR__ #define DLG_TITLE "FiveWin for (x)Harbour" #command QUIT => ( PostQuitMessage( 0 ), __Quit() ) #else #define DLG_TITLE "FiveWin for Xbase++" #endif #endif /************* *ErrorSys() * *Note: automatically executes at startup */ procedure ErrorSys() ErrorBlock( { | e | ErrorDialog( e ) } ) Return procedure ErrorLink() Return /************* * ErrorDialog() */ //static function ErrorDialog( e ) // -> logical or quits App. Function ErrorDialog( e ) // -> logical or quits App. local oDlg, oLbx, oFont local lRet // if lRet == nil -> default action: QUIT local n, j, cMessage, aStack := {} local oSay, hLogo local nButtons := 1 local cErrorLog := "" local aVersions := GetVersion() local aTasks local aRDDs, nTarget, uValue local oOldError local cRelation local lIsWinNT := IsWinNT() // by default, division by zero yields zero if ( e:genCode == EG_ZERODIV ) return 0 endif // for network open error, set NETERR() and subsystem default if ( e:genCode == EG_OPEN .and. ; ( e:osCode == 32 .or. e:osCode == 5 ) .and. ; e:canDefault ) NetErr( .t. ) return .f. // Warning: Exiting! endif // for lock error during APPEND BLANK, set NETERR() and subsystem default if ( e:genCode == EG_APPENDLOCK .and. e:canDefault ) NetErr( .t. ) return .f. // OJO SALIDA endif if Left( ProcName( 7 ), 10 ) == "ERRORDIALO" SET RESOURCES TO ErrorLevel( 1 ) QUIT endif ErrorBlock( {|e| MsgStop( ErrorMessage(e) + " from Errorsys, line:" + ; Str( ProcLine( 1 ), 3 ) ), __quit() } ) cErrorLog += "Application" + CRLF cErrorLog += "===========" + CRLF cErrorLog += " Path and name: " + GetModuleFileName( GetInstance() ) #ifdef __CLIPPER__ cErrorLog += " (16 bits)" + CRLF #else cErrorLog += " (32 bits)" + CRLF #endif cErrorLog += " Size: " + Transform( FSize( GetModuleFileName( ; GetInstance() ) ), "9,999,999 bytes" ) + CRLF #ifdef __CLIPPER__ cErrorLog += " Max files handles permited: ( SetHandleCount() ) " + ; Str( SetHandleCount(), 3 ) + CRLF #endif cErrorLog += " Time from start: " + TimeFromStart() + CRLF cErrorLog += " Error occurred at: " + ; DToC( Date() ) + ", " + Time() + CRLF // Error object analysis cMessage = " Error description: " + ErrorMessage( e ) + CRLF cErrorLog += cMessage if ValType( e:Args ) == "A" cErrorLog += " Args:" + CRLF for n = 1 to Len( e:Args ) cErrorLog += " [" + Str( n, 4 ) + "] = " + ValType( e:Args[ n ] ) + ; " " + cValToChar( e:Args[ n ] ) + CRLF next endif cErrorLog += CRLF + "Stack Calls" + CRLF cErrorLog += "===========" + CRLF n := 2 // we don't disscard any info again ! while ( n < 74 ) if ! Empty(ProcName( n ) ) AAdd( aStack, " Called from " + Trim( ProcName( n ) ) + ; "(" + NTRIM( ProcLine( n ) ) + ")" ) cErrorLog += ATail( aStack ) + CRLF endif n++ end cErrorLog += CRLF + "System" + CRLF cErrorLog += "======" + CRLF #ifdef __CLIPPER__ cErrorLog += " CPU type: " + GetCPU() + CRLF #else cErrorLog += " CPU type: " + GetCPU() + " " + ; AllTrim( Str( GetCPUSpeed() ) ) + " Mhz" + CRLF #endif cErrorLog += " Hardware memory: " + ; cValToChar( Int( nExtMem() / ( 1024 * 1024 ) ) + 1 ) + ; " megs" + CRLF + CRLF cErrorLog += " Free System resources: " + AllTrim( Str( GetFreeSystemResources( 0 ) ) ) + " %" + CRLF + ; " GDI resources: " + AllTrim( Str( GetFreeSystemResources( 1 ) ) ) + " %" + CRLF + ; " User resources: " + AllTrim( Str( GetFreeSystemResources( 2 ) ) ) + " %" + CRLF + CRLF cErrorLog += " Compiler version: " + Version() + CRLF #ifdef __CLIPPER__ cErrorLog += " Windows and MsDos versions: " + ; AllTrim( Str( aVersions[ 1 ] ) ) + "." + ; AllTrim( Str( aVersions[ 2 ] ) ) + ", " + ; AllTrim( Str( aVersions[ 3 ] ) ) + "." + ; AllTrim( Str( aVersions[ 4 ] ) ) + CRLF + CRLF #else cErrorLog += " Windows version: " + ; AllTrim( Str( aVersions[ 1 ] ) ) + "." + ; AllTrim( Str( aVersions[ 2 ] ) ) + ", Build " + ; AllTrim( Str( aVersions[ 3 ] ) ) + ; " " + aVersions[ 5 ] + CRLF + CRLF #endif aTasks = GetTasks() cErrorLog += " Windows total applications running: " + ; AllTrim( Str( Len( aTasks ) ) ) + CRLF for n = 1 to Len( aTasks ) cErrorLog += " " + Str( n, 3 ) + " " + aTasks[ n ] + CRLF next // Warning!!! Keep here this code !!! Or we will be consuming GDI as // we don't generate the error but we were generating the bitmap hLogo = FWBitMap() if e:canRetry nButtons++ endif if e:canDefault nButtons++ endif cErrorLog += CRLF + "Variables in use" + CRLF + "================" + CRLF cErrorLog += " Procedure Type Value" + CRLF cErrorLog += " ==========================" + CRLF n := 2 // we don't disscard any info again ! while ( n < 74 ) if ! Empty( ProcName( n ) ) cErrorLog += " " + Trim( ProcName( n ) ) + CRLF for j = 1 to ParamCount( n ) cErrorLog += " Param " + Str( j, 3 ) + ": " + ; ValType( GetParam( n, j ) ) + ; " " + cGetInfo( GetParam( n, j ) ) + CRLF next for j = 1 to LocalCount( n ) cErrorLog += " Local " + Str( j, 3 ) + ": " + ; ValType( GetLocal( n, j ) ) + ; " " + cGetInfo( GetLocal( n, j ) ) + CRLF next endif n++ end cErrorLog += CRLF + "Linked RDDs" + CRLF + "===========" + CRLF aRDDs = RddList( 1 ) for n = 1 to Len( aRDDs ) cErrorLog += " " + aRDDs[ n ] + CRLF next cErrorLog += CRLF + "DataBases in use" + CRLF + "================" + CRLF for n = 1 to 255 if ! Empty( Alias( n ) ) cErrorLog += CRLF + Str( n, 3 ) + ": " + If( Select() == n,"=> ", " " ) + ; PadR( Alias( n ), 15 ) + Space( 20 ) + "RddName: " + ; ( Alias( n ) )->( RddName() ) + CRLF cErrorLog += " ==============================" + CRLF cErrorLog += " RecNo RecCount BOF EOF" + CRLF cErrorLog += " " + Transform( ( Alias( n ) )->( RecNo() ), "99999" ) + ; " " + Transform( ( Alias( n ) )->( RecCount() ), "99999" ) + ; " " + cValToChar( ( Alias( n ) )->( BoF() ) ) + ; " " + cValToChar( ( Alias( n ) )->( EoF() ) ) + CRLF + CRLF cErrorLog += " Indexes in use " + Space( 23 ) + "TagName" + CRLF for j = 1 to 15 if ! Empty( ( Alias( n ) )->( IndexKey( j ) ) ) cErrorLog += Space( 8 ) + ; If( ( Alias( n ) )->( IndexOrd() ) == j, "=> ", " " ) + ; PadR( ( Alias( n ) )->( IndexKey( j ) ), 35 ) + ; ( Alias( n ) )->( OrdName( j ) ) + ; CRLF endif next cErrorLog += CRLF + " Relations in use" + CRLF for j = 1 to 8 if ! Empty( ( nTarget := ( Alias( n ) )->( DbRSelect( j ) ) ) ) cErrorLog += Space( 8 ) + Str( j ) + ": " + ; "TO " + ( Alias( n ) )->( DbRelation( j ) ) + ; " INTO " + Alias( nTarget ) + CRLF // uValue = ( Alias( n ) )->( DbRelation( j ) ) // cErrorLog += cValToChar( &( uValue ) ) + CRLF endif next endif next n = 1 cErrorLog += CRLF + "Classes in use:" + CRLF cErrorLog += "===============" + CRLF while ! Empty( __ClassName( n ) ) cErrorLog += " " + Str( n, 3 ) + " " + __ClassName( n++ ) + CRLF end cErrorLog += CRLF + "Memory Analysis" + CRLF cErrorLog += "===============" + CRLF #ifdef __CLIPPER__ cErrorLog += " Static memory:" + CRLF cErrorLog += " data segment: 64k" + CRLF #endif #ifdef __CLIPPER__ cErrorLog += " Initial size: " + ; LTrim( Str( nInitDSSize() ) ) + ; " bytes (SYMP=" + LTrim( Str( nSymPSize() ) ) + ; ", Stack=" + LTrim( Str( nStackSize() ) ) + ; ", Heap=" + LTrim( Str( nHeapSize() ) ) + ")" + CRLF cErrorLog += " PRG Stack: " + ; LTrim( Str( 65535 - ( nStatics() * 14 ) - nInitDSSize() ) ) + ; " bytes" + CRLF #endif #ifdef __CLIPPER__ cErrorLog += " " + LTrim( Str( nStatics() ) ) + " Static variables: " + ; LTrim( Str( nStatics() * 14 ) ) + " bytes" + CRLF + CRLF #else cErrorLog += " " + LTrim( Str( nStatics() ) ) + " Static variables" + ; CRLF + CRLF #endif cErrorLog += " Dynamic memory consume:" + CRLF cErrorLog += " Actual Value: " + Str( MemUsed() ) + " bytes" + CRLF cErrorLog += " Highest Value: " + Str( MemMax() ) + " bytes" + CRLF // nSymNames() no longer returns a real value! 15/April/97 /* cErrorLog += " SYMBOLS segment" + CRLF cErrorLog += " " + LTrim( Str( nSymNames() ) ) + " SymbolNames: " + ; LTrim( Str( nSymNames() * 16 ) ) + " bytes" */ // Generates a file with an Error Log BEGIN SEQUENCE oOldError = ErrorBlock( { || DoBreak() } ) MemoWrit( "Error.log", cErrorLog ) END SEQUENCE ErrorBlock( oOldError ) DEFINE DIALOG oDlg ; SIZE 300, 200 + If( lIsWinNT, 50, 0 ) ; TITLE DLG_TITLE @ 0, 0 SAY oSay PROMPT OemToAnsi( cMessage ) ; CENTERED OF oDlg FONT oFont SIZE 149, 20 oSay:nStyle = nOR( oSay:nStyle, 128 ) // SS_NOPREFIX oSay:nTop = 3 oSay:nLeft = 22 oSay:nBottom = 25 oSay:nRight = 148 @ 24, 6 SAY "&Stack List" OF oDlg FONT oFont PIXEL n = aStack[ 1 ] @ 33, 3 LISTBOX oLbx VAR n ITEMS aStack OF oDlg ; SIZE 145, 60 + If( lIsWinNT, 18, 0 ) PIXEL if nButtons == 1 .or. nButtons == 3 @ 88 + If( lIsWinNT, 24, 0 ), 60 BUTTON "&Quit" OF oDlg ACTION oDlg:End() ; SIZE 30, 11 PIXEL FONT oFont DEFAULT else @ 88 + If( lIsWinNT, 24, 0 ), 37 BUTTON "&Quit" OF oDlg ACTION oDlg:End() ; SIZE 30, 11 PIXEL FONT oFont endif if e:CanRetry @ 88 + If( lIsWinNT, 24, 0 ), If( nButtons == 2, 82, 13 ) BUTTON "&Retry" ; OF oDlg ACTION ( lRet := .t., oDlg:End() ) ; SIZE 30, 11 FONT oFont PIXEL endif if e:CanDefault @ 88 + If( lIsWinNT, 24, 0 ), 108 BUTTON "&Default" OF oDlg ; ACTION ( lRet := .f., oDlg:End() ) ; SIZE 30, 11 FONT oFont PIXEL endif @ 21, 100 BUTTON "See Error.log file" OF oDlg FONT oFont PIXEL ; SIZE 47, 10 ; ACTION WinExec( "Notepad.exe error.log" ) ACTIVATE DIALOG oDlg CENTERED ; ON PAINT DrawBitmap( hDC, hLogo, 6, 6 ) DeleteObject( hLogo ) if lRet == nil .or. ( !LWRunning() .and. lRet ) SET RESOURCES TO ErrorLevel( 1 ) QUIT // must be QUIT !!! endif return lRet //----------------------------------------------------------------------------// static function DoBreak() BREAK return nil //----------------------------------------------------------------------------// static func ErrorMessage( e ) // start error message local cMessage := if( empty( e:OsCode ), ; if( e:severity > ES_WARNING, "Error ", "Warning " ),; "(DOS Error " + NTRIM(e:osCode) + ") " ) // add subsystem name if available cMessage += if( ValType( e:SubSystem ) == "C",; e:SubSystem() ,; "???" ) // add subsystem's error code if available cMessage += if( ValType( e:SubCode ) == "N",; "/" + NTRIM( e:SubCode ) ,; "/???" ) // add error description if available if ( ValType( e:Description ) == "C" ) cMessage += " " + e:Description endif // add either filename or operation cMessage += if( ! Empty( e:FileName ),; ": " + e:FileName ,; if( !Empty( e:Operation ),; ": " + e:Operation ,; "" ) ) return cMessage //----------------------------------------------------------------------------// // returns extended info for a certain variable type static function cGetInfo( uVal ) local cType := ValType( uVal ) do case case cType == "C" return '"' + cValToChar( uVal ) + '"' case cType == "O" return "Class: " + uVal:ClassName() case cType == "A" return "Len: " + Str( Len( uVal ), 4 ) otherwise return cValToChar( uVal ) endcase Return nil //----------------------------------------------------------------------------// #include "hbexcept.ch" //----------------------------------------------------------------------------// Function GpfHandler( Exception ) local cMsg, nCode, oError // TraceLog( "GPF:", Exception ) // memowrit( "gpf.txt", valtoprg( Exception ) ) IF Exception <> NIL nCode := Exception:ExceptionRecord:ExceptionCode SWITCH nCode CASE EXCEPTION_ACCESS_VIOLATION cMsg := "EXCEPTION_ACCESS_VIOLATION - O thread tentou ler/escrever num endereço virtual ao qual não tinha acesso." EXIT CASE EXCEPTION_DATATYPE_MISALIGNMENT cMsg := "EXCEPTION_DATATYPE_MISALIGNMENT - O thread tentou ler/escrever dados desalinhados em hardware que não oferece alinhamento. Por exemplo, valores de 16 bits precisam ser alinhados em limites de 2 bytes; valores de 32 bits em limites de 4 bytes, etc. " EXIT CASE EXCEPTION_ARRAY_BOUNDS_EXCEEDED cMsg := "EXCEPTION_ARRAY_BOUNDS_EXCEEDED - O thread tentou acessar um elemento de array fora dos limites e o hardware possibilita a checagem de limites." EXIT CASE EXCEPTION_FLT_DENORMAL_OPERAND cMsg := "EXCEPTION_FLT_DENORMAL_OPERAND - Um dos operandos numa operação de ponto flutuante está desnormatizado. Um valor desnormatizado é um que seja pequeno demais para poder ser representado no formato de ponto flutuante padrão." EXIT CASE EXCEPTION_FLT_DIVIDE_BY_ZERO cMsg := "EXCEPTION_FLT_DIVIDE_BY_ZERO - O thread tentou dividir um valor em ponto flutuante por um divisor em ponto flutuante igual a zero." EXIT CASE EXCEPTION_FLT_INEXACT_RESULT cMsg := "EXCEPTION_FLT_INEXACT_RESULT - O resultado de uma operação de ponto flutuante não pode ser representado como uma fração decimal exata." EXIT CASE EXCEPTION_FLT_INVALID_OPERATION cMsg := "EXCEPTION_FLT_INVALID_OPERATION - Qualquer operação de ponto flutuante não incluída na lista." EXIT CASE EXCEPTION_FLT_OVERFLOW cMsg := "EXCEPTION_FLT_OVERFLOW - O expoente de uma operação de ponto flutuante é maior que a magnitude permitida pelo tipo correspondente." EXIT CASE EXCEPTION_FLT_STACK_CHECK cMsg := 'EXCEPTION_FLT_STACK_CHECK - A pilha ficou desalinhada ("estourou" ou "ficou abaixo") como resultado de uma operação de ponto flutuante.' EXIT CASE EXCEPTION_FLT_UNDERFLOW cMsg := "EXCEPTION_FLT_UNDERFLOW - O expoente de uma operação de ponto flutuante é menor que a magnitude permitida pelo tipo correspondente." EXIT CASE EXCEPTION_INT_DIVIDE_BY_ZERO cMsg := "EXCEPTION_INT_DIVIDE_BY_ZERO - O thread tentou dividir um valor inteiro por um divisor inteiro igual a zero." EXIT CASE EXCEPTION_INT_OVERFLOW cMsg := "EXCEPTION_INT_OVERFLOW - O resultado de uma operação com inteiros causou uma transposição (carry) além do bit mais significativo do resultado." EXIT CASE EXCEPTION_PRIV_INSTRUCTION cMsg := "EXCEPTION_PRIV_INSTRUCTION - O thread tentou executar uma instrução cuja operação não é permitida no modo de máquina atual." EXIT CASE EXCEPTION_IN_PAGE_ERROR cMsg := "EXCEPTION_IN_PAGE_ERROR - O thread tentou acessar uma página que não estava presente e o sistema não foi capaz de carregar a página. Esta exceção pode ocorrer, por exemplo, se uma conexão de rede é perdida durante a execução do programa via rede." EXIT CASE EXCEPTION_ILLEGAL_INSTRUCTION cMsg := "EXCEPTION_ILLEGAL_INSTRUCTION - O thread tentou executar uma instrução inválida." EXIT CASE EXCEPTION_NONCONTINUABLE_EXCEPTION cMsg := "EXCEPTION_NONCONTINUABLE_EXCEPTION - O thread tentou continuar a execução após a ocorrência de uma exceção irrecuperável." EXIT CASE EXCEPTION_STACK_OVERFLOW cMsg := "EXCEPTION_STACK_OVERFLOW - O thread esgotou sua pilha (estouro de pilha)." EXIT CASE EXCEPTION_INVALID_DISPOSITION cMsg := "EXCEPTION_INVALID_DISPOSITION - Um manipulador (handle) de exceções retornou uma disposição inválida para o tratador de exceções. Uma exceção deste tipo nunca deveria ser encontrada em linguagens de médio/alto nível." EXIT CASE EXCEPTION_GUARD_PAGE cMsg := "CASE EXCEPTION_GUARD_PAGE" EXIT CASE EXCEPTION_INVALID_HANDLE cMsg := "EXCEPTION_INVALID_HANDLE" EXIT CASE EXCEPTION_SINGLE_STEP cMsg := "EXCEPTION_SINGLE_STEP Um interceptador de passos ou outro mecanismo de instrução isolada sinalizou que uma instrução foi executada." EXIT CASE EXCEPTION_BREAKPOINT cMsg := "EXCEPTION_BREAKPOINT - Foi encontrado um ponto de parada (breakpoint)." EXIT DEFAULT cMsg := "UNKNOWN EXCEPTION (" + cStr( Exception:ExceptionRecord:ExceptionCode ) + ")" END // IF cMsg <> NIL // Tracelog( "GPF Intercepted!", cMsg ) // Alert( "GPF Intercepted!" + CRLF + cMsg ) // ENDIF ENDIF // Throw( ErrorNew( "GPFHANDLER", 0, 0, ProcName(), "Erro de GPF", { cMsg, Exception, nCode }, Procfile(), Procname(), procline() ) ) oError := ErrorNew( "GPFHANDLER", 0, 0, ProcName(), "Erro de GPF", { cMsg, Exception, nCode }, Procfile(), Procname(), procline() ) ErrorDialog( oError ) Return EXCEPTION_EXECUTE_HANDLER Eu uso em meus sistemas, espero que ajude, []´s
  21. Boa tarde, Coloque um 0(ZERO) antes da chave que fecha o comando, assim: ,0 } usando o nKey = 32, este 0(zero) evita duas passadas da Function. Espero que resolva. []´s Luiz
  22. Boa noite, O comando emite a DANFE da NFCe usando o xml da nota já emitida, seja xml padrão sefaz ou daruma/migrate, o codigo CSC já foi passado no momento da emissão da nota, ou seja, pra emitir a DANFE da NFCe, voce só precisa informar o nome do xml. []´s Luiz Augusto São José dos Pinhais - PR Fivewin + xharbour
  23. Bom dia, Passe a URL em branco também, ou seja, informe assim: StrPathXMLVenda := 'nome do xml' StrPathRetornoWS := '' StrLinkQrCode := '' iNumColunas := 48 iTipoNF := 1 iRetorno := iCFImprimir_NFCe_Daruma( StrPathXMLVenda,; StrPathRetornoWS,; StrLinkQrCode,; iNumColunas,; iTipoNF ) Assim vai funcionar corretamente. []´s Luiz Augusto São Jose dos Pinhais, PR Fivewin + xharbour
  24. gunafe

    NFC-e

    Bom dia a todos, Não queria falar nada sobre o assunto, mas, diante da demonstração de total falta de..., bom, até me fugiu a palavra no momento, depois eu lembro. Vamos lá: Já esta em uso no amazonas, mato grosso e rio grande de sul( em testes ainda ), os outros é oficial até onde eu sei; É possivel desenvolver para o seu estado e usar, desde que tenha um servidor disponivel pra isso. A Daruma disponibilizou um ambiente de testes, o que significa que é possivel desenvolver a NFCe sem muito esforço e com um suporte de peso, não sei dos outros fabricantes quanto ao assunto, mas acho que eles também estão se mexendo. Então, eu ainda não fiz nenhum teste, somente me cadastrei e peguei uma chave para os testes, mas pelo que eu já vi, esse "papo" de lib pra mim não cola, até porque não é preciso nada disso, não é por estado, é nacional( vou checar esta informação ) o exemplo esta la, livre, pra quem quiser pegar, e olha que é um dos gigantes da automoção que disponibilizou, já que o campo de venda de ECF tende a diminuir com a NFCe, eles poderiam ter ficado quietos, mas não, mostraram a cara sem medo de perder espaço. Bom é isso, falei o que penso e se eu desenvolver a NFCe disponibilizo pra quem quiser. []´s Luiz Augusto São José dos Pinhais - PR
  25. gunafe

    Sintegra

    Duvida resolvida e retirada! []´s Luiz Augusto São José dos Pinhais - PR
×
×
  • Create New...