Luiz Fernando
-
Posts
3,368 -
Joined
-
Last visited
-
Days Won
40
Posts posted by Luiz Fernando
-
-
Colegas veja se alguém pode me ajudar.
if IsExRunning("analise.exe")
? 'precisava chamar o sistema que já se encontra em aberto')
else
WinExex(cPath1+'fluxo\analise.exe')
endif
Obg
-
Olá,
Nos fontes que vi, não tem uma linha sequer de Harbour. Única semelhança é a extenção .prg. Aí vale menos a pena.
Se nada se semelha a linguagem xbase, não seria muita mais vantagem investir em uma linguagem mais popular, tipo PHP por exemplo, entre várias outras que tem no mercado, digo isto devido ao grande material disponível para estudo, encontrar mão de obra para elaboração de projetos, não faz mais sentido andar em contramão com o mercado.
-
Conheci o Alexandre no encontro em São Paulo em 2007, foram 12 anos de muito amizade, falávamos praticamente toda semana, realmente recebi esta notícia com muita tristeza, orando por ele, para sua família, que Deus ilumine o cominho do filho dele, o Pedrinho de quem ele amava tanto, dia de muita reflexão e oração.
-
Colegas preciso monitorar um servidor de um cliente por um dia, tipo qdo ocorrer uma lentidão na rede, o usuário ira me informar a hora e minuto, dai preciso ver o que estava sendo processado no servidor naquele momento, será que é possível gravar o SHOW FULL PROCESSLIST
Obg
-
-
Colegas preciso selecionar um certificado de produtor rural, a flexdocs mandou eu atualizar a DLL, fiz isto, mais me da erro abaixo
6002 - Foi selecionado um certificado de PF
utilizo a classe do Gilmer, sera que preciso mudar algo
Obg
-
bom Dia!!! Vc poderia compartilhar a rotina do xBrowse? gostaria de saber como vc esta construindo o xbrowse com essas multiplas linhas e imagem....
Bom dia, acho que este recurso saiu a coisa de 1 ano e meio mais ou menos, se tiver versãoo atual do five, é só compilar os exemplo do source que vc vai ter o exemplo, é coisa bem simples mesmo.
Abs
-
Luiz
Bom dia
A view é o resultado de um select já processado no banco de dados, ela fica armazenada no cache do mysql permitindo um acesso mais rápido.
Att
João Bosco
Colega vc utiliza este recurso ai, realmente melhora em algo, pelo que pesquisei não consegui entender aonde esta a vantagem.
Obg
-
Dois colegas citou o view, pelo que pesquisei ele cria um espelho de um select no banco de dados, mais no que isto pode ajudar ? realmente não entendi aonde está a vantagem de se usar ele.
-
Pessoal obg pelas dicas acima, aqui uso muito subselect, o desempenho usando eles é coisa fantástica, meus insert hoje é tudo em massa, por exemplo, se tenho um pedido com 80 itens por exemplo, faço um único insert(quem me ajudou isto na época foi o Evandro) , qdo digo travar, estou falando coisa de 50 segundos a 1 minuto, não é a ponto de reeniciar o serviço do mysql, o duro que num PDV 50 segundos é uma eternidade, relatorios , rotinas do dia a dia, fui dando tratamento nas rotinas, sugestão de compra por exemplo, de 6 minutos passei para 2 e depois com novos ajustes para 5 segundos, tudo tem como dar jeito, o duro qdo fazem coisas fora da rotina.
Obg
-
esse relatorio vc usa select(sql) ou comando xbase?
Colega o projeto todo só uso comandos nativos SQL, nada de xbase.
-
Pessoal já faz 7 anos que utilizo este banco de dados, durante este período com a ajuda do pessoal aqui fui customizando as rotinas que levava muito tempo para processar, tudo que demorava foi resolvido, mais as vezes numa rede de 30 terminais, um usuario por engano manda imprimir um relatorio com informações de 3 anos por exemplo, dai me trava a rede toda, sera que existe alguma forma de contornar isto.
Obg
-
o Bloco K200 e K280 pelo que vi é muito simples, espero que seja realmente somente o que esta abaixo, ainda não mandei pro escritorio para validação.
gs_sped_txt+="|K200|" gs_sped_txt+=TABLE_K200_ESTOQUE_ESCRITURADO.COL_02_K200_DT_EST+"|" gs_sped_txt+=TABLE_K200_ESTOQUE_ESCRITURADO.COL_03_K200_COD_ITEM+"|" gs_sped_txt+=TABLE_K200_ESTOQUE_ESCRITURADO.COL_04_K200_QTD+"|" gs_sped_txt+=TABLE_K200_ESTOQUE_ESCRITURADO.COL_05_K200_IND_EST+"|" gs_sped_txt+=TABLE_K200_ESTOQUE_ESCRITURADO.COL_06_K200_COD_PART+"|" gs_sped_txt+=CR
gs_sped_txt+="|K280|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_01_K280_REG+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_02_K280_DT_EST+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_03_K280_COD_ITEM+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_04_K280_QTD_COR_POS+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_05_K280_QTD_COR_NEG+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_06_K280_IND_EST+"|" gs_sped_txt+=TABLE_K280_correcao_apontamento.COL_07_K280_COD_PART+"|" gs_sped_txt+=CR
-
Boa tarde Luiz.
Essa dll vem junto com a mp2032. Você não tem ela?
Ola, colega esta DLL e a sintaxe que estou usando foi um colega que me passou, nas compra das impressoras mp4200 não vem nada, nem cd de instalação.
Obs: estes terminais antes tinha impressora fiscal, usava a dll BEMAFI32.DLL, e funcionava normal, agora colocou SAT e foi trocado para impressoras não fiscais.
Obg
-
Eu faço assim:
cComando:=chr(27)+chr(118)+chr(140)
Ret:=Bematech_ComandoTX(cComando,Len(cComando))No Help da DLL
Esta função é utilizada no envio de comandos para a impressora, como por exemplo: comandos de Autenticação, comando para Acionamento de Gaveta, comandos para Habilitar Tabelas de Caracteres, etc .
Parâmetros:
Comando: STRING com o comando que deseja executar.
Tamanho do Comando: INTEIRO com o tamanho do comando que será enviado.
Exemplo:
' Exemplo em Visual Basic
' Comando para Acionar a Gaveta de Dinheiro
sComando = chr( 27 ) + chr( 118 ) + chr( 140 )
iRetorno = ComandoTX( sComando, Len( sComando )
Colega usando a forma que postei e usando a sua forma da este erro aqui
tem algum ideia do que pode ser
obg
-
Tentou Chr(27)+Chr(118)+Chr(140)
Está utilizando a Dll Mp2032 ?
Colega estou usando sim, veja como estou fazendo a chamada, consegue enxergar algo de errado no codigo abaixo.
function gaveta() abremp4000() bm_iniciaporta('COM7') bm_configuramodeloimpressora(7) syswait(0.01) Bm_BematechTX( chr( 27 ) + chr( 118 ) + chr( 140 ) ) bm_fechaporta() closemp4000() return
Rochinha e Kapiaba obg pelo retorno vou testar os comandos de vcs no cliente para ver se dar certo, e retorno aqui para dizer se deu certo.
-
Colegas será que alguém pode me dar uma luz para abrir um gaveta de dinheiro da marca bematech, impressora mp4200, tentei com a sequencia abaixo mais não vai.
chr(27)+chr(117)+chr(140)
obg
-
Bom dia, Pessoal
Ah um tempo atras postei esse tema e conseguir funcionar perfeitamente
De uns tres meses para ca o aplicativo do google foi desativado parece que agora tem que pagar
Alguem poderia me dar uma dica se existe alguma outra forma de calcular a distancia entre dois pontos
Essa rotina meu cliente colocava o endereco de entrega e o sistema conseguir calcular a distancia para poder fazer o calculo do frete
cOrig := alltrim(End_Empr)+" - "+alltrim(Bai_Empr)+","+alltrim(Cid_Empr)+" - "+Est_Empr
cDest := alltrim(End_Clie)+" - "+alltrim(Bai_Clie)+","+alltrim(Cid_Clie)+" - "+Est_Clie
cUrl := "http://maps.googleapis.com/maps/api/distancematrix/json?origins="+cOrig+"&destinations="+cDest+"&mode=driving&language=pt-BR&sensor=false"
Bom dia, nem pagando da certo, eles mudaram alguma coisa na API, referente a pegar lat. e long, informando o endereço, se vc já tiver esta informação e mandar direto o numero da certo.
-
Amiguinhos,
marcioe
Este recurso já deve estar disponível na classe xBrowse. Veja se o pessoal do forum Internacional conseguiu resultado:
xBrowse Drag & Drop
Drag & Drop em fivewin, que bacana, uso muito isto hoje em windev, recurso muito bom.
-
Ué, passe-o por referência dentro do programa principal:
IF for isso
nTipoRef := 3
ENDIF
Kapiaba qdo estou criando nunca irei saber se é 1 ou 3, este é o problema de passar como referencia, vou ter que mudar minha logica aqui, exatamente o que não queria, mais como não deve mais nenhuma sugestão mãos ao trabalho.
oNfe := TVoNFe2g():New()
oNFe:SetValue("ide" , 'cUF' , RetCodUFIBGE(aEmpresa[1,1]) )
oNFe:SetValue("ide" , 'cNF' , strzero( val("10102"),8) )
oNFe:SetValue("ide" , 'natOp' , aDetalhe[1,6])
oNFe:SetValue("ide" , 'mod' , "55" )
oNFe:SetValue("ide" , 'serie' , nSerie )
oNFe:SetValue("ide" , 'nNF' , _notafiscal ) // Numero Nota Fiscal
oNFe:SetValue("ide" , 'dhEmi' , _data ) // aDetalhe[1,7] )
oNFe:SetValue("ide" , 'dhSaiEnt' , _saida ) // aDetalhe[1,8] ) // data de saida
oNFe:SetValue("ide" , 'tpNF' , aDetalhe[1,4] ) // 0-entrada 1-saida
-
METHOD New(cPathNFe,nTipoRef,cModeloDoc) CLASS TVoNFe2G Local nPos #IFDEF __DOS__ DEFAULT cPathNFe:=CurDir(CurDrive()) #ELSE DEFAULT cPathNFe:=curdrive()+":\"+GetCurDir() #ENDIF Default nTipoRef := 1, cModeloDoc:="55" // Isso aqui?
Sim Kapiaba, se eu alterar direto no default para 3 ira dar certo no caso de cupom fiscal referenciado, mais dai nos outros casos ira dar erro, mandar o valor junto ao method NEW terei que mudar a logica minha aqui, queria ver com os amigos se eles arrumaram alguma forma diferente de fazer isto.
Obg
-
Caso alguém precisar, as alterações foi coisa bem simples mesmo, ao envia os dados do item colocar o CST com o valor de 'S60' ao invés de '60'
DATA vBCSTDest INIT 0
DATA vICMSSTDest INIT 0
ElseIf cST == "60" aadd( axArray, {"ICMS60" , {}, 1 } ); nPos := len(axArray) aadd( axArray[nPos][2], {"orig" , TVoNFeItem():New("N", 1, 1, 1 , ,,oItem:orig ) } ) aadd( axArray[nPos][2], {"CST" , TVoNFeItem():New("N", 1, 2, 2 , ,,oItem:cCST ) } ) aadd( axArray[nPos][2], {"vBCSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCSTRet ) } ) aadd( axArray[nPos][2], {"pST" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:pST ) } ) aadd( axArray[nPos][2], {"vICMSSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vICMSSTRet ) } ) aadd( axArray[nPos][2], {"vBCFCPSTRet", TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCFCPSTRET ) } ) aadd( axArray[nPos][2], {"pFCPSTRet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pFCPSTRET ) } ) aadd( axArray[nPos][2], {"vFCPSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vFCPSTRET ) } ) aadd( axArray[nPos][2], {"pRedBCEfet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pRedBCEfet ) } ) aadd( axArray[nPos][2], {"vBCEfet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCEfet ) } ) aadd( axArray[nPos][2], {"pICMSEfet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pICMSEfet ) } ) aadd( axArray[nPos][2], {"vICMSEfet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vICMSEfet ) } ) ElseIf cST == "S60" // aqui gas oItem:cCST="60" aadd( axArray, {"ICMSST" , {}, 1 } ); nPos := len(axArray) aadd( axArray[nPos][2], {"orig" , TVoNFeItem():New("N", 1, 1, 1 , ,,oItem:orig ) } ) aadd( axArray[nPos][2], {"CST" , TVoNFeItem():New("N", 1, 2, 2 , ,,oItem:cCST ) } ) aadd( axArray[nPos][2], {"vBCSTRet" , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vBCSTRet ) } ) aadd( axArray[nPos][2], {"pST" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:pST ) } ) aadd( axArray[nPos][2], {"vICMSSTRet" , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vICMSSTRet ) } ) aadd( axArray[nPos][2], {"vBCFCPSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCFCPSTRET ) } ) aadd( axArray[nPos][2], {"pFCPSTRet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pFCPSTRET ) } ) aadd( axArray[nPos][2], {"vFCPSTRet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vFCPSTRET ) } ) aadd( axArray[nPos][2], {"pRedBCEfet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pRedBCEfet ) } ) aadd( axArray[nPos][2], {"vBCEfet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vBCEfet ) } ) aadd( axArray[nPos][2], {"pICMSEfet" , TVoNFeItem():New("N", 0, 1, 6 ,2 ,,oItem:pICMSEfet ) } ) aadd( axArray[nPos][2], {"vICMSEfet" , TVoNFeItem():New("N", 0, 1, 15,2 ,,oItem:vICMSEfet ) } ) aadd( axArray[nPos][2], {"vBCSTDest" , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vBCSTDest ) } ) aadd( axArray[nPos][2], {"vICMSSTDest" , TVoNFeItem():New("N", 1, 1, 15,2 ,,oItem:vICMSSTDest ) } )
-
Pessoal veja se alguém pode me ajudar, a classe nova do Gilmer a variavel nTipoRef esta como default com o valor de 1, como mudar ela para o valor 3
ElseIf oItem:ClassName=="TVONFEREFNF" nPos:=ascan(::axNodes, {|x| x[1]=="ide" } ) if nPos!=0 Do Case Case ::nTipoRef==1 AAdd(::axNodes[nPos,2],{"NFref" , ::SetRefNfe(oItem) }) Case ::nTipoRef==2 AAdd(::axNodes[nPos,2],{"NFref" , ::SetrefNF(oItem) }) Case ::nTipoRef==3 AAdd(::axNodes[nPos,2],{"NFref" , ::SetrefECF(oItem) }) Case ::nTipoRef==4 AAdd(::axNodes[nPos,2],{"NFref" , ::SetrefNFP(oItem) }) EndCase
-
Amiguinhos,
empresoft
Eu não incluo a tag vTroco no XML pois dá erro de validação. Eu simplemente laço o valor que o cliente deu em dinheiro na tag pgto/MP/vMP e o SAT devolve o resultado com a tag vTroco preenchida com a diferença entre o valor dado e a soma dos itens.
Simples assim rsrsrs, eu estava tentando alimentar a tag vTroco, fiz da forma que vc mencionou e deu certinho.
obg
Luiz Fernando
executar sistema em aberto
in Programação
Posted
Ola Kapiaba, fiz igual seu exemplo, mais ele não chama o sistema
function chamar_analise()
if IsExeRunning("analise.exe")
SHOWWINDOW( FINDWINDOW( 0, "analise.exe" ), 9 )
SETFOREGROUNDWINDOW( FINDWINDOW( 0, "analise" ) )
? 'não acontece nada'
else
WinExec( cPath1+'fluxo\analise.exe' )
endIf
return .t.