mkyx
-
Posts
892 -
Joined
-
Last visited
-
Days Won
15
Posts posted by mkyx
-
-
Fala, tbm, com o Eroni, ele faz parte aqui do forum, ele tem todas as rotinas fontes, para o esocial, com ela vc pode manipular como vc desejar.
-
Kapiaba, eu usei os comando gráficos para gerar as janelas e os botões, MOVETO, LINETO.
Se eu ficar clicando nos botões pretos, e voltando, umas 10 vezes, as janelas e os botões ficam tudos preto, não entendi o porquê, e estou buscando uma solução usando SAY, BUTTOM, etc, mas, tem que permitir que mudar a cor de fundo dos botôes, mas, parece que não tem jeito de mudar a cor de fundo dos botões, usando button.
-
Sim , já está e depois, como faço o meu cadastro no sistema de usuarios, pra eu poder usar?
-
Bom dia,
o comando DEFINE WINDOW - ACTIVATE WINDOW, não tem a opções MODAL ou NO MODAL
Só o comando DEFINE DIALOG - ACTIVATE DIALOG, disponibiliza a opção MODAL ou NO MODAL
-
marcio, como faz pra usar esse modulo do celular,
t
-
para gerar os botoes e as janelas, usei a rotina abaixo.
FUNCTION AD_LABEL(LI,CI,LF,CF,cTEXT,nPLCR,nCLRTEXT,nCLRLINE,nCLRFUNDO,oFONT2,odlg2)
local hPen,I,nWidth,hOldPen,NP,C,I0
local nHeight := Abs( oFont2:nHeight )
oDlg2:GetDC()
nWidth := GetTextWidth( oDlg2:hDC, cText,if(nPLCR="*",oFont1,oFont2) )
if nWidth < 0
nWidth *=-1
endifhPen := CreatePen( 0, 1, nCLRLINE)
hOldPen := SelectObject( oDlg2:hDc, hPen )
MoveTo( oDlg2:hDC, CI+5,LI,HPEN )IF UPPER(nPLCR)="L"
LineTo( oDlg2:hDC, CI+8,LI,HPEN )
MoveTo( oDlg2:hDC, CI+8+nWIDTH+1,LI,HPEN )
ELSEIF UPPER(nPLCR)="C"
nP:=(CF-CI-nWIDTH)/2
LineTo( oDlg2:hDC, CI+nP,LI,HPEN )
MoveTo( oDlg2:hDC, CI+nP+nWIDTH+1,LI,HPEN )
ELSEIF UPPER(nPLCR)="R"
LineTo( oDlg2:hDC, CF-8-nWIDTH-1,LI,HPEN )
MoveTo( oDlg2:hDC, CF-8,LI,HPEN )
ENDIFLineTo( oDlg2:hDC, CF-5,LI,HPEN )
LineTo( oDlg2:hDC, CF-4,LI+1,HPEN )
LineTo( oDlg2:hDC, CF-3,LI+1,HPEN )
LineTo( oDlg2:hDC, CF-2,LI+2,HPEN )
LineTo( oDlg2:hDC, CF-1,LI+3,HPEN )
LineTo( oDlg2:hDC, CF-1,LI+4,HPEN )
LineTo( oDlg2:hDC, CF,LI+5,HPEN )LineTo( oDlg2:hDC, CF,LF-5,HPEN )
LineTo( oDlg2:hDC, CF-1,LF-4,HPEN )
LineTo( oDlg2:hDC, CF-1,LF-3,HPEN )
LineTo( oDlg2:hDC, CF-2,LF-2,HPEN )
LineTo( oDlg2:hDC, CF-3,LF-1,HPEN )
LineTo( oDlg2:hDC, CF-4,LF-1,HPEN )
LineTo( oDlg2:hDC, CF-5,LF,HPEN )LineTo( oDlg2:hDC, CI+5,LF,HPEN )
LineTo( oDlg2:hDC, CI+4,LF-1,HPEN )
LineTo( oDlg2:hDC, CI+3,LF-1,HPEN )
LineTo( oDlg2:hDC, CI+2,LF-2,HPEN )
LineTo( oDlg2:hDC, CI+1,LF-3,HPEN )
LineTo( oDlg2:hDC, CI+1,LF-4,HPEN )
LineTo( oDlg2:hDC, CI,LF-5,HPEN )LineTo( oDlg2:hDC, CI,LI+5,HPEN )
LineTo( oDlg2:hDC, CI+1,LI+4,HPEN )
LineTo( oDlg2:hDC, CI+1,LI+3,HPEN )
LineTo( oDlg2:hDC, CI+2,LI+2,HPEN )
LineTo( oDlg2:hDC, CI+3,LI+1,HPEN )
LineTo( oDlg2:hDC, CI+4,LI+1,HPEN )
LineTo( oDlg2:hDC, CI+5,LI,HPEN )
SelectObject( oDlg2:hDc, hOldPen )
DeleteObject( hPen )C:=3
I0:=-1
for i=LI+1 TO LF-1
hPen1 := CreatePen( 0, 1, nCLRFUNDO)
IF I>=(LF-3) .and. i0<0
C:=1
I0:=1
endif
MoveTo( oDlg2:hDC, CI+1+IF(C=0,1,IF(C>0,C,0)),I,HPEN1 )
LineTo( oDlg2:hDC, CF-IF(C=0,1,IF(C>0,C,0)),I,HPEN1 )
C:=C+I0
nextIF UPPER(nPLCR)="L"
nP:=CI+8
ELSEIF UPPER(nPLCR)="C"
nP:=INT((CF-CI-nWIDTH)/2)+CI
ELSEIF UPPER(nPLCR)="R"
nP:=CF-8-nWIDTH
ELSEIF UPPER(nPLCR)="D"
nP:=INT((CF-CI-nWIDTH)/2)+CI //+nWIDTH/2
ELSEIF UPPER(nPLCR)="*"
nP:=INT((CF-CI-nWIDTH*2.3)/2)+CI
ENDIF
RText( oDlg2, cTEXT,IF(UPPER(nPLCR)="*",LI,if(UPPER(nPLCR)="D",(((LF-LI)/2)+LI)-(nHeight/2),LI-nHeight/2)), nP, nClrText, oFont2 )
oDlg2:ReleaseDC()
RETURN .T.//----------------------------------------------------------------------------//
Function RText( oDLG2,cPrompt,Y,X,nClrText2,oFont2)Local hOldFont, nOldMode, nOldClrText,nOldBkMode
* oDlg2:GetDC()
nOldClrText:=SetTextColor(oDLG2:hDC,nClrText2)
nOldBkMode:=SetBkMode(oDLG2:hDC,1)
NoldBkMode:=SetbkMode(nrgb(224,226,222),1)
hOldFont:=SelectObject(oDLG2:hDC,oFont2:hFont)
TextOut(oDLG2:hDC,Y,X,cPrompt,Len(cPrompt))
SelectObject(oDLG2:hDC,hOldFont)
SetBkMode(oDLG2:hDC,nOldBkMode)
SetTextColor(oDLG2:hDC,nOldClrText)
oDlg2:ReleaseDC()Return NIL
FUNCTION Textura(oDlgTxt,aCorBar)
LOCAL hWnd:=oDlgTxt:hWnd
LOCAL aRec:=GetClientRect(hWnd)
LOCAL oBrush,nX,nStp:=(aRec[3]-aRec[1])/2
LOCAL nColor1:=aCorBar[1],nColor2:=aCorBar[2]
LOCAL nColorR1:=nRgbRed(nColor1),nColorG1:=nRgbGreen(nColor1),nColorB1:=nRgbBlue(nColor1)
LOCAL nColorR2:=nRgbRed(nColor2),nColorG2:=nRgbGreen(nColor2),nColorB2:=nRgbBlue(nColor2)
LOCAL nSomaR:=ABS(nColorR2-nColorR1),nSomaG:=ABS(nColorG2-nColorG1),nSomaB:=ABS(nColorB2-nColorB1)
nSomaR:=IIF(nSomaR<0,0,(nSomaR/((aRec[3])/2)))
nSomaG:=IIF(nSomaG<0,0,(nSomaG/((aRec[3])/2)))
nSomaB:=IIF(nSomaB<0,0,(nSomaB/((aRec[3])/2)))
*oDlgTxt:GetDC()
aRec[3]:=0
FOR nX:=1 TO nStp
aRec[3]+=2
DEFINE BRUSH oBrush COLOR nRgb(nColorR1,nColorG1,nColorB1)
FillRect(oDlgTxt:hDC,aRec,oBrush:hBrush)
RELEASE BRUSH oBrush
aRec[1]+=2
nColorR1:=IIF(nColorR2>=nColorR1,nColorR1+nSomaR,nColorR1-nSomaR)
nColorG1:=IIF(nColorG2>=nColorG1,nColorG1+nSomaG,nColorG1-nSomaG)
nColorB1:=IIF(nColorB2>=nColorB1,nColorB1+nSomaB,nColorB1-nSomaB)
NEXT
oDlgTxt:ReleaseDC()
RETURN(NIL) -
Bom dia, fivewinners,
Alguém poderia indicar alguns comandos que poderia fazer os mesmos efeitos, resultando a tela abaixo, sem precisar usar os comandos gráficos?
Porque usando os comandos gráficos, quando abro a tela umas 10 vezes, as figuras e as cores das janelas ficam tudo preto, perde as cores.
-
Boa tarde,
Algum no grupo, ja tem disponivel um módulo pra fazer comanda de restaurante pra celular?
Só o módulo de comanda, onde registra a mesa, o numero de pessas, o garcom, e os itens solicitados
Obrigado.
-
Se for dentro do estado de sao paulo, pode esquecer, não funciona mais. No estado do rio de janeiro, está normal.
-
Boa noite, Valdir,
Como vc disse, seu sistema não tem dado muito trabalho, então, preencha esse espaço de tempo, aprendendo uma nova tecnologia.
Para cansaço físico e mental, temos suplementos, que podemos mandar fazer em farmácia de manipulação, como:
Vitamina D3 10000 UI, Cloreto de Magnésio treonato 700 mg, Ginseng Panax 100 mg . Metilcobalamina 1 mg, ômega 3, etc.
Tudo isso, são comidas de astronautas, são suplementos, que complementam a nossa alimentação, e nos dá mais vigor físico.
Parar? Never.
-
Pessoal, resolvido, usando o comando TTXTFILE():NEW(), acho que eu estava "viajando", (pode ser sobrecarga de serviços a fazer) quando testei esse comando na primeira, pra ter dado errado.
Ficou assim:
P_DESTINO:="D:\WINSQL" // pasta destino
oque_2:="CC.PRG" // nome do prg a ser alterado
oque:="LABEL" // comando a ser localizado dentro da linha e alterado para GROUP
OQUE_1:="@" // complemento do comando label: @ LI,CI TO LF,CF LABEL "TITULO" OF ODLG PIXEL
SS0:=CURDRIVE()+":\"+CURDIR()+"\"+OQUE_2 //arquivo fonte, original
ARQ_SPED:=P_DESTINO+"\"+oque_2 // arquivo destino
IF !FILE("&ARQ_SPED.")
ARQ00=FCREATE("&ARQ_SPED.",0)
FCLOSE(ARQ00)
ENDIF
num:=0
OFILE:=TTXTFILE():NEW("&SS0.")
DO WHILE .NOT. OFILE:LEOF()
apCode:=OFILE:READLINE()
if alltrim(upper(oque))$upper(apcode) .and. OQUE_1="@" .AND. "@"$APCODE .AND. !("GROUP"$upper(apcode))
num:=num+1
SS:="OGRP"+ALLTRIM(STR(NUM))+" "
p:=at("TO",UPPER(APCODE))
if p>0
APCODE=STUFF(APCODE,P,0,"GROUP "+SS)
endif
ENDIF
APCODE:=APCODE+chr(13)+chr(10)
ARQ00=FOPEN("&ARQ_SPED.",2)
FSEEK(ARQ00,0,2)
FWRITE(ARQ00,APCODE,LEN(APCODE))
FCLOSE(ARQ00)
OFILE:SKIP()
ENDDO
OFILE:END()
USE
DBCLOSEALL()
? "FIM"
Essa rotina substitue do PRG, o comando:@ LI,CI TO LF,CF LABEL "TITULO" OF ODLG PIXEL
por esse:
@ LI,CI GROUP OGRP1 TO LF,CF LABEL "TITULO" OF ODLG PIXEL
Obrigado a todos, pela contribuição.
Até a próxima.
-
Boa noite rochina,
A variável apcode, recebe o resultado da função memoline
APCODE:= MemoLine( arq_prg, 500, i, 8, .T. )
Só que memoline, só lê linha de ate 254, e o padrão é 79, se não foi mencionado nenhum valor.
e eu preciso de uma função que leia linhas com mais de 254 caracteres.
obrigado.
-
Boa noite,
De acordo com o manual do xharbour, a função mlcount, só processa linhas ate 254 caracteres, e o padrão desse comando é 79.
Assim, enquanto a rotina pegava linha por linha do prg, só conseguia processar até 254, e eu preciso que precesse a linha inteira.
Nos meus prgs, tem linhas até 400 caracteres por linha (linhas com mais de 254 caracteres). Logo, se a função só manipula até 254 caracteres, essas linha ficam truncadas.
só B.O.
Vou testar essas funçoes: FOpen(), FRead(), FSeek(), FWrite() e FClose()
-
Boa tarde, fivewinner.
Eu sempre usei o comando @ l,c Label, nos meus programas, então, todas as molduras, dentro dos window e dialog, foram feitas com esse comando: @ label
Agora, estou precisando alterar todos os comandos @ label, para o @ GROUP, essa rotina de alteração já está ok, mas, o problema está na leitura dos PRGs e regravação,
pois, quando uso o comando memoread, mlcount, memoline, e memowrite, não grava a linha inteira, só 79 caracteres, ou só 254 caracteres, e nos meus módulos tem linhas que chega a 500 caracteres por linha
como resolver esse problema de ler e regravar linhas com mais de 254 caracteres?
como estou fazendo:
SS0:=CURDRIVE()+":\"+CURDIR()+"\WINCOM.PRG"
arq_prg:=memoread(SS0)
NOVO_ARQ:=""
QTL := MLCount(arq_prg,500, 8, .T. ) // aqui vc pode alterar para o valor que vc quiser, que não funciona - MLCount(arq_prg) esse comando não funciona tbm
FOR I=1 TO QTL
APCODE:= MemoLine( arq_prg, 500, i, 8, .T. )
APCODE1:=APCODE
if alltrim(upper(oque))$upper(apcode) .and. OQUE_1="@" .AND. "@"$APCODE .AND. !("GROUP"$upper(apcode))
nreg:=nreg+1
SS:="OGRP"+ALLTRIM(STR(NREG))+" "
p:=at("TO",UPPER(APCODE))
if p>0
APCODE=STUFF(APCODE,P,0,"GROUP "+SS)
endif
ENDIF
APCODE:=ALLTRIM(APCODE)+chr(13)+chr(10)
NOVO_ARQ:=NOVO_ARQ+APCODE
NEXT
SS1:="D:\WINPRG\WINCOM.PRG"
MEMOWRIT(SS1,NOVO_ARQ)? "O arquivo "+ss0+" foi gravado em "+ss1
Já testei tbm com os camandos, que tbm não funcionam?
OFILE:=TTXTFILE():NEW("&SS0.")
DO WHILE .NOT. OFILE:LEOF()
apCode:=OFILE:READLINE()
..
.
-
corrigindo essa linha: T=T+(VAL(SUBSTR(CODEAN13,I,1))*VAL(SUBSTR(CODEAN13,I,1)))
o correto é
T=T+(VAL(SUBSTR(CODEAN13,I,1))*VAL(SUBSTR(DIGI,I,1)))
-
E tenho um software para computador local, onde pelo teclado o funcionário digita o codigo de matricula e uma senha, aceitando até 3 período por dia, manha, tarde, e noite
pode registar os dias de feriados do mês (os automáticos não precisa), afastamentos, ferias, etc e emitir o espelho do cartão de ponto, já tudo calculado, horas extras, faltas, atrasos.
Mas, o que eu saiba, por lei, só pode usar esses sistemas de computador, para as empresas de até 10 funcionários.
Acima de 10 funcionários, tem que comprar o relógio com digital, que sai o ticket na hora de bater o ponto. Isso evita fraude.
Para o juiz, o sistema de computador é passivel de fraude, o patrão, pode alterar o horário do funcionário e roubá-lo.
Espero ter ajudado.
-
eu faço assim:
// A VARIAVEL CODEAN13 GUARDA O CÓDIGO EAN13 DIGITADO PELO OPERADOR
DIGI="131313131313"
T=0
FOR I=1 TO 12
T=T+(VAL(SUBSTR(CODEAN13,I,1))*VAL(SUBSTR(CODEAN13,I,1)))
NEXT I
DIG="0"
IF (T/10)>INT(T/10)
DIG=STR(((INT(T/10)+1)*10)-T,1)
ENDIF
IF RIGHT(CODEAN13,1)#DIG
MSGINFO("Código de barra inválido!","Favor verificar:")
endif
-
vc pode montar um rotina, para verificar a validade do 13º dígito.
-
Vixi, quase acertou, não está mais dando erro de ausência da função hb_sha256, agora, só está aparecendo a mensagem que a compilação não pode ser concluida.
Deve ser conflito de versão.
-
Boa noite fivewinner,
Alguém sabe como gerar a codificação hb_sha256, quando ao compilar o programa, aparece a mensagem de função inexistente?
uso fivewin com o compilador comercial xharbour
e tbm não consegui achar a lib, dessa função
se alguem puder ajudar, será muito bem vindo
essa necessidade é para codificar e assinar os arquivos json, de boletos, para enviar para o banco bradesco, via webservice.
Ainda não testei o envio ao banco, até agora, só gerei o arquivos json, e travou na assinatura.
Obrigado a todos.
-
Boa noite, FiveWinners
Alguém sabe como deixar os cantos arredondados, no comando que exibe imagens, o IMAGE ?
Exemplo do camando:
GCFILE:=PASTA_FOTO+"\FOTO000000.JPG"
@ 10,10 IMAGE oImage1 SIZE 100,100 OF oWnd PIXEL noborder CURSOR OCURSOR
oImage1:Progress( .F. )
oImage1:LoadBmp( gcFile )
oImage1:ltransparent:=.T.
oImage1:lStretch:=.T.
oImage1:ScrollAdjust()
oImage1:Refresh()
-
eu faria assim, dentro do for/next:
for nm=1 to total_de_mesas
mesas:=mesa+strzero(nm,3)
if &mesas.="aberto"
**** exibe o número da mesa, uma figura de uma mesa ocupada, quantidade de pessoas, hora que abriu, e o valor gasto até o monento, dentro de um quadrado ou retângulo com bordas arredondadas ou dentro de um círculo
endif
next
-
Kapiaba, o exemplo que vc postou através do mega, tbm não funciona, baixei aqui, executei, gerei o qrcode, mas, o aplicativo do BB não lê.
Obrigado.
-
baixei dessa opção:
coloquei no github, divirta-se
https://github.com/eduardomotta-emottasistemas/pix_qrcode.git
eSocial ACBrLib dll download de eventos
in Programação
Posted
celular dele é 48 9106-1797