Jump to content
Fivewin Brasil

daniel_halon

Membros
  • Posts

    155
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by daniel_halon

  1. Obrigado a todos pelo interesse, não consegui fazer funcionar o group com array, a solução foi mesmo criar uma bd temporária e ficou rápido tambe ém. Abraços
  2. Obrigado a todos, não conseguindo o group com array, decidi criar um arquivo temporário e trabalhar desta maneira. Ficou rápido também. Valeu!
  3. oi Aferra, obrigado pelo interesse, desta forma da erro GROUP ON a_show[I,6], o Kapi postou un link que falava de erro na classe, e bem provável mas acho que vou seguir teu conselho, carrego em um array e passo para uma dbf temporária, a intenção de trabalhar com array e porque em rede quando consulta em uma bd grande os terminais demoram muito para processar e notei que com array diminui o tempo em 90%. Obrigado, Valeu!
  4. Tentei mas não deu certo, deve ter alguem que tenha resolvido
  5. Oi Kapi, obrigado por responder mas não sei se chegaste a perceber que não estou usando base de dados, carrego tudo em um array para ser mais rápido em rede, as outras funções em uso bd funciona ok, mas o group com array não consigo, sera que tens algum exemplo por ai dentro do teu baú?
  6. Olá amigos, preciso de uma ajuda, uso Treport do fw mas não consigo usar o group, aqui esta o fonte, sera que alguem pode me dizer o que esta errado? TELE0060->(DbSetOrder(3)) TELE0060->(dbSeek(vDataini)) DO WHILE TELE0060->(!eof()) .AND. TELE0060->A_DTPED_60 >= vDataini .and. TELE0060->A_DTPED_60 <= vDataFin IF TELE0060->A_STATUS60 == 'C' TELE0060->(dbSkip()) Loop ENDIF aadd(a_show,{TELE0060->A_TOTAL_60, TELE0060->A_DESC__60, TELE0060->A_DESBAL60, TELE0060->A_VLRPRO60, TELE0060->A_TXENT_60,; TELE0060->A_DTPED_60, TELE0060->DESC_DINHE}) TELE0060->(dbSkip()) ENDDO I:= 1 ; nHasta := LEN( a_show) REPORT oReport ; TITLE OemToAnsi("*** RELATORIO DE VENDAS ***"),"Relatorio Interno","Referente a " + Dtoc(vDataIni) + space(1) +; OemToAnsi("ate") + space(1) + Dtoc(vDataFin),"","" CENTERED; FONT oFont1, oFont2, oFont3 ; HEADER "Data: " + Dtoc(date()) + " " + time() CENTERED ; FOOTER OemToAnsi("Pagina: ")+str(oReport:nPage,3) CENTERED; PREVIEW COLUMN TITLE OemToAnsi("Num") ; DATA transform(I,'@E 999'); SIZE 3 COLUMN TITLE OemToAnsi("Data") ; DATA a_show[I,6]; SIZE 10 COLUMN TITLE "Faturamento" ; DATA a_show[I,1]; TOTAL COLUMN TITLE "Descontos" ; DATA a_show[I,2]; TOTAL COLUMN TITLE "Desc. Balcao" ; DATA a_show[I,3]; TOTAL COLUMN TITLE "Desc. Promo" ; DATA a_show[I,4]; TOTAL COLUMN TITLE "Desc. Dinh." ; DATA a_show[I,7]; TOTAL COLUMN TITLE "Taxa de Entrega" ; DATA a_show[I,5]; TOTAL; GRID GROUP ON a_show[6]; //data HEADER oReport:aGroups[1]:cValue; FOOTER "Pedidos: " + "[" + Alltrim(str(oReport:aGroups[1]:nCounter)) + "]" END REPORT oReport:CellView() //FORMA AS LINHAS VERTICAIS E HORIZ DAS CELDAS oReport:bWhile := { || I <= nHasta } oReport:bSkip := { | | I++} oReport:cGrandTotal := "Grand Total..." oReport:cPageTotal := "Page Total..." oReport:oTitle:aFont[2] := {|| 2 } //1ra linha do titulo
  7. Finalmente resolvi. Tirei do activate windows e coloquei assim. oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) } com isto mantem a tela cheia com qualquer resolução e não da mais pau. Obrigado a todos
  8. Oi Rogerio, vou testar assim como colocaste e depois dou um retorno. Daniel, não entendi no teu código onde vai o bmp(foto)?
  9. Olá amigos, tenho um problema que não estou conseguindo resolver, quem sabe alguém pode me dar uma luz. Copiei dos exemplos da Vlib do Vagner para pintar a tela principal com um bmp. Acontece que quando miniminizo o sistema e ele fica um tempo assim quando restauro ele perde o bmp e a tela fica preta, porem se não miniminizo pode ficar aberta o tempo todo que não acontece nada. Em um principio achei que era pouca memoria mas faz isto em qualquer computador. vou postar o e exemplo do ativate que e onde coloco para pintar a tela no inicio da window. ACTIVATE WINDOW oWnd MAXIMIZED ON PAINT( oWnd:SayBitmap( 0, 0, oPapel, oWnd:nWidth, oWnd:nHeight )); ON INIT( TIRA_X(), IF(Criador=='12081952', SerialProtect(Criador), Valida_Senha('Entrada ao Sistema', '1', .T.)), Ativa_Teclas(),Check_Agenda())) Resolvido assim... oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) } tirei do activate windows coloquei como o texto acima e acabou o problema Obrigado a todos
  10. Vou dar uma pesquisada nesse exemplo, obrigado Alessandro
  11. Kapi deixa explicar porque When .F. Estou usando a Vget do Vagner com REDEFINE VGET, acontece que ele não disponibilizou o REDEFINE SAY, então a melhor forma de usar e que fique Bonito(como eu) foi colocar um when .f. desta forma parece um Say
  12. Vou tentar ser mais explicito: *1 REDEFINE Vget oItens[1][01,1] VAR aItens[1][01,1] ID 2001 OF oDlg when .f. //Readonly REDEFINE Vget oItens[1][01,3] VAR aItens[1][01,3] ID 4001 OF oDlg when .f. //Readonly REDEFINE Vget oItens[1][01,4] VAR aItens[1][01,4] ID 5001 OF oDlg when .f. //Picture '999' Readonly REDEFINE Vget oItens[1][01,6] VAR aItens[1][01,6] ID 7001 OF oDlg Picture '999,999.99' when .f. //Readonly *oItens[1][01,3]:nClrFore := CLR_VERMELHO aItens[1][01,1] tem dentro a descripção dos sabores exemplo: CAL/STR/LOM/POR eu pretendo mostrar no REDEFINE assim: CAL/STR/LOM/POR, segundo o cliente desta forma o funcionario que monta os sabores das pizzas cometeriam menos erros já que fica bem ressaltado cada codigo que neste caso e: CAL = Calabresa, STR = Strogonoff, LOM = Lombo, POR = Portuguesa, o pior e que ele acha que esta pedindo uma coisa muito simples.
  13. Mais o menos Kapi, ao pedir a pizza o cliente, ele escolhe 2, 3, ou 4 sabores na mesma o sistema abre uma tela com 4 gets, pode ser usado no maximo 4 sabores ou codigos, a soma destes 4 gets get1+'/'+get2+'/'+get3+'/'+get4 e colocado juntos em um array que contem codigo, descrição, valor e quantidade, estes dados são inseridos na DESCRIÇÃO como texto. Ao querer vizualizar o campo descrição deve aparecer os códigos(sabores) conformados na pizza com cor diferente, cada vez que aparece um barra '/' o proximo codigo deve mudar de cor. Deu pra entender algo?. na imagem que postei no link podes ver a dialog onde estou inserindo os codigos e no fundo da tela os codigos já inseridos anteriormente referentes a outra pizza.
  14. Neste link da pra ver melhor a tela https://www.dropbox.com/s/f39yl3bjkp9rkh9/Captura%20de%20tela%202014-09-08%2022.41.19.png?dl=0
  15. Neste link esta a tela onde capturo os dados https://www.dropbox.com/s/vpp483bqgxz3gxd/Captura%20de%20tela%202014-09-08%2022.20.58.png?dl=0
  16. Marcelo, tua ideia e boa mas complicada demais, imagina que estou pegando um pedido pelo telefone em uma pizzaria onde digito o codigo do produto e a descrição do mesmo vai automaticamente nesse get do qual estamos falando, por exemplo: digito CO2 e a descrição é 'COCA COLA 2 LITROS', até ai tudo bem , mas quando o cliente que colocar varios sabores na pizza o operador digita ZZG o sistema reconhece este código como pizza e a traves de 4 gets vai digitando os codigos dos sabores da pizza, exemplo: CAL/POR/FRA, na hora de terminar de formar os três sabores, no get em questão aparece a soma de todos os três gets dos sabores com a barra de separação entre eles, é ai onde deve aparecer cada codigo diferente de sabor de pizzas com cores diferentes, assim: CAL/POR/FRA estes dados estão em um Get com a opção When .F. Para o cliente parece simples demais mas eu to queimando varios neuronios e por default tenho poucos...
  17. Obrigado por responder Sergio, mas o exemplo que que postaste troca a cor de toda a linha do get e eu pretendo trocar a cor de determinadas letras do texto, pelo que vejo e complicado demais.
  18. Olá Vagner, este exemplo e difícil de entender para mim e por outro lado perderia a opção de usar a vGet
  19. A ideia até que e boa, só não sei como implantar no sistema, já que o mesmo get pode ser usado para conformar sabores de pizza como no exemplo acima ou codigos como ser borda recheada ou coca cola 2lts, como ficariam os 4 gets separados?
  20. Olá amigos, to quebrando a cuca para fazer algo que deve ser simples porem não consigo. Em um texto que utilizo em um Get when .F. se apresenta assim: CAL/COR/POR/LOM, cada cojunto de letras separadas pela barra deve aparecer em uma cor diferente para ressaltar o texto, por exemplo: CAL/COR/POR/LOM, Utilizo a Vget do Vagner. Alguem tem uma idea de como fazer oItens[1][m_cont,3]:nClrFore := CLR_VERMELHO Isto troca todo o texto mas como fazer o exemplo anterior?
  21. Já fiz isto, oLbx:nRowPos, oLbx:Refresh e faz uma coisa muito engraçada troca os numero por todos iguais segundo a linha em que estou na medida que vou descendo pela lbx ?, vou continuar. Agora ficou assim, e mostra somente o numero 1 sem mudar depois de navegar na lbx. Parece uma coisa tão simples e que não estou conseguindo fazer. REDEFINE LISTBOX oLbx VAR retorno ; FIELDS ALLTRIM (str(oLbx:nAt)),; str(Tempo60->a_numped60),; Tempo60->a_cli___60,; IIF(TEMPO60->A_STATUS60 == 'C','CANCELADO',SubStr(Tempo60->a_nome__60,1,20)),; Dtoc(Tempo60->a_dtped_60),; Tempo60->a_turno_60,; Tempo60->a_horae_60,; Tempo60->a_horas_60,; IIF ( !empty( Tempo60->a_progra60 ), 'PRO', strzero( ( time_secs( iIF (empty(Tempo60->a_horas_60),time(),Tempo60->a_horas_60) ) - time_secs(Tempo60->a_horae_60) )/60 ,3,0 ) ),; Tempo60->a_entre_60; HEADERS "Seq",; "Numero",; "Telefone",; "Nome",; "Data",; "T",; "H.Ent",; "H.Sai",; "Dem",; "Entre"; ID 120; FONT oFont1; FIELDSIZES 30,65,85,250,80,20,50,50,50,80 UPDATE; OF oDlgPdia; On DBLCLICK( Dados_Pedido(oDlgPdia),lFora := .t.) //SELECT a_dtped_60 FOR tele0050->a_dtmov_50; oLbx:nAt := 01 oLbx:bKeyDown :={|nKey|IF (nkey=13, Dados_Pedido(oDlgPdia), ''),oLbx:Refresh(),lFora := .T.,IF(nKey=46,Cancela_Pedido_dia(oLbx),'')} oLbx:nClrPane := { || IIF( TEMPO60->A_STATUS60 == "C", CLR_ROSA, IIF( ( oLbx:cAlias)->( OrdKeyNo()) %2 == 1, CLR_LGREEN,CLR_HYEL ))} oLbx:nClrBackFocus := CLR_AZUL // Cor do Cursor Em Cima do Ötem * oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa oLbx:nLineStyle := 3 // Estilo das linhas nos dados da Browse oLbx:aJustIFy := { .T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.} oLbx:SetFocus() // Refocus on The Browse oLbx:Refresh() // Estabiliza o Browse/Listbox oLbx:lCellStyle := .F. *oLbx:bRClicked= { || oLbx:ShowSizes() } // nao sei tem q pesquisar ACTIVATE DIALOG oDlgPdia CENTERED //VALID lFora setkey(VK_F7,{|| Ver_pedidos_do_dia() }) Return
  22. Não, não esta , e o sequencial da linha do browse o que eu quero que apareça, com Str(oLbx:nRowPos) aparece só o número 1 e quando percorro a lbx vai aparecendo o sequencial como na foto que estou inserindo
  23. Olá Jõao, pelo que entendi nesse exemplo e só para trabalhar com setarray() eu to trabalhando direto na dbf e não consegui com oLbx:nAt,2, sera que tem algum outro jeito já que com oLbx:nRowPos) funciona mas só quando percorres a listbox.
  24. Olá amigos, estou quebrando a cuca para algo que deve ser muito simples porem não sei como. Tenho uma listBox e desejo que cada linha tenha um numero sequencial, quase consegui mas na tela aparecem todos números 1 e só depois que percorro a mesma os números vão aparecendo sequencialmente.Assim REDEFINE LISTBOX oLbx VAR retorno ; FIELDS Str(oLbx:nRowPos),; str(Tempo60->a_numped60),; Tempo60->a_cli___60,; IIF(TEMPO60->A_STATUS60 == 'C','CANCELADO',SubStr(Tempo60->a_nome__60,1,20)),; Dtoc(Tempo60->a_dtped_60),; Tempo60->a_turno_60,; Tempo60->a_horae_60,; Tempo60->a_horas_60,; IIF ( !empty( Tempo60->a_progra60 ), 'PRO', strzero( ( time_secs( iIF (empty(Tempo60->a_horas_60),time(),Tempo60->a_horas_60) ) - time_secs(Tempo60->a_horae_60) )/60 ,3,0 ) ),; Tempo60->a_entre_60; HEADERS "Seq",; "Numero",; "Telefone",; "Nome",; "Data",; "T",; "H.Ent",; "H.Sai",; "Dem",; "Entre"; ID 120; FONT oFont1; FIELDSIZES 30,65,85,250,80,20,50,50,50,80; OF oDlgPdia; On DBLCLICK( Dados_Pedido(oDlgPdia),lFora := .t.) //SELECT a_dtped_60 FOR tele0050->a_dtmov_50;
  25. Olá Judson, ve se serve pra vc. DEFINE BITMAP opapel FILENAME "Image\evs.BMP" DEFINE WINDOW oWnd ; TITLE "EVS distribuidora de alimentos"; FROM 1, 5 TO 20, 70; MENU MenuMain(oWnd) ; ICON oIcon oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) }
×
×
  • Create New...