Jogar dados automaticamente no banco cfe.preenchimento edits
Bom dia pessoal, bom eu gostaria de saber se tem como eu fazer com que doze edits de valores jogarem o resultado para os doze meses do ano:
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
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
Curtidas 0
Respostas
Aroldo Zanela
12/01/2007
Colega,
Por favor, coloque a estrutura de sua tabela.
Por favor, coloque a estrutura de sua tabela.
GOSTEI 0
Adriano_servitec
12/01/2007
[quote:0a78db940c=´Aroldo Zanela´]Colega,
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
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
Aroldo Zanela
12/01/2007
Colega,
Primeiramente, crie uma nova aplicação e copie o código abaixo e solte sobre o formulário (isso vai criar os componentes):
Agora, pegue este código e coloque na Unit (código pascal):
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
Adriano_servitec
12/01/2007
Olah [b:6d7d12185c]Aroldo Zanela[/b:6d7d12185c]
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 :(
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
Adriano_servitec
12/01/2007
Tive que tirar o [b:e6e78ff3d0]StrToCurrDef[/b:e6e78ff3d0] acho que nao aceita no Delphi 5
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.
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
Aroldo Zanela
12/01/2007
Colega,
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.
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
Adriano_servitec
12/01/2007
[quote:b6b3e2c530=´Aroldo Zanela´]Colega,
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:
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
Truck1n
12/01/2007
Boa tarde,
Acho que isto pode ajudar vc!!
http://www.clubedelphi.net/artigos/ClientDataSet.asp
Abraços!
Acho que isto pode ajudar vc!!
http://www.clubedelphi.net/artigos/ClientDataSet.asp
Abraços!
GOSTEI 0
Adriano_servitec
12/01/2007
Valeu amigo, muito obrigado.
Agora estou entendendo melhor sobre CDS.
Agora estou entendendo melhor sobre CDS.
GOSTEI 0
Truck1n
12/01/2007
Opa,
CDS não mais é do que a Abreviação do nome Clientdataset
Até mais!!!
abraços!
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
Adriano_servitec
12/01/2007
Valeu amigo,
Agora continuando sobre o codigo
Coloquei 12 checkbox de acordo com a TAG do edit para marcar quais edits devem ser preenchidos
Bom esta funcionando certinho
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
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