mkyx
Membros-
Posts
892 -
Joined
-
Last visited
-
Days Won
15
Everything posted by mkyx
-
celular dele é 48 9106-1797
-
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 endif hPen := 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 ) ENDIF LineTo( 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 next IF 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 Citar