Can`t open # include file: FISCAL.CH

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Can`t open # include file: FISCAL.CH

Mensagem por porter »

ola pessoal, no xHarbour tenho um comando assim:

Código: Selecionar todos

# INCLUDE "FISCAL.CH" <-- erro nessa linha, Can`t open # include file: FISCAL.CH
Porta := 0
Porta := FOpen_Bema("COM1", FO_READWRITE + FO_COMPAT)
a biblioteca esta no diretorio corrente, mas mesmo assim da erro na linha acima na compilacao, no clipper sempre fiz dessa forma e deu certo, eu tenho que declarar essa biblioteca em algum outro lugar ?
tenho um arquivo LOJA.EXE.XBP que tem o nome de todos os prg`s seria nele que eu teria que declarar, se for em qual linha eu declaro.

obrigado.
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Can`t open # include file: FISCAL.CH

Mensagem por Antonio »

Tenta assim:

Código: Selecionar todos

#INCLUDE "FISCAL.CH"
ao inves de assim: # INCLUDE "FISCAL.CH"
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Can`t open # include file: FISCAL.CH

Mensagem por alxsts »

Olá!

Se estiver rodando em Unix ou Linux, lembre-se que os nomes de arquivo nestes ambientes são case-sensitive. Fiscal.ch, FISCAL.CH e fiscal.ch são diferentes...
[]´s
Alexandre Santos (AlxSts)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Can`t open # include file: FISCAL.CH

Mensagem por porter »

ola pessoal, esse #include "FISCAL.CH", se refere a biblioteca BEMAFI que é uma biblioteca externa da impressora BEMATECH, em geral, quando for biblioteca externa, onde eu declaro essa BEMAFI.

Windows, xHARBOUR

arquivo LOJA.EXE.XBP

Código: Selecionar todos

CINI = 
C_OUTPUTFOLDER = 
DEFFILE = 
INCLUDEFOLDERS = 
LAUTORUN = 
LDEBUG = .T.
LGUI = .F.
LIBFOLDERS = 
LMT = .F.
LNOAUTOFWH = .F.
LPRG_CLASSICDEBUG = .T.
LPRG_DEBUG = .T.
LUSEDLL = .F.
MAPFILE = 
MYC_FLAGS = 
MYDEFINES = 
MYLINK_FLAGS = -Gn -s
MYPRG_FLAGS = 
MYRC_FLAGS = 
MYSLY_FLAGS = 
OUTPUTFOLDER = 
PRG_OUTPUTFOLDER = 
RC_OUTPUTFOLDER = 
RUNARGUMENTS = 
SLY_OUTPUTFOLDER = 
STARTIN = 
TARGETFOLDER = 

[LOJA.PRG]
MYC_FLAGS = 
MYDEFINES = 
MYPRG_FLAGS = 

[FUNCOES.PRG]
MYC_FLAGS = 
MYDEFINES = 
MYPRG_FLAGS = 

[FISCAL.PRG]
MYC_FLAGS = 
MYDEFINES = 
MYPRG_FLAGS = 
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Can`t open # include file: FISCAL.CH

Mensagem por Itamar M. Lins Jr. »

O arquivo tem que está no PATH!
Coloque os arquivos *.CH no mesmo lugar que estão os outros *.CH no xHarbour a mesma coisa deve fazer com as LIBs.

Se estiver enfrentando muita dificuldade no xHarbour, no Harbour é mais fácil.
Use o Harbour p/ trabalhar com a BEMAFI32.DLL é muito mais simples.

//Aqui podemos trabalhar tanto com o observer[daruma], Bematech, ou via DLL.

Código: Selecionar todos

#include "dll.ch"
...
If lMonitor
Else
   If File("bemafi32.dll")
      hDll:=DllLoad("bemafi32.dll")
   Else
      hwg_Msgstop("Falha carregando bemafi32.dll")
      return .f.
   EndIf
EndIf

Código: Selecionar todos

   If lBematech
      If lMonitor
         Comando := "003|"+cCPFCNPJ+"|"
         GravaArquivo(comando)
      Else
         BematechAbreCupom(@cCPFCNPJ)
      EndIf
   ElseIf lDaruma
      Comando := "1000;"+cCPFCNPJ+";"
      GravaArquivo(comando)
   Else
      hwg_msgstop('Sem Modelo')
      Return .F.
   EndIf
Voce chama a DLL sem nenhuma dificuldade, use o manual bemafi32.chm com a sintaxe e exemplos dos comandos.

Código: Selecionar todos

No manual vc tem:
Vende item após a abertura do cupom fiscal. Essa função permite também a venda de itens com 3 casas decimais no valor unitário. 

compatduas 

Parâmetros: 

Codigo: STRING até 13 caracteres com o código do produto. 

Descricao: STRING até 29 caracteres com a descrição do produto. 

Aliquota: STRING com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice). 

TipoQuantidade: 1 (um) caracter indicando o tipo de quantidade. I - Inteira e F - Fracionária. 

Quantidade: STRING com até 4 dígitos para quantidade inteira e 7 dígitos para quantidade fracionária. Na quantidade fracionária são 3 casas decimais. 

CasasDecimais: INTEIRO indicando o número de casas decimais para o valor unitário (2 ou 3). 

ValorUnitario: STRING até 8 dígitos para valor unitário. 

TipoDesconto: 1 (um) caracter indicando a forma do desconto. '$' desconto por valor e '%' desconto percentual. 

ValorDesconto: String com até 8 dígitos para desconto por valor (2 casas decimais) e 4 dígitos para desconto percentual. 

Possíveis retornos da Função (INTEIRO): 

0: Erro de comunicação. 
1: OK. 
-2: Parâmetro inválido na função. 
-3: Alíquota não programada. 
-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows. 
-5: Erro ao abrir a porta de comunicação. 
-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2). 

Observações: 

- Imagine que há duas alíquotas com o valor 12% cadastradas na impressora. A primeira cadastrada na posição 01 como ICMS e a outra na posição 05 como ISS. Se você informar o valor 1200 ou 12,00 no parâmetro "alíquota" a função irá imprimir o item usando a alíquota 01 de ICMS. A função lê as alíquotas da impressora e usa o índice da primeira ocorrência. Para usar a alíquota de ISS você deverá passar o índice 05 e não o valor 1200 ou 12,00. Se você não tiver duas alíquotas com o mesmo valor cadastradas na impressora use sempre o valor no parâmetro alíquota. 

- O cupom fiscal deve estar aberto. 

Exemplo: 

' Exemplo em Visual Basic 
iRetorno = Bematech_FI_VendeItem("123", "Caneta", "1200", "I", "10", 2, "0,25", "%", "0000") 

// Exemplo em Delphi 
cCodigo        := '123'; 
cDescricao     := 'Caneta'; 
cAliquota      := '1200'; 
cTipoQtde      := 'I'; 
cQtde          := '10'; 
iCasasDecimais := 2; 
cValor         := '0,25'; 
cTipoDesconto  := '%'; 
cValorDesc     := '0000'; 

iRetorno := Bematech_FI_VendeItem( pchar( cCodigo ), 
                                   pchar( cDescricao ), 
                                   pchar( cAliquota ), 
                                   pchar( cTipoQtde ), 
                                   pchar( cQtde ), 
                                   iCasasDecimais, 
                                   pchar( cValor ), 
                                   pchar( cTipoDesconto ), 
                                   pchar( cValorDesc ) ); 

A chamada no Harbour via DLL é simples veja:

            nRetVal := DllCall(hDll,DLL_OSAPI,"Bematech_FI_VendeItem",;
                                             pd->cod_mercad,;
                                             substr(pd->mercadoria,1,29),;
                                             eq->situa_trib,;
                                             "F",;
                                             Zero_Esq(pd->quantidade,7,3),;
                                             2,;
                                             zero_esq(pd->preco_unit,8,2),;
                                             SD,;
                                             Desc)
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Can`t open # include file: FISCAL.CH

Mensagem por porter »

olá Itamar, essa é a primeira lib externa que estou usando, não estou entendendo como tenho que colocar no path, estou compilando assim:

C:\xHarbour\BIN\XBuild LOJA.EXE.XBP -DEBUG -CLASSIC -B -ALL

As libs do xHarbour estão em C:\bcc55\Lib, tenho colocar um path direcionado para essa pasta, se for onde coloco esse path ?

Windows, xHarbour

obrigado.
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Can`t open # include file: FISCAL.CH

Mensagem por Antonio »

porter,

Esta lib (lib de terceiros) que voce esta tentando usar deve ser colocada em \xharbour\lib (não é regra) mas ajuda a organizar as coisas.
Em C:\bcc55\Lib, devem ficar as libs do Borland Compiler (BCC).
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Can`t open # include file: FISCAL.CH

Mensagem por porter »

olá Antonio, eu copiei a BEMAFI.LIB para c:\xHarbour\lib e na compilação continua dando o mesmo erro nessa linha:
#INCLUDE "FISCAL.CH"

Se tem que colocar essa pasta no path, eu não sei onde coloca se é no programa ou na compilação, entendeu.

obrigado.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Can`t open # include file: FISCAL.CH

Mensagem por Itamar M. Lins Jr. »

Ola!
Faltou apenas copiar o arquivo fiscal.ch para a pasta c:\xharbour\include, ok!
Ou vc pode copiar para a pasta onde esta o arquivo loja.prg

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Can`t open # include file: FISCAL.CH

Mensagem por Antonio »

Certo!

arquivos.ch são arquvos de cabeçalho.
tambem não é uma regra, mas por enquanto organize suas coisas.... coloque o fiscal.ch em c:\xharbour\include
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Can`t open # include file: FISCAL.CH

Mensagem por porter »

obrigado Antonio e Itamar, deu certo, copiei bemafi.lib para xHarbour\lib e fiscal.ch para xHarbour\include.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Can`t open # include file: FISCAL.CH

Mensagem por Toledo »

porter escreveu:no clipper sempre fiz dessa forma e deu certo
porter escreveu:eu copiei a BEMAFI.LIB para c:\xHarbour\lib
Amigos, só relembrando: bibliotecas LIB de terceiros que eram utilizadas no Clipper, devem ser recompiladas para [x]Harbour, então resta saber se a BEMAFI.LIB pode ser usada com o [x]Harbour!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Can`t open # include file: FISCAL.CH

Mensagem por Itamar M. Lins Jr. »

Essa bemafi.lib se não estou enganado é uma velha lib que roda por ai na net, importada via implib do BCC.
Ai o pessoal da Bematech atualiza a bemafi32.dll é mais sofrimento p/ usuários do xHarbour.... Eu passei por essa via crucis algumas vezes... funciona uma coisa outra não funcionava... Isso na época que usava o xHarbour quando tinha uma boa equipe lá.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder