Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Faça uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...ghlite=firebird ou veja este artigo http://blogs.embarcadero.com/andreanolanus...-cbuilder-2010/ abraço
  2. voce pode renomear a pasta e quando for reabrir o projeto, direcione para ela ou no Menu File > opção Save Project As... > salve o projeto na nova pasta e transfira todos os arquivos para ela abraço
  3. Leia esta apostila http://www.computacao.unitri.edu.br/downlo...iBDModulo03.pdf abraço
  4. O comando para isso é: QuickReport1.PrinterSettings.Duplex := True; QuickReport1.PrinterSettings.ExtendedDuplex := 2; entretanto isso é um bug do QuickReport que foi corrigido na versão Professional do QR). http://www.qusoft.com/WebInfoPage.aspx?WebInfoID=618 abraço
  5. Da mesma forma que voce usou um Select para encontrar o registro atual da Table1, voce deve fazer a mesma coisa para localizar os registros TableChield e da TableChield1. depois usando um comando For para as respectivas tabelas voce consegue atualizar esses registros Para entender melhor esse conceito leia este artigo: http://www.scribd.com/doc/8451141/banco-dados-com-delphi abraço
  6. o BandStyle Body Footer refere-se ao fim do grupo e não ao fim da pagina Olhe neste apostila apartir da pagina 81 http://www.nevrona.com/files/rave5.pdf abraço
  7. Jhonas

    Quick Report

    Neste caso voce deve usar o Group Header e o Group Footer para cada tabela abraço
  8. e ao invez deu salvar o html num arquivo eu já passo ele pra um memo... ele é exibido perfeitamente... muito melhor que o antigo!!! só que a questão do gmail continua a mesma coisa... você sabe de alguma solução? Experimente usar o RichEdit1 no lugar do Memo abraço
  9. Tire o comando: tabBanco.Refresh; OBS: se quer atualizar sua tabela, está fazendo isso no lugar errado Outra coisa: se voce não cria o seu form em tempo de execução, o comando para conectar e ativar usa tabela não deveria ser no evento OnCreate do Form e sim no evento OnActive do Form zdbDisco.Connected := True; tabBanco.Active := True; entretanto a conexão tambem não deveria ser constante como está fazendo ( no evento onClose e no evento OnCreate ). somente a ativação da tabela é que seria necessaria. A conexão do Banco voce faz apenas quando inicia o programa e fecha quando finaliza. abraço
  10. Se a variavel data for string procedure TForm1.Button1Click(Sender: TObject); var data, dataF, d, m, a : string; begin data:= '060810'; d:= copy(data, 1, 2); m:= copy(data, 3, 2); a:= copy(data, 5, 2); data:= d + '/' + m + '/' + a; dataf := formatDateTime('dd/mm/yyyy',strtodate(data)); showmessage(dataf); end; Se a variavel data for inteiro procedure TForm1.Button2Click(Sender: TObject); function FormatVar(AValue: Integer; ALength: Integer): String;overload; begin Result := FormatFloat(StringOfChar('0', Alength), AValue); end; var data : integer; dataf, d, m ,a : string; begin data:= 060810; dataf := FormatVar(data,6); d:= copy(dataf, 1, 2); m:= copy(dataf, 3, 2); a:= copy(dataf, 5, 2); dataf:= d + '/' + m + '/' + a; dataf := formatDateTime('dd/mm/yyyy',strtodate(dataf)); showmessage(dataf); end; abraço
  11. Para o GMail voce não deve usar HTML ... use o texto normal abraço
  12. Jhonas

    Quick Report

    Se o conteúdo dos campos ultrapassarem o tamanho da pagina na banda Detail e Subdetail do Quick Report, o mesmo fará que na nova pagina a banda PageHeader seja impressa novamente Como eu disse voce usara no QR 4 bandas ... 1 Title, 1 PageHeader, 1 Detail e 1 SubDetail Voce tambem pode fazer uma pesquisa no forum http://scriptbrasil.com.br/forum/index.php...te=quick+report abraço
  13. Utilize este exemplo: Sistema de Contas a Pagar e Receber feito em Delphi e codigo aberto http://www.apostilar.com.br/cliques.php?id...3&subcat=60 abraço
  14. O arquivo ini fica mais ou menos assim, só que com mais linhas: ARQUIVO: DIRETORIO.INI E o grid eu gostaria que ficasse assim: CODIGO NOME CAMINHO O código fica dessa maneira: Primeiro voce define os tipos, tamanhos e nomes dos campos do ClientDataSet depois indexa os registros por um dos campos ( no caso CODIGO ) // ordenar por CODIGO Depois voce lê os registros linha a linha, do arquivo DIRETORIO.INI e a cada leitura voce divide a string nos respectivos campos e salva os registros na tabela procedure TForm1.Button1Click(Sender: TObject); VAR f:TextFile; linha:String; A : INTEGER; begin with ClientDataSet1 do begin with FieldDefs.AddFieldDef do begin DataType := ftString; Size := 10; Name := 'CODIGO'; end; with FieldDefs.AddFieldDef do begin DataType := ftString; Size := 50; Name := 'NOME'; end; with FieldDefs.AddFieldDef do begin DataType := ftString; Size := 50; Name := 'CAMINHO'; end; with IndexDefs.AddIndexDef do begin Fields := 'CODIGO'; Name := 'IntIndex'; end; CreateDataSet; end; DBGrid1.Visible := false; ClientDataSet1.Open; AssignFile(f,'C:\DIRETORIO.INI'); Reset(f); while not eof (f) do begin Readln(f,linha); Form1.ClientDataSet1.Last; Form1.ClientDataSet1.Append; Form1.ClientDataSet1.FieldByName('CODIGO').Value := copy(linha,pos('[',linha)+1,4); Form1.ClientDataSet1.FieldByName('NOME').Value := copy(linha,pos(']',linha)+1,20); Form1.ClientDataSet1.FieldByName('CAMINHO').Text := copy(linha,1,pos('[',linha)-1); ClientDataSet1.Post; ClientDataSet1.ApplyUpdates(-1); end; Closefile(f); DBGrid1.Visible := true; end; O resultado fica assim: CODIGO------NOME--------------CAMINHO 0001--------Musica1.mp3-------H:\cds\14 BIS\ 0002--------Musica2.mp3-------H:\cds\ACAPELLA\ 0003--------Musica3.mp3-------H:\cds\EVER\ abraço
  15. Fiz um teste e funciona sem problemas procedure TForm1.Button1Click(Sender: TObject); begin query1.SQL.Clear; Query1.SQL.Add('SELECT *'); Query1.SQL.Add('FROM TABELA'); Query1.SQL.Add('WHERE extract(month from DATA_NASC) = :mes'); query1.SQL.Add('ORDER BY DATA_NASC'); Query1.ParamByName('mes').AsInteger := 1; Query1.Open; end; abraço
  16. De um exemplo de como está os registros nesse arquivo .ini e um exemplo de como voce quer o DBgrid abraço
  17. rebotea ... favor se expressar melhor, pois esta dificil entender o que quer veja: voce colocou esta frase como passaria a consulta já que para abrir o registo local estou a fazer da seguinte maneira: e depois esta: Pego o registro Actuall da Base de dados da Network Isso significa que voce tem uma tabela local no seu micro e voce quer atualizar uma tabela que está em um provedor da internet responda se é isso ?
  18. Jhonas

    Quick Report

    A tabelas devem ter ligação atraves de algum campo ( ou seja deve haver um relacionamento entre suas tabelas ) para que as informações estejam ligadas a um campo comum voce pode fazer exatamente desse jeito .... voce coloca num Page Header as ocorrencias voce coloca numa banda Detail ( Query2 ) este voce pode colocar numa banda SubDetail .... Na banda Detail usando a propriedade HasChield ... deixe como true e voce terá uma banda SubDetail que será filho da Detail ( Query3 ) abraço
  19. No botão Insert ou quando voce clicar no botão para incluir um novo registro, voce verifica através de um contador de registros, o numero que esta faltando na sequencia. exemplo: procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); var i : integer; begin if button = nbInsert then begin for i := 1 to Query1.RecordCount do // tabela que voce esta usando begin Query2.Active := false; Query2.Params[0].AsInteger := i; Query2.Active := true; if Query2.RecordCount = 0 then begin showmessage('O numero '+inttostr(i)+ ' é o proximo da sequencia'); Query1.Last; Query1.Append; Query1.Edit; Query1Num.AsInteger := i; break; end; Query1.Next; end; end; end; Na clausula SQL da Query2 voce coloca SELECT Num FROM Tabela WHERE Num = :NR abraço
  20. Veja que se esta atualização de tabelas fosse de um micro para um servidor na internet, o ideal seria usar o banco MyQls porque é nativo do proprio servidor Se essa atualização é numa rede interna, então a atualização de 1 para N entre as tabelas pode ser feita usando parametros. usando o seu próprio exemplo: Tabeladetail_1 (Variaveis_neste_local). ((J) registos a actualizar da tabela 6 para a tabela5) Neste caso voce faz uma varredura através de um For na tabela 6, e na tabela 5 voce usará parametros em uma clausula SQL ( select ) onde passará os parametros de pesquisa da tabela 6. exemplo Select * from Tabela5 where Tabela6Campo1 = 'valor do campo1' and Tabela6Campo2 = 'valor do campo2' Ou seja a cada registro lido na Tabela6, será procurado o respectivo registro na Tabela5 e o mesmo será atualizado. Desta maneira voce diminui o trafego da rede e agiliza o processo abraço
  21. Voce não respondeu a minha pergunta.... sem isso não posso lhe dizer como fazer com relação a esse código , ele só serve se as tabelas forem pequenas, com poucos registros ( 1000 a 3000 registros ) para tabelas maiores, a abordagem deve ser outra, senão o sistema fica lento e não seria a maneira correta de fazer essa atualização. abraço
  22. Se eu entendi direito, voce quer atualizar os dados de uma tabela que esta no seu micro, com uma tabela que está no servidor ( internet ) ... é isso ? se for isso o banco de dados que voce deve usar seria o MySql abraço
  23. Jhonas

    Esta Certo?

    Para somar dois valores no Rave usando o Event Editor, voce deve juntar os dois valores num unico Band e depois colocar num label para receber a soma. Self.text:=FloattoStr(<variavel onde está o valor1>.value + <variavel onde está o valor2>.Value); Os componentes CalcText e CalcOp e CalcTotal servem para atender o que voce quer. Procure nesta apostila ... está em inglês http://www.nevrona.com/files/rave5.pdf ou veja este link http://www.activedelphi.com.br/forum/viewt...b8e3e655deb5352 outro artigo versando sobre o assunto http://delphicuritiba.blogspot.com/2007/11...ve-reports.html abraço
  24. Veja este post http://scriptbrasil.com.br/forum/index.php...st&p=556105 http://scriptbrasil.com.br/forum/index.php...mode=linearplus abraço
  25. Veja este artigo http://www.baixaki.com.br/info/1728-format...-windows-xp.htm abraço
×
×
  • Criar Novo...