Fórum Jogar dados automaticamente no banco cfe.preenchimento edits #336060
12/01/2007
0
Exemplo
Tenho uma tabela com os campos ano, data, historico, valor
entao minha ideia seria no form selecionar o ano e o historico e nessas 12 edits colocar os valores depois num button ele jogar para os devidos meses do ano automaticamente tipo assim
2007---31/01/2007------pg.mensalidade n/mes--------40,00
2007---28/02/2007------pg.mensalidade n/mes--------40,00
...
...
...
Ou seja os meses que eu preencher no edit vao para o banco de dados sem eu precisar gravar mes a mes, penso eu que talvez seja feito isso com um IF nos edits tipo if edit1.text <> ´´ then, nao sei, gostaria primeiro da opiniao do pessoal se tem como fazer isso.
Grato
Adriano
Adriano_servitec
Curtir tópico
+ 0Posts
12/01/2007
Aroldo Zanela
Por favor, coloque a estrutura de sua tabela.
Gostei + 0
12/01/2007
Adriano_servitec
Por favor, coloque a estrutura de sua tabela.[/quote:0a78db940c]
Vai ser em firebird 2.0
ano varchar (4),
data date,
historico varchar(100),
conta varchar (15),
contred varchar (5),
valor numeric 15,2
e talvez algo mais que vou ter que colocar nela
Obrigado por me ajudar amigo
Gostei + 0
12/01/2007
Aroldo Zanela
Primeiramente, crie uma nova aplicação e copie o código abaixo e solte sobre o formulário (isso vai criar os componentes):
object edtAno: TEdit
Left = 10
Top = 32
Width = 121
Height = 21
TabOrder = 0
end
object edtHistorico: TEdit
Left = 135
Top = 32
Width = 371
Height = 21
TabOrder = 1
end
object edtValorPadrao: TEdit
Left = 134
Top = 70
Width = 121
Height = 21
TabOrder = 2
end
object lblAno: TLabel
Left = 12
Top = 18
Width = 19
Height = 13
Caption = ´Ano´
end
object lblHistorico: TLabel
Left = 135
Top = 18
Width = 41
Height = 13
Caption = ´Hist´#243´rico´
end
object lblValor: TLabel
Left = 68
Top = 74
Width = 60
Height = 13
Caption = ´Valor padr´227´o´
end
object edtJaneiro: TEdit
Tag = 1
Left = 134
Top = 98
Width = 121
Height = 21
TabOrder = 3
end
object edtFevereiro: TEdit
Tag = 2
Left = 134
Top = 125
Width = 121
Height = 21
TabOrder = 4
end
object edtMarco: TEdit
Tag = 3
Left = 134
Top = 151
Width = 121
Height = 21
TabOrder = 5
end
object edtAbril: TEdit
Tag = 4
Left = 134
Top = 178
Width = 121
Height = 21
TabOrder = 6
end
object edtMaio: TEdit
Tag = 5
Left = 134
Top = 204
Width = 121
Height = 21
TabOrder = 7
end
object edtJunho: TEdit
Tag = 6
Left = 134
Top = 231
Width = 121
Height = 21
TabOrder = 8
end
object edtJulho: TEdit
Tag = 7
Left = 134
Top = 257
Width = 121
Height = 21
TabOrder = 9
end
object edtAgosto: TEdit
Tag = 8
Left = 134
Top = 284
Width = 121
Height = 21
TabOrder = 10
end
object edtSetembro: TEdit
Tag = 9
Left = 134
Top = 310
Width = 121
Height = 21
TabOrder = 11
end
object edtOutubro: TEdit
Tag = 10
Left = 134
Top = 337
Width = 121
Height = 21
TabOrder = 12
end
object edtNovembro: TEdit
Tag = 11
Left = 134
Top = 363
Width = 121
Height = 21
TabOrder = 13
end
object edtDezembro: TEdit
Tag = 12
Left = 134
Top = 390
Width = 121
Height = 21
TabOrder = 14
end
object lbl1: TLabel
Left = 78
Top = 104
Width = 49
Height = 299
Alignment = taRightJustify
Caption =
´Janeiro´#13101310´Fevereiro´13101310´Mar´231´o´13101310´Abril´13101310´Maio´13101310´Junho´13101310´Julho´ +
#13101310´Agosto´13101310´Setembro´13101310´Outubro´13101310´Novembro´13101310´Dezembro´
end
object btnCarregar: TButton
Left = 260
Top = 68
Width = 75
Height = 25
Caption = ´&Carregar´
TabOrder = 15
OnClick = btnCarregarClick
end
object btnGravar: TButton
Left = 340
Top = 68
Width = 75
Height = 25
Caption = ´&Gravar´
TabOrder = 16
OnClick = btnGravarClick
end
object cdsDados: TClientDataSet
Active = True
Aggregates = <>
Params = <>
Left = 582
Top = 18
Data = {
7E0000009619E0BD0100000018000000040000000000030000007E0003416E6F
010049000000010005574944544802000200040009486973746F7269636F0100
490000000100055749445448020002003200034D657304000100000000000556
616C6F72080004000000010007535542545950450200490006004D6F6E657900
0000}
object cdsDadosAno: TStringField
FieldName = ´Ano´
Size = 4
end
object cdsDadosHistorico: TStringField
FieldName = ´Historico´
Size = 50
end
object cdsDadosMes: TIntegerField
FieldName = ´Mes´
end
object cdsDadosValor: TCurrencyField
FieldName = ´Valor´
end
end
object dsDados: TDataSource
DataSet = cdsDados
Left = 580
Top = 82
end
object dbgrd1: TDBGrid
Left = 262
Top = 100
Width = 417
Height = 311
DataSource = dsDados
TabOrder = 17
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = ´MS Sans Serif´
TitleFont.Style = []
end
Agora, pegue este código e coloque na Unit (código pascal):
procedure TForm1.btnCarregarClick(Sender: TObject); var i, n: SmallInt; begin N := ComponentCount; for I := 0 to N-1 do begin if (Components[I] is TEdit) then if (Components[I] as TEdit).Tag > 0 then (Components[I] as TEdit).Text := edtValorPadrao.Text; end; end; procedure TForm1.btnGravarClick(Sender: TObject); var i, n: SmallInt; begin N := ComponentCount; for I := 0 to N-1 do begin if (Components[I] is TEdit) then if (Components[I] as TEdit).Tag > 0 then begin cdsDados.Append; cdsDadosAno.Value := edtAno.Text; cdsDadosHistorico.Value := edtHistorico.Text; cdsDadosMes.Value := (Components[I] as TEdit).Tag; Case (Components[I] as TEdit).Tag of 1: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 2: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 3: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 4: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 5: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 6: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 7: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 8: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 9: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 10: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 11: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); 12: cdsDadosValor.Value := StrToCurrDef((Components[I] as TEdit).Text, 0); end; cdsDados.Post; end; end; end;
Gostei + 0
12/01/2007
Adriano_servitec
Primeiramente muito obrigado pela ajuda.
CDSDados eh um DataSet? Se for pode ser um IBQuery ou um IBTable no lugar?
Outra coisa amigo da erro na hora de compilar
[color=red:6d7d12185c][Error] Unit9.pas(85): Undeclared identifier: ´StrToCurrDef´[/color:6d7d12185c]
Estou usando o Delphi 5 :(
Gostei + 0
12/01/2007
Adriano_servitec
Case (Components[I] as TEdit).Tag of 1: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 2: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 3: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 4: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 5: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 6: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 7: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 8: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 9: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 10: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 11: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text); 12: cdsDadosValor.Value := StrToCurr((Components[I] as TEdit).Text);
Agora soh faltou a duvida sobre o ClientDataSet, nunca usei esse componente, ele grava aonde amigo? depois devo jogar esses valores para um query? Vou utilizar tambem um Storedprocedure que eu criei que grava junto com um query.
Na parte do dbgrid esta perfeito, ficou muito bom o resultado.
Obrigado amigo
Abraços
Adriano.
Gostei + 0
12/01/2007
Aroldo Zanela
O CDS é ClientDataSet e pode ser substituido por qualquer descendente de TDataSet ou você pode mudar de acordo com o seu padrão de programação.
Gostei + 0
12/01/2007
Adriano_servitec
O CDS é ClientDataSet e pode ser substituido por qualquer descendente de TDataSet ou você pode mudar de acordo com o seu padrão de programação.[/quote:b6b3e2c530]
Mais uma pergunta amigo, esse componente CDS ele grava temporario?
Se eu quiser continuar usando ele depois tem como jogar no banco de dados?
Outra coisa amigo, como incluir mais campos no CDS?
Desculpe perguntar, mais nao conheço esse componente :oops:
Gostei + 0
12/01/2007
Truck1n
Acho que isto pode ajudar vc!!
http://www.clubedelphi.net/artigos/ClientDataSet.asp
Abraços!
Gostei + 0
12/01/2007
Adriano_servitec
Agora estou entendendo melhor sobre CDS.
Gostei + 0
12/01/2007
Truck1n
CDS não mais é do que a Abreviação do nome Clientdataset
Ex: cdsnome = ClientDataSet edtnome = editnome btnnome = buttonnome ... lblnome = labelnome
Até mais!!!
abraços!
Gostei + 0
12/01/2007
Adriano_servitec
Agora continuando sobre o codigo
Coloquei 12 checkbox de acordo com a TAG do edit para marcar quais edits devem ser preenchidos
procedure TFTodoMes.btnCarregarClick(Sender: TObject); var i, n: SmallInt; begin N := ComponentCount; for I := 0 to N-1 do begin if (Components[I] is TEdit) then if (Components[I] as TEdit).Tag > 0 then begin if (FindComponent(´Checkbox´+IntToStr((Components[I] as TEdit).Tag)) As tCheckBox).Checked then (Components[I] as TEdit).Text := edtValorPadrao.Text; end; end; end;
O que eu preciso eh saber se tem como gravar no banco somente referente aos edits preenchidos, pois desta forma esta dando erro
´IS NOT A VALID FLOATING POInT VALUE´
Grato pela ajuda.
Adriano
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)