QUESTAO QUE NAO SE ENCONTRA EM LIVROS
Boa tarde, colegas!
Tenho uma dúvida,daquelas que
nenhum livro ou apostilas de
OO (Orientação a Objetos) , ou modelagem diz
como resolver.Mas, como muitos já
programam em OO, devem resolver facilmente:
Digamos que tenho duas tabelas no BD:
- Ordem_de_servico (Cod_OS,Desc_OS,Cod_Mod)
- Modelo (Cod_Mod,Desc_Mod,Fab)
Obs: Repare que [ô]Cod_Mod[ô] é uma chava estrangeira da tabela [ô]Modelo[ô]
A seguir eu criei um formulário para cadastrar Ordens de serviço.São
apenas 2 campos: TxtOS e CmbMod
Agora, eu vou criar a rotina que irá [Ô]cadastrar[Ô] uma OS:
Ora,repare que ao preencher os dois campos, o usuário irá
digitar um número da OS e selecionar em um combo o modelo
a ser cadastrado.
O problema:
Repare que eu não posso armazenar no campo Cod_Mod da tabela Ordem_de_servico
o que o usuário selecionar.Pois o certo é armazenar o código que corresponde
a este item na tabela modelo.A questão portanto é..No momento do Insert,como
saber o código (Na tabela modelo)correspondente ao item selecionado no combo
pelo usuário????????
Se algum colega, puder me dizer, qual o modo certo
de resolver este problema, seguindo as boas práticas
de programação fico grato.
Tenho uma dúvida,daquelas que
nenhum livro ou apostilas de
OO (Orientação a Objetos) , ou modelagem diz
como resolver.Mas, como muitos já
programam em OO, devem resolver facilmente:
Digamos que tenho duas tabelas no BD:
- Ordem_de_servico (Cod_OS,Desc_OS,Cod_Mod)
- Modelo (Cod_Mod,Desc_Mod,Fab)
Obs: Repare que [ô]Cod_Mod[ô] é uma chava estrangeira da tabela [ô]Modelo[ô]
A seguir eu criei um formulário para cadastrar Ordens de serviço.São
apenas 2 campos: TxtOS e CmbMod
Agora, eu vou criar a rotina que irá [Ô]cadastrar[Ô] uma OS:
Ora,repare que ao preencher os dois campos, o usuário irá
digitar um número da OS e selecionar em um combo o modelo
a ser cadastrado.
O problema:
Repare que eu não posso armazenar no campo Cod_Mod da tabela Ordem_de_servico
o que o usuário selecionar.Pois o certo é armazenar o código que corresponde
a este item na tabela modelo.A questão portanto é..No momento do Insert,como
saber o código (Na tabela modelo)correspondente ao item selecionado no combo
pelo usuário????????
Se algum colega, puder me dizer, qual o modo certo
de resolver este problema, seguindo as boas práticas
de programação fico grato.
No VB 6, o objeto combox tem a propriedade itemdata, que é ideal para esse tipo de situação..
No carregamento da combox coloca o codigo nesta propriedade
[ô]exemplo:
Private Sub Command1_Click()
cbo.AddItem Desc_Mod
cbo.ItemData(cbo.NewIndex) = Cod_Mod
End Sub
[ô]recuperando:
Private Sub Command2_Click()
MsgBox cbo.ItemData(cbo.ListIndex)
End Sub
No carregamento da combox coloca o codigo nesta propriedade
[ô]exemplo:
Private Sub Command1_Click()
cbo.AddItem Desc_Mod
cbo.ItemData(cbo.NewIndex) = Cod_Mod
End Sub
[ô]recuperando:
Private Sub Command2_Click()
MsgBox cbo.ItemData(cbo.ListIndex)
End Sub
MsgBox(ComboBox1.SelectedValue)
Rapaz, tive problema semelhante
Criei uma classe
Criei uma classe
Public Class ItemData
Public Valor As Object
Public Descricao As String
Public Sub New(ByVal NovoValor As Object, ByVal NovaDescricao As String)
Valor = NovoValor
Descricao = NovaDescricao
End Sub
Public Overrides Function ToString() As String
Return Descricao
End Function
End Class
txtEmpresa.text = CType(cmbEmpresa.SelectedItem, ItemData).Valor
Agradeço aos colegas,as respostas postadas!
Tópico encerrado , respostas não são mais permitidas