Jump to content
Fivewin Brasil

Jmsilva

Membros
  • Posts

    718
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Jmsilva

  1. Obrigado Jovem ! Esta opção oculta o objeto, havia feito e não em lembrava, segue abaixo: -Só funciona para classe tget: oGet:lDisColors := .F. //é show tget- mudar cor get when=f oGet:nClrTextDis := CLR_HBLUE //é show tget - mudar cor get when=f Na classe TMultiGet não consegui com when = .f., dá para usar readonly sem when = .f., desta forma é possível ajustar a cor Resolvido !
  2. Olá, alguém se recorda como mudar a cor cinza da fonte no get quando when = .f. Obrigado!
  3. Poderia incrementar seu browse fazendo filtros obedecendo qualquer das ordens acima usando a função sr_setfilter e Sr_DbRefresh. Exemplo: na ordem 3 CPF. Listar tos os clientes de São Paulo. Dbsetorder (3) Cli->(sr_setfilter("a.cidade ='São Paulo'"),sr_dbrefresh(),dbgotop()) If Cli->(ordkeycount())>0 Cli->(xbrowse()) Endif
  4. Faria diferente, já que vc usa SQLRDD, criaria indices temporário nativo SQLRDD. dbUseArea( .T. , "SQLRDD" , "Clientes", "CLI" , .T. , .F. ) set index to ("codigo") set index to ("nome") additive set index to ("cpf") additive Depois usa dbsetorder(1..3)
  5. Minha dica e importar no pelles C e fazer tratamento, colocando o verde no fundo ela fica perfeita no browse, porém é aquele trabalho chato de ajustar cada uma delas. Já usei Gimp porém tem especializar. Fica a dica
  6. Toda classe Dialog, gets, etc vc pode definir a propriedade bKeyDown. Se vc definir f5 no oget:bKeyDown, toda vez que focu estiver no objeto get vai responde ao f5. Se definir no dialog vai responder em qq objeto que estiver no Dialog, tipo setkey(). No exemplos Fivewin vai encontrar vários exemplos. oDlg:bKeyDown := {|nKey| Minha_funcao(nKey) } Espero ter ajudado! JMSILVA
  7. Acredito que a fonte usada no browse não está instalada no Windows. Digite 'font' na aba de pesquisa do windows vai aparecer a opção "configurações de fonte", basta instalar as fontes usada no seu projeto
  8. Fiz algo com processamento paralelo e com SqlServer no meu serviço usando o xbrowse! Mas no momento só tenho exemplo do console que serve como base! não muda muito! ELSEIF nKEY > 64 .AND. nKEY < 123 .OR. nKEY == K_F3 /*processamento em segundo plano*/ HB_IdleAdd( {|| HB_BackGroundRun() } ) nTask := HB_BackGroundAdd( {|| temp->(RefreshTB(oTB)) }, 1000 ) SET BACKGROUND TASKS ON IF nKEY != K_F3 KEYBOARD Chr(nKEY) ENDIF cChave := Space(35) BOX3DOF(14,16,18,58) @ 16,20 GET cChave PICT "@!" READ cChave := Trim(cChave) If !Empty(cChave) TEMP->(DBSeek(cChave,.T.)) Endif HB_BackGroundDel( nTask ) SET BACKGROUND TASKS OFF oTB:RefreshAll() else.... **---------------------------------------------------------------------- static Function RefreshTB(oTB) //aqui vc pode carregar com comando sql e refresh no browse **---------------------------------------------------------------------- Local cTela,oGet:=GetActive() Static cLast := '' If HB_IsObject(oGet) .and. cLast != oGet:buffer cTela := SaveScreen(14,16,18,58) //não mudar ainda DBSEEK(oGet:buffer,.T.) oTB:RefreshAll() oTB:ForceStable() Restscreen(14,16,18,58,cTela) cLast := oGet:buffer oGet:SetFocus() Endif Return .t. Espero que ajude, em caso de dúvida fique a vontade, estamos ai! com isto acredito que vc consegue montar sua lógica att JMSILVA
  9. #include "FiveWin.ch" function Main() local oDlg, oCbx, cDia,cGet:=Space(10),cGet1:=Space(10) DEFINE DIALOG oDlg @ 1,3 get cGet of oDlg size 20,12 @ 2, 3 COMBOBOX oCbx VAR cDia OF oDlg SIZE 100, 300 ; ITEMS { "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domimgo" } ; STYLE CBS_DROPDOWN oCbx:oGet:bKeyChar := {|nKey| oCbx:GetKeyChar( nKey ) } oCbx:bGotFocus := {|| oCbx:Open()} oCbx:bLostFocus := {|| oCbx:Close()} @ 3.6,3 get cGet1 of oDlg size 20,12 ACTIVATE DIALOG oDlg CENTERED return nil Kapi ! Desculpa a demora. O dia foi puxado! Segue um exemplo para vcs ! abraço!
  10. Eu tbm não consegui mudar a cor. Então eu invoquei o método Open() do combobox toda vez que ele recebe o focu e o Close() quando perde o focu. Fica aí a sugestão!
  11. Obrigado Daniel, pela resposta! Após pesquisa consegui montar o comando sql que precisava ficou assim: SELECT a.cesta, a.itens FROM products AS a WHERE EXISTS (SELECT b.cesta, b.itens FROM products AS b WHERE b.cesta != b.itens AND a.cesta = b.itens AND a.itens = b.cesta) ; Valeu! Objetivo é eliminar registros inválidos após importação dos dados.
  12. Em uma tabela "products" com os campos 'id', 'cesta' e 'Itens', como montar um comando SQL para fazer uma análise em 'X' e descobrir os códigos invertidos. id cesta itens 1 C1 I1 2 C1 I2 3 I1 C1 Resultado: Id 1 e 3 Grato! JMSILVA
  13. O Exemplo peguei do Fivewin, no caso exibe um menu, vc pode sim implementar e fazer o que vc desejar, acrescentado na sua rotina timer, ele fica monitorando, em um intervalo de tempo desejado, por exemplo, uma versão nova no servidor ou qq outra informação e se desejar, além da notificação, poderá exibir uma tela para tal processamento.
  14. Olá, existe a classe da Fivewin TTrayIcon que faz exatamente isto! na pasta samples tem exemplo: testtray.prg #include "Fivewin.CH" static oWnd, oTray, oIcon function TESTIT() local oIcon1 DEFINE ICON oIcon FILE "..\icons\fivewin.ICO" DEFINE ICON oIcon1 FILE "..\icons\folder.ico" DEFINE WINDOW oWnd TITLE "Icon Tray Class for FiveWin! from Jim Gale" ICON oIcon ACTIVATE WINDOW oWnd ; ON INIT oTray := TTrayIcon():New( oWnd, oIcon, "Testing tray ...",; { || MsgInfo( "Left CLick" ) },; { | nRow, nCol | MenuTray( nRow, nCol, oTray ) } ) ; VALID oTray:End() ; ON RIGHT CLICK oTray:SetIcon( oIcon1, "Another" ) return NIL function MenuTray( nRow, nCol, oTray ) local oMenu MENU oMenu POPUP MENUITEM "Show" ACTION oWnd:Show(), oWnd:SetFocus() MENUITEM "Hide" ACTION oWnd:Hide() SEPARATOR MENUITEM "Close Application" ACTION oWnd:end() ENDMENU ACTIVATE POPUP oMenu AT nRow, nCol OF oTray:oWnd return NIL Por algum motivo não consegui fazer funcionar perfeitamente no xHarbour, acabei usando HB32 deu tudo certo. Mas não verifiquei a causa do erro no xHB. JMSilva
  15. Uso oDlg:bKeyDown := {|nkey| myfunckey(nkey) } Isso para formulário oGet:bKeyDown := {|nkey| myfunckey(nkey) } Para individualizar a cada Get
  16. Diante do exposto, eu faria assim, na matriz após o cadastro, o botão que vc citou faz o insert ou update dos registros novos ou atualizados no servidor on line, vc teria duas conexões uma local outra remota. Há necessidade de campo data para controle da atualização. Nas filiais depende muito das disponibilidade do link, se existir seria o inverso, duas conexões uma lê outra grava. Outra opção e ter um app independente para gerar um arquivo com script sql para ser lido nas filiais através de um ftp ou outro meio. Existem várias formas como vc sabe, com certeza demais amigos deverá dar outras dicas. Blz
  17. Backup local e restaura no servidor remoto se o servidor for o mesmo. Quais são o servidores ?
  18. Este erro ocorre quando os arquivos ilink32.cg e bcc32.cfg, estão na pasta BIN do BOrland, estão configurado de forma errada, geralmente é a path incorreta.
  19. Jmsilva

    Pelles C

    E a variável tbm está com space certo?
  20. Desculpa-me, não entendi nada! O que vc quer? .res para .rc ou .rc para .res?
  21. Espaço para pedir ajuda, ajuda quem pode e quem quer e gosta. Quem não quiser não precisa nem ver o fórum.
  22. Por Kapiaba, gostei da sua expertise! Conheço uso da MDI, mas não pensei da forma e objetivo que vc usou. Eu uso multithread para fazer processamento paralelo, no meu caso funciona bem, apesar do @Emotta dizer que tem problemas.
×
×
  • Create New...