Danilo Faciroli Postado Novembro 5, 2007 Denunciar Share Postado Novembro 5, 2007 OLA PESSOAL!!DESENVOLVI UM RELATORIO NO DATA REPORT E NESTE RELATORIO EU TENHO DOIS GRANDES TOTAIS:TOTAL GERAL DE VENDATOTAL GERAL DE CUSTO------------EU PRECISO CRIAR MAIS UMA LINHA NO DATA REPORT QUE ME MOSTRE:TOTAL LIQUIDO = (TOTAL DA VENDA) - (TOTAL DE CUSTO)SERA QUE O DATA REPORT FAZ ISTO---- SE PUDER ME AJUDAR EU AGRADEÇOANTECIPADAMENTE MEUS AGRADECIMENTOS :o Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Novembro 8, 2007 Denunciar Share Postado Novembro 8, 2007 Se você estiver gerando seu relatorio através de um recordset fica facil, é só criar uma SQL que some a venda some o custo e fazer a diferença de valores e jogar estes valores na text do DataReportPegue como exemplo a dica que postei na seção de tutoriais e dicas:http://scriptbrasil.com.br/forum/index.php?showtopic=109308 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Faciroli Postado Novembro 22, 2007 Autor Denunciar Share Postado Novembro 22, 2007 Se você estiver gerando seu relatorio através de um recordset fica facil, é só criar uma SQL que some a venda some o custo e fazer a diferença de valores e jogar estes valores na text do DataReportPegue como exemplo a dica que postei na seção de tutoriais e dicas:http://scriptbrasil.com.br/forum/index.php?showtopic=109308Cara me desculpe mas não consegui sera que podia me ajudar mais uma vezAntecipadamente meus agradecimentos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Novembro 24, 2007 Denunciar Share Postado Novembro 24, 2007 Ok colega, vamos lá, passo a passo...Para isso eu imagino uma tabela com os dois campos :1 - credito2 - debitoNo general declarations do Form:Dim cmd As New ADODB.Command Dim relatorio As New ADODB.Recordset Crie um DataReport em branco para ver como irá funcionar, depois de entender como funciona adapte ao seu projeto ok? após criar o DataReport insira nele: 1 textbox na seção details section1 e ponha na propriedade DataField = credito 1 textbox na seção details section1 e ponha na propriedade DataField = debito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_Credito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_Debito 1 Label na seção Page Footer Section3 e ponha na propriedade Name = total_liquido Agora no botão para gerar o relatorio: Private Sub Command1_Click() With cmd .ActiveConnection = cnn 'cnn é o nome da conexão .CommandType = adCmdText .CommandText = "SELECT tabela.credito, tabela.debito, (Select Sum(credito) as Totalcred From tabela) as totalcred, (select sum(debito) as totaldeb from tabela) as totaldeb FROM tabela" ' instrução SQL para retornar os campos debito, credito e suas somas Set rs = .Execute 'carrega o recordset DataReport1.Sections("section3").Controls("Total_credito").Caption = rs!totalcred ' insere no datareport a soma dos creditos DataReport1.Sections("section3").Controls("total_debito").Caption = rs!totaldeb ' insere no datareport a soma dos debitos Dim somacred As Long ' cria variavel para guardar valor da soma dos creditos Dim somadeb As Long ' cria variavel para guardar valor da soma dos debitos Dim dif As Long ' cria variavel para guardar a diferença entre credito e debito somacred = rs!totalcred ' insere o valor da soma dos creditos do recordset na variavel somadeb = rs!totaldeb ' insere o valor da soma dos debitos do recordset na variavel dif = somacred - somadeb ' calcula a diferença entre credito e debito guardando nesta variavel DataReport1.Sections("section3").Controls("total_liquido").Caption = dif ' insere a diferença através da variavel no DataReport With DataReport1 ' Chama o DataReport Set .DataSource = rs .DataMember = "" .Refresh .Show End With End With End SubBeleza ?Qualquer duvida estamos ai ! ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Março 6, 2008 Denunciar Share Postado Março 6, 2008 (editado) Olá Macêdo....estou fazendo algo parecido com isto...No meu caso é a soma das contas a pagar e a receber em um período...Mas o problema está justamente no período...Aqui está o código um pouco modificado do seu tutorial...ele seleciona os campos e as somas e dps tira a diferença...Dim Conex As New ADODB.Connection Conex.Open StringDeConexao With cmd_relatorio .ActiveConnection = Conex .CommandType = adCmdText .CommandText = "SELECT Con_Venc, Con_NumDoc, Con_ContParc, Con_DataEmissao, Con_Boleto, Con_NomeFantasia, Con_Tipo, FinanWin_Contas.Con_ValorCR, FinanWin_Contas.Con_ValorCP, (Select Sum(Con_ValorCR) as totalCR From FinanWin_Contas WHERE isNull(Con_ValorPgtoCR) AND Con_Venc BETWEEN #" & txtDataInicial & "# AND #" & txtDataFinal & "#) as totalCR, (select sum(Con_ValorCP) as totalCP from FinanWin_Contas WHERE isNull(Con_ValorPgtoCP) AND Con_Venc BETWEEN #" & txtDataInicial & "# AND #" & txtDataFinal & "#) as totalCP FROM FinanWin_Contas WHERE isNull(Con_ValorPgtoCP) AND isNull(Con_ValorPgtoCR) ORDER BY Con_Tipo, Con_Venc" Set rs_relatorio = .Execute rptBalConPConR.Sections("Section5").Controls("lblSomaCR").Caption = rs_relatorio!totalCR rptBalConPConR.Sections("Section5").Controls("lblSomaCP").Caption = rs_relatorio!totalCP Dim somaCR As Currency Dim somaCP As Currency Dim dif As Currency somaCR = rs_relatorio!totalCR somaCP = rs_relatorio!totalCP dif = somaCR - somaCP rptBalConPConR.Sections("Section5").Controls("lblDif").Caption = dif rptBalConPConR.Sections("Section5").Controls("lblSomaCR").Caption = Format(rptBalConPConR.Sections("Section5").Controls("lblSomaCR").Caption, "##0.00") rptBalConPConR.Sections("Section5").Controls("lblSomaCP").Caption = Format(rptBalConPConR.Sections("Section5").Controls("lblSomaCP").Caption, "##0.00") rptBalConPConR.Sections("Section5").Controls("lblDif").Caption = Format(rptBalConPConR.Sections("Section5").Controls("lblDif").Caption, "##0.00") If dif < 0 Then rptBalConPConR.Sections("Section5").Controls("RS_Dif").ForeColor = vbRed rptBalConPConR.Sections("Section5").Controls("lblDif").ForeColor = vbRed Else rptBalConPConR.Sections("Section5").Controls("RS_Dif").ForeColor = vbBlue rptBalConPConR.Sections("Section5").Controls("lblDif").ForeColor = vbBlue End If With rptBalConPConR Set .DataSource = rs_relatorio .DataMember = "" .Refresh .Show End With End With Aí vem o problema... Preciso especificar duas datas [Con_Venc] para selecionar os registros... Há seis registros cadastrados....o campo Con_Venc está preenchido com as seguintes datas: 15/02/08 15/03/08 15/04/08 20/02/08 20/03/08 20/04/08 Até aí tudo certo....as datas são nessa ordem mesmo que precisam ficar... Mas no form em q especifico as datas, se coloco 01/01/01 como datainicial e 10/10/10 como data final, ele me tras todos os registros sem nenhum problema [pois todos estão dentro dessas datas] Mas se quero gerar o relatorio com as contas do mes de março...se coloco 01/03/08 como datainicial e 31/03/08 como datafinal, ele dá o erro Run-time error '13': Type mismatch.... ...e seleciona esta linha: rptBalConPConR.Sections("Section5").Controls("lblSomaCR").Caption = rs_relatorio!totalCRNão sei porque está dando esse erro de tipo de dados...Você conseguiria me ajudar??Obrigado Editado Março 7, 2008 por Gabriel Cabral Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Danilo Faciroli
OLA PESSOAL!!
DESENVOLVI UM RELATORIO NO DATA REPORT E NESTE RELATORIO EU TENHO DOIS GRANDES TOTAIS:
TOTAL GERAL DE VENDA
TOTAL GERAL DE CUSTO
------------
EU PRECISO CRIAR MAIS UMA LINHA NO DATA REPORT QUE ME MOSTRE:
TOTAL LIQUIDO = (TOTAL DA VENDA) - (TOTAL DE CUSTO)
SERA QUE O DATA REPORT FAZ ISTO---- SE PUDER ME AJUDAR EU AGRADEÇO
ANTECIPADAMENTE MEUS AGRADECIMENTOS :o
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.