Jump to content

Rui PG

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

0 Comum

About Rui PG

  1. Boa tarde, Amigos! Por favor, alguém poderia me ajudar nessa questão, sou novo em desenvolvimento e estou a semanas tentando resolver esse problema. Desenvolvi um DataGrid emWPF preciso que quando o usuário clicar no "botão adicionar", gere automaticamente uma espécie de numeração sequencial no campo "followup", porém ao decorrer dos lançamentos dos dados no DataGrid, gere um numero sequencial ordenado do maior para o menor, ou seja, o último registro incluído no datagrid vai receber a última posição, conforme a prototipação da tela abaixo. Prototipação: XAML da Construção do DATAGRID: Código em C# do evento do botão adicionar, só falta colocar esse tipo de contador para o campo “follow-up”, na qual está destacado na figura: segue o código do botão adicionar onde tenho que programar essa auto numeração. public class JogaDadoNoGrid { public string bdgDtRegistro { get; set; } public string bdgFollowup { get; set; } public string bdgDtAgendamento { get; set; } public string bdgHorario { get; set; } public bool bdgVisitaRealizada { get; set; } public bool bdgNaoRealizada { get; set; } public bool bdgDesistiu { get; set; } public string bdgMotivo { get; set; } public string bdgObservacao { get; set; } } private void btnAddGrid_Click(object sender, RoutedEventArgs e) { JogaDadoNoGrid DadosTemporario = new JogaDadoNoGrid(); DadosTemporario.bdgDtRegistro = txtDataAtual.Text; DadosTemporario.bdgFollowup = "AQUI QUE EU PRECISO GERAR O 1º, 2º, 3º ...."; DadosTemporario.bdgHorario = txtHorario.Text; DadosTemporario.bdgDtAgendamento = txtDataAgendamento.Text; DadosTemporario.bdgVisitaRealizada = chkVisitaRealizada.IsChecked.Value; DadosTemporario.bdgNaoRealizada = chkNaoRealizada.IsChecked.Value; DadosTemporario.bdgDesistiu = chkDesistiu.IsChecked.Value; DadosTemporario.bdgMotivo = "Teste... Teste... Teste"; DtgCadastroVisitantes.Items.Add(DadosTemporario); txtDataAtual.Text = ""; txtDataAgendamento.Text = ""; txtHorario.Text = ""; chkDesistiu.IsChecked = false; chkNaoRealizada.IsChecked = false; chkVisitaRealizada.IsChecked = false; } Agradeço aos amigos, pela ajuda.
  2. Respondido pelo mestre Jose Diz (https://social.msdn.microsoft.com/profile/josé diz/) Segue solução abaixo: https://social.msdn.microsoft.com/Forums/sqlserver/pt-BR/1b51b1c4-d1b2-446a-a436-88c8955bdede/como-extrair-apenas-os-valores-que-esto-entre-aspas-no-mesmo-campo-depois-gravlos-em-outra-tabela?forum=520
  3. Boa tarde, Pessoal" Sou iniciante em SQL, em uma tabela do nosso BD tempos um campo que possui o registro com as informações do paciente concatenado com uma serie de valores que não precisamos. Como eu faço, para montar uma select para extrair desse registro apenas o que está entre aspas? O meu registro está assim: a:28:{i:18;s:13:"Sérgio silva";i:19;s:11:"1199900001";i:20;s:0:"n/i";i:21;s:0:"n/i";i:23;s:15:"Amil One Health";i:24;s:0:"n/i";i:27;s:0:"n/i";i:31;s:1:"2";i:32;s:0:"n/i";i:33;s:1:"2";i:34;s:0:;} Eu preciso dele assim: "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2"; Observação, esses monte de valores a:28: ...etc... eles mudam, não são valores fixos, se fossem até usaria o replace, mas são vários valores. Depois que eu chegar nessa mineração: "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2"; Como eu faço para alocar cada valor em campo campo qualquer, pode ser uma tabela temporária, tipo assim: |nome |campo 1 |Campo 2 |Campo 3 |Campo 4 |Campo 5 | ..... |Sérgio silva|1199900001|n/i |n/i |Amil One Health|n/i |n/i|2|n/i|2| ..... Muito obrigado amigos
  4. Rafael, muito obrigado pela atenção. Conseguei resolver o problema, irei postar abaixo os passo a passo, para que outras pessoas que estejam com o mesmo problema possam resolver. - No Settings do meu Projeto criei duas string de conexão: ConexaãoBanco --> Type: String --> Scope: User --> Value: deixei em branco NomeDoBanco --> Type: String --> Scope: User --> Value: deixei em branco - Criei um "Module" no meu projeto, com o código abaixo, e concatenei as strings do settings Imports System.Data Imports System.Data.SqlClient Module modConexao Public Function GetConnection() As SqlConnection Dim sql As String = "Data Source=" & My.Settings.ConexaoBanco & ";Initial Catalog=" & My.Settings.NomeDoBanco & ";User ID=sa;Password=masterkey" 'Dim sql As String = "Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=BD_ERP;Integrated Security=True" 'Dim sql As String = "Data Source=MARC_SERVER;Initial Catalog=BD_ERP;Integrated Security=True" Return New SqlConnection(sql) End Function - Em todas os Form do meu projeto eu chamo a conexão com a seguinte estrutura: Using conn As SqlConnection = GetConnection() Try conn.Open() << seu codigo aqui >> Catch ex As Exception MsgBox(ex.Message) Finally da.Dispose() If conn IsNot Nothing AndAlso conn.State = ConnectionState.Open Then conn.Close() End If End Try End Using - Criei um formulário para que o usuário Digite o nome do Servidor ou IP da maquina onde está o banco de dados e, em seguida o nome do banco de dados. Public Class FormConectaBancoDeDados Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim open As New OpenFileDialog If open.ShowDialog = Windows.Forms.DialogResult.OK Then txtCaminho.Text = open.FileName End If End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Application.Exit() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Try If txtCaminho.Text = "" Then MsgBox("Por favor digite corretamente o caminho do servidor onde está o banco de dados") Exit Sub End If My.Settings.ConexaoBanco = txtCaminho.Text My.Settings.NomeDoBanco = txtNomeDoBanco.Text My.Settings.Save() My.Settings.Reload() Catch ex As Exception MsgBox(ex.Message) Finally Me.Dispose() Form1.ShowDialog() End Try End Sub
  5. Caros Amigos! Por favor, gostaria de uma ajuda de vocês, sou novo em desenvolvimento e nessa semana toda, vasculhei a internet e fórum a procura de alguma ajuda ou solução para meu problema. Preciso filtrar os dados da minha datagridview conforme o usuário digite no TEXTBOX, porem ao executar o projeto e ao digitar no campo um valor, é apresentado o seguinte erro: An unhandled exception of type 'System.Data.EvaluateException' occurred in System.Data.dll Additional information: Não é possível encontrar a coluna [Número OS]. Veja o passo a passo e o código que eu fiz: - Essa é a Procedure que eu criei no SQL e a utilizo para carregar os dados na minha datagridview. create PROCEDURE [dbo].[spOrdemDeServico] as SELECT IDORDEM AS [Número OS], CLIENTES.NOMERAZAO AS [Nome do Cliente], CLIENTES.CPF, CLIENTES.RG, CLIENTES.CNPJ, DTCRIACAO AS [Data Cadastro], ORDEMSERVICO.TIPOORDEM as [Tipo de OS], ORDEMSERVICO.STATUSORDEM AS [Status da OS], DATAINICIO AS [Dt. Inicio OS], DTPREVISAO AS [Dt. Termino OS], RESPONSAVEL AS [Responsavel pela OS], EQUIPAMENTORECEBIDO AS [Produto/Equipamento Recebido], NUMSERIE AS [Numero de Série], MARCA AS [Marca], MODELO AS [Modelo], TOTALITEM AS [Qdt Itens], VALORTOTAL as [Valor Total], OBSERVACAORECEBIMENTO AS [Obs Recebimento], DESCRICAOPROBLEMA AS [Obs Problema], DESCRICAOSERVICOPRESTACAO AS [Obs Descrição Serviço], OBSINTERNAS AS [Obs Intena], IDPEDIDO AS [Id Pedido], ORDEMSERVICO.IDCLIENTE AS [Id Cliente] FROM ORDEMSERVICO INNER JOIN CLIENTES ON ORDEMSERVICO.IDCLIENTE = CLIENTES.IDCLIENTE ORDER BY DTCRIACAO DESC - Na minha Public Sub loadData(), eu chamo a procedure para carregar os dados na minha datagridview, até ai está funcionando perfeitamente. Public Sub loadData() Using conn As SqlConnection = GetConnection() Try conn.Open() Dim dt As New DataTable da = New SqlDataAdapter("spOrdemDeServico", conn) da.SelectCommand.CommandType = CommandType.StoredProcedure da.Fill(dt) dgvAgenda.DataSource = dt Catch ex As Exception MsgBox(ex.Message) Finally da.Dispose() If conn IsNot Nothing AndAlso conn.State = ConnectionState.Open Then conn.Close() End If End Try End Using End Sub - No evento TextChanged do campo TxtProcurar, onde o usuário digitará a palavra chave para filtrar os dados do datagrid, inclui o seguinte código abaixo e ao compilar o visual studio gerou o seguinte erro: Private Sub txtProcurar_TextChanged(sender As Object, e As EventArgs) Handles txtProcurar.TextChanged Timer1.Stop() bs = New BindingSource() bs.DataSource = dt dgvAgenda.DataSource = bs bs.Filter = "[Número OS] = '" & Me.txtProcurar.Text & "'" End Sub Já tentei colocar o nome do campo de várias formas, mesmo assim o vb.net gera o erro. Por favor me ajudem. Agradeço pela atenção
  6. Olá Quitelab, muito obrigado pelo retorno. Sim.. toas as estacoes vão utilizar o acesso ao mesmo servidor onde estará o banco de dados. Preciso desenvolver um form para definir o alias de conexão e banco de dados, pois caso o servidor mude, os usuários definam apenas o servidor e o alias. ok?
  7. Olá amigos! Venho aqui neste forum com o maior respeito, sou novo em desenvolvimento e estou precisando de uma grande ajuda e orientação. Como eu crio um form para cadastrar o banco de dados e o servidor para quando for instalar minha aplicação em outras estacoes de trabalho, eu tenha a opção de apontar onde o meu banco de dados está. abaixo segue um resumo do que eu fiz e o que estou passando Criei uma aplicação em VB.NET com uma strig de conexão com o meu banco de dados em SQL, que está definida no app.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="SYS_MANAGMENT_ERP.My.MySettings.BD_ERPConnectionString" connectionString="Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=BD_GESTAO;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration> Para todos os formulários da minha aplicação criei diversas public sub para carregar os dados do banco no Datagrid, combobox, form_load da minha aplicação.... Até ai, está tudo funcionando muito bem, veja um pequeno trecho do código que está em cada form. Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports MetroFramework.Forms Public Class FormCadastroClientes Dim Strcon As String = My.Settings.BD_ERPConnectionString.ToString Dim conn As SqlConnection Dim cmd As SqlCommand Dim da As SqlDataAdapter Public Sub loadData() conn = New SqlConnection(Strcon) conn.Open() Dim str As String = "SELECT IDCLIENTE AS [Id Cliente], NOMERAZAO AS [Nome do Cliente] FROM CLIENTES ORDER BY NOMERAZAO ASC" da = New SqlDataAdapter(str, conn) Dim ds As New DataSet da.Fill(ds, "CLIENTES") dgvAgenda.DataSource = ds.Tables("CLIENTES") da.Dispose() conn.Close() End Sub End Class Ao final, criei um executável da minha aplicação no visual studio no nas propriedades do meu projeto à publish à publish wizard Agora, tenho que instalar essa aplicação em todas as maquinas da empresa e fazer a conexão com o banco de dados que está em um servidor dedicado chamado “DATA_SERVER”. O Meu maior problema é, eu não sei desenvolver uma tela para definir a conexão com o banco de dados para que todas as estações possam ser configuradas o caminho para o banco de dados. Dessa forma não precisarei deixar a string de conexão com o servidor fixada no meu código, mesmo porque, fiz um teste e eu só consigo conectar apenas uma estação no banco, quando eu instalo a aplicação em outra máquina ela dá esse erro: Bom... por favor, me ajude, como eu consigo criar uma aplicação na qual eu tenho um form para definir o alias do meu banco de dados, para quando o usuário for se conectar, defina apenas uma vez o alias de conexão e tenha acesso ao sistema, tipo igual a TOTVS como o print abaixo: Então os dados da conexão já fica salva para o usuário e dessa forma eu não venho a ter problema com conexão de banco de dados, pois se também o servidor mudar, terei que gerar um novo exe pois o nome do servidor está definida na minha string de conexão. Alguém tem algum videio, tutorial que ensina passo a passo como desenvolver e deixar salvo os dados do alias ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.