Leozinho Posted February 21, 2017 at 12:23 AM Report Share #602650 Posted February 21, 2017 at 12:23 AM Bom dia pessoal do Forum, tudo bom? Por favor, se alquem pode me ajudar. Tenho duas tabelas no SQL: Plano de Contas e Lançamentos(povoado com alguns registros guardados como exemplo). Gostaria de construir um balanço na estrutuda desejada com dois parametros, conforme descrito abaixo. Na tabela plano de contas tem uma coluna chamada 'tipo' que tem 'S' = contas totalizadoras e 'A'=contas analíticas que recebem lançamento, conforme a tabela ' lançamentos' Como poderia criar o relatório balamço com base nas tabelas e parametros informados? Muito obrigado. Parametros dois textbox: TxtDataInicial='01/02/2017' e TxtDataFinal='28/02/2017' Resultado desejado no relatório(pode ser report viewer): Saldo Anteior Debito Credito Saldo Actual 1 Ativo 20,00 10,00 -10,00 20,00 11 Ativo Corrente 20,00 10,00 -10,00 20,00 111 Caixa 20,00 10,00 -10,00 20,00 11100 Caxa A 10,00 10,00 0,00 20,00 11101 Caixa B 10,00 0,00 -10,00 0,00 Plano de Contas(Tabela no SQL): Conta Denominação Tipo 1 Ativo S 11 Ativo Corrente S 111 Caixa S 11100 Caxa A A 11101 Caixa B A Lançamentos(tabela no SQL) Data Conta DC Debito Credito 08/02/2017 11100 D 10,00 08/02/2017 11101 C 10,00 Link to comment Share on other sites More sharing options...
M6 Posted February 21, 2017 at 02:11 PM Report Share #602658 Posted February 21, 2017 at 02:11 PM Diria que tens de fazer um somatório dos valores. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Leozinho Posted February 22, 2017 at 02:12 AM Author Report Share #602697 Posted February 22, 2017 at 02:12 AM Em 21/02/2017 às 14:11, M6 disse: Diria que tens de fazer um somatório dos valores. Muito obrigado M6 pela resposta. Porém, achei este codigo sql e funciona bem. Gostaria de mostrar esse resultado no report viewer, como faria por favor? SELECT pcx.Conta , pcx.Denominação , sum(xx.saldo_inicial) AS saldo_inicial , sum(xx.Debito) AS Debito , sum(xx.Credito) AS Credito , sum(xx.saldo_final) AS saldo_final FROM ( SELECT x.Conta , coalesce( ( SELECT sum ( CASE WHEN DC = 'D' THEN Debito WHEN DC = 'C' THEN Credito * -1 ELSE 0.00 END ) FROM GL WHERE Fecha <'2017-02-28'--data deve ser igual data final AND Conta = x.Conta ),0) AS saldo_inicial , sum(x.Debito) AS Debito , sum(x.Credito) AS Credito , coalesce( ( SELECT sum ( CASE WHEN DC = 'D' THEN Debito WHEN DC = 'C' THEN Credito * -1 ELSE 0.00 END ) FROM GL WHERE fecha <= '2017-02-28' AND Conta = x.Conta ),0) AS saldo_final FROM ( SELECT lan.Conta , CASE WHEN lan.DC = 'D' THEN lan.Debito ELSE 0.00 END AS Debito , CASE WHEN lan.DC = 'C' THEN Lan.Credito ELSE 0.00 END AS Credito FROM GL AS lan WHERE lan.Fecha >= '2017-02-01'-- data inicial AND lan.Fecha <= '2017-02-28'---data final --AND lan.id_plano_conta = '2.2.2' ) AS x GROUP BY x.Conta ) AS xx JOIN PlanCuenta pcx ON xx.Conta LIKE pcx.Conta + '%' GROUP BY pcx.Conta , pcx.Denominação ORDER BY pcx.Conta ASC ; Link to comment Share on other sites More sharing options...
M6 Posted February 22, 2017 at 10:13 AM Report Share #602699 Posted February 22, 2017 at 10:13 AM Não faço ideia de como mostrar isso no Report Viewer. Tens de ver na documentação como criar um relatório. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Leozinho Posted February 23, 2017 at 12:19 AM Author Report Share #602710 Posted February 23, 2017 at 12:19 AM 13 horas atrás, M6 disse: Não faço ideia de como mostrar isso no Report Viewer. Tens de ver na documentação como criar um relatório. M6, Muito obrigado, vou verificar esta questão...qualquer coisa irei lhe informar como fiz. Link to comment Share on other sites More sharing options...
Leozinho Posted March 3, 2017 at 01:16 AM Author Report Share #602839 Posted March 3, 2017 at 01:16 AM Em 22/02/2017 às 21:19, Leozinho disse: M6, Muito obrigado, vou verificar esta questão...qualquer coisa irei lhe informar como fiz. Boa tarde, muito obrigado M6. Ainda estou a verificar o problema em questão. Mas tenho outro problema, por favor de podem me ajudar. Grava tudo certo, porém na tabela sql tem campos valor e total de tipo money. Quando grava, os valore estão assim 1854700, quero que grave assim 185,47, ou eja, não grava a vígula(,) Já tentei mudar para int, mas nada. Eis meu codigo: Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click If TxtTotalDiferença.Text = "0,00" Then conexion = New SqlConnection("data source=PC1\SQLEXPRESS;initial catalog=GLSQL1;integrated security=SSPI") comandos = New SqlCommand("INSERT INTO GL VALUES (@produto,@valor,@total)", conexion) conexion.Open() Try For Each fila In DataGridViewRegistros.Rows comandos.Parameters.Clear() comandos.Parameters.AddWithValue("@produto", Convert.ToString(fila.Cells("produto").Value)) comandos.Parameters.AddWithValue("@valor", Convert.ToString(fila.Cells("valor").Value)) ' o campo no sql é tipo money comandos.Parameters.AddWithValue("@total", Convert.ToString(fila.Cells("total").Value)) '' o campo no sql é tipo money DataGridViewRegistros.AllowUserToAddRows = False comandos.ExecuteNonQuery() Next Me.LabelConfir_Gravado.Visible = True LabelConfir_Gravado.Text = " Documento" & TxtLote.Text conexion.Close() DataGridViewRegistros = Nothing Catch ex As Exception MsgBox("Erro : " & ex.Message) End Try ElseIf TxtTotalDiferença.Text <> "0" Then MsgBox("há diferença") End If End Sub Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now