Jump to content
Eduarda Pinto

Impressão de uma factura

Recommended Posts

Eduarda Pinto

Boa tarde, eu estou ja na parte final do meu projeto de prova de aptidão Profissional e no meu projeto em visual basci eu necessito de fazer a impressão de uma fatura e de uma encomenda e o meu código está a dar erro na parte do RectPrint

Dim snapshot As Bitmap = GetWindowImage(window, New Rectangle(Me.Location.X + 10, Me.Location.Y + 30, RectPrint.Width, RectPrint.Height))

 

Necessito mesmo de ajuda, pois vou fazer a terceira avaliação esta quinta-feira!!!! Obrigada pela compreensão!!!

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
Cerzedelo
16 horas atrás, Eduarda Pinto disse:

Boa tarde, eu estou ja na parte final do meu projeto de prova de aptidão Profissional e no meu projeto em visual basci eu necessito de fazer a impressão de uma fatura e de uma encomenda e o meu código está a dar erro na parte do RectPrint 

 Dim snapshot As Bitmap = GetWindowImage(window, New Rectangle(Me.Location.X + 10, Me.Location.Y + 30, RectPrint.Width, RectPrint.Height))

 

Necessito mesmo de ajuda, pois vou fazer a terceira avaliação esta quinta-feira!!!! Obrigada pela compreensão!!!

Terá de ser mais concreta com o erro, para que lhe possamos ajudar.

Mas também lhe digo, que me parece estranho esse método de impressão, através de capturar uma "imagem" do que está na tela, porque para mim, impressão é enviar para uma impressora.

Contudo, verifique se declarou a variável RectPrint e se importou as librarys correctas (Graphics).

Se pretender fazer impressão da factura e nota de encomenda o mais correcto é utilizar o comando printdocument do VB.

Exemplos:

https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument?view=netframework-4.8

http://www.macoratti.net/vbn_prn2.htm

https://www.wikihow.com/Create-a-Print-Preview-Control-in-Visual-Basic

Se pretende ir por outra via, mais limitada, que é a captura do form para imprimir, ver: https://stackoverflow.com/questions/966596/how-do-i-print-my-form

Uma terceira alternativa, é imprimir para pdf, ver: https://social.msdn.microsoft.com/Forums/en-US/6cf1fc90-b1ba-440e-9130-32701c669117/creating-pdf-print-in-visual-basic?forum=vbgeneral

 

 

 

Share this post


Link to post
Share on other sites
Eduarda Pinto
Em 05/06/2019 às 09:20, Cerzedelo disse:

Terá de ser mais concreta com o erro, para que lhe possamos ajudar.

Mas também lhe digo, que me parece estranho esse método de impressão, através de capturar uma "imagem" do que está na tela, porque para mim, impressão é enviar para uma impressora.

Contudo, verifique se declarou a variável RectPrint e se importou as librarys correctas (Graphics).

Se pretender fazer impressão da factura e nota de encomenda o mais correcto é utilizar o comando printdocument do VB.

Exemplos:

https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument?view=netframework-4.8

http://www.macoratti.net/vbn_prn2.htm

https://www.wikihow.com/Create-a-Print-Preview-Control-in-Visual-Basic

Se pretende ir por outra via, mais limitada, que é a captura do form para imprimir, ver: https://stackoverflow.com/questions/966596/how-do-i-print-my-form

Uma terceira alternativa, é imprimir para pdf, ver: https://social.msdn.microsoft.com/Forums/en-US/6cf1fc90-b1ba-440e-9130-32701c669117/creating-pdf-print-in-visual-basic?forum=vbgeneral

 

Muito Obrigado pela disponibilidade e atenção. Eu já resolvi o problema e está a funcionar

Edited by thoga31
Formatação da mensagem

Share this post


Link to post
Share on other sites
Eduarda Pinto

Bom dia, no meu projeto eu gostava de resolver mais um problema que nos códigos de auto incremento dá-me números negativos em vez de positivos!!!

Eu gostava de saber como colocar isso corretamente!!

Share this post


Link to post
Share on other sites
Cerzedelo
Em ‎15‎/‎06‎/‎2019 às 11:13, Eduarda Pinto disse:

Bom dia, no meu projeto eu gostava de resolver mais um problema que nos códigos de auto incremento dá-me números negativos em vez de positivos!!!

Eu gostava de saber como colocar isso corretamente!!

Pode utilizar a função Abs, que converte negativos em positivos

I=Math.Abs(-1)

 

Share this post


Link to post
Share on other sites
Eduarda Pinto

Bom dia, tenho um problema nas Encomendas não me deixa introduzir mais do que um Produto!!

O erro pode ser devido ao na base de dados nos Itens_Enocomendas o Cod_Produto seja chave primária!!

 

Share this post


Link to post
Share on other sites
Eduarda Pinto

O código que eu tenho  nas Encomendas para adiconar ao DataGridView e nos Itens_Encomendas!!!

'------- Adiciona Produtos_Encomendas-----------------

        Using con As OleDbConnection = ligacao()

            ' GRAVAR Itens_Produto

            Dim nrp, qdatag, tp As Integer
            Dim existepE As Boolean = False


            Dim Nr_Encomenda, QuantidadeE, Sub_TotalE, Cod_ProdutoE As Integer
            Dim preco_prodE As Double = 0
            Dim total_pE As Double = 0
            Dim nome_prod, sqle As String
            Nr_Encomenda = Val(Nr_EncomendaTextBox.Text)

            Cod_ProdutoE = Val(TextBox1.Text)
            nome_prod = TextBox2.Text
            preco_prodE = Val(TextBox3.Text)
            QuantidadeE = Val(TextBox4.Text)
            Sub_TotalE = preco_prodE * QuantidadeE
            TextBox5.Text = Sub_TotalE
            TextBox8.Text = Sub_TotalE

            qdatag = DataGridView2.RowCount ' quantas linhas existe no datagridview
            con.Open()
            For i = 0 To qdatag - 2
                tp = Val(DataGridView2.Rows(i).Cells(0).Value)
                If tp = Cod_ProdutoE Then

                    MsgBox("Encontrei um registo igual")

                    QuantidadeE = Val(DataGridView2.Rows(i).Cells(3).Value) + Val(TextBox4.Text)
                    DataGridView2.Rows(i).Cells(3).Value = Quantidade

                    Sub_TotalE = Val(DataGridView2.Rows(i).Cells(4).Value) + Val(TextBox5.Text)
                    DataGridView2.Rows(i).Cells(4).Value = Sub_TotalE
                    TextBox5.Text = Sub_TotalE
                    TextBox6.Text = Sub_TotalE

                    existepE = True
                    sqle = "Update Itens_Encomendas Set Quantidade=" & QuantidadeE & ", Sub_Total=" & Sub_TotalE & " Where Nr_Encomenda=" & Nr_Encomenda & " AND Cod_Produto = " & Cod_ProdutoE & ""

                    Dim sqlcom As New OleDbCommand(sqle, con)
                    Try
                        nrp = sqlcom.ExecuteNonQuery
                    Catch ex As Exception
                        MsgBox("Erro: " & ex.Message)
                    End Try

                End If
            Next
            'Ou é o primeiro elemento do datagridview ou ainda não pertence à lista

            If Not (existepE) Then
                MsgBox("Encontrei um registo diferente")
                DataGridView2.Rows.Add(Val(TextBox1.Text), TextBox2.Text, Val(TextBox3.Text), Val(TextBox4.Text), Val(TextBox4.Text) * Val(TextBox3.Text))


                ' Gravar Encomendas Produtos  - Itens_Encomendas

                sqle = "Insert into Itens_Encomendas " & _
                   "Values (" & Nr_Encomenda & "," & Cod_ProdutoE & "," & QuantidadeE & "," & Sub_TotalE & ")"

                Dim sqlcom As New OleDbCommand(sqle, con)
                Try
                    nrp = sqlcom.ExecuteNonQuery()

                Catch Exc As Exception
                    MsgBox("Erro: " & Exc.Message)
                End Try
                MsgBox("Registo guardado na tabela Itens Encomendas com sucesso!!")
                TextBox8.Text = Sub_TotalE
                TextBox6.Text = Sub_TotalE
            End If

            con.Close()
            Valor_TotalE = Valor_TotalE + Val(TextBox5.Text)
            TextBox6.Text = Valor_TotalE
            TextBox8.Text = Valor_TotalE
        End Using

 

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
Cerzedelo

Sim, o que deveria ser chave primária seria o código da encomenda, o Cod_Produto, pode ser uma chave estrangeira.

Assim, só consegue registar uma encomenda, ou seja uma linha da tabela,  com aquele Cod_Produto. Ora, na vida real, pode haver várias encomendas com várias quantidade de um dado produto.

Nota: Quando inserir código, no post, insira dentro da tag com o simbolo <>, no menu superior do editor do post

Edited by Cerzedelo

Share this post


Link to post
Share on other sites
Eduarda Pinto

Na tabela Itens_Encomendas da minha base de dados eu tenho como chave Primária o Nr_Encomenda e o Cod_Produto.

No programa de visual basic quando quero inserir dois produtos diferentes e ele não deixa!!

E dá o seguinte erro::

Erro: As alterações pedidas para a tabela não foram bem sucedidas pois iriam criar valores duplicados no índice, na tecla primária ou relacionamento. Altere os dados do campo ou campos que contêm os dados duplicados, remova o índice ou volte a definir o índice para que as entradas possam ser duplicadas e tente de novo.

Eu na fatura consigo inserir dois produtos e dois serviços e não dá erro nenhum, está a funcionar certo lá so nas encomendas é que não....

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.