Ir para conteúdo
Fórum Script Brasil

rizuane

Membros
  • Total de itens

    27
  • Registro em

  • Última visita

Sobre rizuane

rizuane's Achievements

0

Reputação

  1. ola pessoal, tou muito encrencado com esse codigo de incluir as vendas de produtos numa grid para depois calcular o total das vendas. codigo onde instanciamos a classe vendas e declaramos algumas variaveis: 'Definir objeto da classe DetalhesPedidos Dim oDetalhesPedidos As detalhesPedidosDAL Dim nomeProduto As String Dim codProduto As String Dim precoProduto As Double Dim codigoCliente As String Dim estoqueProduto As Integer 'Definir una LISTA de Objetos DetalhesPedidos Dim ArrDetalhesPedidos As New List(Of detalhesPedidosDAL) 'botao incluir produtos na grid Private Sub btnIncluirProdt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluirProdt.Click 'atribui os valores as variáveis definidas no formulario nomeProduto = RadComboBox4.Text.ToString codProduto = lblIDprodt.Text.ToString precoProduto = Convert.ToDouble(txtPreco.Text.ToString) estoqueProduto = Convert.ToInt32(txtEstoque.Text.ToString) 'poe o foco no textbox quantidade txtQntd.Focus() 'Verificamos a quantidade foi informada If txtQntd.Text = String.Empty Then MsgBox("Informe a quantidade requerida...") txtQntd.Focus() Exit Sub End If 'Verificamos se o nome do produto , preço e quantidade não estão vazios If RadComboBox4.Text <> "" And txtPreco.Text <> "" And txtQntd.Text <> "" Then 'Verificamos se o estoque do produto não é menor do que o solicitado If Convert.ToInt32(estoqueProduto) < Convert.ToInt32(txtQntd.Text) Then 'Mostramos uma aviso ao usuário MsgBox("A quantidade requerida é Superior a do estoque") 'Como a quantidade solicitada é mario que o estoque 'perguntamos se o usuário deseja estabelecer o estoque atual 'com a nova quantidade informada If MessageBox.Show("Deseja estabelecer o estoque atual como a nova quantidade requerida", "Vendas", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then 'Establecemos a nova quantidade em estoque txtQntd.Text = estoqueProduto 'Inicializamos o objeto da classe DetalhesPedidos oDetalhesPedidos = New detalhesPedidosDAL 'Preenchemos os valores '----------------------------------------------------------------- oDetalhesPedidos.Quantidade = Convert.ToInt32(txtQntd.Text) oDetalhesPedidos.CodProduto = codProduto oDetalhesPedidos.NomeProduto = nomeProduto oDetalhesPedidos.preço = precoProduto oDetalhesPedidos.EstoqueProduto = estoqueProduto oDetalhesPedidos.Subtotal = precoProduto * Convert.ToInt32(txtQntd.Text) '------------------------------------------------------------------------ 'Verificamos se o produto esta na lista de pedidos 'e incluimos a lista de DetalhesPedidos If buscarDetalhesVendas(ArrDetalhesPedidos, oDetalhesPedidos) = False Then 'Agregamos o pedido a lista de DetalhesPedidos ArrDetalhesPedidos.Add(oDetalhesPedidos) End If 'Assciamos a lista de DetalhesPedidos como fonte de dados ao datagridview Me.DataGridView1.DataSource = ArrDetalhesPedidos Else 'Se não deseja estabelecer o estoque atual com a quantidade solicitada 'voltamos ao formulario para escolher outro produto 'btnProcuraProduto_Click(Nothing, Nothing) End If Else 'Como a quantidade requerida e menor que o estoque 'iniciamos o objeto da classe DetalhesPedidos oDetalhesPedidos = New detalhesPedidosDAL 'Preenchemos os valores no objeto oDetalhesPedidos.Quantidade = Convert.ToInt32(txtQntd.Text) oDetalhesPedidos.CodProduto = codProduto oDetalhesPedidos.NomeProduto = nomeProduto oDetalhesPedidos.preço = precoProduto oDetalhesPedidos.EstoqueProduto = estoqueProduto oDetalhesPedidos.Subtotal = precoProduto * Convert.ToInt32(txtQntd.Text) 'Verificamos se o produto solicitado esta na lista de pedidos 'Se não estiver incluimos na lista de DetalhesPedidos If buscarDetalhesVendas(ArrDetalhesPedidos, oDetalhesPedidos) = False Then 'Incluimos o pedido a lista de DetalhesPedidos ArrDetalhesPedidos.Add(oDetalhesPedidos) End If 'Associamos a lista como origem da fonte de dados Me.DataGridView1.DataSource = ArrDetalhesPedidos.ToList End If End If 'Limpamos os textBox Me.limpar_produto() 'Calculamos o Total do Pedido Me.calcular_total() End Sub Ele simplesmente inclui a primeiro produto na grid e depois não aceita a inclusao de mais produtos e não soma os subtotais na respectiva grid. O metodo usado para calcular sub total: 'metodo para calcular o total Sub calcular_total() Dim soma As Double 'calcula o valor total dos pedidos 'percorre o arrayList e soma o valor Subtotal For Each i As detalhesPedidosDAL In ArrDetalhesPedidos soma += i.Subtotal Next Me.lbtTotal.Text = soma.ToString("C") End Sub POr ultimo temos o metodo buscarDetalhesVendas: 'Funcao buscar detalhes Public Function buscarDetalhesVendas(ByVal array As List(Of detalhesPedidosDAL), ByVal objDV As detalhesPedidosDAL) As Boolean 'Vreificamos se um produto já foi solicitado For Each oDetPed As detalhesPedidosDAL In array If oDetPed.CodProduto = objDV.CodProduto Then Dim nQuantidade As Integer 'Se encontramos o produto na lista de pedidos 'incrementamos a quantidade solicitada 'com a quantidade solicitada anteriomente nQuantidade = oDetPed.Quantidade + objDV.Quantidade If nQuantidade <= oDetPed.EstoqueProduto Then oDetPed.Quantidade = nQuantidade oDetPed.Subtotal = oDetPed.preço * oDetPed.Quantidade Else MsgBox("O estoque atual é insuficiente para a quantidade solicitada.") End If Return True End If Next Return False End Function Necessitamos da vossa ajuda para introduzir os produtos que são selecionados numa combo para dentro da grid. O codigo acima so aceita a inser;ao de um unico produto na grid, mas nos pretendemos inserir mais de um produto em cada venda na grid e depois somar o total de acordo com as quantidades requesitadas. Esse codigo foi estraido do site macoratti:codigo copiado do site macoratti Se alguém tiver um outro codigo que faça o mesmo, sera bem vindo. Agradeco a ajuda desde já.
  2. Com a dica que o QUINTELAB deu-me, fui investigar e consegui resolver o caso, abaixo posto a soluxao: 'ao seleccionar uma combobox aparecesse em duas textbox valores da base de dados (PARA TABELA PRODUTOS) Dim con As New SqlConnection() Try con.ConnectionString = Dados.StringDeConexao con.Open() Dim strsql As String strsql = "Select * from PRODUTOS where produto ='" & ComboBox4.Text & "'" Dim cmd As New SqlCommand(strsql, con) Dim dr As SqlClient.SqlDataReader dr = cmd.ExecuteReader While dr.Read() TextBox7.Text = dr.Item("referencia") TextBox8.Text = dr.Item("quantidade") TextBox9.Text = dr.Item("preço") End While con.Close() Catch ex As SqlException MsgBox(ex.Message) End Try Mas antes deves popular a sua combobox, no meu caso no evento load tenho esse codigo: 'PREENCHE A COMBObox COM O NOME DO PRODUTO Dim strSql3 As String strSql3 = "select produto from PRODUTOS" ComboFill(ComboBox4, strSql3) 'METODO USADO PARA PREENCHER A COMBObox Public Sub ComboFill(ByVal cbo As ComboBox, ByVal strsql As String) Dim dt As New DataTable 'conexao Dim con As New SqlConnection() Try con.ConnectionString = Dados.StringDeConexao con.Open() Dim cmd As New SqlCommand(strsql, con) Dim da As New SqlDataAdapter(cmd) da.Fill(dt) With cbo .DataSource = Nothing 'para limpar se for recarregada .DataSource = dt .ValueMember = dt.Columns(0).ToString '.DisplayMember = dt.Columns(1).ToString End With con.Close() Catch ex As SqlException MsgBox(ex.Message) End Try End Sub Espero poder ajudar os outros. Obrigado
  3. oi pessoal tenho uma duvida acerca das combobox, vejamos o exemplo da tabela PRODUTO abaixo: id produto estoque valor 1 sabao 30 15.00 2 perfume 11 550.00 A minha combobox deve ser capaz de trazer nome produto.quando selecionar mos a combobox para escolher o perfume por exemplo, ele tera de trazer os dados do perfume como estoque e o preço que serao mostradas em duas textbox, ficando assim: a selecao devia aparecer assim quando selecionamos os produtos na combo: combobox=perfume, textbox1=11, textbox2=550.00 agradecia que me ajudassem com um codigo em vb.net abraxos
  4. consegui resolver o erro, o problema estava na coluna ID, que era chave primaria da tabela apontamentos. troquei a chave primaria para statusID que permitia fazer o "appointmentMappingInfo.StatusId = "StatusID"". Foi um reurso que usei visto que com a coluna ID, não permitia fazer o "appointmentMappingInfo.Id = "ID"", devido a classe do proprio control, que não permitia editar (são controles de TELERik winform). obrigado
  5. ola pessoal estou trabalhando num pequeno programa de gestao de consultas medicas e tenho uma base de dados sql com tres tabelas e existe relacoes entre elas: Quando o programa esta correr e clico no "Update button" recebo este erro: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_AppointmentsResources_Appointments". The conflict occurred in database "C:\DOCUMENTS AND SETTINGS\NUNEX2\DESKTOP\CONSULTASMEDICAS\BD\SCHEDULERDATA.MDF", table "dbo.Appointments", column 'ID'. The statement has been terminated. o codigo do botao Update e: Private Sub btnUpdate_Click(sender As Object, e As EventArgs) ' save scheduler changes appointmentsTableAdapter1.Update (schedulerDataDataSet.Appointments) appointmentsResourcesTableAdapter1.Update (schedulerDataDataSet.AppointmentsResources) End Sub o resto do codigo e este: AppointmentsTableAdapter1.Fill(SchedulerDataDataSetACCESS.Appointments) ResourcesTableAdapter1.Fill(SchedulerDataDataSetACCESS.Resources) AppointmentsResourcesTableAdapter1.Fill(SchedulerDataDataSetACCESS.AppointmentsResources) ' create and assign appointment mapping Dim appointmentMappingInfo As New AppointmentMappingInfo() appointmentMappingInfo.UniqueId = "UniqueId" appointmentMappingInfo.MasterEventId = "MasterEventID" appointmentMappingInfo.Start = "Start" appointmentMappingInfo.[End] = "End" appointmentMappingInfo.Summary = "Summary" appointmentMappingInfo.Description = "Description" appointmentMappingInfo.Location = "Location" appointmentMappingInfo.BackgroundId = "BackgroundID" appointmentMappingInfo.StatusId = "StatusID" appointmentMappingInfo.RecurrenceRule = "RecurrenceRule" appointmentMappingInfo.Resources = "AppointmentsAppointmentsResources" appointmentMappingInfo.ResourceId = "ResourceID" SchedulerBindingDataSourceACCESS.EventProvider.Mapping = appointmentMappingInfo SchedulerBindingDataSourceACCESS .EventProvider.DataSource =SchedulerDataDataSetACCESS.Appointments ' create and assign resource mapping Dim resourceMappingInfo As New ResourceMappingInfo() resourceMappingInfo.Id = "ID" resourceMappingInfo.Name = "Name" SchedulerBindingDataSourceACCESS.ResourceProvider.Mapping = resourceMappingInfo SchedulerBindingDataSourceACCESS.ResourceProvider.DataSource = SchedulerDataDataSetACCESS.Resources ' assign mapped binding data source RadScheduler1.DataSource = SchedulerBindingDataSourceACCESS Estou usando Telerik winform Q3 2009, scheduler control. Alguma ajuda, sugestoes agradecia.
  6. desculpa ai, mas entendeste errado, eu quero fazer uma busca na pasta selecionada somente. Essa busca vai ser pelo nome da sub-pasta. Obrigado pela disposicao caro amigo, espero que fiz entender. abraco.
  7. eu tenho um outro textbox2 onde quando intoduzir ou escrever um nome de uma sub-pasta (ex: "exame") e ao clicar no botao "PROCURAR" ele vai mostrar somente esta sub-pasta no listbox. N.B.: Esta sub-pasta (ex: "exame") esta dentro da pasta que selecionei pelo txt_watchpath.Text = MyFolderBrowser.SelectedPath
  8. É abrir uma sub-pasta especifica da pasta já indicada no textbox. Eu vou pesquizar pelo nome da sub-pasta, então no listbox tem que aparecer somente uma sub-pasta.
  9. oi pessoal amigo Tenho duvida em fazer o código de pesquisa em uma pasta especifica já selecionada atravez do FolderBrowserDialog. Tenho um formulario com dois textbox, dois butões e um listbox. Um textbox mostra o caminho da pasta selecionada, que é conseguido atraves do butão MyFolderBrowser. já consegui selecionar a pasta onde pretendo pesquisar por outra sub pastas que se encontram dentro desta, atraves deste metodo: Private Sub BtnFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFolder.Click Dim MyFolderBrowser As New System.Windows.Forms.FolderBrowserDialog ' Descriptive text displayed above the tree view control in the dialog box MyFolderBrowser.Description = "Select the Folder" ' Do not show the button for new folder MyFolderBrowser.ShowNewFolderButton = False Dim dlgResult As DialogResult = MyFolderBrowser.ShowDialog() If dlgResult = Windows.Forms.DialogResult.OK Then txt_watchpath.Text = MyFolderBrowser.SelectedPath End If A duvida esta em fazer com que na outra textbox, quando eu digitar por exemplo o nome da subpasta, ele atraves do botão procurar vai pesquisar na pasta selecionada pelo FolderBrowserDialog as sub pastas contidas nela e mostrar no lisbox somente a sub pasta pesquisada ou pretendida. E quando mostrar esta sub pasta pretendo poder abrir ela com duplo click do mouse.
  10. rizuane

    criar setup

    Consegui resolver os erros e o setup roda perfeitamente no windows vista. Consegui fazer graças a este dica de um outro forum: Pessoal vou explicar aqui como fazer para saber quais OCX´s e DLL´s possuem o programa e depois registrar estas com o inno setup Primeiro para saber quais dll´s e ocx´s que devo incluir em meu instalador e quais tenho de registrar eu faço da seguinte forma: primeiro crio um instalador normalmente utilizando o Package & Deployment Wizard do Visual Studio Feito isso vou na pasta Onde foi criado o instalador ( no meu caso o nome é Package) e abro o arquivo setup.lst com o Word ou até com bloco de notas, neste arquivo contem a lista de todas as dll´s que seu programa vai precisar e quais devem ser registradas. eis um exemplo retirado do setup.lst do instalador que criei: [bootstrap Files] File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00 AM,101888,6.0.84.50 File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00 AM,22288,4.71.1460.1 File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1 File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1 File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1 File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1 File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,2/23/04 12:00:00 AM,1386496,6.0.97.82 imprima o conteudo para depois você poder fazer as alterações no seu instalador Inno Setup Agora você inicializa seu instaldor Inno Setup , e ao chegar na parte chamada Application Files clique no botão Add File(s)... vá até a pasta onde você criou o instalador usando o PDW e abra a pasta Support, nela estão todas as DLL´s e OCX´s necessárias para seu programa, selecione selecione-as e clique em abrir, ai basta você continuar a criar seu instalador até o final, ao terminar ele vai perguntar se você deseja compilar o programa e você vai selecionar não. A seguir ira aparecer uma lista com os arquivos que foram selecionados, abaixo coloquei apenas quatro linhas para simplificar a explicação: Source: "C:\Ultimo Instalador\testeinstalador\Support\ST6UNST.EXE"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Ultimo Instalador\testeinstalador\Support\STDOLE2.TLB"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Ultimo Instalador\testeinstalador\Support\TABCTL32.OCX"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Ultimo Instalador\testeinstalador\Support\OLEPRO32.DLL"; DestDir: "{app}"; Flags: ignoreversion bom agora vem a parte mais divertida, que é digitar veja as alterações que devem ser feitas nestas linhas voltando lá em cima onde eu imprimi as linhas do aqruivo setup.lst, onde estiver escrito DLLSelfRegister é proque esta dll deve ser registrada. então você vai alterar a seguinte linha de: Source: "C:\Ultimo Instalador\testeinstalador\Support\OLEPRO32.DLL"; DestDir: "{app}"; Flags: ignoreversion para: 'trate as linhas como uma só Source: "C:\Ultimo Instalador\testeinstalador\Support\OLEPRO32.DLL"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall sharedfile regserver e assim para todas as dll´s que possuem DLLSelfRegister Agora para os arquivos com extensão .TLB deve ser feito da seguinte forma de: Source: "C:\Ultimo Instalador\testeinstalador\Support\STDOLE2.TLB"; DestDir: "{app}"; Flags: ignoreversion para: Source: "C:\Ultimo Instalador\testeinstalador\Support\STDOLE2.TLB"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall sharedfile regtypelib e pronto suas dll´s serão registradas ao se instalar seu programa Apenas algumas Observações no PDW onde estãomarcadas como {WinSysPathSysFile} no Inno setup deve estar como DestDir: "{sys}" . agora para ocx este deve ser o código Source: "C:\Ultimo Instalador\testeinstalador\Support\TABCTL32.OCX"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver e assim por diante Espero que eu tenha esclarecido suas duvidas, pois se vocês seguirem estes passos, o problema quanto a instaladores, acabará, lembrando que estou ensinando a localizar as dll´s e Ocx´s e registrar estas, e não como utilizar o inno setup. Meus agradecimentos para o senhor desta dica.
  11. rizuane

    criar setup

    ola pessoal, mais uma venho pedir a vossa colaboraxao. consegui fazer o setup da minha aplicação vb6 (tudo no windows vista). Ao instalar na maquina do cliente ele roda os formularios de cadastros de clientes e produtos perfeitamente, inclusive vai buscar dados na base de dados e mostra... mas quando vou fazer uma consulta ele não retorna nenhum dado na flexgrid, mostra uma grid vazia (não da nenhuma mensagem de erro). E tambem quando tento visualizar o relatório ele não mostra e da o seguinte erro:RUN TIME ERROR '-21470247770 (8007007E)' AUTOMATION ERROR THE SPECIFIC MODULE COULD NOT BE FOUND e quando pressiono ok ele fecha o aplicativo. estou a pedir uma ajudinha.
  12. rizuane

    criar setup

    Kuroi, quando estava fazer o setup do Package que mandaste-me ele deu esses erros e não funciona:(esperimentei no windows vista!!) " An access violation ocurred while copying the file " ......... (vinha c\windows\system32\expsrv.dll e c\windows\system32\vbjet32.dll ) Outro erro foi: Visualbasic Toolkit: Setup1.exe ( " the procedure entry point lstrcatl could not be locate in the dynamic link library MSDART.DLL")
  13. rizuane

    criar setup

    ola amigo Kuroi..........já recebi o teu e-mail e ainda não experimentei..........logo que experimentar posto aqui o resultado. abraços
  14. rizuane

    vb6

    RESOLVIDO..........o problema estava nesta string sql: No recordSource do ado data control de datEditoras tem este sql: SELECT DISTINCT Editoras.*, Livros.CodEditora FROM Editoras INNER JOIN Livros ON Editoras.CodEditora = Livros.CodEditora ORDER BY Editoras.NomeEditora; Troquei por este: SELECT DISTINCT NomeEditora FROM Editoras ORDER BY NomeEditora Alterei aqui também: Na propriedade RowSource da datacombo: datEditoras Na propriedade LIstFilde da datacombo: NomeEditora Na propriedade Boundcolumn da datacombo: NomeEditora Valeu pela minha PERSISTÊNCIA
  15. rizuane

    vb6

    oi pessoal...... estou quase a ultimar esse exercicio Bibliotecario (pdf tirado da net, com muitos erros) , so que estou com um problema nesta parte do exercicio: Elaborei um formulário para a consulta de Livros por Editora (com um datacombo, dois ado data control e uma datagrid) O funcionamento dessa consulta será assim: na DataCombo serão exibidas os nomes das editoras, e conforme o operador for alternando entre eles, os livros da editora selecionado serão exibidos no grid. Será necessário, portanto, filtrar os registros da tabela de livros de acordo com a editora escolhida na combo. No evento Load do formulário, os comandos para atribuir a ConnectionString aos controles de dados: Private Sub Form_Load() Me.Left = (frmBiblio.ScaleWidth - Me.Width) / 2 Me.Top = (frmBiblio.ScaleHeight - Me.Height) / 2 datEditoras.ConnectionString = cnnBiblio.ConnectionString datLivros.ConnectionString = cnnBiblio.ConnectionString End Sub O próximo passo é fazer com que o grid seja atualizado com os livros da editora selecionado. Para isso usaremos o eventos Click da combo: Private Sub cboEditoras_Click(Area As Integer) datLivros.RecordSource = "SELECT * FROM ConsultaTodosLivros " & _ "WHERE Editora = '" & cboEditoras.BoundText & "';" datLivros.Refresh End Sub conforme você escolhe a editora na datacombo, o grid é automaticamente atualizado com seus respectivos livros. No recordSource do ado data control de datEditoras tem este sql: SELECT DISTINCT Editoras.*, Livros.CodEditora FROM Editoras INNER JOIN Livros ON Editoras.CodEditora = Livros.CodEditora ORDER BY Editoras.NomeEditora; No recordSource do ado data control de datLivros tem este sql: SELECT * FROM ConsultaTodosLivros; Na propriedade RowSource da datacombo: datEditoras Na propriedade LIstFilde da datacombo: NomeEditora Na propriedade Boundcolumn da datacombo: Livros.CodEditora Quando corro o programa, na datacombo aparecem todas as editoras, mas quando seleciono uma editora, a grid não mostra nada fica branco.
×
×
  • Criar Novo...