-
Posts
155 -
Joined
-
Last visited
-
Days Won
1
Everything posted by daniel_halon
-
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
-
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!
-
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!
-
Tentei mas não deu certo, deve ter alguem que tenha resolvido
-
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ú?
-
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
-
Perda da imagem bmp na tela principal -RESOLVIDO
daniel_halon replied to daniel_halon's topic in Programação
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 -
Perda da imagem bmp na tela principal -RESOLVIDO
daniel_halon replied to daniel_halon's topic in Programação
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)? -
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
-
Vou dar uma pesquisada nesse exemplo, obrigado Alessandro
-
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
-
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.
-
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.
-
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
-
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
-
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...
-
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.
-
Olá Vagner, este exemplo e difícil de entender para mim e por outro lado perderia a opção de usar a vGet
-
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?
-
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?
-
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
-
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
-
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.
-
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;
-
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) }