Jump to content
Fivewin Brasil

daniel_halon

Membros
  • Posts

    155
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by daniel_halon

  1. 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!

  2. 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ú?

  3. 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 

     

  4. 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
  5. 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.
  6. 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.

  7. 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...

  8. 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?

  9. 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

  10. 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

    listbox.jpg

    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;

    post-6308-0-26352200-1398709660_thumb.jpg

  11. 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...