Ir para conteúdo
Fórum Script Brasil

mssacramento

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Posts postados por mssacramento

  1. Olá a todos:

    Ao tentar aceder a um report aparece-me uma caixa com título:

    LOGIN NO BANCO DE DADOS

    Nome do Servidor -

    Banco de Dados -

    Id de Login -

    Senha -

    Estranho porque todos os outros reports são acedidos normalmente e este aparece esta caixa que pede para fazer o login da Base de Dados.

    Alguém sabe o que se passa?

    Obrigado

    Manuel Sacramento

  2. Olá a todos:

    Estou a tentar passar elementos de um ListView para um Report no Crystal.

    Para tal escrevi o seguinte código:

    Dim Report As New CRAXDRT.Application
    Dim Rpt As CRAXDRT.Report
    
    
    Set Report = New CRAXDRT.Application
    Set Rpt = Report.OpenReport(App.Path & "\Super8-ClassificacaoFinal.rpt")
    
    
    For s = 1 To FrmSuper8.ListView1(1).ListItems.Count
    
    Rpt.ParameterFields(1).AddCurrentValue (FrmSuper8.ListView1(1).ListItems.Item(s)) 
    Rpt.ParameterFields(2).AddCurrentValue (FrmSuper8.ListView1(1).ListItems.Item(s).SubItems(2)) 
    Rpt.ParameterFields(3).AddCurrentValue (FrmSuper8.ListView1(1).ListItems.Item(s).SubItems(3)) 
    
    Next
    
    CRViewer1.ReportSource = Rpt
    
    CRViewer1.ViewReport

    O problema é que o presente código só insere o último registo do listview...

    Alguma dica para que isto funcione?

    Obrigadp

  3. Olá:

    Vi o seu post onde escreveu umas linhas de código para SQL Server...Eu transcrevi para Usar numa conexão a uma BD Access:

    Dim nempvar As String = TextBox1.Text
            Dim con1 As New OleDb.OleDbConnection
            
            con1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = " & My.Application.Info.DirectoryPath & "\ContaWin.mdb"
            con1.Open()
    
            Dim cmd As New OleDb.OleDbCommand("SELECT * FROM empresas where nemp=(@nempvar)", con1)
            [b]Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)[/b]        
            If dr.HasRows Then
                Do While dr.Read()
                    MessageBox.Show(dr("nempvar"))
                Loop
            End If
    
            con1.Close()

    Agora estou é com dificuldades na linha que está a carregado porque o VS 2008 retornou este erro:

    No value given for one or more required parameters.

    Sabe me dizer o que é que está mal?

    Obrigado

  4. Parece que já consegui...

    BOm eu não sabia que podia fazer a conexão com recurso ao DAO e então como costumo utilizar mais o DAO fiz assim:

    Dim Report As New CRAXDRT.Application
    Dim Rpt As CRAXDRT.Report
    
    caminho = frmopcoesgerais.Text1.Text
    photo = frmopcoesgerais.Text2.Text
    
    If frmanocriacao.Text1(1).Text <> "" Then
    ano = frmanocriacao.Text1(1).Text
    Else
    ano = frmanocriacao.Text1(0).Text
    End If
    
    FrmComprasAvesExposicao.BackColor = RGB(239, 238, 238)
    
    Set db = Workspaces(0).OpenDatabase(caminho)
    
    Sql = _
          "select" & _
            " nomecomprador, expositor, gaiola" & _
            " from talao2006" & _
            " order by nomecomprador"
      
    Set rs = db.OpenRecordset(Sql)
    Set Data1.Recordset = rs
    
            
    Set Report = New CRAXDRT.Application
    Set Rpt = Report.OpenReport(App.Path & "\aves2.rpt")
    
    If (Rpt.HasSavedData) Then Rpt.DiscardSavedData
    
    Rpt.Database.SetDataSource rs, 3
    
    
    setviewersize
    
    CRViewer1.ReportSource = Rpt
    
    CRViewer1.ViewReport

    Parece fácil extrair então valores da BD para o relatório através de campos .TTX

  5. Olá Kuroi:

    Efectivamente já consegui descobrir onde se encontrava a janela no CR,que estava em "Field Definitions Only" e a partir daqui já consegui criar os campos que pretendo e introduzi-os no relatório...foi criado o ficheiro .TTX bem como o .Rpt...

    A partir daqui construí o seguinte código:

    Dim Report As New CRAXDRT.Application
    Dim Rpt As CRAXDRT.Report
    
    Set con = New ADODB.Connection
    Set rs = New ADODB.Recordset
    [b]con.Open "DSN=BDGCE"[/b]
    rs.cursorlocation = aduseclient
    rs.Open "Select [nomecomprador], [expositor], [gaiola], position " & _
            "From talao2006 " & _
            "Order By [nomecomprador]", con, adopenstatic, adlockreadonly, adcmdtext
            
    Set Report = New CRAXDRT.Application
    Set Rpt = Report.OpenReport(App.Path & "\Listagementregaaves.rpt")
    
    If (Rpt.HasSavedData) Then Rpt.DiscardSavedData
    
    crreport.Database.SetDataSource rs, 3, 1
    
    
    
    setviewersize
    
    CRViewer1.ReportSource = Rpt
    
    CRViewer1.ViewReport

    que dá um erro no VB na linha marcada a Bold:

    "[Microsoft][gestor de controladores ODBC]O nome de origem de dados não foi encontrado e não foi especificado nenhum controlador pré-definido"

    Sabe o porquê deste erro?

    Obrigado

  6. Olá Kuroi:

    Na Opção que você indicou More Data Sources o que aparece é "no items Found"...não consigo visualizar as opções seguintes...

    o que eu pretendo fazer é algo do género que fazemos no visual Basic para um ListView ou para um Flexgrid que é:

    Dim Report As New CRAXDRT.Application
    Dim Rpt As CRAXDRT.Report
    
    
    Set db = Workspaces(0).OpenDatabase(progaves)
    Set Rstalao = db.OpenRecordset("select * from talao")
    aSQL = aSQL & " ORDER BY nomecomprador"
    Set Data1.Recordset = Rstalao
    
    
    Set Report = New CRAXDRT.Application
    Set Rpt = Report.OpenReport(App.Path & "\Listagementregaaves.rpt")
    
    Do While Not Data1.Recordset.EOF
    
    comprador = Data1.Recordset![nomecomprador] & ""
    expositor = Data1.Recordset![expositor] & ""
    gaiola = Data1.Recordset![gaiola] & ""
    
    Rpt.ParameterFields(1).AddCurrentValue (comprador) 'Comprador
    Rpt.ParameterFields(2).AddCurrentValue (expositor) ' Expositor
    Rpt.ParameterFields(3).AddCurrentValue (gaiola) ' Gaiola
    
    
    Data1.Recordset.MoveNext
    
    Loop
    
    setviewersize
    
    CRViewer1.ReportSource = Rpt
    
    CRViewer1.ViewReport

    Só que claro está isto que fiz para um report no CR era demasiado fácil para ser verdade...logo percebi que tinha que fazer mais qualquer coisa para fazer uma coisa do género...

    Agora não sei qual a melhor forma de fazer isto...

  7. Olá Kuroi:

    outra coisa q sei q da pra fazer é um relatorio q não aponte pra banco nenhum, apenas com os campos definidos e depois, pelo Visual Basic, você passar os dados do RecordSet para o relatorio. se isso servir pra você, da um toque ae.

    Isto é precisamente o que eu precisava fazer...você por acaso tem código em VB que possa postar aqui,para exemplificar essa situação?Já agora que tipo de campos definidos no CR se refere?ParameterFields?

    Agradeço desde já.

  8. Olá a todos:

    Tenho este pequeno código em SQL no qual tento extrair da BD os valores relativo á tabela lancamentos,coluna Livro:

    aSQL = _
         "select livro, Sum(txredvalorliquido) as valortotal" & _
         " from lancamentos" & _
         " WHERE (livro  = 'Venda de Produtos' or livro = 'Venda de Mercadorias'" & _
         "or livro = 'Outros Proveitos' or livro = 'Serviços Prestados')" & _
         "and (facturanotacredito = 'factura')" & _
         "and (IVATrimestreMes = '" & TrimestreMes & "')" & _
         "and (txredvalorliquido <> '')" & _
         "group by livro " & _
         "order by livro"

    No entanto como podem verificar na expresão Where, eu gostaria que o SUM somasse toda a coluna Livro que diga "Venda de Produtos" , "Venda de Mercadorias" etc etc, e a função SUM não está a somar todos eles,mas sim só o que diz "Venda de Mercadorias" porque é aquele que encontra primeiro na BD...isto deve-se á função OR,no entanto eu não sei como fazer para que o SUM some tudo o que está na função WHERE...

    Alguma sugestão?

    Obrigado

  9. Olá Kuroi:

    De facto com o Parameterfields funciona muito bem e já passa os valores da StringA para o Report... :rolleyes:

    No entanto em relação ao que eu tinha apresentado e á forma como sugeriu relativo a:

    Rpt.FormulaFields.Item(1).Text = stringA
    não funciona...posivelmente deve faltar caracteres(parenteses,aspas...não sei) uma fez que o VB retorna erro..

    Atenção que se for directo tem que ser assim:

    Rpt.FormulaFields.Item(1).Text = "'January'"

    e não assim:

    Rpt.FormulaFields.Item(1).Text = "January"

    a diferença são os apóstrofes.

    Obrigado

  10. Olá a Todos:

    Estou agora a dar os primeiros passos no CR e apesar de já ter lido alguns posts no fórum não consegui descobrir identico problema ao meu,daí que pedia a vossa ajuda,na qual desde já agradeço.

    Gostaria de passar através do VB valores de uma variável para o crystal reports como o código demonstra:

    Dim Report As New CRAXDRT.Application
    Dim Rpt As CRAXDRT.Report
    Dim formula As CRAXDRT.FormulaFieldDefinition
    
    
    stringA = "January"
    
    Set Report = New CRAXDRT.Application
    Set Rpt = Report.OpenReport("D:\Projectos VB\NORWIN\Norwin\decl.iva.rpt")
    
    Rpt.FormulaFields.Item(1).Text = ["stringA"]

    O VB retorna erro na última linha do código

    1) - A syntax está correcta?

    2) - Tenho que declarar a variável?

    Obrigado

×
×
  • Criar Novo...