mkyx
-
Posts
892 -
Joined
-
Last visited
-
Days Won
15
Posts posted by mkyx
-
-
Boa tarde,
Já tinha feito dessa maneira aí, indicado pelo aferra, mas, fui tentar de novo, e nada
só permite a digitação do número, quando se dá enter, não corrige o campo.
-
Bom dia,
tenho um tabela feito com xbrowse usando array. Eu preciso deixar editável a coluna de quantidade,
fiz conforme abaixo, mas não grava na tabela as alterações
Alguém o por quê?
tab_item_1:={{"","","",0,0,0,"",0,0,0,0,"",0,"","",0,0,""}}
oBrw0:=TXBrowse():New( oWnd )
oBrw0:nTop:=_l0*IF(IMP_CC="@",65,125)/768
oBrw0:nLeft:=15
oBrw0:nBottom:=_l0*IF(IMP_CC="@",500,555)/768
oBrw0:nRight:=if(_c0<=1600,640,950)
oBrw0:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw0:setArray(tab_item_1)
oBrw0:nColDividerStyle := 0
oBrw0:nRowDividerStyle := 0
oBrw0:nHeaderLines := 1 //--> Cabecalho em 2 Linhas.
oBrw0:lAllowColSwapping :=.F. // Trocar Colunas
oBrw0:lAllowRowSizing := .F. //--> Nao move as Linhas
oBrw0:nRowHeight := 25 //--> Altura das Linhas do ListBox.
oBrw0:lHScroll := .F.
oBrw0:lVScroll := .F.
oBrw0:lHeader := .T.
oBrw0:lFooter := .F.
oBrw0:lRecordSelector := .F.
oBrw0:l2007:=.T.
oBrw0:bClrStd := {|| IF(TAB_ITEM_1[oBrw0:nArrayAT,1]="D",{CLR_WHITE,CLR_RED},{CLR_BLUE,CLR_WHITE}) }oBrw0:lFooter := .F.
if _c0<=1600
oBrw0:oFont := OFNT44
else
oBrw0:oFont := OFNT441
endif
oBrw0:aCols[1]:cHeader := "?"
oBrw0:aCols[1]:nWidth := 20
oBrw0:aCols[1]:nHeadStrAlign := AL_CENTER
oBrw0:aCols[1]:nDataStrAlign := AL_CENTER
oBrw0:aCols[2]:cHeader := "CÓDIGO"
oBrw0:aCols[2]:nWidth := 60
oBrw0:aCols[2]:nHeadStrAlign := AL_LEFT
oBrw0:aCols[2]:nDataStrAlign := AL_LEFT
oBrw0:aCols[3]:cHeader := "DESCRIÇÃO"
oBrw0:aCols[3]:nWidth := 295
oBrw0:aCols[3]:nHeadStrAlign := AL_LEFT
oBrw0:aCols[3]:nDataStrAlign := AL_LEFT
Somente essa coluna é editável, coluna 4
oBrw0:aCols[4]:cHeader := "QUANTID"
oBrw0:aCols[4]:nWidth := 70
oBrw0:aCols[4]:nHeadStrAlign := AL_RIGHT
oBrw0:aCols[4]:nDataStrAlign := AL_RIGHT
oBrw0:aCols[4]:bStrData := {||IF(TAB_ITEM_1[oBrw0:nArrayAT,4]>0,IF(INT(TAB_ITEM_1[oBrw0:nArrayAT,4])=TAB_ITEM_1[oBrw0:nArrayAT,4],TRANSFORM( TAB_ITEM_1[oBrw0:nArrayAT,4] , '@E 999,999'),TRANSFORM( TAB_ITEM_1[oBrw0:nArrayAT,4] , '@E 999,999.999')),"") }
oBrw0:aCols[4]:nEditType := 1
oBrw0:aCols[4]:CEDITPICTURE :="@E 999999.999"
oBrw0:aCols[4]:bOnPostEdit := {|o,x|FieldPut( tab_item_1[oBrw0:nArrayAT ,4 ] , x) } // não funcionaoBrw0:aCols[5]:cHeader := "VALOR"
oBrw0:aCols[5]:nWidth := 70
oBrw0:aCols[5]:nHeadStrAlign := AL_RIGHT
oBrw0:aCols[5]:nDataStrAlign := AL_RIGHT
oBrw0:aCols[5]:bStrData := {|| IF(TAB_ITEM_1[oBrw0:nArrayAT,5]>0,TRANSFORM( TAB_ITEM_1[oBrw0:nArrayAT,5] , '@E 999,999.99'),"") }
oBrw0:aCols[6]:cHeader := "TOTAL"
oBrw0:aCols[6]:nWidth := 100
oBrw0:aCols[6]:nHeadStrAlign := AL_RIGHT
oBrw0:aCols[6]:nDataStrAlign := AL_RIGHT
oBrw0:aCols[6]:bStrData := {||IF(TAB_ITEM_1[oBrw0:nArrayAT,6]>0, TRANSFORM( TAB_ITEM_1[oBrw0:nArrayAT,6] , '@E 999,999.99'),"") }
oBrw0:bClrSel := {|| {RGB(0,0,128),RGB(255,255,255)} } // COR SELECIONADA QUANDO SAI DE FOCO
oBrw0:CreateFromCode()
oBrw0:bKeydown:={|nkey|_obrw0(nkey,OBRW0:nArrayAt)}
-
Eu mudei de lugar, a rotina que verifica se o programa já está em execução na memória.
E por fim deu certo o que eu quero. Aqui no meu computador funcionou, não sei se nos clientes vai funcionar.
.
.
.
IF ISEXERUNNING("WINCOM.EXE")
var_sys:="WinCom 4.00.69 - www.adentech.com.br - (12) 98854-8476"
titj:="Empresário WinCom "+substr(var_sys,8,8)+" - Adentech Automação ::: "+fir_USER
IF GETACTIVEWINDOW()=0
hWnd:=FindWindow(0,[titj] )
IF hWnd # 0
BringWindowToTop( hWnd )
ShowWindow(hWnd,3)
RETURN Nil
ENDIF
ENDIF
ENDIF
..
-
Kapiaba, não funcionou, função inexistente.
-
Nos meus testes
IsIconic( oWnd:hWnd )
retornou: False
e
IsZoomed( oWnd:hWnd )
retornou: True
-
On Init RoundRecta( oDlg:hWnd, 20 )
esse comando, você coloca em todas as janelas que você desejar os cantos arredondados.
-
Como faço, para conseguir os cantos arredondados numa dialog
DEFINE DIALOG ODLG FROM 0,0 TO 15,50 STYLE NOR(WS_POPUPWINDOW) COLORS RGB(112,219,219),RGB(112,219,219) TRANSPARENT
.
.
ACTIVATE DIALOG ODLG CENTERED NOMODAL On Init RoundRecta( oDlg:hWnd, 20 )
RETURN .T.
***
Function RoundRecta( hWnd, nRound )
Default nRound := 0
Return SetWindowRgn(hWnd,CreateRoundRectRgn(GetClientRect(hWnd),nRound,nRound))
*
-
Boa noite, pessoal,
Não achei aqui no forum, algo referente por isso resolvi perguntar:
Qual comando transferir a tela do nosso programa para frente quando na tela estiver aberto várias outras janelas, como google chrome, word, etc.
BringWindowToTop( hWnd )
ShowWindow(hWnd,3)
Esses comandos, só funcionam maximizando, quando a tela estiver minimizada, funciona top.Mas, não trazem para frente, tipo BringWindowToFront, testei mas, não existe.
Desde já agradeço a todos.
-
Pessoal, será que tem jeito de colocar cantos arredondados no xBrowse?
-
sem o errsysw.prg funcionou, deu erro e saiu do programa.
com o errsysw.prg travou.
-
coloquei antes do main() e o sistema na rodou porque executou primeiro essa procedure.
e não uso compilador harbour, uso o xharbour.
-
Boa tarde,
Alguém pode me dizer se tem jeito de tratar os error em tempo de execução para que o programa não páre ou trave?
Vocês têm alguma dica?
Já tentei errorsys.prg, errsysw.prg e nada. Em ambos os prgs ou trava o pára.
Obrigado.
-
http://sped.rfb.gov.br/pasta/show/1573
veja se ajuda, aí tudo sobre edf sped livros fiscais
-
Não entendi bem o que tu queres!
Seria usar um programa próprio e emitir os boleto da CEF? e depois gerar o arquivo de remessa e enviar para a caixa?
ou importar o arquivo texto da CEF e emitir os boletos?
-
eu uso assim e funciona muito bem, com qualquer sat:
hdllSAT:=LoadLibrary( "SAT.dll" )
N_SESSAO:=INT(NRANDOM(999999)+1)
retorno:= SATConsultar(N_SESSAO)
? retorno
return .t.
DLL32 Function SATConsultar(NumeroSessao AS _INT) AS STRING PASCAL FROM "ConsultarSAT" LIB hdllSAT
DLL32 Function CSO_sat(NumeroSessao AS _INT, codigoDeAtivacao AS STRING) AS STRING PASCAL FROM "ConsultarStatusOperacional" LIB hdllSAT
-
Pessoal, bom dia
no exemplo, acima do dorneles, com as devidas correções, é possível exibir a página contendo, as informações do xml.
Abaixo, podemos ver isso, agora só falta os comandos para poder pegar o texto da página, logo após a digitação do recaptcha.
#include "fivewin.ch"
FUNCTION MAIN()
A:=BaixarXml("cole aqui o chave da nfe a ser baixada")
RETURN .T.
STATIC FUNCTION BaixarXml(f_cChave)
////////////////////////////////////////////////////////////////////////////////
local oOle, oOleDoc := Array(2)
Default f_cChave := ""
MsgWait( "Conectando ao Portal da SEFAZ...", ;
"Aguarde... ", 2.0 )TRY
oOle:= CreateObject("InternetExplorer.Application")
oOle:Visible := .t. // Apresenta o Browser
oOle:ToolBar := .f. // Desativa a barra de ferramentas
oOle:StatusBar := .F. // Desativa a barra de status
oOle:MenuBar := .f. // desativa a barra de menu
oOle:Navigate2("http://www.nfe.fazenda.gov.br/portal/consultaResumo.aspx?tipoConteudo=d09fwabTnLk=")
hWnd:= FindWindow(0,"Windows Internet Explorer")
BringWindowToTop(hWnd)
ShowWindow(hWnd, 3)
WHILE oOle:Busy
syswait(.5)
ENDCATCH
END
TRY
oOle := oOle:Document()
oOle:All:Item("ctl00$ContentPlaceHolder1$txtChaveAcessoResumo",0):Value:= f_cchave
oOle:All:Item("ctl00$ContentPlaceHolder1$txtCaptcha",0):Focus()
CATCH
END
oOle:=NilSysRefresh()
***
*** aqui deve entrar a rotina para ler a página com as informações do XML
***
RETURN .T. -
pode usar um app no celular, para atualizar o estoque, ou um leitor de codigo de barra sem fio.
-
Bom dia,
ALguem tem o modulo de restaurante para android?
um modulo onde se digita o numero da mesa, o garcom seria atraves do numero do celular dele, ou seja, o reconhecimento do garcom seria pelo numero do celular, e por fim, a digitacao do pedido da mesa:
codigo e quantidade, e observacao
Alguem teria algo assim para disponibilizar?
Favor contatar com precos, pelo e-mail: pardes.mky@hotmail.com
Obrigado.
-
Impressora fiscal, já era, é coisa do passado, muda para sat, é 1000 a zero.
-
Eu não enxerguei a necessidade de converter pdf para jpg ou bmp, só para exibir no preview do fw, vc pode exibir o pdf pelo fw, sem problema nenhum.
Explique melhor.
-
Boa tarde, pessoal
Tem como fazer uma inserção no mysql, de uma informação que ainda não esteja cadastrada, num só comando INSERT?
Exemplo:
APCODE:="insert into historicos (codigo,descricao,ent_sai) value ('TRANSF-ENT','TRANSFERÊNCIAS-ENTRADAS','E') where not exists (select * from historicos where codigo='TRANSF-ENT');
OSQL:EXEC(APCODE )
Uso o sqlrdd, mas o comando acima nem dentro do mysql 5.5 não funciona.
-
Como faço:
X0:="Consulta via leitor de QR-Code"
L1:=oPRN:GETTEXTWIDTH(X0,oFNT2)
POS:=(coluna*80-L1)/2
oprn:Say(linha,POS,X0,OFNT2)
linha:=linha+avanca*0.6
objNFeUtil := CreateObject("NFe_Util_2G.util")
Resultado:=0
msgResultado:=""
XMLAnsi = objNFeUtil:LeArquivoANSI(cFileXml, @Resultado, msgResultado)
If Resultado = 7330versaoQRCode = "100"
URL0 = ""
msgResultado=""
cStat = objNFeUtil:geraUrlNFCe(idToken,N_CSC,versaoQRCode,XMLAnsi,@URL0,msgResultado)
if cstat=8400
escala = 5
nomeArquivo = N_PASTA+"\QRCode.jpg"
msgResultado = ""
cStat_1 = objNFeUtil:geraQRCode(URL0,escala,nomeArquivo,msgResultado)
if cstat_1=8420
oBmp := TImage():Define( ,nomeArquivo, oPrn )
oPrn:SayImage(LINHA+avanca*0.3,COLUNA*16,oBmp,coluna*48,coluna*48)
linha:=linha+avanca*11
X0:="Protocolo de Autorização:"+N_PROT+" "+substr(DH_PROT,9,2)+"/"+substr(DH_PROT,6,2)+"/"+substr(DH_PROT,1,4)+" "+substr(DH_PROT,12,8)
L1:=oPRN:GETTEXTWIDTH(X0,oFNT2)
POS:=(coluna*80-L1)/2
oprn:Say(linha,POS,X0,OFNT2)
linha:=linha+avanca*0.6
else
MSGINFO("Erro não foi possível gerar o QR Code:"+chr(13)+cFileXml+chr(13)+"Código do erro: "+alltrim(str(resultado))+chr(13)+msgresultado)
endif
else
MSGINFO("Erro não foi possível gerar o URL:"+chr(13)+cFileXml+chr(13)+"Código do erro: "+alltrim(str(cstat))+chr(13)+msgresultado)
endif
ELSE
MSGINFO("Erro não foi possível ler o xml:"+chr(13)+iif(FILE(cFileXml),".T.",".F.")+" "+cFileXml+chr(13)+"Código do erro: "+alltrim(str(cstat_1))+chr(13)+msgresultado)
ENDIF
OPRN:LINE(LINHA,COLUNA,LINHA,COLUNA*80,OPEN)
linha:=linha+avanca*0.1
X0:="ADENTech Automação - www.adentech.com.br - (12) 98854-8476"
L0:=oPRN:GETTEXTWIDTH(X0,oFNT44)
POS:=(coluna*80-L0)/2
oprn:Say(linha,POS,X0,OFNT44)
-
Trabalho normalmente, só precisei configurar as tags referentes à nfce, o resto é tudo igual.
Quanto à impressão eu montei um relatório normal para tprinter, configurado para o formato de página 256.
-
EDITAR XBROWSE COM ARRAY
in Programação
Posted
Resolvido, assim:
Coloquei um SYSWAIT(0.1) dentro do método PostEdit do xbrowse:
METHOD PostEdit( xValue, lButton ) CLASS TXBrwColumn
local lGoNext := .f.,X
If ::lOnPostEdit
return nil
Endif
::lOnPostEdit := .t.
DEFAULT lButton := .f.
do case
case ::nEditType == EDIT_GET
if ::oEditGet != nil
SYSWAIT(0.1) // <----------------só com essa pausa que funcionou. OBS: pra trabalhar com bancos de dados está normal, não precisa do syswait
X:=Eval( ::bOnPostEdit, Self, Eval( ::oEditGet:bSetGet ), ::oEditGet:nLastKey )
lGoNext := ( ::oEditGet:nLastKey == VK_RETURN )
::oEditGet:End()
::oEditGet := nil
endif