-
Posts
1,951 -
Joined
-
Last visited
-
Days Won
10
Posts posted by sambomb
-
-
Daruma e Bematech já possuem impressora não fiscal e continuam vendendo, as demais não estou acompanhando
-
Olá Pessoal
Bom ano 2015 a todos.
Não trabalho com automação comercial, então é só uma curiosidade:
A NFc-e não veio para substituir o ECF? Não seria um DANFE simplificado para consumidor?
Desculpem a minha "inguinorância" rsrsrs
abs
Alberto-SP
Ainda existe a necessidade da impressão do comprovante para o cliente, e neste irá constar um QR-Code com o link para pesquisa na receita da NFC-e, e portanto existe a necessidade de uma impressora, pode ser impresso em A4, mas para economia tb pode ser feito em uma impressora não fiscal ( DARUMA e BEMATECH possuem )
-
Destino := SPACE(512)
//-- Adicionado o @ para indicar que vai passar a variável por referência para preenchimento pela DLL
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
-
Provavelmente não é então segue:
//-- Chamada no VB //Public Declare Function Bematech_FI_GeraRegistrosCAT52MFD Lib "BEMAFI32.DLL" (ByVal cArquivo As String, ByVal cData As String) As Integer 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 _INT PASCAL FROM "Bematech_FI_GeraRegistrosCAT52MFD"; LIB xDll //-- Exemplo de chamada de relatório do SPED ( PARA COMPARAÇÃO ) //-- Chamada no VB //Public Declare Function Bematech_FI_GeraRegistrosSpedMFD Lib "BEMAFI32.DLL" ( ByVal arq_origem as string, ByVal arq_destino as string, ByVal data_inicial as string, ByVal data_final as string, ByVal perfil as string, ByVal CFOP as string, ByVal lac_fiscal as string, ByVal pis as string, ByVal cofins as string) as Integer DLL32 function B_RELSPED( cOrigem AS STRING,; //-- Path+nome do arquivo contendo o download da MFD (.mfd). cDestino AS STRING,; //-- Path+nome do arquivo texto de destino. cDataInicial AS STRING,; //-- Data inicial no formato "DD/MM/AAAA". cDataFinal AS STRING,; //-- Data final no no formato "DD/MM/AAAA". cPerfil AS STRING,; //-- Perfil do relatório a ser gerado, sendo "A", "B" ou "T", onde T = Todos os registros (A e . cCFOP AS STRING,; //-- Código CFOP do estabelecimento, com o tamanho de 4 dígitos. cCodObsLancFiscal AS STRING,; //-- Código da observação do lançamento fiscal. Caracter branco caso opcional. cAliquotaPis AS STRING,; //-- Valor percentual da alíquota para o cálculo do PIS, com o tamanho de 4 dígitos sem a vírgula (0000) ou 5 dígitos com a vírgula (00,00). cAliquotaCofins AS STRING); //-- Valor percentual da alíquota para o cálculo do COFINS, com o tamanho de 4 dígitos sem a vírgula (0000) ou 5 dígitos com a vírgula (00,00). AS _INT PASCAL FROM "Bematech_FI_GeraRegistrosSpedMFD"; LIB xDll
-
Veja se é só o underline:
// Gera Arquivos requisito Arq. MFD, REQUISITO VII - ITEM 6DLL32 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_FI_GeraRegistrosCat52MFD" LIB xDll -
-
-
O grande problema que será enfrentado será competir com a velocidade de evolução das plataformas nativas e das que já estão disponíveis, esse projeto já está começando atrasado pelo menos uns 5 anos e com apenas 2 desenvolvedores é muito trabalho a ser executado, digamos que em 2015 tenhamos uma versão funcional para começar o desenvolvimento, até lá Android e iOS já avançaram pelo menos 1 versão, fazendo com que fique defasado e performance é crucial nesse tipo de aplicação o que vai ser um empecilho extra
-
Resolvido assim:
*****************************************
Function EditCell( )
*****************************************
*
* USE CLIENTES // abrir qualquer arquivo que tenha mais de 30 campos para fazer um scroll automático...
*
*
oGet := {}
cGet := {}
estr := DbStruct()
For i=1 to Len(estr)
estr[i,1] := Upper( Substr( estr[i,1], 1, 1 ) ) + Lower( Substr( estr[i,1], 2 ) )
End
nMax := Len(estr)
DEFINE DIALOG xDlg FROM 1,5 TO 44,100 TITLE Alias()
nLin := 0.5
oGet := Array(nMax)
For i=1 to nMax
@ nLin,1 say estr[i,1] of xDlg
nLin+=0.86
End
nCtn:=0
nLin:=-0.5
For i=1 to nMax
nLin+=1
nCtn++
cGet:=field(i)
@ nLin,5 get oGet var &cGet of xDlg
End
ACTIVATE DIALOG xDlg CENTERED
return nil
Abrindo agora novo tópico para auxílio no scroll automático... valeu SAMBOMB!!!!
Disponha!
Edita o título para por como resolvido e na próxima tenta um título pro post mais sugestivo, fica mais simples de entender sobre o que se trata e ajudar quem vier a ter o mesmo problema que você
-
Local oGet := {}, cGet := {}
estr := DbStruct()
For i=1 to Len(estr)
estr[i,1] := Upper( Substr( estr[i,1], 1, 1 ) ) + Lower( Substr( estr[i,1], 2 ) )
cVar := estr[i,1]
estr[i,2] := &(cVar)
End
nMax := Min( Len(estr) , 20 )
DEFINE DIALOG xDlg;
FROM 1, 5;
TO 40, 100;
TITLE Alias()
nLin := 0.99
oGet := Array(nMax)
cGet := aFill(Array(nMax),Space(20))
For i=1 to nMax
@ nLin,1 say estr[i,1] of xDlg
nLin+=0.86
End
For i=1 to nMax
cGet := estr[i,2]
@ i,5 get oGet var cGet of xDlg
End
ACTIVATE DIALOG xDlg CENTERED
return nil
-
estr := DbStruct()
For i=1 to Len(estr)
estr[i,1] := Upper( Substr( estr[i,1], 1, 1 ) ) + Lower( Substr( estr[i,1], 2 ) )
cVar := estr[i,1]
estr[i,2] := &(cVar)
End
nMax := Min( Len(estr) , 20 )
DEFINE DIALOG xDlg;
FROM 1, 5;
TO 40, 100;
TITLE Alias()
nLin := 0.99
For i=1 to nMax
@ nLin,1 say estr[i,1] of xDlg
nLin+=0.86
End
For i=1 to nMax
@ i,5 get estr[i,2] of xDlg
End
ACTIVATE DIALOG xDlg CENTERED
return nil
-
Amiguinhos,
Quanta incoerência de resultados esta DLL retorna. O sucesso é 0 ou 1?. Parece que é só pra complicar a vida da gente.
Verifique o manual a relação destes valores de retorno e se 0 e 1 são o mesmo resultado saneie suas funções para que o trecho de retorno seja:
... if nResult <= 1 //-- Pronto, assim resolve a balbúrdia ? "Sucesso: " + cString else ? FuncaoQueRetorneUmaStringDeErro( nResult ) end FUNCTION FuncaoQueRetorneUmaStringDeErro( nResult ) do case case nResult = 0 return "Sucesso(0):" case nResult = 1 return "Sucesso(1):" case nResult = 2 return "Erro(2): blablabla..." // outros cases endcase return "Mensagem indefinida"
Rochinha, algumas dlls indicam sucesso com 1 e erro com 0, outras sucesso com 0 e erro com -1, entre infinitas combinações possíveis, até mesmo o código do erro já pode vir diretamente nesse retorno.
Exemplo:
1 = Sucesso
0 = Sem comunicação
-1 = Parâmetro inválido
-2 = Erro aleatório de exemplo
-3 = Outro exemplo
Então nem sempre pode por <= 1, vai de caso a caso
E no caso dele o retorno válido é o 1:
If nRetorno = 1 // 1=tem abastecimento
MsgAlert("Informacoes do abastecimento: "+cContem)
Else // 0-nao teve abastecimento
MsgAlert("nao teve abastecimento.")
Endif
-
Tem diversos níveis de infecção, eu utilizo o Kasperky ( original KIS2014 ) e alguns arquivo contaminados ele limpa, outros ele manda para quarentena.
Se for um executável mal intencionado a única solução é excluir, se for um arquivo com um executável "injetado" tem como tentar limpar. -
tone(880,0.1)tone(1880,0.1)
-
http://brazil.kaspersky.com/produtos/produtos-para-usuarios-domesticos/internet-security
Se você leva antivirus a sério deveria experimentar utilizar um pago, tem pacotes de 3 anos para multiplas máquinas que valem o investimento
-
Kaspersky
-
Essa solução ae é para verificar se tem o Microsoft Security no win 7 x86, no win 8.1 x64 é o windows defender C:\Program Files\Windows Defender\MsMpEng.exe
Só verificar se existe o arquivo principal do antivirus, meia hora no google deve resolver... -
-
Crie uma função para isso...
For i := 1 TO 100 CriaBotao(i) End Procedure CriaBotao( nCont ) REDEFINE SBUTTON OBOTAOM[nCont]; ID (nCont+101); //-- 101 + 1 = 102 até 101 + 100 = 201 ACTION Botao(nCont) TOOLTIP "Clique aqui para efetuar vendas por telefone" ; COLORS PRETO,CORTABELA; FONT FNORMAL; OFFICE; OF DLGVEN Return Procedure Botao( nCont ) ? "Botão pressionado foi o : " + Str( nCont ) Return
-
Fivewin tem uns bugs com foco em componente...
O que eu fiz ae é criar uma tela que fica ativa só por 0.2 segundos e depois fecha sozinha, depois disso joga do foco para o componente que você quer.
Você pode separar essa solução ae em uma função colocando o tempo e janela atual como parâmetros. -
@ 79, 206 BTNBMP oBtnW OF oFld:aDialogs[3] 2007;
FILE "pwd\level3.bmp" SIZE 15, 15 UPDATE;
TOOLTIP "Grava a dados";
ACTION ClickBotao()
Function ClickBotao()
Local oDlgPause
GRAVA_DE()
oBrDE:Refresh()
cCODES:=Space(20)
nQTDE:=0
cDEN:=Space(8)
oGde[1]:Refresh()
oGde[2]:Refresh()
oGde[3]:Refresh()
DEFINE DIALOG oDlgPause;
FROM -10,-10 TO 1, 1;
STYLE nOr( DS_MODALFRAME, WS_POPUP );
OF oFld:aDialogs[3]
oDlgPause:nTop := -20
oDlgPause:nLeft := -20
oDlgPause:bStart := { || Eval( { || WaitSeconds( 0.2 ) }, oDlgPause ), oDlgPause:End(), SysRefresh() }
ACTIVATE DIALOG oDlgPause
oDlgPause := Nil
oGde[1]:SetFocus()
Return
-
-
-
Você diz do usuário informar mais de 6 número e fazer combinações de 6 números até alcançar todas as possibilidades?
Alguém pode me ajudar nisso, por favor ???
in Programação
Posted
Porque não utiliza bChange ou bKeyDown no lugar do Valid?