quarta-feira, 1 de outubro de 2014

CLONAR TABELA - FAZER RESUM VARIOS ANOS

CLONAR TABELA - FAZER RESUM VARIOS ANOS


CRIAR UMA WINDOW VAZIA
   COM NOME DE

CRIAR UMA QUERY QUE VAI PREENCHER O LIST BOX DOS ANOS
    ( sql code) = QRY_CLONE_PEDIDO
     == MANUAL PGADMIN =
        SELECT DISTINCT TO_CHAR(DATA_EMISSAO,'YYYY') AS ANO FROM PEDIDO WHERE ID_EMPRESA=3

SELECT DISTINCT
      LEFT(duplicata_pagar.data_vencimento,4) AS ano
      FROM duplicata_pagar
      WHERE duplicata_pagar.id_empresa={PARAM_ID_EMPRESA}
      ORDER BY ano DESC


CRIAR UMA LIST BOX  ( LIST_CLONE_ANO_PEDIDO )
   ENTRAR EM CREATION
      ESCOLHA LIST BOX
           ESCOLHA BY PROGRAMMING
              ESCOLHA MULTI-SELECTION
                 NOME DO LIST BOX
                  
   LIST BOX
     CO O BOTAO DIREITO CODE
         QRY_CLONE_ORDEM_COMPRA.PARAM_ID_EMPRESA=gnEmpresaCodigo
       
     COM O BOTAO DIREITO ENTRE EM DESCRIPTION
        VA EM CONTENT
             ESCOLHA FILE/QUERY
                 ESCOLHA A QUERY QUE FOI CRIADA POR ANO
                    JA PODE TESTAR
           
CRIAR UM BOTAO  Gerar Informações
                      
CRIAR UMA TABELA
  CREATION
     TABLE
        TABLE VERTICAL
  
  CRIE COM DUAS COLUNAS
    UMA MES TEXTO
    UMA ANO CURRENCY

    NA TABELA EXPANDIR ANO

CRIAR UMA QUERY_PARA CALCULAR VALORES
  QRY_CLONE_DADOS_ANO_DUP_REC
    COLOQUE ANO E MES 
       PARA ANO E MES USE CALCULATED ITEM
          ANO = LEFT(DUPLICATA_RECEBER.DATA_VENCIMENTO,4)
          MES = SUBSTR(DUPLICATa_RECEBER.DATA_VENCIMENTO,5,2)
    FACA SUM VALOR TITULO
    ANO E MES EM ORDEM
    ANO, FILTRO
       IS IN THE LIST (DENTRO DA LISTA)
       SUPPPLIED BY THE PARAMETER (FORNECIDO POR PARAMETRO)
     
COMANDOS QUE IRA NO BOTAO DE GERAR INFORMACOES
===================================
IF ListSelectCount(LIST_CLONE_ANO_ORDEM_COMPRA) = 0 THEN  // ELE VAI VERIRICAR SE FOI SELECIONADO ANO ANO //  SE NAO VAI RETORNARIF ListSelectCount(LIST_CLONE_ANO_DUP_PAG) = 0 THEN
    Error("Selecione um ou mais Anos")
    RETURN
END
TableDeleteAll(TABLE_CLONE_ORDEM_COMPRA)  // ELIMINE OS DADOS CONTIDOS NA TABELA
TABLE_CLONE_ORDEM_COMPRA.COL_ano..Visible=True  // TORNAR A COLUNA ANO VISIVEL
sFiltroano is string
FOR i = TableCount(TABLE_CLONE_ORDEM_COMPRA,toColumn) TO 3 STEP -1   // eliminar as colunas criadas anteriormente
    ControlDelete(TableEnumColumn(TABLE_CLONE_ORDEM_COMPRA,i))
END
FOR ALL SELECTED ROW OF LIST_CLONE_ANO_ORDEM_COMPRA   //criar as colunas conforme escolhida pelo usuario
    ControlClone(TABLE_CLONE_ORDEM_COMPRA.COL_ano,"Ano" + LIST_CLONE_ANO_ORDEM_COMPRA..DisplayedValue)
    {"Ano" + LIST_CLONE_ANO_ORDEM_COMPRA..DisplayedValue,indControl}..Caption = LIST_CLONE_ANO_ORDEM_COMPRA..DisplayedValue
    sFiltroano+=[";"]+LIST_CLONE_ANO_ORDEM_COMPRA..DisplayedValue  // SEPARADOR PONTO E VIRGULA ;
END
TABLE_CLONE_ORDEM_COMPRA..Visible=True   //tornar visivel tabela
TABLE_CLONE_ORDEM_COMPRA.COL_ano..Visible=False  //nao mostrar ano tabela
FOR i=1 TO 12  //adciona uma linha por mes
    TableAddLine(TABLE_CLONE_ORDEM_COMPRA,Upper(MonthNumberInAlpha(i)))
END
QRY_CLONE_DADOS_ANO_ORDEM_COMPRA.Param_id_empresa=gnEmpresaCodigo
QRY_CLONE_DADOS_ANO_ORDEM_COMPRA.Param_ano = sFiltroano    //EXECUTA A QUERY PARA APRESENTAR OS DADOS
HExecuteQuery(QRY_CLONE_DADOS_ANO_ORDEM_COMPRA)
FOR EACH QRY_CLONE_DADOS_ANO_ORDEM_COMPRA
    {"Ano"+ QRY_CLONE_DADOS_ANO_ORDEM_COMPRA.ano,indControl}[QRY_CLONE_DADOS_ANO_ORDEM_COMPRA.mes] = QRY_CLONE_DADOS_ANO_ORDEM_COMPRA.sum_valor_total
END
nAconragem is int = Round(1000/ListSelectCount(LIST_CLONE_ANO_ORDEM_COMPRA)) //O Tamanho das colunas é adaptado automaticamente pela definiçao de ancoragem das colunas
TableAdjust(TABLE_CLONE_ORDEM_COMPRA)
FOR ALL SELECTED ROW OF LIST_CLONE_ANO_ORDEM_COMPRA
    {"Ano" + LIST_CLONE_ANO_ORDEM_COMPRA..DisplayedValue,indControl}//..AnchorRateRight = nAconragem
END
====================================






   



































ANO - LEFT - ESCOLHER SOMENTE ANO DUMA DATA

ANO - LEFT - ESCOLHER SOMENTE ANO DUMA DATA

PARA ESCOLHER SOMENTE O ANO, USE A FUNCAO LEFT

LEFT(duplicata_receber.data_vencimento,4)



Teste

Teste
teste