USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Questao de honrra...
Gorram
não registrado
Postada em 06/07/2004 16:20 hs   
ola pessoal, não sei se estão lembrado de mim...
ps... não loguei pois esqueci minha senha...
 
e o seguinte, tem um cliente meu que quer migra o sistema dele de VB para Delphi so por que não estou conseguindo fazer o seguinte relatorio de GIRO de MERCADORIA.
 
ele que que digite o codigo do produto e o sistema me de separadamente na mesma folha os tres ultimos entradas e saidas do produto...ex
 
-----------------------------------------------------------------
Produto XXXXXXXX
 
Mes Janeiro           Mes Fevereiro               Mes Março
 
Entrou  10                 78                                48
Saiu     7                   50                                39
 
-----------------------------------------------------------------
 
ele me disse que o Deplhi faz isso...
Nunca vi esse tipo de relatorio em vb... tem jeito de fazer esse relatorio ?
 
se ajudar
quando voce da entrada no produto ou saida ele grava na tabela a quantidade e a data.
 
Grato...
 
Gorram
 
 
 
 
 
     
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
Postada em 06/07/2004 16:52 hs            
Gorram você esta usando o print, crystal ou outra forma de relatorio...
 

"O pior inimigo que você poderá encontrar será sempre você mesmo."
     
Gorram
não registrado
Postada em 06/07/2004 16:56 hs   
uso o crystal que vem no vb 5..
 
Gorram
     
filhinho
PONTA PORÃ
MS - BRASIL
Postada em 06/07/2004 16:58 hs            
Talvez com a instrução SQL select com a cláusula SUM ou COUNT e ainda o WHERE MONTH(campodata) vc. consegue o qtde. e logo manda imprimir com o PRINT.
 
Esta instrução vai depender da estrutura do seu banco de dados.
 
O Delphi é a mesma coisa que o VB., e se vc. quiser, faça um relatório cheio de FLORZINHA pra ele.
     
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
Postada em 06/07/2004 17:06 hs            
Bem com o crystal 4.6 é meio complicado se você o 8.0 seria mais facil por que ele proprio pode filtrar este tipo de situação:
Bem neste caso tem uma outra solução que seria jogar estes dados para o execel veja este exemplo , aonde tive um mesmo problema antes de adquirir o crystal 8.0
Um exemplo de utilização do método CreateObject para escrever uma planilha de Excel, independente da versão que você tem instalado em seu computador.
Dim BancoDeDados As Database
Dim x As Integer
Dim y As Integer
Dim Z As Integer
Dim old_soci As String, i As Integer
Dim TBSúmula As Recordset
Dim tbpontos As Recordset
Dim tbauxtemp As Recordset

    
    Set BancoDeDados = OpenDatabase(App.Path & "Tiroalvo.MDB", False)
    Set TBSúmula = BancoDeDados.OpenRecordset("Súmula", dbOpenSnapshot)
    Set tbpontos = BancoDeDados.OpenRecordset("Select sum([Total Pontos] ) As Total,sociedade from súmula Where Local = '" & DBCLocal & "'and Categoria = '" & DBCCategoria & "' and Data = #" & Format(DBCData, "mm/dd/yy") & "#  group by sociedade order by sum([Total Pontos]) DESC")
  

If tbpontos.EOF Then 'Não retornou nenhum registro
        MsgBox "Não há Dados para Visualizar Nesta:" & Chr(13) & "Categoria, Data e Local de Competição", 48, "Tiro Alvo Seta"
    Else
        x = 2 ' Local aonde serão inseridos os dados neste caso coluna A linha 2
        Z = 15 ' Local aonde serão inseridos os proximos dados se existir uma sociedade diferente nas tabelas
        Screen.MousePointer = 11
        
        Set oleexcel = CreateObject("excel.application")
        Set oleworkbook = oleexcel.Workbooks.Open(App.Path & "ouro.xls") ' chama a planilha existente
        Set oleworksheet = oleexcel.Worksheets("Dados") ' a plan que ira receber os dados
        
DoEvents
oleworksheet.Range("a2:p1000").ClearContents '  limpa todas as celulas para receber as novas informações
While Not tbpontos.EOF
    Sociedade_atual = tbpontos("sociedade")
    Set tbauxtemp = BancoDeDados.OpenRecordset("Select * from súmula where sociedade='" & Sociedade_atual & "'and Local = '" & DBCLocal & "'and Categoria = '" & DBCCategoria & "' and Data = #" & Format(DBCData, "mm/dd/yy") & "# order by [Total Pontos] Desc,[1tiro]desc,[2tiro]desc,[3tiro]desc,[4tiro]desc,[5tiro]desc,[6tiro]desc,[nome]desc")
    i = 0
    Do
        'Rotina para mandar para o excel
        For y = 1 To tbauxtemp.Fields.Count
            oleworksheet.Cells(x, y) = tbauxtemp.Fields(y - 1)
        Next y
                        
        With oleworksheet.Range("A" & x)
            .Value = tbauxtemp.Fields(0)
            .Font.Bold = True
        End With
        x = x + 1
        Z = X2 + 15
        'Manda para o Excel os 15 dessa sociedade
        i = i + 1
        tbauxtemp.MoveNext
    Loop Until i = 15 Or tbauxtemp.EOF 'Acrescentei o tbauxtemp.eof para o caso de so haver 1 registro...
    Do

        'Move até a próxima sociedade
        tbpontos.MoveNext
       If tbpontos.EOF Then Exit Do
    Loop Until Sociedade_atual <> tbpontos("sociedade")
    Z = Z - i
    x = x + Z
Wend
        DoEvents
        tbauxtemp.Close
        tbpontos.Close
        Screen.MousePointer = 0
        oleexcel.Visible = True
        Set tbpontos = Nothing
        Set tbauxtemp = Nothing
        Set oleexcel = Nothing
        Set oleworkbook = Nothing
        Set oleworksheet = Nothing

    End If
 
No seu caso são tres no exemplo eu precisava baixar os 15 melhores resultados de cada sociedade.
Ai para não ficar a planilha do excel fiz algumas alterações em VBA para transformar o mesmo em uma apresentação tipo do power point , ou resumindo um excel sem as barras de menu.

"O pior inimigo que você poderá encontrar será sempre você mesmo."
     
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
Postada em 06/07/2004 17:08 hs            
Gorram uma outra maneira seria trabalhar com tabelas auxiliares e filtrar a situação antes de passar para o crystal :
Segue um exemplo:
Me.MousePointer = 11
Dim Rs As Recordset
Dim ssql As String
'Zerando a tabela temporária...
BancoDeDados.Execute ("delete * from temp") 'limpo a tabela
Set Rs = BancoDeDados.OpenRecordset("select distinct(matricula) from [súmula]")
While Not Rs.EOF
'Gravo os cinco primeiros registros para cada matrícula
ssql = "insert into temp Select TOP 5 matricula,número,nome,categoria,idade,data,pontos,pontoscategoria,posição,Patrocinio,tempo from [súmula] where matricula='" & Rs!Matricula & "'and Matricula <='" & Matricula.Text & "' and Idade > '" & txtidade.Text & "'and Categoria = '" & DbcCAtegoria.Text & "'and Data >= #" & Format(DataInicial, "mm/dd/yyyy") & "# and data<= #" & Format(DataFinal, "mm/dd/yyyy") & "# order by pontos desc,data asc"
BancoDeDados.Execute ssql
Rs.MoveNext
Wend
Rs.Close
Set Rs = Nothing

Dim lFormulaF   As String
'Captura data inicial
lFormulaF = "({temp.Data} >= DATE(" & Mid$(DataInicial.Text, 7, 4) & "," & Mid$(DataInicial.Text, 4, 2) & "," & Mid$(DataInicial.Text, 1, 2) & "))"
'Captura data final
lFormulaF = lFormulaF & " AND ({temp.Data} <= DATE(" & Mid$(DataFinal.Text, 7, 4) & "," & Mid$(DataFinal.Text, 4, 2) & "," & Mid$(DataFinal.Text, 1, 2) & "))"
lFormulaF = lFormulaF & " AND {temp.Categoria} = '" & DbcCAtegoria.Text & "'"
lFormulaF = lFormulaF & " And {temp.Idade} > '" & txtidade.Text & "'"
lFormulaF = lFormulaF & " AND {temp.Matricula} <='" & Matricula.Text & "'"
CRP.SelectionFormula = lFormulaF
CRP.ReportFileName = App.Path & "CampeonatoGeral.rpt"
CRP.DataFiles(0) = App.Path & "atletismo.mdb"
CRP.RetrieveDataFiles
CRP.WindowState = crptMaximized
CRP.Destination = crptToWindow
CRP.Action = 1
Me.MousePointer = 0

"O pior inimigo que você poderá encontrar será sempre você mesmo."
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página