-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
amigo, voce teria que usar indices em suas tabelas, para poder ordenar um campo da tabela http://www.google.com.br/search?q=criando+indices+no+firebird&hl=pt&gbv=2&o que=indices+no+firebird&gs_l=heirloom-serp.1.2.0i22i30l6.468444.472493.0.477569.19.19.0.0.0.0.210.2227.9j8j2.19.0....0...1ac.1.34.heirloom-serp..6.13.1063.tGCI_POSo2I no entanto, seria muito mais simples de fazer isso, se voce utilizasse o componente TQuery o comando para ordenar um campo tipo date seria assim select * from produtos order by data ( voce pode ordenar por mais de um campo ) OBS: como voce já começou seu projeto usando tables, o jeito é voce procurar solucionar esses problemas Só que está aparecendo ainda as outras datas...... isso só vai acontecer se voce estiver fazendo isso: procedure TForm1.Button1Click(Sender: TObject); begin table1.Active := false; table1.filter := 'DATA >= ' +''''+'03/07/2012'+''''; table1.filtered := true; table1.Active := true; end; abraço -
OBS: voce está usando um (ComboBox) ... aqui eu fiz usando um (RadioGroup) a logíca é a mesma para o (ComboBox) ... basta fazer as modificações qual é o nome do Label onde aparece "c_cnpj" ? Label1, Label4 ... qual ? pois voce vai alterar o caption do label, quando for um ou outro exemplo: Funções para validar o CPF e o CNPJ function TFClientes.cpf(num: string): boolean; var n1,n2,n3,n4,n5,n6,n7,n8,n9: integer; d1,d2: integer; digitado, calculado: string; begin if MaskEdit2.text = '' then exit; if MaskEdit2.text <> ' . . - ' then begin n1:=StrToInt(num[1]); n2:=StrToInt(num[2]); n3:=StrToInt(num[3]); n4:=StrToInt(num[5]); n5:=StrToInt(num[6]); n6:=StrToInt(num[7]); n7:=StrToInt(num[9]); n8:=StrToInt(num[10]); n9:=StrToInt(num[11]); d1:=n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10; d1:=11-(d1 mod 11); if d1>=10 then d1:=0; d2:=d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11; d2:=11-(d2 mod 11); if d2>=10 then d2:=0; calculado:=inttostr(d1)+inttostr(d2); digitado:=num[13]+num[14]; if calculado=digitado then cpf:=true else cpf:=false; end; end; function CalculaCnpjCpf(Numero : String) : String; var i,j,k, Soma, Digito : Integer; CNPJ : Boolean; begin Result := Numero; case Length(Numero) of 9: CNPJ := False; 12: CNPJ := True; else Exit; end; for j := 1 to 2 do begin k := 2; Soma := 0; for i := Length(Result) downto 1 do begin Soma := Soma + (Ord(Result[i])-Ord('0'))*k; Inc(k); if (k > 9) and CNPJ then k := 2; end; Digito := 11 - Soma mod 11; if Digito >= 10 then Digito := 0; Result := Result + Chr(Digito + Ord('0')); end; end; function ValidaCNPJ(I:string): Boolean; var cnpj: array[1..14] of integer; apoio: array[0..13] of integer; f: integer;//para uso no for total: integer;//para totalização dos valores D1: integer;//primeiro dígito calculado D2: integer;//segundo dígito calculado begin //Primeiro teste: o número de algarismos if (Length(I)<>14) then result:=false else begin //Antes do teste propriamente dito temos que montar a matriz com os //os algarismos do CNPJ e depois uma matriz apoio) que terá os números //que ajudarão a verificar so dígitos verificadores for f := 1 to 14 do begin cnpj[f]:=0; apoio[f-1]:=0; end; //Monta matriz cnpj for f := 1 to 14 do begin cnpj[f]:=strtoint(I[f]); end; end; //Monta matriz de apoio apoio[0]:=6;//só será usada no cálculo do segundo dígito verificador apoio[1]:=5; apoio[2]:=4; apoio[3]:=3; apoio[4]:=2; apoio[5]:=9; apoio[6]:=8; apoio[7]:=7; apoio[8]:=6; apoio[9]:=5; apoio[10]:=4; apoio[11]:=3; apoio[12]:=2; //Começa cálculo do primeiro dígito verificador total:=0;//variável que conterá a soma da operação com os números for f := 1 to 12 do begin total:=total+(cnpj[f]*apoio[f]); end; D1 := total mod 11; if (D1<2) then D1:=0 else D1:=11-D1; if (D1<>cnpj[13]) then begin //Primeiro dígito verificador não confere Result:=false; end else begin //Entrou aqui, então o primeiro dígito confere! total:=0; for f := 0 to 12 do begin total:=total+(cnpj[f+1]*apoio[f]); end; D2 :=total mod 11; if (D2<2) then D2:=0 else D2:=11-D2; if (D2<>cnpj[14]) then begin //Segunod digito verificador não confere Result:=false; end else Result:=true; end; end; Basta trocar o RadioGroup pelo Combobox e fazer as devidas modificações no seu código procedure TFClientes.RadioGroup2Click(Sender: TObject); begin if RadioGroup2.Items.Strings[RadioGroup2.ItemIndex] = 'Física' then begin myLabel3d19.Caption := 'CPF'; // seria o seu label onde o caption é c_cnpj myLabel3d29.Caption := 'RG'; MaskEdit2.EditMask := '000.000.000-00'; MaskEdit3.EditMask := '##############'; CDS_Cadcli.Edit; CDS_CadcliPESSOA.Value := 'Física'; end; if RadioGroup2.Items.Strings[RadioGroup2.ItemIndex] = 'Juridica' then begin myLabel3d19.Caption := 'CNPJ'; // seria o seu label onde o caption é c_cnpj myLabel3d29.Caption := 'INSCR.EST'; MaskEdit2.EditMask := '000.000.000/0000-00'; MaskEdit3.EditMask := '000.000.000-000'; CDS_Cadcli.Edit; CDS_CadcliPESSOA.Value := 'Juridica'; end; end; procedure TFClientes.MaskEdit2Exit(Sender: TObject); VAR S, s2 : boolean; s1 : string; begin try if myLabel3d19.Caption = 'CPF' then begin if MaskEdit2.text = '' then exit; s := cpf(MaskEdit2.text); if s = true then //showmessage('CIC/CPF Valido') else begin showmessage('CIC/CPF Inválido'); MaskEdit2.Text := '000.000.000-00'; end; end; except MaskEdit2.Text := '000.000.000-00'; end; try if myLabel3d19.Caption = 'CNPJ' then begin if MaskEdit2.text = '' then exit; s1 := MaskEdit2.Text; while Pos('.', S1) > 0 do delete(s1,Pos('.', S1),1); while Pos('/', S1) > 0 do delete(s1,Pos('/', S1),1); while Pos('-', S1) > 0 do delete(s1,Pos('-', S1),1); if Pos('0', S1) = 1 then delete(s1,Pos('0', S1),1); s2 := ValidaCNPJ(s1); if s2 = true then //showmessage('CNPJ Valido') else begin showmessage('CNPJ Inválido'); MaskEdit2.Text := '000.000.000/0000-00'; end; end; except MaskEdit2.Text := '000.000.000/0000-00'; end; DBEdit5.Text := MaskEdit2.Text; end; BS: o uso do componente MaskEdit serve para voce mostrar o numero do cpf ou cnpj formatado ( voce usa se quiser, mas eu acho que fica mais profissional ) siga a lógica e faça as alterações necessarias no seu código abraço
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
Só que ele mostra uma mensagem; Access Violation.... esse erro ocorre quando voce tenta usar um endereço de memória que já está ocupado somente usando o debugger do delphi para achar esse tipo de erro .... use o break point no inicio do código e siga a execução do código teclando ( F8 ) se esse erro ocorre assim que o programa é executado, então verifique o que foi carregado para a memoria antes da execução abraço -
qual é o nome do campo onde aparece "Fisica" ? qual é o nome do Label onde aparece "c_cnpj" ?
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
fiz um teste aqui com o Firebird ... está funcionando corretamente só mostra os registros com essa data procedure TForm1.Button1Click(Sender: TObject); begin table1.Active := false; table1.filter := 'DATA = ' +''''+'03/07/2012'+''''; table1.filtered := true; table1.Active := true; end; abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
não deveria ocorrer isso voce está usando Paradox ? ou outro banco de dados ? para o Paradox faça esse teste table1.Active := false; table1.filter := 'DATA = ' +''''+'02/06/2015'+''''; table1.filtered := true; table1.Active := true; OBS: isso deve mostrar somente os registros com essa data ... não tem como mostrar outras datas dependendo do banco de dados, a data pode estar em outro formato ou veja como está definido a configuração da data no seu micro veja no Painel de Controle > Opções Regionais como esta a definição da data .. deve ser dd/mm/aaaa abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
falta de atenção de minha parte faça assim procedure TForm1.RadioButton1Click(Sender: TObject); begin if RadioButton1.Checked = true then begin table1.Active := false; table1.filter := 'DATA >= ' + ''''+datetostr(now-30)+'''' + ' and ' + 'DATA <= ' + ''''+ datetostr(now)+'''';// pegar o periodo da data atual menos (-) 30 dias table1.filtered := true; table1.Active := true; FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaMensal.fr3'); FrxReport1.ShowReport() ; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if RadioButton2.Checked = true then begin table1.Active := false; table1.filter := 'DATA = ' + ''''+datetostr(now)+'''';// pegar a data atual do micro table1.filtered := true; table1.Active := true; FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaDiaria.fr3'); FrxReport1.ShowReport() ; end; end; obs: quando tiver duvida sobre um comando, coloque o cursor no comando e tecle F1 ( Help ) Now Returns the current date and time. // Retorna a data corrente e o tempo Unit SysUtils Category datetime routines Delphi syntax: function Now: TDateTime; C++ syntax: extern PACKAGE System::TDateTime __fastcall Now(void); Description Returns the current date and time, corresponding to the sum of the value returned by the global Date and Time functions. Note: Although TDateTime values can represent milliseconds, Now is accurate only to the nearest second. Retorna a data e hora atuais, correspondente à soma do valor retornado pelas funções de data e hora globais. Nota: Embora os valores TDateTime possam representar milissegundos, agora é preciso somente para o segundo mais próximo. abraço -
exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses ComObj; procedure TForm1.Button1Click(Sender: TObject); var i : integer; coluna, linha, linha1 : integer; excel: variant; valor: integer; begin valor := 0; try // criar uma planilha no Excell excel:=CreateOleObject('Excel.Application'); //adiciona um Workbook com 3 planilhas (Plan1, Plan2 e Plan3) excel.Workbooks.add; except Application.MessageBox ('Versão do Ms-Excel'+ 'Incompatível','Erro',MB_OK+MB_ICONEXCLAMATION); end; try for linha:=0 to 65900 do begin if linha <= 65535 then // Limite de linhas na planilha begin inc(valor); for coluna:=1 to 1 do excel.cells [linha+1,coluna]:=valor; end else begin // linhas > 65536 passar os dados para a proxima planilha Excel.Worksheets['Plan2'].Activate; inc(linha1); inc(valor); for coluna:=1 to 1 do excel.cells [linha1,coluna]:=valor; end; end; excel.columns.AutoFit; excel.visible:=true; except Application.MessageBox ('Erro na Tabela do Ms-Excel','Erro',MB_OK+MB_ICONEXCLAMATION); end; end; end. abraço
-
EDITAR: COMO FAZER UM FILTRO EM UM CAMPO VIRTUAL NO ClientDataSet
pergunta respondeu ao nilegor de Jhonas em Delphi, Kylix
é possivel, mas voce vai precisar de entender como isso funciona no dephi na net tem muito material disponivel sobre o assunto http://www.google.com.br/search?q=View+para+relacionamento+entre+tabelas+delphi+&hl=pt&gbv=2&o que=View+para+relacionamento+entre+tabelas+delphi+&gs_l=heirloom-serp.3...470597.487032.0.487413.32.20.5.7.0.0.373.2878.7j10j1j2.20.0....0...1ac.1.34.heirloom-serp..10.22.2373.wtLR71MP5EA abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
Eu Queria que ele abrisse o relatório com as vendas diárias por exemplo sem eu digitar nenhuma data... Simplesmente automatico.... voce pode pegar a data do micro sem precisar digitar procedure TForm1.RadioButton1Click(Sender: TObject); begin if RadioButton1.Checked = true then begin table1.Active := false; table1.filter := 'DATA >= ' + now-30 + ' and ' + 'DATA <= ' + now ;// pegar o periodo da data atual menos (-) 30 dias table1.Active := true; table1.filtered := true; FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaMensal.fr3'); FrxReport1.ShowReport() ; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if RadioButton2.Checked = true then begin table1.Active := false; table1.filter := 'DATA = ' + now();// pegar a data atual do micro table1.Active := true; table1.filtered := true; FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaDiaria.fr3'); FrxReport1.ShowReport() ; end; end; OBS: Caso tenha duvidas quanto aos comandos, use o help do delphi ( tecla F1 ) abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
se voce está usando o componente Table voce pode filtrar os dados exemplo: na propriedade Filter voce pode colocar assim para filtrar os registros da tabela pelo campo DATA por um periodo DATA >= '01/12/2014' and DATA <= '31/12/2014' e na propriedade Filtered basta deixar como true somente os registros com as datas nesse período é que serão mostradas abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
como voce esta fazendo a pesquisa na sua tabela ? -
apostila do fortran 90 http://www.google.com.br/url?q=http://www.dma.ufv.br/tutorial/fortran.pdf&sa=U&ei=c31oVaa0FMGWyATEiYLwBQ&ved=0CC0QFjAE&usg=AFQjCNFVdx73KgWxAUzuA1IdhVGtrPH3dg outras http://www.google.com.br/search?q=fortran+90+tutorial&hl=pt&gbv=2&nfpr=&spell=1&o que=fortran+90&gs_l=heirloom-serp.1.1.0l10.1896036.1897678.0.1912106.10.10.0.0.0.0.200.1352.4j5j1.10.0....0...1ac.1.34.heirloom-serp..3.7.840.EGR-9ycvFx0 quanto ao compilador, depende da versão do seu windows http://www.google.com.br/search?hl=pt&gbv=2&q=fortran+90+download+windows+7&revid=1017222524&sa=X&ei=-X1oVdSYGoWpyQSNu4OQBg&ved=0CFMQ1QIoAw abraço
-
List index out of bounds (65536) Creio que esteja estourando as linhas, mas como posso resolver ? realmente está ultrapassando o limite de linhas do excel nesse caso, se ultrapassar esse limite voce deve inserir o restante dos dados em uma nova planilha Plan1, Plan2, Plan3 .... etc abraço
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
if Diário.checked = true then beginFRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fr3'); FrxReport1.ShowReport() ; end else ShowMessage('Operação incorreta'); End; End; Fiz esta mensagem para testar mais sempre abre o formulário A condição de um RadioButton sempre será true ou false ... observe que em seu código para abrir o seu report sempre será a condição true ...a não ser que voce clique novamente no RadioButton para deixa-lo false no caso do RadioButton, um componente é independente do outro, ou seja, se voce clicar em um ele ficara ( checked = true ) e se clicar em outro, esse tambem ficara ( checked = true ) ... a condição ( checked = false ) só acontece se voce clicar nele novamente. Então é necessario que voce faça um controle, para que quando um for true o outro seja false para evitar isso foi criado outro componente chamado RadioGroup... nele voce coloca quantos RadioButton voce precise, e ele mesmo controla os ( checked ) de cada um, automaticamente. ( quando um está true os outros ficam false ) para chamar relatorios pelo RadioButton, poderia ser assim procedure TForm1.RadioButton1Click(Sender: TObject); begin if RadioButton1.Checked = true then begin FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaMensal.fr3'); FrxReport1.ShowReport() ; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if RadioButton2.Checked = true then begin FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaDiaria.fr3'); FrxReport1.ShowReport() ; end; end; abraço -
EDITAR: COMO FAZER UM FILTRO EM UM CAMPO VIRTUAL NO ClientDataSet
pergunta respondeu ao nilegor de Jhonas em Delphi, Kylix
voce só consegue isso, se houver uma união ( relacionamento ) entre as suas tabelas, caso contrario, somente na tabela onde foi criado o campo virtual como fazer relacionamento entre tabelas http://www.google.com.br/search?q=como+fazer+relacionamento+de+tabelas+no+delphi&hl=pt&gbv=2&o que=tabelas++delphi&gs_l=heirloom-serp.1.4.0i7i30l3j0i7i5i30l6j0i30.1379502.1380821.0.1387863.8.7.0.0.0.0.1316.8928.7-7.7.0....0...1ac.1.34.heirloom-serp..7.1.1175.HDBi23EjaeQ abraço -
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
para usar o componente RadioButton seria assim: exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables; type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; Query1: TQuery; procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RadioButton1Click(Sender: TObject); begin if RadioButton1.Checked = true then begin Query1.Active := false; Query1.SQL.Clear; Query1.SQL.Append('select * from produtos order by cod_fornec'); Query1.Active := true; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if RadioButton2.Checked = true then begin Query1.Active := false; Query1.SQL.Clear; Query1.SQL.Append('select * from produtos order by cod_prod'); Query1.Active := true; end; end; procedure TForm1.RadioButton3Click(Sender: TObject); begin if RadioButton3.Checked = true then begin Query1.Active := false; Query1.SQL.Clear; Query1.SQL.Append('select * from produtos order by descricao'); Query1.Active := true; end; end; end. OBS: Essa é uma das maneiras, mas existem muitas outras... nesse caso, quando voce seleciona um RadioButton, voce fecha a query, limpa, substitui o código select, e ativa a query novamente ... o DBgrid vai mostrar os dados da "select" assim que a query é ativada. abraço -
Acesso remoto ao servidor Mysql em nuvem muito lento (fora do Brasil,
pergunta respondeu ao sistemafenix de Jhonas em MySQL
já fiz alguns testes nesse sentido.... a performance vai depender da velocidade de conexao com a internet, a configuração do servidor e a distancia fisica do mesmo. depende tambem do trafego de dados ( pesquisas que trazem muitos dados deixa lento ) uma sugestão seria usar um banco local com atualização remota ( bancos sincronizados ) veja se isso te ajuda https://www.howtoforge.com/mysql_master_master_replication abraço- 2 respostas
-
- acesso remoto
- mysql
- (e %d mais)
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
o erro é : Classe PreparedReport não encontrado voce pode ter deletado alguma coisa do relatorio Nota: caso o FastReport não encontre o arquivo, nenhum erro é mostrado, apenas o relatório não exibe nenhum registro. Veja o exemplo desse artigo: http://anaprogramadorajunior.blogspot.com.br/2013/10/fastreport-no-delphi.html abraço -
veja a configuração wirelles do notebook... pode estar interferindo
-
(Resolvido) Carregar Dados De Tabela, Em um ComboBox
pergunta respondeu ao valSistemasDelphi de Jhonas em Delphi, Kylix
procure na pasta DEMOS do delphi ( acho que QR2 ou QR3 ) são exempos de como usar Quick Report, mas tem tambem para o Fast Report ou veja nesses links http://www.google.com.br/search?q=fastreport+delphi+xe7&hl=pt&gbv=2&o que=fast+report+delphi&gs_l=heirloom-serp.1.2.0i10l4j0j0i7i10i30l3j0j0i7i10i30.1335258.1350914.0.1354241.12.12.0.0.0.2.341.1625.5j5j0j2.12.0....0...1ac.1.34.heirloom-serp..5.7.658.6YIZyA8pRJQ abraço -
agora vi um detalhe .... voce disse que instalou num micro 64 bits ... baixe o arquivo DataSnapCommon para 64 bits abraço
-
(Resolvido) Carregar string para ListView de um arquivo .rtf
pergunta respondeu ao fxsoftware de Jhonas em Delphi, Kylix
veja o post anterior -
(Resolvido) Carregar string para ListView de um arquivo .rtf
pergunta respondeu ao fxsoftware de Jhonas em Delphi, Kylix
agora verifique em cada um dos arquivos rtf, se em todos eles aparece isso ( em vermelho ) "mailto:residial@gmail.com" se for isso em todos, basta voce usar o comando POS do delphi para procurar essa string dentro do arquivo e extrair o restante residial@gmail.com verifique tambem o que vem antes de Trabalho ou outra coisa referente ao assunto