Eduarda Pinto 0 Posted June 4, 2019 Report Share Posted June 4, 2019 (edited) 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 June 5, 2019 by thoga31 GeSHi Link to post Share on other sites
Cerzedelo 41 Posted June 5, 2019 Report Share Posted June 5, 2019 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 Link to post Share on other sites
Eduarda Pinto 0 Posted June 6, 2019 Author Report Share Posted June 6, 2019 (edited) 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 June 6, 2019 by thoga31 Formatação da mensagem Link to post Share on other sites
Eduarda Pinto 0 Posted June 15, 2019 Author Report Share Posted June 15, 2019 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!! Link to post Share on other sites
Cerzedelo 41 Posted June 16, 2019 Report Share Posted June 16, 2019 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) Link to post Share on other sites
Eduarda Pinto 0 Posted June 19, 2019 Author Report Share Posted June 19, 2019 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!! Link to post Share on other sites
Eduarda Pinto 0 Posted June 19, 2019 Author Report Share Posted June 19, 2019 (edited) 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 June 19, 2019 by thoga31 GeSHi Link to post Share on other sites
Cerzedelo 41 Posted June 19, 2019 Report Share Posted June 19, 2019 (edited) 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 June 19, 2019 by Cerzedelo Link to post Share on other sites
Eduarda Pinto 0 Posted June 19, 2019 Author Report Share Posted June 19, 2019 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.... Link to post Share on other sites
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