Jump to content
Fivewin Brasil

maudruidas

Membros
  • Posts

    905
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by maudruidas

  1. Crisvan, bom dia, 2 destas outras funções estão ignoradas (//) e uma é usada para venda de item nas impressoras ECFs comuns. Para o SAT criaram uma nova DLL BemaFI32.DLL 7 que serve tanto para ECFs antigas como para o SAT, onde foi adicionada a nova função Bematech_FI_VendeItemCompleto() que a que está dando erro. Quanto a porta ela está configurada no arquivo bemafi32.ini. Como funciona o SAT Bematech: 1- É instalado o programa Fiscal Manager Sat que controla o equipamento RB-1000 FI responsável pelo controle com a SEFAZ (Transmite, recebe, Cria XML, enfim faz tudo). 2- É instalado uma impressora virtual Virtual ECF 4000 emulando uma ECF de verdade na porta COM8. 3- Meu sistema carrega a nova DLL envio os comandos, a Virtual ECF envia para o RB-1000 FI que faz o resto. Os comandos ABRIR CUPOM, CANCELAR CUPOM, LEITURA X, REDUÇÃO Z e outros funcionam normalmente com esta nova DLL porém a nova função Bematech_FI_VendeItemCompleto() que adicionei causa este erro mencionado ao enviar. Veja de outra forma mais clara: Carregando a nova DLL XDLL := LoadLib32("C:\SISCOM\BEMAFI32.dll") Adicionando a nova função: // Vende ítem completo DLL32 FUNCTION VENDCOM(Codigo AS STRING,; EAN13 AS STRING,; Descricao AS STRING,; IndiceDepartamento AS STRING,; Aliquota AS STRING,; UnidadeMedida AS STRING,; TipoQuantidade AS STRING,; CasasDecimaisQtde AS STRING,; Quantidade AS STRING,; CasasDecimaisValor AS STRING,; ValorUnitario AS STRING,; TipoDesconto AS STRING,; ValorAcrescimo AS STRING,; ValorDesconto AS STRING,; ArredondaTrunca AS STRING,; NCM AS STRING,; CFOP AS STRING,; InformacaoAdicional AS STRING,; CST_ICMS AS STRING,; OrigemProduto AS STRING,; ItemListaServico AS STRING,; CodigoISS AS STRING,; NaturezaOperacaoISS AS STRING,; IndicadorIncentivoFiscal AS STRING,; CodigoIBGE AS STRING,; CSOSN AS STRING,; ValorBaseCalculoSimples AS STRING,; ValorICMSRetidoSimples AS STRING,; ModalidadeBaseCalculo AS STRING,; PercentualReducaoBase AS STRING,; ModalidadeBC AS STRING,; PercentualMargemICMS AS STRING,; PercentualBCICMS AS STRING,; ValorReducaoBCICMS AS STRING,; ValorAliquotaICMS AS STRING,; ValorICMS AS STRING,; ValorICMSDesonerado AS STRING,; MotivoDesoneracaoICMS AS STRING,; AliquotaCalculoCredito AS STRING,; ValorCreditoICMS AS STRING,; Reservado01 AS STRING,; Reservado02 AS STRING,; Reservado03 AS STRING,; Reservado04 AS STRING,; Reservado05 AS STRING,; Reservado06 AS STRING,; Reservado07 AS STRING,; Reservado08 AS STRING,; Reservado09 AS STRING,; Reservado10 AS STRING,; Reservado11 AS STRING,; Reservado12 AS STRING,; Reservado13 AS STRING,; Reservado14 AS STRING,; Reservado15 AS STRING,; Reservado16 AS STRING,; Reservado17 AS STRING,; Reservado18 AS STRING,; Reservado19 AS STRING,; Reservado20 AS STRING,; Reservado21 AS STRING,; Reservado22 AS STRING,; Reservado23 AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendeItemCompleto" LIB xDll Chamando a função com valores fixos igual do teste em delhi fornecido pela Bematech: CursorWait() VA01 := "1234567890" && Codigo VA02 := "7891000081754" && EAN13 VA03 := "Água Mineral" && Descricao VA04 := "01" && IndiceDepartamento VA05 := "I1" && Aliquota VA06 := "UN" && UnidadeMedida VA07 := "I" && TipoQuantidade VA08 := "2" && CasasDecimaisQtde VA09 := "1,00" && Quantidade VA10 := "2" && CasasDecimaisValor VA11 := "0,50" && ValorUnitario VA12 := "$" && TipoDesconto VA13 := "00" && ValorAcrescimo VA14 := "00" && ValorDesconto VA15 := "A" && ArredondaTrunca VA16 := "62000000" && NCM VA17 := "5101" && CFOP VA18 := "INFORMAÇÕES" && InformacaoAdicional VA19 := "00" && CST_ICMS VA20 := "0" && OrigemProduto VA21 := "1234" && ItemListaServico VA22 := "" && CodigoISS VA23 := "" && NaturezaOperacaoIS VA24 := "" && IndicadorIncentivoFiscal VA25 := "5103403" && CodigoIBGE VA26 := "" && CSOSN VA27 := "" && ValorBaseCalculoSimples VA28 := "" && ValorICMSRetidoSimples VA29 := "" && ModalidadeBaseCalculo VA30 := "" && PercentualReducaoBase VA31 := "0" && ModalidadeBC VA32 := "" && PercentualMargemICMS VA33 := "" && PercentualBCICMS VA34 := "" && ValorReducaoBCICMS VA35 := "" && ValorAliquotaICMS VA36 := "" && ValorICMS VA37 := "" && ValorICMSDesonerado VA38 := "" && MotivoDesoneracaoICMS VA39 := "" && AliquotaCalculoCredito VA40 := "" && ValorCreditoICMS VA41 := "" && Reservado01 VA42 := "" && Reservado02 VA43 := "" && Reservado03 VA44 := "" && Reservado04 VA45 := "" && Reservado05 VA46 := "" && Reservado06 VA47 := "" && Reservado07 VA48 := "" && Reservado08 VA49 := "" && Reservado09 VA50 := "" && Reservado10 VA51 := "" && Reservado11 VA52 := "" && Reservado12 VA53 := "" && Reservado13 VA54 := "" && Reservado14 VA55 := "" && Reservado15 VA56 := "" && Reservado16 VA57 := "" && Reservado17 VA58 := "" && Reservado18 VA59 := "" && Reservado19 VA60 := "" && Reservado20 VA61 := "" && Reservado21 VA62 := "" && Reservado22 VA63 := "" && Reservado23 IF(nRet := VENDCOM(VA01, VA02, VA03, VA04, VA05, VA06, VA07, VA08, VA09, VA10, VA11, VA12, VA13, VA14, VA15, VA16,; VA17, VA18, VA19, VA20, VA21, VA22, VA23, VA24, VA25, VA26, VA27, VA28, VA29, VA30, VA31, VA32, VA33, VA34, VA35,; VA36, VA37, VA38, VA39, VA40, VA41, VA42, VA43, VA44, VA45, VA46, VA47, VA48, VA49, VA50, VA51, VA52, VA53, VA54,; VA55, VA56, VA57, VA58, VA59, VA60, VA61, VA62, VA63)) DO CASE CASE nRet = -2 MsgStop("Não Foi Possível Vender o Item, Parâmetro Inválido na Função !","Atenção") CASE nRet = -3 MsgStop("Não Foi Possível Vender o Item, Alíquota " + TRI + " Não Programada !","Atenção") OTHER MsgStop("Não Foi Possível Vender o Item !","Atenção") ENDCASE ELSE MsgStop("Item Vendido Com Sucesso","Atenção") ENDIF RETURN nil Usando o Programa teste da Bematech em Delphi com mesma DLL dentro da pasta do meu sistema funciona perfeitamente. O erro está na hora de carregar a nova função. Obrigado, peço que continue me auxiliando, pois o pessoal da Bematech não tem nenhum ex. em xHarbour, para eles tudo é Delphi kk. Se mais pessoas poderem me ajudar agradeço. Se eu precisar viajar, Pagar algum custo à alguém, enfim faço qualquer negócio, o que não poço é começar a perder meus clientes.
  2. Pessoal, bom dia, estou tentando fazer meu sistema SAT. Comprei o RB-1000 FI e uma MP-4200 TH da Bematech. No meu sistema apenas teria que carregar uma nova DLL: BemaFI32.DLL e usar a nova função Bematech_FI_VendeItemCompleto, Vejam como estou chamando a DLL: XDLL := LoadLib32("C:\SISCOM\BEMAFI32.dll") DECBEMA() Observem que a função nova " Em Negrito" não existia e eu adicionei baseado no exemplo que ele deram em Delphi e no modelo das que já existem aqui. Todas as outras funções desta DLL estão funcionando, mas esta dá erro no meu programa. A instrução no "0x080080808" fez referência à memória no "0x080080808". A memória não pode ser "read". e fecha. FUNCTION DECBEMA() // Declaracoes da BEMATECH de 32 bits -> BEMAFI32.DLL //Ler total do cupom DLL32 FUNCTION BmSubTotal( SubTotal AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_SubTotal" LIB xDll //total pag no ultimo cupom DLL32 FUNCTION BmPagoUltCup( TotalPago AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ValorPagoUltimoCupom" LIB xDll //Ler número do caixa DLL32 FUNCTION BmNumeroCx( NumeroCaixa AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCaixa" LIB xDll //Ler configuração arredondamento/truncamento DLL32 FUNCTION BmVerArred( Arredonda AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaTruncamento" LIB xDll //Ativa arredondamento DLL32 FUNCTION BmLigArred( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaArredondamento" LIB xDll //Ler data do movimento DLL32 FUNCTION BmDtMovto ( DtMovto AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataMovimento" LIB xDll //Ler flag fiscal da impressora DLL32 FUNCTION BmFlagFisc( @FlagFiscal AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_FlagsFiscais" LIB xDll //Emite leitura X DLL32 FUNCTION BmLeituraX( ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraX" LIB xDll //Emite redução Z DLL32 FUNCTION BmReducaoZ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ReducaoZ" LIB xDll //Ler data e hora da impressora DLL32 FUNCTION BmDtHora ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraImpressora" LIB xDll //Faz abertura do dia DLL32 FUNCTION BmAbreDia ( Vl AS LPSTR, Fr AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AberturaDoDia" LIB xDll //Abre cupom fiscal DLL32 FUNCTION BmAbreCup ( Cgc AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AbreCupom" LIB xDll //Verifica se tem papel DLL32 FUNCTION BmVerPapel( @Linhas AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_MonitoramentoPapel" LIB xDll //Verifica se tem impressora ligada DLL32 FUNCTION BmPrintLig( ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaImpressoraLigada" LIB xDll // Horário de Verão DLL32 FUNCTION BmHoraVerao( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaHorarioVerao" LIB xDll //Cancela cupom fiscal DLL32 FUNCTION BmCanCupom( ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaCupom" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSupri(vrsupri AS LPSTR, fpagam AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Suprimento" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSangria(vrsangria AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Sangria" LIB xDll //Cancela ítem Genérico do cupom DLL32 FUNCTION BmCancItem(item AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaItemGenerico" LIB xDll //Abre a gaveta DLL32 FUNCTION BmAbreGav ( ) AS LONG PASCAL ; FROM "Bematech_FI_AcionaGaveta" LIB xDll //Ler número do cupom DLL32 FUNCTION BmNumCupom( Cupom AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCupom" LIB xDll //Emite leitura da memória fiscal por data DLL32 FUNCTION BmMemData ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalData" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt DLL32 FUNCTION BmMemDataTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialData" LIB xDll //Emite leitura da memória fiscal por Redução DLL32 FUNCTION BmMemRedu ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducao" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt DLL32 FUNCTION BmMemReduTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducao" LIB xDll //Emite leitura da memória fiscal por data MFD DLL32 FUNCTION BmMemDataMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalDataMFD" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt MFD DLL32 FUNCTION BmMemDataTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialDataMFD" LIB xDll //Emite leitura da memória fiscal por Redução MFD DLL32 FUNCTION BmMemReduMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducaoMFD" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt MFD DLL32 FUNCTION BmMemReduTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD" LIB xDll //Abre relatorio Gerencial previamente nomeado DLL32 FUNCTION BmAbrGerNo( cIndice AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreRelatorioGerencialMFD" LIB xDll //Emite cupom gerencial DLL32 FUNCTION BmCpGerAbr( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_RelatorioGerencial" LIB xDll //Usa cupom gerencial DLL32 FUNCTION BmCpUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaRelatorioGerencialMFD" LIB xDll //Fecha cupom gerencial DLL32 FUNCTION BmCpGerFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaRelatorioGerencial" LIB xDll //Verifica status da gaveta DLL32 FUNCTION BmStGaveta( @nStatus AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoGaveta" LIB xDll //Abre cupom adicional não fiscal vinculado DLL32 FUNCTION BmCupAdAbr( FormaPgto AS STRING,; Valor AS STRING,; Cupom AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB xDll //Imprime cupom não fiscal vinculado DLL32 FUNCTION BmCupAdUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB xDll // Dados da Ultima Redução DLL32 FUNCTION BmDadult( dados AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DadosUltimaReducao" LIB xDll // Retorno da Impressora DLL32 FUNCTION BmRetorno( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_RetornoImpressora" LIB xDll // Status da Impressora DLL32 FUNCTION BmEstadoImp( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoImpressora" LIB xDll //Ler número de Série da Impressora DLL32 FUNCTION BmNumSerie( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerie" LIB xDll //Ler número de Série da Impressora MFD DLL32 FUNCTION BmSerieMFD( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerieMFD" LIB xDll //Ler Ultimo Item vendido DLL32 FUNCTION BmUltItem( uitem AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_UltimoItemVendido" LIB xDll //Ler número de Reduções da Impressora DLL32 FUNCTION BmNumRedu( nredu AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroReducoes" LIB xDll //Ler status de vinculo ao ISS DLL32 FUNCTION BmVerIss( cvinciss AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaAliquotasIss" LIB xDll //Fecha cupom não fiscal DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB xDll //Vende ítem // DLL32 FUNCTION BmVendItem( Codigo AS STRING,; // Descricao AS STRING,; // Aliquota AS STRING,; // TpQte AS STRING,; // Quantid AS STRING,; // Decimal AS 7 ,; // ValUnit AS STRING,; // TpDesc AS STRING,; // ValDesc AS STRING ) AS LONG PASCAL ; // FROM "Bematech_FI_VendeItem" LIB xDll //Vende ítem //DLL32 FUNCTION BmVendItem( Codigo AS STRING,; //Descricao AS STRING,; //Aliquota AS STRING,; //TpQte AS STRING,; //Quantid AS STRING,; //Decimal AS _int,; //ValUnit AS STRING,; //TpDesc AS STRING,; //ValDesc AS STRING ) AS LONG PASCAL ; //FROM "Bematech_FI_VendeItem" LIB xDll //Vende ítem com unidade de Medida DLL32 FUNCTION BmVendItem( Codigo AS STRING,; Descricao AS STRING,; Aliquota AS STRING,; ValUnit AS STRING,; Quantid AS STRING,; Acresc AS STRING,; ValDesc AS STRING,; Indice AS STRING,; Unidade AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendeItemDepartamento" LIB xDll // Vende ítem completo DLL32 FUNCTION BmItemComp(Codigo AS STRING,; EAN13 AS STRING,; Descricao AS STRING,; IndiceDepartamento AS STRING,; Aliquota AS STRING,; UnidadeMedida AS STRING,; TipoQuantidade AS STRING,; CasasDecimaisQtde AS STRING,; Quantidade AS STRING,; CasasDecimaisValor AS STRING,; ValorUnitario AS STRING,; TipoDesconto AS STRING,; ValorAcrescimo AS STRING,; ValorDesconto AS STRING,; ArredondaTrunca AS STRING,; NCM AS STRING,; CFOP AS STRING,; InformacaoAdicional AS STRING,; CST_ICMS AS STRING,; OrigemProduto AS STRING,; ItemListaServico AS STRING,; CodigoISS AS STRING,; NaturezaOperacaoISS AS STRING,; IndicadorIncentivoFiscal AS STRING,; CodigoIBGE AS STRING,; CSOSN AS STRING,; ValorBaseCalculoSimples AS STRING,; ValorICMSRetidoSimples AS STRING,; ModalidadeBaseCalculo AS STRING,; PercentualReducaoBase AS STRING,; ModalidadeBC AS STRING,; PercentualMargemICMS AS STRING,; PercentualBCICMS AS STRING,; ValorReducaoBCICMS AS STRING,; ValorAliquotaICMS AS STRING,; ValorICMS AS STRING,; ValorICMSDesonerado AS STRING,; MotivoDesoneracaoICMS AS STRING,; AliquotaCalculoCredito AS STRING,; ValorCreditoICMS AS STRING,; Reservado01 AS STRING,; Reservado02 AS STRING,; Reservado03 AS STRING,; Reservado04 AS STRING,; Reservado05 AS STRING,; Reservado06 AS STRING,; Reservado07 AS STRING,; Reservado08 AS STRING,; Reservado09 AS STRING,; Reservado10 AS STRING,; Reservado11 AS STRING,; Reservado12 AS STRING,; Reservado13 AS STRING,; Reservado14 AS STRING,; Reservado15 AS STRING,; Reservado16 AS STRING,; Reservado17 AS STRING,; Reservado18 AS STRING,; Reservado19 AS STRING,; Reservado20 AS STRING,; Reservado21 AS STRING,; Reservado22 AS STRING,; Reservado23 AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendeItemCompleto" LIB xDll Exemplo do meu programa: #include "FiveWin.ch" #include "CORGET.Ch" #include "VGET.CH" #include "TSBUTTON.CH" #include "Utilprn.ch" #Define BRWBACK 14483196 // Amarelo enbranquecido #Define COR1 14410170 #Define COR2 14810095 #Define COR3 RGB(255,128,128) // Rosa #Define COR4 RGB(250,168,86) // Laranja #define CLR_AZUL nRGB(204, 218, 241) #define PRETO nRGB( 0,0,0) #define XPAZULC nRGB( 111,143,175) #define _VIDEO_CH #define _OBJECTS_CH #define _DDE_CH FUNCTION TESSAT() CursorWait() IF !GrvCmdFis(10) MsgStop("Nenhuma Impressora Fiscal Foi Detectada !","Atenção") RETURN nil ENDIF IF (nRet := BmAbreCup("096.372.418-50")) <> 1 MsgStop("Não Foi Possível Abrir Cupom Fiscal !","Atenção") RETURN nil ENDIF CPRO := "1234567890" EAN13 := "7891000081754" DPRO := "Água Mineral" IDP := "01" ALI := "T02" UNI := "UN" TPQ := "I" CDQ := "2" XQU := "100" CDV := "2" XVD := "349" TPD := "$" VACR := "000" VDES := "000" ART := "A" NCM := "62000000" CFOP := "5101" IFA := "INFORMAÇÕES" CSTI := "00" OPR := "0" ILS := "1234" CISS := "" NISS := "" IIFS := "" CIBGE := "5103403" CSOSN := "500" VBCS := "000" VIRS := "000" MBC := "3" PRB := "1000" MOBC := "0" PMICMS := "1000" PBCICMS := "1000" VRBCICMS := "500" VAICMS := "1500" VICMS := "500" VICMSD := "200" MDICMS := "9" ACC := "1700" VCICMS := "500" RE01 := "" RE02 := "" RE03 := "" RE04 := "" RE05 := "" RE06 := "" RE07 := "" RE08 := "" RE09 := "" RE10 := "" RE11 := "" RE12 := "" RE13 := "" RE14 := "" RE15 := "" RE16 := "" RE17 := "" RE18 := "" RE19 := "" RE20 := "" RE21 := "" RE22 := "" RE23 := "" nRet := BmItemComp(CPRO, EAN13, DPRO, IDP, ALI, UNI, TPQ, CDQ, XQU, CDV, XVD, TPD, VACR, VDES, ART, NCM, CFOP, IFA,; CSTI, OPR, ILS, CISS, NISS, IIFS, CIBGE, CSOSN, VBCS, VIRS, MBC, PRB, MOBC, PMICMS, PBCICMS, VRBCICMS, VAICMS,; VICMS, VICMSD, MDICMS, ACC, VCICMS, RE01, RE02, RE03, RE04, RE05, RE06, RE07, RE08, RE09, RE10, RE11, RE12, RE13,; RE14, RE15, RE16, RE17, RE18, RE19, RE20, RE21, RE22, RE23 ) IF (nRet := BmFormaPagto("Dinheiro",XVD)) <> 1 MsgStop("Não Foi Possível Adicionar Forma de Pagamento Dinheiro!","Atenção") RETURN nil ENDIF ****************** Finaliza o Fechamento IF (nRet := BmTerminaFechamento("KJKJKJK")) <> 1 MsgStop("Não Foi Possível Fechar o Cupom Fiscal!","Atenção") RETURN nil ENDIF RETURN(.T.) Agradeço se alguém poder me ajudar. Se precisar viajar eu vou. Preciso urgente resolver.
  3. Pessoal, bom dia, gostaria de saber porque nos meus campos get, vget quando teclo END ele não chega até o final + 1 do campo. Por exemplo, se quero apagar todo campo com o backspace e aperto END ele para no penúltimo caracter. Tem jeito de mudar isto ? Obrigado.
  4. Pessoal Funcionou da seguinte forma: Usei esta DLL DLL32 function BmMFDAto1704( cOrigem AS STRING,; //-- Path+nome do arquivo contendo o download da MFD (.mfd). cData AS STRING); //-- Data no formato "DD/MM/AAAA". AS LONG PASCAL FROM "Bematech_FI_GeraRegistrosCAT52MFD" LIB xDll Não informei o arquivo MFD, apenas a data no caso abaixo varável texto XDAT IF (nRet := BmMFDAto1704("", XDAT)) <> 1 MsgStop("Não Foi Possível Gerar o Arquivo","Atenção") RETURN nil ENDIF Outras mudanças: Eu estava carregando todas DLLs da Bematech necessárias BEMAFI32, BEMAMFD, BEMAFI32.INI, etc na pasta do sistema. Deixei apenas a BEMAFI32.DLL na pasta do sistema e o restante na pasta C:\WINDOWS\SYSTEM32. Ele passou a gerar todos os arquivos (MFD e TXT) na pasta path definida no BEMAFI32.INI no meu caso C:\SISCOM\FISCO. Abaixo está a configuração da minha Bemafi32.ini : ;----------------------------------------------------------------------------; ; ; ; BEMAFI32.INI ; ; Ver 5.8.0.0 - Dezembro/2007 ; ; ; ; Arquivo de inicializacao da dll BemaFI32 para as impressoras fiscais ; ; MP-20 FI II, MP-40 FI II, MP-2000 FI TH, MP-2100 TH FI, MP-3000 TH FI ; ; MP-6000 FI TH, MP-25 FI e MP-50 FI ; ; ; ;----------------------------------------------------------------------------; [sistema] Porta=COM1 Path=C:\SISCOM\FISCO Status=0 Retorno=1 StatusFuncao=0 ControlePorta=1 ModeloImp=BEMATECH ConfigRede=2 ModoGaveta=0 Log=1 LogDiario=1 CrLfVinculado=0 CrLfGerencial=0 TimeOutGerencial=40 EmulMFD=0 StatusCheque= CalculoIcmsCupom=0 ForceWTSClient=1 RetriesWTSCmd=3 [MFD] Impressora=1 StatusErro=1 TimeOutZ=99 [Opcional] Favorecido= Cidade= [softwareHouse] COO=013729 NumeroAplicativo=01 CNPJ=09637241850 IE=99999999999999 IM=99999999999999 RazaoSocial=mauricio de assis pinto NomeAplicativo=siscom Versao=2.0 Linha1= Linha2= [ECF] IM=3956 UF=SP [Formato] ; ; +------------------------------------- coluna do valor numerico ; | +---------------------------------- coluna extenso 1 ; | | +------------------------------- coluna extenso 2 ; | | | +---------------------------- coluna favorecido ; | | | | +------------------------- coluna da cidade ; | | | | | +---------------------- coluna do dia ; | | | | | | +------------------- coluna do mes ; | | | | | | | +---------------- coluna do ano ; | | | | | | | | +------------- linha do valor numerico ; | | | | | | | | | +---------- linha do extenso 1 ; | | | | | | | | | | +------- linha do extenso 2 ; | | | | | | | | | | | +---- linha do favorecido ; | | | | | | | | | | | | +- linha da cidade/data ; | | | | | | | | | | | | | 000=51,04,01,05,06,60,65,81,01,06,08,11,14 001=51,10,01,06,18,50,54,71,02,05,08,10,12 003=49,08,01,05,18,52,55,72,01,05,07,09,12 004=52,09,01,05,18,50,53,72,02,06,09,11,13 006=56,10,01,05,15,43,48,72,01,06,08,10,13 008=56,17,01,07,18,50,55,71,03,06,09,11,13 021=52,12,01,04,18,49,53,71,02,07,09,11,13 022=52,07,01,04,15,44,49,71,02,06,08,10,13 024=51,07,01,05,18,48,52,72,01,05,07,09,12 027=51,10,01,06,18,50,54,71,02,05,08,10,12 028=55,06,01,05,18,50,53,71,01,05,08,10,12 029=55,12,01,04,18,50,55,72,01,06,08,10,13 031=51,10,01,06,18,50,54,71,02,05,08,10,12 032=51,10,01,06,18,50,54,71,02,05,08,10,12 033=48,17,01,06,18,46,50,71,02,06,08,11,13 034=49,14,01,04,15,45,57,71,01,05,07,09,11 035=51,10,01,06,18,50,54,71,02,05,08,10,12 036=51,10,01,06,18,50,54,71,02,05,08,10,12 037=51,10,01,06,18,50,54,71,02,05,08,10,12 038=56,10,01,04,18,51,56,72,02,07,10,12,14 039=51,10,01,06,18,50,54,71,02,05,08,10,12 041=56,09,01,04,18,54,61,72,03,07,09,12,14 047=52,08,01,05,18,47,50,72,01,05,07,10,12 048=51,10,01,06,18,50,54,71,02,05,08,10,12 059=50,15,01,05,18,55,59,72,01,05,07,09,11 070=54,05,01,05,18,48,52,72,02,06,08,10,12 104=56,13,01,04,18,48,53,72,01,04,07,10,12 106=52,12,01,05,18,52,55,71,02,07,09,11,13 151=54,06,01,04,18,47,52,71,01,05,07,10,12 153=51,09,01,05,18,51,55,72,01,05,08,10,13 168=53,05,01,05,18,54,57,71,02,06,08,11,13 200=52,06,01,05,18,47,52,71,01,05,07,10,12 201=52,11,01,04,18,47,51,71,01,05,07,09,11 206=56,14,01,06,18,53,56,72,01,06,08,10,13 207=50,04,01,05,18,48,52,71,02,06,08,11,13 211=48,11,01,05,18,52,56,71,03,07,09,12,14 215=55,06,01,05,18,51,54,71,02,05,08,10,13 220=56,09,01,05,18,49,53,71,02,05,08,10,12 230=50,12,01,05,18,54,58,71,02,05,08,10,13 231=52,12,01,05,18,53,58,72,02,06,08,10,12 237=50,01,01,04,18,50,54,71,02,06,09,11,14 244=48,14,01,04,18,49,53,71,03,06,09,11,13 254=51,09,01,05,18,53,56,71,01,05,08,11,14 275=51,07,01,04,18,46,52,68,03,08,10,12,14 282=56,12,01,05,18,50,54,71,02,06,08,10,13 291=51,10,01,06,18,50,54,71,02,05,08,10,12 294=51,10,01,06,18,50,54,71,02,05,08,10,12 302=51,07,01,05,18,47,51,71,02,06,08,10,13 308=51,10,01,06,18,50,54,71,02,05,08,10,12 320=54,06,01,04,18,48,51,72,02,05,08,10,13 334=54,06,01,04,18,54,57,71,02,06,08,10,12 341=54,08,01,05,18,50,54,72,02,06,09,12,15 346=54,12,01,05,18,54,57,71,02,05,08,10,12 347=53,15,01,04,18,47,51,72,02,06,09,11,14 351=52,14,01,05,18,55,58,72,01,05,07,10,12 353=52,07,01,05,18,53,58,71,02,05,07,10,12 356=51,10,01,06,18,50,54,71,02,05,08,10,12 369=47,07,01,05,18,51,55,71,02,06,08,10,12 370=52,06,01,05,18,47,50,71,01,05,07,10,12 372=51,07,01,04,18,46,49,71,02,06,08,11,13 376=54,07,01,04,18,54,58,72,02,06,08,10,12 388=46,09,01,06,18,48,52,72,02,06,09,11,14 389=52,06,01,05,18,53,58,72,02,07,09,12,14 392=49,12,01,05,18,54,58,72,02,05,07,11,13 394=51,05,01,05,18,51,55,71,01,05,07,09,13 399=54,12,01,04,18,52,57,72,01,05,07,10,12 409=55,12,01,04,23,52,58,71,04,07,09,11,13 415=54,12,01,06,18,50,54,72,03,07,10,12,14 420=54,08,01,04,18,50,54,72,02,06,08,10,13 422=51,10,01,06,18,50,54,71,02,05,08,10,12 424=51,10,01,06,18,50,54,71,02,05,08,10,12 434=56,08,01,05,18,50,54,72,02,06,09,11,13 453=54,12,01,05,18,51,56,72,03,07,10,12,14 456=48,11,01,05,18,47,50,71,02,06,08,10,12 464=51,10,01,06,18,50,54,71,02,05,08,10,12 472=53,12,01,05,18,50,53,71,02,06,09,10,14 477=55,08,01,05,18,52,57,72,03,07,09,11,14 479=53,07,01,05,18,50,53,71,02,06,08,10,12 483=52,08,01,05,18,47,50,71,02,05,07,09,11 487=58,17,01,05,18,48,52,72,02,06,08,11,13 494=51,09,01,05,18,50,53,71,02,06,08,10,13 602=56,10,01,03,18,47,52,66,02,05,07,10,13 603=51,10,01,06,18,50,54,71,02,05,08,10,12 607=51,09,01,05,18,53,56,72,02,05,08,10,12 610=55,15,01,05,18,53,58,71,01,06,08,10,12 630=49,05,01,05,18,47,52,71,01,06,08,10,13 718=51,07,01,05,18,48,53,71,01,06,08,10,13 756=51,10,01,06,18,50,54,71,02,05,08,10,12 995=51,10,01,06,18,50,54,71,02,05,08,10,12 996=51,10,01,06,18,50,54,71,02,05,08,10,12 998=80,03,01,04,22,54,60,80,03,05,06,08,10 [FormatoYanco] 999=61,12,02,03,23,50,61,78,04,09,13,18,22,10 000=38,03,03,03,00,11,35,78,12,17,22,26,31,05 001=61,12,02,03,23,50,61,78,04,09,13,18,22,10 003=60,14,02,04,26,54,63,78,12,22,31,44,53,05 004=62,10,00,01,19,47,60,78,08,22,35,44,53,05 006=62,10,00,01,20,47,60,78,07,22,35,44,53,05 007=61,10,01,02,19,47,60,76,04,09,14,18,22,10 008=59,17,05,06,25,53,62,78,07,11,16,20,24,10 020=62,10,00,01,20,47,60,78,07,22,35,44,53,05 021=62,10,00,01,19,47,60,78,08,22,35,44,53,05 022=61,15,03,06,25,53,61,78,07,21,30,39,52,05 024=62,10,00,01,19,47,60,78,08,22,35,44,53,05 026=62,10,00,01,20,47,60,78,07,22,35,44,53,05 027=61,10,00,01,20,47,60,78,04,09,15,18,22,10 028=61,10,01,01,20,47,60,78,04,09,15,18,22,10 029=63,13,01,03,26,53,62,78,07,25,35,44,56,05 030=62,10,00,01,19,47,60,78,03,09,14,18,21,10 031=61,17,03,05,22,50,60,78,13,23,37,46,54,05 032=62,11,00,01,20,47,60,78,07,21,35,44,53,05 033=56,15,02,04,22,49,59,78,05,11,14,18,23,10 034=62,10,00,01,20,47,60,78,07,23,36,45,54,05 035=62,10,00,00,22,49,60,78,04,09,15,18,22,10 036=62,12,02,03,23,50,61,78,07,16,29,39,48,05 037=62,10,00,01,20,47,60,78,07,22,35,44,54,05 038=60,11,01,02,22,50,60,78,12,26,39,49,58,05 039=62,10,00,01,20,47,60,78,07,22,35,44,53,05 041=60,11,02,04,26,53,63,77,07,11,16,20,24,20 043=62,10,00,01,20,47,60,78,07,22,35,44,53,05 047=62,10,00,01,20,47,60,78,07,22,35,44,54,05 048=59,10,01,02,22,49,59,78,11,26,35,44,57,05 059=62,10,00,01,20,47,60,78,07,22,35,44,54,05 070=62,10,00,01,20,47,60,78,07,21,35,44,53,05 104=59,17,02,03,27,54,64,78,04,09,13,17,20,10 106=63,13,02,03,25,53,62,78,08,26,34,49,57,05 109=62,10,00,01,19,47,60,78,08,22,35,44,53,05 111=62,10,00,01,20,47,60,78,07,22,35,44,53,05 113=62,10,00,01,20,47,60,78,07,22,35,44,53,05 116=62,10,00,01,20,47,60,78,07,22,35,44,53,05 148=62,10,00,01,20,47,60,78,07,22,35,44,53,05 150=62,11,00,01,20,47,60,78,07,21,35,44,53,05 151=61,12,02,02,23,50,60,78,07,21,30,39,48,05 152=63,11,00,01,20,47,60,78,04,09,15,18,22,10 153=64,13,02,04,25,52,62,78,04,09,15,18,22,10 164=62,10,00,01,20,47,60,78,07,22,35,44,53,05 165=62,10,00,01,20,47,60,78,07,22,35,44,53,05 166=62,10,00,01,20,47,60,78,07,22,35,44,53,05 168=59,11,01,02,24,51,62,78,12,26,35,44,53,05 171=62,10,00,01,20,47,60,78,07,22,35,44,53,05 175=62,10,00,01,20,47,60,78,07,22,35,44,53,05 184=62,10,00,01,20,47,60,78,07,22,35,44,53,05 200=58,12,01,02,24,52,59,78,08,25,39,52,65,05 201=59,14,02,03,21,48,60,78,12,21,30,39,52,05 202=62,10,00,01,20,47,60,78,07,22,35,44,53,05 204=62,10,00,01,20,47,60,78,07,22,35,44,53,05 205=61,10,00,01,18,47,60,78,08,24,38,47,55,05 206=59,17,02,03,26,54,64,78,11,21,30,39,52,05 207=62,11,01,02,20,47,61,78,04,09,14,18,22,10 208=62,07,10,00,01,20,47,60,78,22,35,44,53,05 209=62,10,00,01,20,47,60,78,07,22,35,44,53,05 210=62,10,00,01,20,47,60,78,07,22,35,44,53,05 211=62,10,00,01,20,47,60,78,07,22,35,44,53,05 212=61,10,01,02,20,47,60,78,04,10,15,19,22,10 213=62,10,00,01,20,47,60,56,78,07,22,35,44,05 214=62,10,00,01,20,47,60,78,07,22,35,44,53,05 215=57,16,02,04,22,49,60,78,12,26,35,44,52,05 216=62,10,00,01,20,47,60,78,07,22,35,44,53,05 217=62,10,00,01,20,47,60,78,07,22,35,44,53,05 219=62,10,00,01,19,47,60,78,08,22,35,44,53,05 220=62,10,00,01,20,47,60,78,07,22,35,44,53,05 221=62,10,00,01,20,47,60,78,07,22,35,44,53,05 222=62,10,00,01,20,47,60,78,07,22,35,44,53,05 223=62,10,00,01,19,47,60,78,08,22,35,44,53,05 224=62,10,00,01,20,47,60,78,07,22,35,44,53,05 225=62,10,00,01,20,47,60,78,07,22,35,44,53,05 226=61,10,00,01,19,47,60,78,08,22,35,44,53,05 229=62,10,00,01,19,47,60,78,08,22,35,44,53,05 230=60,14,01,02,26,53,63,78,11,26,35,44,57,05 233=62,10,00,01,19,47,60,78,08,22,35,44,53,05 237=58,13,00,02,22,50,61,78,06,11,16,20,23,10 239=62,10,00,01,19,47,60,78,08,22,35,44,53,05 242=62,10,00,01,19,47,60,78,08,22,35,44,53,05 251=62,10,00,01,19,47,60,78,08,22,35,44,53,05 252=62,10,00,01,19,47,60,78,08,22,35,44,53,05 254=62,10,00,01,19,47,60,78,07,22,35,44,53,05 267=62,10,00,01,20,47,60,78,03,09,15,18,21,10 275=59,11,04,03,23,51,60,78,05,13,18,22,25,20 291=57,16,03,04,23,49,59,78,06,11,15,18,22,10 294=60,14,02,04,27,54,63,78,12,21,31,44,53,05 334=61,13,02,03,24,54,64,78,04,09,13,16,20,10 341=58,11,03,04,25,53,62,78,04,11,16,20,25,10 347=59,14,01,03,26,53,63,78,10,25,35,44,56,05 351=62,16,01,03,26,53,62,78,07,21,32,40,52,05 353=70,01,01,01,36,54,63,80,02,06,10,14,17,10 361=62,10,00,01,20,47,60,78,07,22,35,44,53,05 366=59,15,02,02,23,50,61,78,12,25,39,48,57,05 369=61,12,02,03,23,50,62,78,08,21,35,44,53,05 389=61,13,04,04,26,54,63,78,13,30,40,53,61,05 392=60,14,02,03,21,48,60,78,11,25,34,43,56,05 399=62,21,05,06,26,53,63,78,04,09,13,18,22,10 409=57,19,04,06,23,51,61,78,07,13,16,20,23,10 412=62,11,00,01,20,47,60,78,09,21,34,44,54,05 415=61,16,03,04,25,53,62,77,05,11,16,20,23,10 434=61,14,03,09,24,51,61,78,05,09,14,18,23,10 477=62,13,03,06,26,53,61,78,07,12,16,22,25,10 479=61,13,01,03,22,50,60,78,04,09,13,17,22,10 605=60,13,02,04,26,54,63,78,12,21,30,44,53,05 [Copia] Banco= Valor= Favorecido= Cidade= Data= ImpressaoVerso= Linhas= Mensagem= [RelatorioTipo60] COOInicial=000763 COOFinal=000764 GTInicial=000000000005648787 GTFinal=000000000005652287 [TEF] REQ=C:\TEF_DIAL\REQ RESP=C:\TEF_DIAL\RESP STATUS=0 LINHAS=74 BYTES=0 VIAS=1 [CONFIG] InicioDia=0 DATARED= TOTSUPR= MOEDASING=Real MOEDAPLU=Reais [ReducaoYanco] GT= COO= CANC= ACRE= DESC= ALIQ= SANG= SUPR= TOTPARC= TOTNSUJ= CONTNSU= CONTOPN= NUMALIQ= DATAMOV= [info] StampVinculado= StampGerencial=
  5. Pessoal que porcaria é essa aqui em cima ? Propaganda de remédio e tô louco kkk. É o seguinte a função não está mas dando erro, porém ela não cria o arquivo, ou pelo menos não sei onde está criando. Passei a utilizar outra função parecida, mas que tem um parâmetro a mais que trás o path onde o arquivo foi criado. Mas ele tem trazido em branco. Função Bematech DLL32 function BmMFDEx( cOrigem AS STRING,; //-- Path+nome do arquivo contendo o download da MFD (.mfd). cData AS STRING,; //-- Data no formato "DD/MM/AAAA". cDestino AS STRING); //-- //-- arquivo Destino. AS LONG PASCAL FROM "Bematech_FI_GeraRegistrosCAT52MFDEx" LIB xDll programa: Destino := SPACE(512) IF (nRet := BmMFDEX("C:\SISCOM\FISCO\DOWNLOAD.MFD","04/10/2014",Destino)) <> 1 MsgStop("Arquivo Não Foi Gerado","Atenção") RETURN nil ELSE MSGSTOP(SUBSTR(Destino,1,10),"Atenção") ENDIF ou Destino := SPACE(512) Arquivo := 'C:\SISCOM\FISCO\DOWNLOAD.MFD' Data := '04/10/2014' for iConta := 1 to 512 Destino := Destino + ' ' iRetorno := BmMFDEx( Arquivo , Data , Destino ) NEXT MSGSTOP(Destino,"Atenção") Nos dois casos não trás nada. Por favor alguém me ajude
  6. Boa noite, estou com um problema com a função da bematech Bematech_FIGeraRegistrosCat52MFD para gerar os arquivos. Vi aqui no fórum uma pergunta igual em 2012, porém ninguém deu uma solução. O que estou achando estranho é que a declaração dele é diferente do da Bematech. Vejam abaixo: // Gera Arquivos requisito Arq. MFD, REQUISITO VII - ITEM 6 DLL32 FUNCTION BmMFDAto1704 ( carquivo AS LPSTR, carquivoD AS LPSTR, CtipoArq AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FIGeraRegistrosCat52MFD" LIB xDll Existem 7 informações a serem enviadas. No da Bematech apenas 2: Será que alguém poderia me ajudar ? . Muito obrigado desde já. Maurício. Implementamos a função Bematech_FI_GeraRegistrosCAT52MFD que permite a geração manual e retroativa dos registros referente à portaria CAT-52. A geração do arquivo da CAT-52 continua sendo realizada no momento da Redução Z, através da função Bematech_FI_ReducaoZ (executada pela aplicação comercial), automaticamente quando a impressora é ligada no dia seguinte ou automaticamente às 2:00 hrs da manhã quando a impressora permacer ligada, mas caso necessite gerar o arquivo do CAT-52, basta chamar esta função. Observações: - No modelo matricial é obrigatório informar o arquivo .rfd como parâmetro. O parâmetro data não é obrigatório e será ignorado caso seja informado. O arquivo da CAT-52 será gerado com as informações contidas no arquivo .rfd. - No modelo térmico com MFD temos as seguintes possibilidades: a) se não forem informados o arquivo .mfd e a data, a função fará o download da MFD da data atual e fará a geração do arquivo da CAT-52. se for informado o arquivo .mfd e não for passada a data, a função retornará erro. c) se for informada apenas a data, a função fará o download da MFD com base na data informada e fará a geração do arquivo da CAT52. d) se forem informados o arquivo .mfd e a data, a função fará a geração do arquivo da CAT-52 com as informações contidas no arquivo .mfd na data informada. - No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo), pois é realizado o download da MFD na geração do arquivo. A pinagem deste cabo está descrito no arquivo de ajuda do emulador. Parâmetros: Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo. Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa. Possíveis retornos da Função (INTEIRO): 0: Erro de comunicação. 1: OK. -1 - Erro de execucao da função. -2: Parâmetro inválido na função. -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). -30: Função não compatível com a impressora YANCO. Exemplo: ' Exemplo em Visual Basic iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\download.mfd", "30/07/2007") ou iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\BEB00007.M57.rfd", "30/07/2007") // Exemplo em Delphi Arquivo := 'C:\download.mfd'; Data := '30/07/2007' iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( Configurando a DLL"). Copie estes arquivos para o diretório de sistema do Windows (exemplo: \WINDOWS\SYSTEM32). Também criamos a função Bematech_FI_GeraRegistrosCat52MFDEx que possui um terceiro parâmetro, onde retorna o nome do arquivo gerado. Os parâmetros desta função, são: Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo. Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa. ArqDestino: variável STRING com 512 bytes para retornar o path+nome do arquivo gerado. ' Exemplo em Visual Basic cArqDestino = space(512) iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\download.mfd", "30/07/2007", cArqDestino) ou cArqDestino = space(512) iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\BEB00007.M57.rfd", "30/07/2007", cArqDestino) // Exemplo em Delphi Arquivo := 'C:\download.mfd'; Data := '30/07/2007' for iConta := 1 to 512 do cArqDestino := cArqDestino + ' '; iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar ( Arquivo ), pchar( Data ), cArqDestino ); ou Arquivo := 'C:\BEB00007.M57.rfd'; Data := '30/07/2007' for iConta := 1 to 512 do cArqDestino := cArqDestino + ' '; iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar ( Arquivo ), pchar( Data ), cArqDestino );
  7. Valeu pessoal, deu certo com a SNDPLAYSOUND(). Muito obrigado.
  8. Boa tarde. Pessoal como faço para emitir um sinal sonoro a partir de um arquivo.
  9. Pessoal alguém conhece alguma balança (Toledo por exemplo) que ao pesar consiga passar o valor do peso para dentro do campo do meu sistema ? Obrigado Maurício.
  10. Criar o TXT para importação de Nf-e e Ct-e eu sei e já fiz. O problema agora é na Mdf-e (Manifestação de Documentos Fiscais Eletrônico) que acompanha junto ao caminhão que estiver transportando as Nfes. O programa gratuito do governo só tem a opção de importação do XML e não existe nenhum Lay-Out de como criar este XML para importar. Ou eu faço todo serviço, como os exemplos acima sugeridos, ou não tem jeito. Poderia tentar criar, mas os exemplos estão muito vagos para mim que não tem muita noção deste assunto. Espero que alguém me ajude. Como já disse anteriormente, se for o caso, podemos negociar este treinamento. Obrigado e aguardando, Maurício.
  11. Pessoal, obrigado pelas dicas. mas já li o manual da SEFAZ, vi estes códigos, mas não consegui entender como iniciar. Eu não quero fazer todo processo pelo meu sistema, apenas quero saber como criar um arquivo para importar no sistema gratuito do governo. E depois sim, assinar, transmitir e tudo mais. Será que alguém pode me ajudar ? Se for necessário estou disposto negociar este serviço, pois é urgente. Obrigado mais uma vez Maurício.
  12. maudruidas

    Mdf-e

    Pessoal, bom dia, tem um cliente meu que já usamos as Nf-e e Ct-e onde gero os arquivos txt para importação no sistema gratuito do governo. Agora ele precisa gerar a Mdf-e, mas o programa do governo não importa TXT apenas XML. Alguém já resolveu este problema de alguma forma ? Preciso Urgente de uma solução.
  13. Obrigado pela ajuda, mas estes eu já havia baixado, e neles não contém o layout para importação do TXT. Ninguém teve está necessidade de gerar ou criar CT-e ?. Preciso urgente !!!. Obrigado.
  14. Alguém sabe algo à respeito ?
  15. maudruidas

    Ct-e

    Pessoal bom dia, preciso fazer um programa para gerar o TXT para importação no programa do governo CT-e (Conhecimento de Transporte Eletrônico). Porém não consegui encontrar o LAYOUT para TXT, apenas para XML. Alguém pode me ajudar. Obrigado Maurício.
  16. Alessandro deu certo. Muito obrigado a Todos. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  17. Pessoal é o seguinte, estou fazendo um pequeno programa para um cliente, onde ele tem que gerar arquivos TXT para os palms dos vendedores. Este programa será iniciado automaticamente pela agenda do Windows (De madrugada) para que de manhã já esteja pronta. O problema é o seguinte, ao abrir a Dialog estou pedidndo para iniciar automaticamente a rotina. Ele cria as pastas os arquivos, tudo certo, porém eu só vejo a Dialog depois que acabou. O que fazer para abrir a Dialog e depois rodar a rotina sem ter nenhum botão para isto. Obrigado Maurício. #include "FiveWin.ch" #include "CORGET.Ch" #include "VGET.CH" #include "TSBUTTON.CH" #Include "VBOX.CH" #Define BRWBACK 14483196 // Amarelo embranquecido #Define COR1 14410170 #Define COR2 14810095 #Define COR3 RGB(255,128,128) // Rosa #Define COR4 RGB(250,168,86) // Laranja #define CLR_AZUL nRGB(204, 218, 241) #define PRETO nRGB( 0,0,0) #define XPAZULC nRGB( 111,143,175) #define _VIDEO_CH #define _OBJECTS_CH #define _DDE_CH ANNOUNCE RDDSYS REQUEST OrdKeyNo, OrdKeyCount, OrdKeyGoto REQUEST DBFCDX, DBFFPT REQUEST HB_LANG_PT REQUEST HB_CODEPAGE_PT850 static OFONTEM,OFNTM FUNCTION GERPALM() LOCAL oDlg,oFont,TOT MEMVAR SAIDLG,NT IF(IsExeRunning("cfilenma")) MsgInfo("O Programa Já Está Aberto, Verifique na Barra de Tarefas do Windows ","Atenção") RETURN(NIL) ENDIF REQUEST DBFFPT RddSetDefault("DBFFPT") RddSetDefault("DBFCDX") REQUEST DBFCDX DBSETDRIVER("DBFCDX") REQUEST ORDKEYNO REQUEST ORDKEYCOUNT REQUEST ORDKEYGOTO REQUEST HB_CODEPAGE_PT850 REQUEST HB_LANG_PT SET PROC TO ENTRADA SET PROC TO FUNCOES SET CENTURY ON // 4 DIGITOS PARA O ANO SET CONFIRM OFF // (mudei, eu) CURSOR NÃO PODE DESLOCAR-SE AUTOMATICAMENTE SET CURSOR ON //-SetCursor( if(Upper("ON") == "ON", 1, 0) ) SET ESCAPE OFF // TECLA ESC LIGADA, POSSO ESCAPAR. SET MULTIPLE ON // PARA QUE SE POSSA ACIONAR QUANTAS JANELAS QUISER SETCANCEL( .F. ) // INUTILIZA ALT + C PARA ABORTAR PROGRAMA SET 3DLOOK ON SET DATE BRIT SET EPOCH TO 1980 SET EXAC OFF SET EXCL OFF SET STAT OFF SET CONS OFF SET BELL OFF SET DATE FREN SET WRAP ON SET SCOR OFF SET DELE ON SET DECI TO 2 SET EVENTMASK TO 128 && (INKEY_ALL) SET(_SET_EVENTMASK) SETHANDLECOUNT(255) IF ABREARQ(.T.,.F.,.F.,.T.,.F.,.F.,.T.,.F.,.F.,.F.,; .T.,.F.,.T.,.T.,.T.,.T.,.T.,.F.,.F.,.T.,; .T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.T.,; .T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,; .T.,.T.,.F.,.F.,.T.,.T.,.T.,.T.,.F.,.F.,19)=.F. RETURN ENDIF DEFINE FONT OFNC2 NAME "TIMES NEW ROMAN" SIZE 0, -18 BOLD DEFINE FONT OFNC NAME "Arial" SIZE 0, -12 BOLD DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-16 BOLD DEFINE DIALOG oDlgr RESOURCE "TLGERPALM" TITLE "Gerador de Tabelas - Palm" ODLGR : LHELPICON := .F. // Tira a ? da janela nAtual1 := 0 NVEN := SPACE(40) NTAB := SPACE(40) REDEFINE GROUP OGRR ID 110 LABEL "Representante: " OF oDlgr COLOR CLR_HBLUE,GETSYSCOLOR(15) ESQUERDA RAISED REDEFINE VGET ONVE VAR NVEN ID 203 OF oDlgr COLOR CLR_BLACK,{CLR_WHITE,COR4} ; FONT OFNC2 Tipo 1 WHEN(.F.) REDEFINE GROUP OGRT ID 102 LABEL "Tabela: " OF oDlgr COLOR CLR_HBLUE,GETSYSCOLOR(15) ESQUERDA RAISED REDEFINE VGET ONTA VAR NTAB ID 103 OF oDlgr COLOR CLR_BLACK,{CLR_WHITE,COR4} ; FONT OFNC2 Tipo 1 WHEN(.F.) REDEFINE METER oMeter1 VAR nAtual1 TOTAL 0 FONT oFont ID 101; Color 14483196,CLR_BLACK OF oDlgr BARCOLOR rgb(213,000,000),CLR_YELLOW oMeter1:cText:="Vendedor 0 de 0" + SPACE(10) REDEFINE SBUTTON OBTN2 ID 106; RESOURCE "CANCELA" OF oDlgr ; PROMPT "&Sair"; ACTION(SAIDLG:=.T.,ODLGR:END(),SAIDLG:=.F.) ; TOOLTIP "Fechar / Sair" ; TEXT POSITION ON_RIGHT ; XP ; COLORS PRETO,XPAZULC // OBTN2:SETFOCUS() SAIDLG:=.F. ACTIVATE DIALOG oDlgr CENTER ON INIT(ROTINA()) VALID SAIDLG RELEASE FONT oFont CLOSE DATA RETURN STATIC FUNCTION ROTINA() CURSORWAIT() *************** Núm. de Vendedores p/ o Meter TVE := 0 SELE 4 SET ORDER TO 1 GO TOP DO WHILE !EOF() IF PALM <> "S" SKIP UNLOCK LOOP ENDIF TVE := TVE + 1 SKIP UNLOCK ENDDO **************** oMeter1:nTotal := TVE NT := 0 SELE 4 SET ORDER TO 1 GO TOP DO WHILE !EOF() IF PALM <> "S" SKIP UNLOCK LOOP ENDIF REP := CODVEN XREP := STRZERO(CODVEN,3) NVEN := NOME ONVE:VARPUT(NVEN) ONVE:REFRESH() NT := NT + 1 oMeter1:set(NT) oMeter1:cText := "Vendedor Nº "+ALLTRIM(STR(NT,7))+" de "+ALLTRIM(STR(TVE,3))+SPACE(10) oMeter1:REFRESH() *************************** verifica se existe a pasta, senão cria DIR := ".\PALM\" + XREP IF !IsDirectory(DIR) LMKDIR(DIR) ENDIF **************** CLIENTES P/ REPRESENTANTE NTAB := "CLIENTES.TXT" ONTA:VARPUT(NTAB) ONTA:REFRESH() ARQ := DIR + "\CLIENTES.TXT" ARQ := FCREATE(ARQ) VEZ := 1 SELE 1 SET ORDER TO 5 SET SOFTSEEK ON SEEK STR(REP,3) SET SOFTSEEK OFF DO WHILE !EOF() .AND. VENDEDOR=REP IF INATIVO = "S" SKIP UNLOCK LOOP ENDIF BAI := BAIRRO CEP := SUBSTR(CEPCLI,1,5)+SUBSTR(CEPCLI,7,3) COD := STR(CODIGO,6) RAM := STR(TIPOLOGIA,3) CON := CONTATO+SPACE(15) DTC := SUBSTR(DTOS(ABERTURA),1,4)+SUBSTR(DTOS(ABERTURA),5,2)+SUBSTR(DTOS(ABERTURA),7,2) EMA := EMAIL OBS := OBSERV1+OBSERV2 RAZ := RAZAO + SPACE(20) CRE := STR(REP,6) CID := STR(CIDADE,6) CID2 := CIDADE END := ENDERECO + SPACE(20) FAX := TELEFAX + " " TEL := FONE1 + " " INS := INSCEST FAN := FANTASIA + SPACE(20) DUP := DUPLICATA IF SUBS(CGCCLI,15,4) = " " TPP := "F" CNPJ := SUBSTR(CGCCLI,1,14) ELSE TPP := "J" CNPJ := SUBSTR(CGCCLI,1,2)+SUBSTR(CGCCLI,4,3)+SUBSTR(CGCCLI,8,3)+SUBSTR(CGCCLI,12,4)+SUBSTR(CGCCLI,17,2) ENDIF ***************** BUSCA O ESTADO NA CIDADE SELE 7 SET ORDER TO 1 SEEK STR(CID2,3) UFC := ESTADO ***************** SELE 1 IF VEZ = 1 LIN := BAI+CEP+CNPJ+COD+RAM+CON+DTC+EMA+CID+END+UFC+FAX+TEL+INS+FAN+OBS+RAZ+" X"+TPP+CRE+DUP + CRLF VEZ := 2 ELSE LIN := LIN + BAI+CEP+CNPJ+COD+RAM+CON+DTC+EMA+CID+END+UFC+FAX+TEL+INS+FAN+OBS+RAZ+" X"+TPP+CRE+DUP + CRLF ENDIF SKIP UNLOCK ENDDO FWRITE(ARQ,LIN) ******************************* CIDADES NTAB := "CIDADES.TXT" ONTA:VARPUT(NTAB) ONTA:REFRESH() ARQ := DIR + "\CIDADES.TXT" ARQ := FCREATE(ARQ) SELE 7 GO TOP DO WHILE !EOF() IF VEZ = 1 LIN := STR(CODIGO,6)+DESCRICAO+ESTADO VEZ := 2 ELSE LIN := LIN + STR(CODIGO,6)+DESCRICAO+ESTADO ENDIF SKIP UNLOCK ENDDO FWRITE(ARQ,LIN) SELE 4 SKIP UNLOCK ENDDO CURSORARROW() RETURN NIL id=code>id=code>Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  18. Pessoal é o seguinte, estou fazendo um pequeno programa para um cliente, onde ele tem que gerar arquivos TXT para os palms dos vendedores. Este programa será iniciado automaticamente pela agenda do Windows (De madrugada) para que de manhã já esteja pronta. O problema é o seguinte, ao abrir a Dialog estou pedidndo para iniciar automaticamente a rotina. Ele cria as pastas os arquivos, tudo certo, porém eu só vejo a Dialog depois que acabou. O que fazer para abrir a Dialog e depois rodar a rotina sem ter nenhum botão para isto. Obrigado Maurício. #include "FiveWin.ch" #include "CORGET.Ch" #include "VGET.CH" #include "TSBUTTON.CH" #Include "VBOX.CH" #Define BRWBACK 14483196 // Amarelo embranquecido #Define COR1 14410170 #Define COR2 14810095 #Define COR3 RGB(255,128,128) // Rosa #Define COR4 RGB(250,168,86) // Laranja #define CLR_AZUL nRGB(204, 218, 241) #define PRETO nRGB( 0,0,0) #define XPAZULC nRGB( 111,143,175) #define _VIDEO_CH #define _OBJECTS_CH #define _DDE_CH ANNOUNCE RDDSYS REQUEST OrdKeyNo, OrdKeyCount, OrdKeyGoto REQUEST DBFCDX, DBFFPT REQUEST HB_LANG_PT REQUEST HB_CODEPAGE_PT850 static OFONTEM,OFNTM FUNCTION GERPALM() LOCAL oDlg,oFont,TOT MEMVAR SAIDLG,NT IF(IsExeRunning("cfilenma")) MsgInfo("O Programa Já Está Aberto, Verifique na Barra de Tarefas do Windows ","Atenção") RETURN(NIL) ENDIF REQUEST DBFFPT RddSetDefault("DBFFPT") RddSetDefault("DBFCDX") REQUEST DBFCDX DBSETDRIVER("DBFCDX") REQUEST ORDKEYNO REQUEST ORDKEYCOUNT REQUEST ORDKEYGOTO REQUEST HB_CODEPAGE_PT850 REQUEST HB_LANG_PT SET PROC TO ENTRADA SET PROC TO FUNCOES SET CENTURY ON // 4 DIGITOS PARA O ANO SET CONFIRM OFF // (mudei, eu) CURSOR NÃO PODE DESLOCAR-SE AUTOMATICAMENTE SET CURSOR ON //-SetCursor( if(Upper("ON") == "ON", 1, 0) ) SET ESCAPE OFF // TECLA ESC LIGADA, POSSO ESCAPAR. SET MULTIPLE ON // PARA QUE SE POSSA ACIONAR QUANTAS JANELAS QUISER SETCANCEL( .F. ) // INUTILIZA ALT + C PARA ABORTAR PROGRAMA SET 3DLOOK ON SET DATE BRIT SET EPOCH TO 1980 SET EXAC OFF SET EXCL OFF SET STAT OFF SET CONS OFF SET BELL OFF SET DATE FREN SET WRAP ON SET SCOR OFF SET DELE ON SET DECI TO 2 SET EVENTMASK TO 128 && (INKEY_ALL) SET(_SET_EVENTMASK) SETHANDLECOUNT(255) IF ABREARQ(.T.,.F.,.F.,.T.,.F.,.F.,.T.,.F.,.F.,.F.,; .T.,.F.,.T.,.T.,.T.,.T.,.T.,.F.,.F.,.T.,; .T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.T.,; .T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,; .T.,.T.,.F.,.F.,.T.,.T.,.T.,.T.,.F.,.F.,19)=.F. RETURN ENDIF DEFINE FONT OFNC2 NAME "TIMES NEW ROMAN" SIZE 0, -18 BOLD DEFINE FONT OFNC NAME "Arial" SIZE 0, -12 BOLD DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-16 BOLD DEFINE DIALOG oDlgr RESOURCE "TLGERPALM" TITLE "Gerador de Tabelas - Palm" ODLGR : LHELPICON := .F. // Tira a ? da janela nAtual1 := 0 NVEN := SPACE(40) NTAB := SPACE(40) REDEFINE GROUP OGRR ID 110 LABEL "Representante: " OF oDlgr COLOR CLR_HBLUE,GETSYSCOLOR(15) ESQUERDA RAISED REDEFINE VGET ONVE VAR NVEN ID 203 OF oDlgr COLOR CLR_BLACK,{CLR_WHITE,COR4} ; FONT OFNC2 Tipo 1 WHEN(.F.) REDEFINE GROUP OGRT ID 102 LABEL "Tabela: " OF oDlgr COLOR CLR_HBLUE,GETSYSCOLOR(15) ESQUERDA RAISED REDEFINE VGET ONTA VAR NTAB ID 103 OF oDlgr COLOR CLR_BLACK,{CLR_WHITE,COR4} ; FONT OFNC2 Tipo 1 WHEN(.F.) REDEFINE METER oMeter1 VAR nAtual1 TOTAL 0 FONT oFont ID 101; Color 14483196,CLR_BLACK OF oDlgr BARCOLOR rgb(213,000,000),CLR_YELLOW oMeter1:cText:="Vendedor 0 de 0" + SPACE(10) REDEFINE SBUTTON OBTN2 ID 106; RESOURCE "CANCELA" OF oDlgr ; PROMPT "&Sair"; ACTION(SAIDLG:=.T.,ODLGR:END(),SAIDLG:=.F.) ; TOOLTIP "Fechar / Sair" ; TEXT POSITION ON_RIGHT ; XP ; COLORS PRETO,XPAZULC // OBTN2:SETFOCUS() SAIDLG:=.F. ACTIVATE DIALOG oDlgr CENTER ON INIT(ROTINA()) VALID SAIDLG RELEASE FONT oFont CLOSE DATA RETURN STATIC FUNCTION ROTINA() CURSORWAIT() *************** Núm. de Vendedores p/ o Meter TVE := 0 SELE 4 SET ORDER TO 1 GO TOP DO WHILE !EOF() IF PALM <> "S" SKIP UNLOCK LOOP ENDIF TVE := TVE + 1 SKIP UNLOCK ENDDO **************** oMeter1:nTotal := TVE NT := 0 SELE 4 SET ORDER TO 1 GO TOP DO WHILE !EOF() IF PALM <> "S" SKIP UNLOCK LOOP ENDIF REP := CODVEN XREP := STRZERO(CODVEN,3) NVEN := NOME ONVE:VARPUT(NVEN) ONVE:REFRESH() NT := NT + 1 oMeter1:set(NT) oMeter1:cText := "Vendedor Nº "+ALLTRIM(STR(NT,7))+" de "+ALLTRIM(STR(TVE,3))+SPACE(10) oMeter1:REFRESH() *************************** verifica se existe a pasta, senão cria DIR := ".\PALM\" + XREP IF !IsDirectory(DIR) LMKDIR(DIR) ENDIF **************** CLIENTES P/ REPRESENTANTE NTAB := "CLIENTES.TXT" ONTA:VARPUT(NTAB) ONTA:REFRESH() ARQ := DIR + "\CLIENTES.TXT" ARQ := FCREATE(ARQ) VEZ := 1 SELE 1 SET ORDER TO 5 SET SOFTSEEK ON SEEK STR(REP,3) SET SOFTSEEK OFF DO WHILE !EOF() .AND. VENDEDOR=REP IF INATIVO = "S" SKIP UNLOCK LOOP ENDIF BAI := BAIRRO CEP := SUBSTR(CEPCLI,1,5)+SUBSTR(CEPCLI,7,3) COD := STR(CODIGO,6) RAM := STR(TIPOLOGIA,3) CON := CONTATO+SPACE(15) DTC := SUBSTR(DTOS(ABERTURA),1,4)+SUBSTR(DTOS(ABERTURA),5,2)+SUBSTR(DTOS(ABERTURA),7,2) EMA := EMAIL OBS := OBSERV1+OBSERV2 RAZ := RAZAO + SPACE(20) CRE := STR(REP,6) CID := STR(CIDADE,6) CID2 := CIDADE END := ENDERECO + SPACE(20) FAX := TELEFAX + " " TEL := FONE1 + " " INS := INSCEST FAN := FANTASIA + SPACE(20) DUP := DUPLICATA IF SUBS(CGCCLI,15,4) = " " TPP := "F" CNPJ := SUBSTR(CGCCLI,1,14) ELSE TPP := "J" CNPJ := SUBSTR(CGCCLI,1,2)+SUBSTR(CGCCLI,4,3)+SUBSTR(CGCCLI,8,3)+SUBSTR(CGCCLI,12,4)+SUBSTR(CGCCLI,17,2) ENDIF ***************** BUSCA O ESTADO NA CIDADE SELE 7 SET ORDER TO 1 SEEK STR(CID2,3) UFC := ESTADO ***************** SELE 1 IF VEZ = 1 LIN := BAI+CEP+CNPJ+COD+RAM+CON+DTC+EMA+CID+END+UFC+FAX+TEL+INS+FAN+OBS+RAZ+" X"+TPP+CRE+DUP + CRLF VEZ := 2 ELSE LIN := LIN + BAI+CEP+CNPJ+COD+RAM+CON+DTC+EMA+CID+END+UFC+FAX+TEL+INS+FAN+OBS+RAZ+" X"+TPP+CRE+DUP + CRLF ENDIF SKIP UNLOCK ENDDO FWRITE(ARQ,LIN) ******************************* CIDADES NTAB := "CIDADES.TXT" ONTA:VARPUT(NTAB) ONTA:REFRESH() ARQ := DIR + "\CIDADES.TXT" ARQ := FCREATE(ARQ) SELE 7 GO TOP DO WHILE !EOF() IF VEZ = 1 LIN := STR(CODIGO,6)+DESCRICAO+ESTADO VEZ := 2 ELSE LIN := LIN + STR(CODIGO,6)+DESCRICAO+ESTADO ENDIF SKIP UNLOCK ENDDO FWRITE(ARQ,LIN) SELE 4 SKIP UNLOCK ENDDO CURSORARROW() RETURN NIL id=code>id=code>Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  19. Rubens você estava certo, bastou eu colocar a DLL na pasta SYSTEM e parou o erro. Meus arquivos já são .RES, pelo que observei este lindo dialogo de vocês HE HE acho que vou testar o tal do Pellesc para ver no que dá. Obrigado. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  20. Pessoal ao tentar abrir o Workshop ele não encontra o arquivo CTL3DV2.DLL. Verifiquei que este arquivo está dentro da pasta c:\workshop e c:\windows\system32. Teria que estar em outro local também. Obrigado Maurício. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  21. Pessoal ao tentar abrir o Workshop ele não encontra o arquivo CTL3DV2.DLL. Verifiquei que este arquivo está dentro da pasta c:\workshop e c:\windows\system32. Teria que estar em outro local também. Obrigado Maurício. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  22. Pessoal estou tentando aprender a usar DLL da Bematech no meu sistema novo. Carregueia a DLL e suas declarações. Consigo emitir leitura X, abrir cupom, mas emitir o ITEM DE VENDA dá erro. Eviar Relatório.... e fecha o programa. Já tentei de tudo e não vai. Será que alguém teria esta parte feita e funcionando para me ajudar. Obrigado Maurício. Carregando a DLL XDLL := LoadLib32("BEMAFI32.dll") DECBEMA() Bematech.PRG #define _VIDEO_CH #define _OBJECTS_CH #define _DDE_CH ************************* FUNCTION GrvCmdFis(nCmd,uPar,nLen,cVar1,cVar2,lMens) LOCAL uBuf,cVar01:=cVar02:=cVar03:=cVar04:=cVar05:=cVar06:=cVar07:=cVar08:="",; uDll,ACK,ST1,ST2,nRet,uRet:=0,cCgc lMens := If(lMens=NIL,.t.,lMens) //RETORNA NÚMERO DO CAIXA IF nCmd = 1 uBuf := Space(nLen) nRet := BmNumeroCx(@uBuf) //IDENTIFICA ARREDONDAMENTO OU TRUNCAMENTO ELSEIF nCmd = 2 uBuf := " " nRet := BmVerArred(@uBuf) uBuf := If(uBuf="1",.F.,.T.) //LER DATA DO MOVTO ELSEIF nCmd = 3 uBuf := Space(6) nRet := BmDtMovto(@uBuf) uBuf := Ctod(Trans(uBuf,"@R 99/99/99")) //RETORNA SUBTOTAL DO CUPOM ELSEIF nCmd = 5 uBuf := Space(14) nRet := BmSubTotal(@uBuf) uBuf := Val(uBuf)/100 //RETORNA DATA E HORA DA IMPRESSORA ELSEIF nCmd = 6 uBuf := Space(6) uRet := Space(6) nRet := BmDtHora(@uBuf,@uRet) uRet := Trans(uRet,"@R 99:99;99") uBuf := Ctod( Trans(uBuf,"@R 99/99/99") ) //ABRE O CAIXA C/ FUNDO DE TROCO COMO SUPRIMENTO ELSEIF nCmd = 7 nRet := BmAbreDia( uPar ) //ABRE O CUPOM FISCAL ELSEIF nCmd = 8 cCgc := Space(14) nRet := BmAbreCup(cCgc) //MONITORAMENTO DO PAPEL ELSEIF nCmd = 9 uBuf := 0 nRet := BmVerPapel( @uBuf ) //VERIFICA SE TEM IMPRESSORA LIGADA ELSEIF nCmd = 10 IF ( nRet := BmPrintLig() ) = 1 RETURN .T. ELSE RETURN .F. ENDIF //VENDE ITEM NA IMPRESSORA ELSEIF nCmd = 11 nRet := BmVendItem(uPar[1],uPar[2],uPar[3],uPar[4],uPar[5],uPar[6],uPar[7],uPar,uPar[9]) //CANCELA CUPOM ELSEIF nCmd = 12 nRet := BmCanCupom() //FECHA CUPOM ELSEIF nCmd = 13 nRet := BmFechaCup(uPar[1],uPar[2],uPar[3],uPar[4],uPar[5],uPar[6]) //RETORNA NUMERO DO CUPOM ELSEIF nCmd = 14 uBuf := Space(6) nRet := BmNumCupom(@uBuf) //CANCELA ULTIMO ITEM DO CUPOM ELSEIF nCmd = 15 nRet := BmCancItem() //EMITE LEITURA X ELSEIF nCmd = 16 nRet := BmLeituraX() //EMITE REDUÇÃO Z ELSEIF nCmd = 17 nRet := BmReducaoZ(uPar[1],uPar[2]) //ABRE GAVETA ELSEIF nCmd = 18 uBuf := 0 nRet := BmAbreGav() SysWait(2) IF !GrvCmdFis(19,NIL,1,@nGaveta) RETURN .F. ENDIF //VERIFICA ESTADO DA GAVETA ELSEIF nCmd = 19 uBuf := 0 nRet := BmStGaveta( @uBuf ) //ABRE CUPOM NÃO FISCAL ELSEIF nCmd = 21 nRet := BmCupAdAbr( uPar[1], uPar[2], uPar[3] ) //USA CUPOM NÃO FISCAL ELSEIF nCmd = 22 nRet := BmCupAdUsa( uPar ) //FECHA CUPOM NÃO FISCAL ELSEIF nCmd = 23 nRet := BmCupAdFec( ) //ABRE RELATÓRIO GERENCIAL ELSEIF nCmd = 24 nRet := BmCpGerAbr( uPar ) //FECHA RELAT GERENCIAL ELSEIF nCmd = 25 nRet := BmCpGerFec( ) //ATIVA ARREDONDAMENTO ELSEIF nCmd = 26 nRet := BmLigArred() ENDIF IF lMens IF nRet = 0 MsgStop("Erro de comunicação com a impressora !","Atenção") ELSEIF nRet = -2 MsgStop("Parâmetro inválido para comando "+Str(nCmd,2)+" !","Atenção") ELSEIF nRet = -3 MsgStop("Aliquota não programada !","Atenção") ELSEIF nRet = -4 MsgStop("Arq. ini não encontrado ou parâmetro inválido p/ o nome da porta !","Atenção") ELSEIF nRet = -5 MsgStop("Erro ao abrir a porta de comunicação !","Atenção") ELSEIF nRet = -8 MsgStop("Erro ao criar ou gravar no arquivo status.txt ou retorno.txt !","Atenção") ENDIF ENDIF IF nRet = 1 IF cVar1 # NIL cVar1 := uBuf ENDIF IF cVar2 # NIL cVar2 := uRet ENDIF RETURN .T. ENDIF RETURN .F. FUNCTION DECBEMA() // Declaracoes da BEMATECH de 32 bits -> BEMAFI32.DLL //Ler total do cupom DLL32 FUNCTION BmSubTotal( SubTotal AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_SubTotal" LIB xDll //total pag no ultimo cupom DLL32 FUNCTION BmPagoUltCup( TotalPago AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ValorPagoUltimoCupom" LIB xDll //Ler número do caixa DLL32 FUNCTION BmNumeroCx( NumeroCaixa AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCaixa" LIB xDll //Ler configuração arredondamento/truncamento DLL32 FUNCTION BmVerArred( Arredonda AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaTruncamento" LIB xDll //Ativa arredondamento DLL32 FUNCTION BmLigArred( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaArredondamento" LIB xDll //Ler data do movimento DLL32 FUNCTION BmDtMovto ( DtMovto AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataMovimento" LIB xDll //Ler flag fiscal da impressora DLL32 FUNCTION BmFlagFisc( @FlagFiscal AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_FlagsFiscais" LIB xDll //Emite leitura X DLL32 FUNCTION BmLeituraX( ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraX" LIB xDll //Emite redução Z DLL32 FUNCTION BmReducaoZ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ReducaoZ" LIB xDll //Ler data e hora da impressora DLL32 FUNCTION BmDtHora ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraImpressora" LIB xDll //Faz abertura do dia DLL32 FUNCTION BmAbreDia ( Vl AS LPSTR, Fr AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AberturaDoDia" LIB xDll //Abre cupom fiscal DLL32 FUNCTION BmAbreCup ( Cgc AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AbreCupom" LIB xDll //Verifica se tem papel DLL32 FUNCTION BmVerPapel( @Linhas AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_MonitoramentoPapel" LIB xDll //Verifica se tem impressora ligada DLL32 FUNCTION BmPrintLig( ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaImpressoraLigada" LIB xDll // Horário de Verão DLL32 FUNCTION BmHoraVerao( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaHorarioVerao" LIB xDll //Cancela cupom fiscal DLL32 FUNCTION BmCanCupom( ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaCupom" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSupri(vrsupri AS LPSTR, fpagam AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Suprimento" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSangria(vrsangria AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Sangria" LIB xDll //Cancela ítem Genérico do cupom DLL32 FUNCTION BmCancItem(item AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaItemGenerico" LIB xDll //Abre a gaveta DLL32 FUNCTION BmAbreGav ( ) AS LONG PASCAL ; FROM "Bematech_FI_AcionaGaveta" LIB xDll //Ler número do cupom DLL32 FUNCTION BmNumCupom( Cupom AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCupom" LIB xDll //Emite leitura da memória fiscal por data DLL32 FUNCTION BmMemData ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalData" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt DLL32 FUNCTION BmMemDataTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialData" LIB xDll //Emite leitura da memória fiscal por Redução DLL32 FUNCTION BmMemRedu ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducao" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt DLL32 FUNCTION BmMemReduTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducao" LIB xDll //Emite leitura da memória fiscal por data MFD DLL32 FUNCTION BmMemDataMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalDataMFD" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt MFD DLL32 FUNCTION BmMemDataTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialDataMFD" LIB xDll //Emite leitura da memória fiscal por Redução MFD DLL32 FUNCTION BmMemReduMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducaoMFD" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt MFD DLL32 FUNCTION BmMemReduTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD" LIB xDll //Abre relatorio Gerencial previamente nomeado DLL32 FUNCTION BmAbrGerNo( cIndice AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreRelatorioGerencialMFD" LIB xDll //Emite cupom gerencial DLL32 FUNCTION BmCpGerAbr( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_RelatorioGerencial" LIB xDll //Usa cupom gerencial DLL32 FUNCTION BmCpUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaRelatorioGerencialMFD" LIB xDll //Fecha cupom gerencial DLL32 FUNCTION BmCpGerFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaRelatorioGerencial" LIB xDll //Verifica status da gaveta DLL32 FUNCTION BmStGaveta( @nStatus AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoGaveta" LIB xDll //Abre cupom adicional não fiscal vinculado DLL32 FUNCTION BmCupAdAbr( FormaPgto AS STRING,; Valor AS STRING,; Cupom AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB xDll //Imprime cupom não fiscal vinculado DLL32 FUNCTION BmCupAdUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB xDll // Dados da Ultima Redução DLL32 FUNCTION BmDadult( dados AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DadosUltimaReducao" LIB xDll // Retorno da Impressora DLL32 FUNCTION BmRetorno( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_RetornoImpressora" LIB xDll // Status da Impressora DLL32 FUNCTION BmEstadoImp( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoImpressora" LIB xDll //Ler número de Série da Impressora DLL32 FUNCTION BmNumSerie( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerie" LIB xDll //Ler número de Série da Impressora MFD DLL32 FUNCTION BmSerieMFD( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerieMFD" LIB xDll //Ler Ultimo Item vendido DLL32 FUNCTION BmUltItem( uitem AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_UltimoItemVendido" LIB xDll //Ler número de Reduções da Impressora DLL32 FUNCTION BmNumRedu( nredu AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroReducoes" LIB xDll //Ler status de vinculo ao ISS DLL32 FUNCTION BmVerIss( cvinciss AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaAliquotasIss" LIB xDll //Fecha cupom não fiscal DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB xDll //Vende ítem DLL32 FUNCTION BmVendItem( Codigo AS STRING,; Descricao AS STRING,; Aliquota AS STRING,; TpQte AS STRING,; Quantid AS STRING,; Decimal AS 7 ,; ValUnit AS STRING,; TpDesc AS STRING,; ValDesc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendeItem" LIB xDll //Vende ítem com unidade de Medida // DLL32 FUNCTION BmVendItem( Codigo AS STRING,; // Descricao AS STRING,; // Aliquota AS STRING,; // ValUnit AS STRING,; // Quantid AS STRING,; // Acresc AS STRING,; // ValDesc AS STRING,; // Indice AS STRING,; // Unidade AS STRING ) AS LONG PASCAL ; // FROM "Bematech_FI_VendeItemDepartamento" LIB xDll //Inicia Fechamento do Cupom DLL32 FUNCTION BmIniFechamento(Acrescimo AS STRING,; TipoAcresc AS STRING,; ValorAcresc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_IniciaFechamentoCupom" LIB xDll //Forma de Pagamento DLL32 FUNCTION BmFormaPagto( FormaPgto AS STRING,; ValorPago AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_EfetuaFormaPagamento" LIB xDll //Verifica Forma de Pagamento DLL32 FUNCTION BmVerForPgto( FormaPgto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaFormasPagamento" LIB xDll //Termina Fechamento DLL32 FUNCTION BmTerminaFechamento(Mensagem AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_TerminaFechamentoCupom" LIB xDll //Fecha cupom DLL32 FUNCTION BmFechaCup( FormaPgto AS STRING,; Acrescimo AS STRING,; TipoAcresc AS STRING,; ValorAcresc AS STRING,; ValorPago AS STRING,; Mensagem AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_FechaCupom" LIB xDll //Ler status das Aliquitas de ICMS DLL32 FUNCTION Bmaliquotas( caliquotas AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_RetornoAliquotas" LIB xDll //Programa Forma de Pagamento DLL32 FUNCTION BmProgFormas( Forma AS STRING, optef as STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaFormaPagamentoMFD" LIB xDll //Verifica status do gerenciador padrão DLL32 FUNCTION BmTfStatus( Operacao AS LPSTR ) AS LONG PASCAL FROM "Bematech_FITEF_Status" LIB xDll // Data e Hora da Ultima Redução Z DLL32 FUNCTION BmDtUltZ( DataReducao AS STRING, HoraReducao as STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraReducao" LIB xDll // Nomeia Totalizador não fiscal DLL32 FUNCTION BmNomTot( Indice AS LONG, Nome AS STRING) AS LONG PASCAL ; FROM "Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms" LIB xDll DLL32 FUNCTION BmVerTotP( DadosTot AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaTotalizadoresParciais" LIB xDll DLL32 FUNCTION BmVerRecNf( Recebimento AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaRecebimentoNaoFiscal" LIB xDll DLL32 FUNCTION BmModEcf( ModeloImp AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ModeloImpressora" LIB xDll DLL32 FUNCTION BmProgAli( Aliquota AS STRING, Vinculo AS LONG ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaAliquota" LIB xDll //Ler o numero de intervencoes/CRO DLL32 FUNCTION BmCRO( cro AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroIntervencoes" LIB xDll //Emite Espelho da MFD em arquivo txt REQUISITO VII - ITEM 5 DLL32 FUNCTION BmMemESPTxt ( carquivo AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DownloadMFD" LIB xDll //Converte dados MFD do arquivo para o formato especificado REQUISITO VII - ITEM 5 DLL32 FUNCTION BmMFDConv ( carquivo AS LPSTR, carquivoD AS LPSTR, CtipoArq AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_FormatoDadosMFD" LIB xDll // Gera Arquivos requisito Arq. MFD, REQUISITO VII - ITEM 6 DLL32 FUNCTION BmMFDAto1704 ( carquivo AS LPSTR, carquivoD AS LPSTR, CtipoArq AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FIGeraRegistrosCat52MFD" LIB xDll // Retorna Venda Bruta Diaria DLL32 FUNCTION BmVendaBruta ( cVendaBruta AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendaBruta" LIB xDll // Retorna Grande Total DLL32 FUNCTION BmGrandeTotal ( cGrandeTotal AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_GrandeTotal" LIB xDll // Retorna Mapa Resumo DLL32 FUNCTION BmMapaResumo ( ) AS LONG PASCAL ; FROM "Bematech_FI_MapaResumo" LIB xDll // Retorna Data e Hora Gravação Software Basico DLL32 FUNCTION BmdthrSbMf ( DataHoraUsuario AS STRING, DataHoraSWBasico AS STRING, ; MFAdicional AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional" LIB xDll // Retorna Registro 60M DLL32 FUNCTION BmRegistro60M( ) AS LONG PASCAL ; FROM "Bematech_FI_RelatorioTipo60Mestre" LIB xDll DLL32 FUNCTION BmMarcaModTipo( sMarca AS STRING, sModelo AS STRING, sTipo AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_MarcaModeloTipoImpressoraMFD" LIB xDll // Retorna Versao Soft. Basico DLL32 FUNCTION BmVersaoSB ( cVersaoSB AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VersaoFirmware" LIB xDll // Retorna Versao Soft. Basico MFD DLL32 FUNCTION BmVersaoSBmfd( cVersaoSB AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VersaoFirmwareMFD" LIB xDll // Retorna o CNPJ e a Insc Estatual DLL32 FUNCTION BmVersaoCGC_IE( cCGC AS STRING, cIE AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_CGC_IE" LIB xDll DLL32 FUNCTION BmFiscais3MFD( @cflags AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_FlagsFiscais3MFD" LIB xDll DLL32 FUNCTION BmOrdUsuario( cflags AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSubstituicoesProprietario" LIB xDll DLL32 FUNCTION BmVerRedZAuto( cflag AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaReducaoZAutomatica" LIB xDll DLL32 FUNCTION BmDadultMFD( cDadCRZ AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DadosUltimaReducaoMFD" LIB xDll DLL32 FUNCTION BmDtHrRed( cdata AS STRING, chora AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraReducao" LIB xDll DLL32 FUNCTION BmCCF( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorCupomFiscalMFD" LIB xDll DLL32 FUNCTION BmGNF( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroOperacoesNaoFiscais" LIB xDll DLL32 FUNCTION BmGRG( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorRelatoriosGerenciaisMFD" LIB xDll DLL32 FUNCTION BmCDC( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorComprovantesCreditoMFD" LIB xDll DLL32 FUNCTION BmDtHrUltDoc( cdthr AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraUltimoDocumentoMFD" LIB xDll DLL32 FUNCTION BmLinCup( cLin AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_LinhasEntreCupons" LIB xDll DLL32 FUNCTION BmIAlqISS( cISS AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaIndiceAliquotasIss" LIB xDll DLL32 FUNCTION BmAto1704( cArqMFD AS STRING, cArqTXT AS STRING, cDataIni AS STRING, ; cDataFim AS STRING, cRazao AS STRING, cEndereco AS STRING, p1 AS STRING, cCMD AS STRING, ; p2 AS STRING, p3 AS STRING, p4 AS STRING, p5 AS STRING, p6 AS STRING, p7 AS STRING, ; p8 AS STRING, p9 AS STRING, p10 AS STRING, p11 AS STRING, p12 AS STRING, p13 AS STRING, ; p14 AS STRING ) AS LONG PASCAL FROM "BemaGeraRegistrosTipoE" LIB 'BEMAMFD.DLL' DLL32 FUNCTION BmAto1704_2( cArqMFD AS STRING, cArqTXT AS STRING, cDataIni AS STRING, ; cDataFim AS STRING, cRazao AS STRING, cEndereco AS STRING, p1 AS STRING, cCMD AS STRING, ; p2 AS STRING, p3 AS STRING, p4 AS STRING, p5 AS STRING, p6 AS STRING, p7 AS STRING, ; p8 AS STRING, p9 AS STRING, p10 AS STRING, p11 AS STRING, p12 AS STRING, p13 AS STRING, ; p14 AS STRING ) AS LONG PASCAL FROM "BemaGeraRegistrosTipoE" LIB 'BEMAMFD2.DLL' DLL32 FUNCTION BmEstCCD( cCGC AS STRING, cNome AS STRING, cEndereco AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_EstornoNaoFiscalVinculadoMFD" LIB xDll DLL32 FUNCTION BmAbreCupMFD( cCGC AS STRING, cNome AS STRING, cEndereco AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreCupomMFD" LIB xDll DLL32 FUNCTION BmNomGer( cIndGer AS STRING, cDescricao AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NomeiaRelatorioGerencialMFD" LIB xDll DLL32 FUNCTION BmVerGer( cGerCad AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaRelatorioGerencialMFD" LIB xDll DLL32 FUNCTION BmAcDsItem( cNumeroItem AS STRING, cAcresDesc AS STRING, cTipoAcresDesc AS STRING, cValorAcresDesc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AcrescimoDescontoItemMFD" LIB xDll DLL32 FUNCTION BmCortePapel( cTipo AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_AcionaGuilhotinaMFD" LIB xDll id=code>id=code>Venda: IF !GrvCmdFis(10) MsgStop("Nenhuma Impressora Fiscal Foi Detectada !","Atenção") RETURN nil ENDIF IF !GrvCmdFis(8) MsgStop("Não Foi Possível Abrir Cupom Fiscal !","Atenção") RETURN nil ENDIF if !GrvCmdFis(11,"123", "Caneta", "1200", "F", "10", 2, "1025", "%", "00,00") MsgStop("Não Foi Possível Vender Item... !","Atenção") RETURN nil ENDIF Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  23. Pessoal estou tentando aprender a usar DLL da Bematech no meu sistema novo. Carregueia a DLL e suas declarações. Consigo emitir leitura X, abrir cupom, mas emitir o ITEM DE VENDA dá erro. Eviar Relatório.... e fecha o programa. Já tentei de tudo e não vai. Será que alguém teria esta parte feita e funcionando para me ajudar. Obrigado Maurício. Carregando a DLL XDLL := LoadLib32("BEMAFI32.dll") DECBEMA() Bematech.PRG #define _VIDEO_CH #define _OBJECTS_CH #define _DDE_CH ************************* FUNCTION GrvCmdFis(nCmd,uPar,nLen,cVar1,cVar2,lMens) LOCAL uBuf,cVar01:=cVar02:=cVar03:=cVar04:=cVar05:=cVar06:=cVar07:=cVar08:="",; uDll,ACK,ST1,ST2,nRet,uRet:=0,cCgc lMens := If(lMens=NIL,.t.,lMens) //RETORNA NÚMERO DO CAIXA IF nCmd = 1 uBuf := Space(nLen) nRet := BmNumeroCx(@uBuf) //IDENTIFICA ARREDONDAMENTO OU TRUNCAMENTO ELSEIF nCmd = 2 uBuf := " " nRet := BmVerArred(@uBuf) uBuf := If(uBuf="1",.F.,.T.) //LER DATA DO MOVTO ELSEIF nCmd = 3 uBuf := Space(6) nRet := BmDtMovto(@uBuf) uBuf := Ctod(Trans(uBuf,"@R 99/99/99")) //RETORNA SUBTOTAL DO CUPOM ELSEIF nCmd = 5 uBuf := Space(14) nRet := BmSubTotal(@uBuf) uBuf := Val(uBuf)/100 //RETORNA DATA E HORA DA IMPRESSORA ELSEIF nCmd = 6 uBuf := Space(6) uRet := Space(6) nRet := BmDtHora(@uBuf,@uRet) uRet := Trans(uRet,"@R 99:99;99") uBuf := Ctod( Trans(uBuf,"@R 99/99/99") ) //ABRE O CAIXA C/ FUNDO DE TROCO COMO SUPRIMENTO ELSEIF nCmd = 7 nRet := BmAbreDia( uPar ) //ABRE O CUPOM FISCAL ELSEIF nCmd = 8 cCgc := Space(14) nRet := BmAbreCup(cCgc) //MONITORAMENTO DO PAPEL ELSEIF nCmd = 9 uBuf := 0 nRet := BmVerPapel( @uBuf ) //VERIFICA SE TEM IMPRESSORA LIGADA ELSEIF nCmd = 10 IF ( nRet := BmPrintLig() ) = 1 RETURN .T. ELSE RETURN .F. ENDIF //VENDE ITEM NA IMPRESSORA ELSEIF nCmd = 11 nRet := BmVendItem(uPar[1],uPar[2],uPar[3],uPar[4],uPar[5],uPar[6],uPar[7],uPar,uPar[9]) //CANCELA CUPOM ELSEIF nCmd = 12 nRet := BmCanCupom() //FECHA CUPOM ELSEIF nCmd = 13 nRet := BmFechaCup(uPar[1],uPar[2],uPar[3],uPar[4],uPar[5],uPar[6]) //RETORNA NUMERO DO CUPOM ELSEIF nCmd = 14 uBuf := Space(6) nRet := BmNumCupom(@uBuf) //CANCELA ULTIMO ITEM DO CUPOM ELSEIF nCmd = 15 nRet := BmCancItem() //EMITE LEITURA X ELSEIF nCmd = 16 nRet := BmLeituraX() //EMITE REDUÇÃO Z ELSEIF nCmd = 17 nRet := BmReducaoZ(uPar[1],uPar[2]) //ABRE GAVETA ELSEIF nCmd = 18 uBuf := 0 nRet := BmAbreGav() SysWait(2) IF !GrvCmdFis(19,NIL,1,@nGaveta) RETURN .F. ENDIF //VERIFICA ESTADO DA GAVETA ELSEIF nCmd = 19 uBuf := 0 nRet := BmStGaveta( @uBuf ) //ABRE CUPOM NÃO FISCAL ELSEIF nCmd = 21 nRet := BmCupAdAbr( uPar[1], uPar[2], uPar[3] ) //USA CUPOM NÃO FISCAL ELSEIF nCmd = 22 nRet := BmCupAdUsa( uPar ) //FECHA CUPOM NÃO FISCAL ELSEIF nCmd = 23 nRet := BmCupAdFec( ) //ABRE RELATÓRIO GERENCIAL ELSEIF nCmd = 24 nRet := BmCpGerAbr( uPar ) //FECHA RELAT GERENCIAL ELSEIF nCmd = 25 nRet := BmCpGerFec( ) //ATIVA ARREDONDAMENTO ELSEIF nCmd = 26 nRet := BmLigArred() ENDIF IF lMens IF nRet = 0 MsgStop("Erro de comunicação com a impressora !","Atenção") ELSEIF nRet = -2 MsgStop("Parâmetro inválido para comando "+Str(nCmd,2)+" !","Atenção") ELSEIF nRet = -3 MsgStop("Aliquota não programada !","Atenção") ELSEIF nRet = -4 MsgStop("Arq. ini não encontrado ou parâmetro inválido p/ o nome da porta !","Atenção") ELSEIF nRet = -5 MsgStop("Erro ao abrir a porta de comunicação !","Atenção") ELSEIF nRet = -8 MsgStop("Erro ao criar ou gravar no arquivo status.txt ou retorno.txt !","Atenção") ENDIF ENDIF IF nRet = 1 IF cVar1 # NIL cVar1 := uBuf ENDIF IF cVar2 # NIL cVar2 := uRet ENDIF RETURN .T. ENDIF RETURN .F. FUNCTION DECBEMA() // Declaracoes da BEMATECH de 32 bits -> BEMAFI32.DLL //Ler total do cupom DLL32 FUNCTION BmSubTotal( SubTotal AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_SubTotal" LIB xDll //total pag no ultimo cupom DLL32 FUNCTION BmPagoUltCup( TotalPago AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ValorPagoUltimoCupom" LIB xDll //Ler número do caixa DLL32 FUNCTION BmNumeroCx( NumeroCaixa AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCaixa" LIB xDll //Ler configuração arredondamento/truncamento DLL32 FUNCTION BmVerArred( Arredonda AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaTruncamento" LIB xDll //Ativa arredondamento DLL32 FUNCTION BmLigArred( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaArredondamento" LIB xDll //Ler data do movimento DLL32 FUNCTION BmDtMovto ( DtMovto AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataMovimento" LIB xDll //Ler flag fiscal da impressora DLL32 FUNCTION BmFlagFisc( @FlagFiscal AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_FlagsFiscais" LIB xDll //Emite leitura X DLL32 FUNCTION BmLeituraX( ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraX" LIB xDll //Emite redução Z DLL32 FUNCTION BmReducaoZ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_ReducaoZ" LIB xDll //Ler data e hora da impressora DLL32 FUNCTION BmDtHora ( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraImpressora" LIB xDll //Faz abertura do dia DLL32 FUNCTION BmAbreDia ( Vl AS LPSTR, Fr AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AberturaDoDia" LIB xDll //Abre cupom fiscal DLL32 FUNCTION BmAbreCup ( Cgc AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_AbreCupom" LIB xDll //Verifica se tem papel DLL32 FUNCTION BmVerPapel( @Linhas AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_MonitoramentoPapel" LIB xDll //Verifica se tem impressora ligada DLL32 FUNCTION BmPrintLig( ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaImpressoraLigada" LIB xDll // Horário de Verão DLL32 FUNCTION BmHoraVerao( ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaHorarioVerao" LIB xDll //Cancela cupom fiscal DLL32 FUNCTION BmCanCupom( ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaCupom" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSupri(vrsupri AS LPSTR, fpagam AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Suprimento" LIB xDll //Suprimento de Caixa DLL32 FUNCTION BmSangria(vrsangria AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_Sangria" LIB xDll //Cancela ítem Genérico do cupom DLL32 FUNCTION BmCancItem(item AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_CancelaItemGenerico" LIB xDll //Abre a gaveta DLL32 FUNCTION BmAbreGav ( ) AS LONG PASCAL ; FROM "Bematech_FI_AcionaGaveta" LIB xDll //Ler número do cupom DLL32 FUNCTION BmNumCupom( Cupom AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroCupom" LIB xDll //Emite leitura da memória fiscal por data DLL32 FUNCTION BmMemData ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalData" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt DLL32 FUNCTION BmMemDataTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialData" LIB xDll //Emite leitura da memória fiscal por Redução DLL32 FUNCTION BmMemRedu ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducao" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt DLL32 FUNCTION BmMemReduTxt ( In AS LPSTR, Fi AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducao" LIB xDll //Emite leitura da memória fiscal por data MFD DLL32 FUNCTION BmMemDataMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalDataMFD" LIB xDll //Emite leitura da memória fiscal por data em arquivo txt MFD DLL32 FUNCTION BmMemDataTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialDataMFD" LIB xDll //Emite leitura da memória fiscal por Redução MFD DLL32 FUNCTION BmMemReduMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalReducaoMFD" LIB xDll //Emite leitura da memória fiscal por Redução em arquivo txt MFD DLL32 FUNCTION BmMemReduTxtMFD ( In AS LPSTR, Fi AS LPSTR, ctipo AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD" LIB xDll //Abre relatorio Gerencial previamente nomeado DLL32 FUNCTION BmAbrGerNo( cIndice AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreRelatorioGerencialMFD" LIB xDll //Emite cupom gerencial DLL32 FUNCTION BmCpGerAbr( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_RelatorioGerencial" LIB xDll //Usa cupom gerencial DLL32 FUNCTION BmCpUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaRelatorioGerencialMFD" LIB xDll //Fecha cupom gerencial DLL32 FUNCTION BmCpGerFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaRelatorioGerencial" LIB xDll //Verifica status da gaveta DLL32 FUNCTION BmStGaveta( @nStatus AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoGaveta" LIB xDll //Abre cupom adicional não fiscal vinculado DLL32 FUNCTION BmCupAdAbr( FormaPgto AS STRING,; Valor AS STRING,; Cupom AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB xDll //Imprime cupom não fiscal vinculado DLL32 FUNCTION BmCupAdUsa( Texto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB xDll // Dados da Ultima Redução DLL32 FUNCTION BmDadult( dados AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DadosUltimaReducao" LIB xDll // Retorno da Impressora DLL32 FUNCTION BmRetorno( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_RetornoImpressora" LIB xDll // Status da Impressora DLL32 FUNCTION BmEstadoImp( @varack AS PTR, @varst1 AS PTR, @varst2 AS PTR) AS LONG PASCAL ; FROM "Bematech_FI_VerificaEstadoImpressora" LIB xDll //Ler número de Série da Impressora DLL32 FUNCTION BmNumSerie( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerie" LIB xDll //Ler número de Série da Impressora MFD DLL32 FUNCTION BmSerieMFD( serie AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSerieMFD" LIB xDll //Ler Ultimo Item vendido DLL32 FUNCTION BmUltItem( uitem AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_UltimoItemVendido" LIB xDll //Ler número de Reduções da Impressora DLL32 FUNCTION BmNumRedu( nredu AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroReducoes" LIB xDll //Ler status de vinculo ao ISS DLL32 FUNCTION BmVerIss( cvinciss AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaAliquotasIss" LIB xDll //Fecha cupom não fiscal DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB xDll //Vende ítem DLL32 FUNCTION BmVendItem( Codigo AS STRING,; Descricao AS STRING,; Aliquota AS STRING,; TpQte AS STRING,; Quantid AS STRING,; Decimal AS 7 ,; ValUnit AS STRING,; TpDesc AS STRING,; ValDesc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendeItem" LIB xDll //Vende ítem com unidade de Medida // DLL32 FUNCTION BmVendItem( Codigo AS STRING,; // Descricao AS STRING,; // Aliquota AS STRING,; // ValUnit AS STRING,; // Quantid AS STRING,; // Acresc AS STRING,; // ValDesc AS STRING,; // Indice AS STRING,; // Unidade AS STRING ) AS LONG PASCAL ; // FROM "Bematech_FI_VendeItemDepartamento" LIB xDll //Inicia Fechamento do Cupom DLL32 FUNCTION BmIniFechamento(Acrescimo AS STRING,; TipoAcresc AS STRING,; ValorAcresc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_IniciaFechamentoCupom" LIB xDll //Forma de Pagamento DLL32 FUNCTION BmFormaPagto( FormaPgto AS STRING,; ValorPago AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_EfetuaFormaPagamento" LIB xDll //Verifica Forma de Pagamento DLL32 FUNCTION BmVerForPgto( FormaPgto AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaFormasPagamento" LIB xDll //Termina Fechamento DLL32 FUNCTION BmTerminaFechamento(Mensagem AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_TerminaFechamentoCupom" LIB xDll //Fecha cupom DLL32 FUNCTION BmFechaCup( FormaPgto AS STRING,; Acrescimo AS STRING,; TipoAcresc AS STRING,; ValorAcresc AS STRING,; ValorPago AS STRING,; Mensagem AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_FechaCupom" LIB xDll //Ler status das Aliquitas de ICMS DLL32 FUNCTION Bmaliquotas( caliquotas AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_RetornoAliquotas" LIB xDll //Programa Forma de Pagamento DLL32 FUNCTION BmProgFormas( Forma AS STRING, optef as STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaFormaPagamentoMFD" LIB xDll //Verifica status do gerenciador padrão DLL32 FUNCTION BmTfStatus( Operacao AS LPSTR ) AS LONG PASCAL FROM "Bematech_FITEF_Status" LIB xDll // Data e Hora da Ultima Redução Z DLL32 FUNCTION BmDtUltZ( DataReducao AS STRING, HoraReducao as STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraReducao" LIB xDll // Nomeia Totalizador não fiscal DLL32 FUNCTION BmNomTot( Indice AS LONG, Nome AS STRING) AS LONG PASCAL ; FROM "Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms" LIB xDll DLL32 FUNCTION BmVerTotP( DadosTot AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaTotalizadoresParciais" LIB xDll DLL32 FUNCTION BmVerRecNf( Recebimento AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaRecebimentoNaoFiscal" LIB xDll DLL32 FUNCTION BmModEcf( ModeloImp AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ModeloImpressora" LIB xDll DLL32 FUNCTION BmProgAli( Aliquota AS STRING, Vinculo AS LONG ) AS LONG PASCAL ; FROM "Bematech_FI_ProgramaAliquota" LIB xDll //Ler o numero de intervencoes/CRO DLL32 FUNCTION BmCRO( cro AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroIntervencoes" LIB xDll //Emite Espelho da MFD em arquivo txt REQUISITO VII - ITEM 5 DLL32 FUNCTION BmMemESPTxt ( carquivo AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_DownloadMFD" LIB xDll //Converte dados MFD do arquivo para o formato especificado REQUISITO VII - ITEM 5 DLL32 FUNCTION BmMFDConv ( carquivo AS LPSTR, carquivoD AS LPSTR, CtipoArq AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FI_FormatoDadosMFD" LIB xDll // Gera Arquivos requisito Arq. MFD, REQUISITO VII - ITEM 6 DLL32 FUNCTION BmMFDAto1704 ( carquivo AS LPSTR, carquivoD AS LPSTR, CtipoArq AS LPSTR, Ctipo AS LPSTR, In AS LPSTR, Fi AS LPSTR, cusuario AS LPSTR ) AS LONG PASCAL ; FROM "Bematech_FIGeraRegistrosCat52MFD" LIB xDll // Retorna Venda Bruta Diaria DLL32 FUNCTION BmVendaBruta ( cVendaBruta AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VendaBruta" LIB xDll // Retorna Grande Total DLL32 FUNCTION BmGrandeTotal ( cGrandeTotal AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_GrandeTotal" LIB xDll // Retorna Mapa Resumo DLL32 FUNCTION BmMapaResumo ( ) AS LONG PASCAL ; FROM "Bematech_FI_MapaResumo" LIB xDll // Retorna Data e Hora Gravação Software Basico DLL32 FUNCTION BmdthrSbMf ( DataHoraUsuario AS STRING, DataHoraSWBasico AS STRING, ; MFAdicional AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional" LIB xDll // Retorna Registro 60M DLL32 FUNCTION BmRegistro60M( ) AS LONG PASCAL ; FROM "Bematech_FI_RelatorioTipo60Mestre" LIB xDll DLL32 FUNCTION BmMarcaModTipo( sMarca AS STRING, sModelo AS STRING, sTipo AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_MarcaModeloTipoImpressoraMFD" LIB xDll // Retorna Versao Soft. Basico DLL32 FUNCTION BmVersaoSB ( cVersaoSB AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VersaoFirmware" LIB xDll // Retorna Versao Soft. Basico MFD DLL32 FUNCTION BmVersaoSBmfd( cVersaoSB AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VersaoFirmwareMFD" LIB xDll // Retorna o CNPJ e a Insc Estatual DLL32 FUNCTION BmVersaoCGC_IE( cCGC AS STRING, cIE AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_CGC_IE" LIB xDll DLL32 FUNCTION BmFiscais3MFD( @cflags AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_FlagsFiscais3MFD" LIB xDll DLL32 FUNCTION BmOrdUsuario( cflags AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroSubstituicoesProprietario" LIB xDll DLL32 FUNCTION BmVerRedZAuto( cflag AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaReducaoZAutomatica" LIB xDll DLL32 FUNCTION BmDadultMFD( cDadCRZ AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DadosUltimaReducaoMFD" LIB xDll DLL32 FUNCTION BmDtHrRed( cdata AS STRING, chora AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraReducao" LIB xDll DLL32 FUNCTION BmCCF( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorCupomFiscalMFD" LIB xDll DLL32 FUNCTION BmGNF( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NumeroOperacoesNaoFiscais" LIB xDll DLL32 FUNCTION BmGRG( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorRelatoriosGerenciaisMFD" LIB xDll DLL32 FUNCTION BmCDC( cCCF AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_ContadorComprovantesCreditoMFD" LIB xDll DLL32 FUNCTION BmDtHrUltDoc( cdthr AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_DataHoraUltimoDocumentoMFD" LIB xDll DLL32 FUNCTION BmLinCup( cLin AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_LinhasEntreCupons" LIB xDll DLL32 FUNCTION BmIAlqISS( cISS AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaIndiceAliquotasIss" LIB xDll DLL32 FUNCTION BmAto1704( cArqMFD AS STRING, cArqTXT AS STRING, cDataIni AS STRING, ; cDataFim AS STRING, cRazao AS STRING, cEndereco AS STRING, p1 AS STRING, cCMD AS STRING, ; p2 AS STRING, p3 AS STRING, p4 AS STRING, p5 AS STRING, p6 AS STRING, p7 AS STRING, ; p8 AS STRING, p9 AS STRING, p10 AS STRING, p11 AS STRING, p12 AS STRING, p13 AS STRING, ; p14 AS STRING ) AS LONG PASCAL FROM "BemaGeraRegistrosTipoE" LIB 'BEMAMFD.DLL' DLL32 FUNCTION BmAto1704_2( cArqMFD AS STRING, cArqTXT AS STRING, cDataIni AS STRING, ; cDataFim AS STRING, cRazao AS STRING, cEndereco AS STRING, p1 AS STRING, cCMD AS STRING, ; p2 AS STRING, p3 AS STRING, p4 AS STRING, p5 AS STRING, p6 AS STRING, p7 AS STRING, ; p8 AS STRING, p9 AS STRING, p10 AS STRING, p11 AS STRING, p12 AS STRING, p13 AS STRING, ; p14 AS STRING ) AS LONG PASCAL FROM "BemaGeraRegistrosTipoE" LIB 'BEMAMFD2.DLL' DLL32 FUNCTION BmEstCCD( cCGC AS STRING, cNome AS STRING, cEndereco AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_EstornoNaoFiscalVinculadoMFD" LIB xDll DLL32 FUNCTION BmAbreCupMFD( cCGC AS STRING, cNome AS STRING, cEndereco AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreCupomMFD" LIB xDll DLL32 FUNCTION BmNomGer( cIndGer AS STRING, cDescricao AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_NomeiaRelatorioGerencialMFD" LIB xDll DLL32 FUNCTION BmVerGer( cGerCad AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_VerificaRelatorioGerencialMFD" LIB xDll DLL32 FUNCTION BmAcDsItem( cNumeroItem AS STRING, cAcresDesc AS STRING, cTipoAcresDesc AS STRING, cValorAcresDesc AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AcrescimoDescontoItemMFD" LIB xDll DLL32 FUNCTION BmCortePapel( cTipo AS PTR ) AS LONG PASCAL ; FROM "Bematech_FI_AcionaGuilhotinaMFD" LIB xDll id=code>id=code>Venda: IF !GrvCmdFis(10) MsgStop("Nenhuma Impressora Fiscal Foi Detectada !","Atenção") RETURN nil ENDIF IF !GrvCmdFis(8) MsgStop("Não Foi Possível Abrir Cupom Fiscal !","Atenção") RETURN nil ENDIF if !GrvCmdFis(11,"123", "Caneta", "1200", "F", "10", 2, "1025", "%", "00,00") MsgStop("Não Foi Possível Vender Item... !","Atenção") RETURN nil ENDIF Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  24. Pessoal, um cliente meu instalou o Virtual Box - XP no seu windows 7. Meu sistema em modo console funciona normalmente, porém o programa não fica tela cheia. Já tentei configurar o ícone mas não tem jeito. Alguém sabe se existe alguma forma de resolver este problema ? Obrigado Maurício. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
  25. Pessoal, um cliente meu instalou o Virtual Box - XP no seu windows 7. Meu sistema em modo console funciona normalmente, porém o programa não fica tela cheia. Já tentei configurar o ícone mas não tem jeito. Alguém sabe se existe alguma forma de resolver este problema ? Obrigado Maurício. Maurício de Assis Pinto Rancharia - SP maudruidas@yahoo.com.br xHarbour Build 0.99.7 (Simplex) - FWH 2.7.7 Workshop 4.5
×
×
  • Create New...