Ir para conteúdo
Fórum Script Brasil

Eder

Membros
  • Total de itens

    1.002
  • Registro em

  • Última visita

Tudo que Eder postou

  1. Eder

    Soma Em Edits

    tenta no final assim: edttotal.Text := 'R$ ' + FloatToStr(cota+juros+multa+extra+total); somei todas as suas variaveis..se você ver que tem alguma que não deveria somar...retire agora se você quizer somente somar todas menos as total....então faça assim: edttotal.Text := 'R$ ' + FloatToStr(cota+juros+multa+extra); se você quizer mostrar somente a total..pois ela já estava somando as outras então faça assim: edttotal.Text := 'R$ ' + FloatToStr(total); bom espero que um dos casos acima..seja o que você quer valeu.. :D
  2. Ola...Pessoal Eu uso paradox somente, e tenho o costume de trabalhar com Tables e Querys. Então pra configurar as tabelas em digito no DatabaseName da Table ou query...o alias ou o caminho do banco tipo c:\bdados Mas eu gostaria de saber se tem alguma maneira de eu configurar pra pegar as tabelas aonde esta o programa executavel, ou seja, não usar nem alias e nem o endereço c:\bdados Neste caso eu queria jogar as tabelas e o executavel(programa) numa unica pasta...e ai o programa seria inteligente o suficiente pra saber que as tabelas estão juntas e ai executar..... Vamos supor que o usuario resolvesse pegar esta pasta com o executavel e as tabelas e renomear ou copiar pra outra pasta....o programa continuaria sempre funcionando..pois sempre estariam juntas o executavel + as tabelas... Tem como?? Grato
  3. Jonas...não deu certo...ai tava dando uma testada agora a tarde...e verifiquei que este erro é somente na minha máquina os demais usuários de outras maquinas..estão usando sem problema Acredito que com a remoção do Microsoft Office...algo foi removido junto...e como eu uso esta função ..acredito que ela precisa de algum arquivo ou configuração do Microsoft office..sei lá...é uma ideia...pois o erro é somente na minha maquina. Se tiveres mais alguma ideia?? Carinha não tens alguma dica mais eficiente pra mandar email pelo delphi sem depender do Outlook express? Grato
  4. R.: Ola..Baixei pro quick 3, legal ...tem um exemplo com fontes muito bom....vou dar uma estudada e adpatar a minha necessidade. Era isto mesmo que eu precisava.. valeu a dica...e o endereço do download... ;) Abraço :D
  5. Ola..pessoal. Foi removido o microsoft office de uma maquina de um usuario..e instalado o BrOffice, porem agora tenho um programa e nele tem um botão que monta o email em cima do outllok express..mas este..não foi removido somente o Office(word, excel etc...). Então agora ao clickar no botão da a seguinte mensagem de erro: Error While Trying to send email Eu uso esta função pra mandar o email: Uses Mapi function SendEMail(Handle: THandle; Mail: TStrings): Cardinal; type TAttachAccessArray = array [0..0] of TMapiFileDesc; PAttachAccessArray = ^TAttachAccessArray; var MapiMessage: TMapiMessage; Receip: TMapiRecipDesc; Attachments: PAttachAccessArray; AttachCount: Integer; i1: integer; FileName: string; dwRet: Cardinal; MAPI_Session: Cardinal; WndList: Pointer; begin dwRet := MapiLogon(Handle, PChar(''), PChar(''), MAPI_LOGON_UI or MAPI_NEW_SESSION, 0, @MAPI_Session); if (dwRet <> SUCCESS_SUCCESS) then begin MessageBox(Handle, PChar('Error while trying to send email'), PChar('Error'), MB_ICONERROR or MB_OK); end else begin FillChar(MapiMessage, SizeOf(MapiMessage), #0); Attachments := nil; FillChar(Receip, SizeOf(Receip), #0); if Mail.Values['to'] <> '' then begin Receip.ulReserved := 0; Receip.ulRecipClass := MAPI_TO; Receip.lpszName := StrNew(PChar(Mail.Values['to'])); Receip.lpszAddress := StrNew(PChar('SMTP:' + Mail.Values['to'])); Receip.ulEIDSize := 0; MapiMessage.nRecipCount := 1; MapiMessage.lpRecips := @Receip; end; AttachCount := 0; for i1 := 0 to MaxInt do begin if Mail.Values['attachment' + IntToStr(i1)] = '' then break; Inc(AttachCount); end; if AttachCount > 0 then begin GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount); for i1 := 0 to AttachCount - 1 do begin FileName := Mail.Values['attachment' + IntToStr(i1)]; Attachments[i1].ulReserved := 0; Attachments[i1].flFlags := 0; Attachments[i1].nPosition := ULONG($FFFFFFFF); Attachments[i1].lpszPathName := StrNew(PChar(FileName)); Attachments[i1].lpszFileName := StrNew(PChar(ExtractFileName(FileName))); Attachments[i1].lpFileType := nil; end; MapiMessage.nFileCount := AttachCount; MapiMessage.lpFiles := @Attachments^; end; if Mail.Values['subject'] <> '' then MapiMessage.lpszSubject := StrNew(PChar(Mail.Values['subject'])); if Mail.Values['body'] <> '' then MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values['body'])); WndList := DisableTaskWindows(0); try Result := MapiSendMail(MAPI_Session, Handle, MapiMessage, MAPI_DIALOG, 0); finally EnableTaskWindows( WndList ); end; for i1 := 0 to AttachCount - 1 do begin StrDispose(Attachments[i1].lpszPathName); StrDispose(Attachments[i1].lpszFileName); end; if Assigned(MapiMessage.lpszSubject) then StrDispose(MapiMessage.lpszSubject); if Assigned(MapiMessage.lpszNoteText) then StrDispose(MapiMessage.lpszNoteText); if Assigned(Receip.lpszAddress) then StrDispose(Receip.lpszAddress); if Assigned(Receip.lpszName) then StrDispose(Receip.lpszName); MapiLogOff(MAPI_Session, Handle, 0, 0); end; end; exemplo de envio no botão: procedure TForm1.BitBtn5Click(Sender: TObject); var mail: TStringList; begin mail := TStringList.Create; try mail.values['to'] := 'Email@test.xyz'; ///AQUI VAI O EMAIL DO DESTINATARIO/// mail.values['subject'] := 'Hello'; ///AQUI O ASSUNTO/// mail.values['body'] := 'blah'; ///AQUI O TEXTO NO CORPO DO EMAIL/// mail.values['attachment0'] := 'C:\Test.txt'; ////AQUI O ENDEREÇO ONDE ENCONTRAM OS ARQUIVOS// mail.values['attachment1']:='C:\Test2.txt'; ///IDEM - NO ATTACHMENT1 TEM QUE COLOCAR A SEQUNCIA DO EMAIL A QUAL DESEJA ENVIAR EXEMPLO: ATTACHMENT1 sendEMail(Application.Handle, mail); finally mail.Free; end; end; alguém teria alguma ideia pra resolver este problema?? Obs> Na verdade eu queria abandonar este tipo de envio de email(senão fico dependente), gostaria de fazer tudo pelo delphi...mas peguei uns exemplo na net e nenhum funcionou.....a maioria dava problemas de incompatibilidade com servidores SMTP Mas se alguém tiver algo eficiente por favor me apresente... Agradecido..
  6. pessoal..então quer dizer... que não seria muito facil assim..como parecia... resumindo seu eu quizer visualizar e imprimir um arquivo QRP já salvo e precisar usar o PrinterSetup teria que construir meu proprio Preview? Bom eu uso um aplicativo de terceiros free pra visualizar os arquivos salvos e funciona perfeito, acho que o camarada construiu ele desta forma....eu gostaria de ter meu proprio aplicativo..mas...fazer o que... E vocês usam de terceiros ou tem seu proprio aplicativo?? valeu..Grato :)
  7. Oba...Micheus..agora fechou...testado e aprovado...deu certo..coloquei no: procedure TFormRanking.QRSubDetail1AfterPrint(Sender: TQRCustomBand; BandPrinted: Boolean); begin if not Query1.EOF then begin Query1.Next; // avançamos na mão para o próximo registro Inc(ContaHanking); // incrementamos item impresso end; end; e deu certo...pois só tinha a banda columaHeader e SubDetail e Sumary...então coloquei na SubDetail..e deu certo. Comparei com outros dois relatorio de ranking e deu tudo certo. Bom é isto ai...chega de encher a tua paciência :) ....vamos encerrar este tópico :D ...foi muito proveitoso esta discussão deste tópico com certeza vai ajudar mais usuários..pois foi sanado mtas dúvidas. Um Grande Abraço e muito grato pela ajuda. t+ :D
  8. Entendi ...sim...muito boa explicação....peguei o esquema....realmente eu só sabia sobre a variavel global...as demais não sabia mesmo.. valeu..Grato Micheus...tava testando com dados reais...o exemplo que você me passou: Testando como disse acima com dados reais..notei agora..que tem uma falhilha.....sempre o CLIENTE em primeiro lugar não aparece...eu sei porque como fiz varios tipos de relatorio de ranking...então comparei e notei que sempre o primeio não aparece...ou seja..aparece pra mim assim: aparece como primeiro ....o segundo na real. depois o segundo .....é o terceiro na real depois o terceiro....é o querto na real..e assim por diante... e o verdadeiro cliente em primeiro lugar não aparece...em colocação alguma...é como ele passasse por cima..e desconsiderasse ele... Tens ideia do problema??? Grato
  9. Ola..pessoal Tou tentando montar um pequeno aplicativo pra ler arquivos *.qrp do quickreport. é muito simples....e fiz apenas..inserindo: *um quickrep1 no form *coloquei o No OnCreate do form: quickrep1.viseble=false *um botão com o codigo assim: quickrep1.preview; tudo muito simples....ai o usuario apenas click no botão do preview, ai depois ele apenas click na caixinha abrir do preview e acesso o arquivo QRP e visualiza..... Porem ...quando ele abre e visualiza o arquivo QRP, o icone PRINTER SETUP desabilita, impossibilitando do usuario escolher o tipo de impressora e qtas paginas poderia imprimir...só deixando a opção de Print(IMPRIMIR) mesmo.... Tem uma maneira de eu deixar o BOTÃO DE PrinterSetup abilitado??? ou alguma outra ideia?? Grato
  10. R.: Bingo....tu é o cara....deu certo....na pinta. :D Carinha...uma coisa que queria perguntar a algum tempo...Q Qual a dirença da Variavel abaixo do private p/ a variavel abaixo do Var?? private ContaHanking :integer; para var FormRanking: TFormRanking; TOTALGFRETE:REAL; //VARIVEL QUE PEGA O VALOR TOTAL GERAL DO FRETE Valeu...Grato ;)
  11. Micheus.....achei que era mais simples....é muito complicado...deixa quieto.... ;) Do Jeito que ta já ta bom pra caramba....hehehe A hora que tiver mais inspirado...vou dar um estudada. Por enquanto meu muito obrigado pelo esforço e paciência. O que eu queria realmente você me ajudou...e ficou muito bom...t+ :D Abraço Oba...eu de novo....tive uma ideia....eu tinha colocado um QrSysData que mostrava a colocação do cliente no ranking... então eu pensei não daria pra fazer o controle em cima deste componente?? eu fiz assim: procedure TFormRanking.QRSysData3Print(sender: TObject; var Value: String); begin If value = '4' then begin Abort; end else begin VALUE := formatfloat('000',StrToFloat(VALUE))+'º'; end; end; até funcionou em parte...ele mostrou os 4 clientes maiores.....só não terminou o relatorio corretamente...derepente você saberia como fazer para o relatório em cima deste componente e encerra-lo corretamente... O que acha??? é só uma ideia..aqui deu certo como te falei apenas não encerrou corretamente: o layout ficou assim> c===cliente======valor 1.......XXXX.............10,00 2.......YYYY..............15,00 3.......ZZZZ.............18,00 .......mmm.............12,00 pode notar que ele não mostrou o nr 4 e não mostrou a banda sumary e o somatorio, é claro eu abortei.... mas será que teria jeito? se não der beleza...foi uma ideia... abraço
  12. R.: fiz isto e abandonei por enquando o periodo ...pois deu erro...resolvi fazer um testezinho sem o periodo...pois antes quando tinha dito que tinha dado tudo certo, eu fazia os codigos sql nas proprias querys...no SQL-Tstrings....mas como eu queria testa-los também com o codigo a instrução sql no botão....exemplo: Qry2 := 'SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) ORDER BY SIGLA_CTRC, NUMERO_CTRC'; R.: bom....ta tudo certo como acima, exceto as bandas....tenho somente as bandas: Micheus....só pra você entender...o relatorio funciona 100% se eu colocar este codigo na query1 SQL TStrings: SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS [quote]VALOR_FRETE_TOTAL FROM CTRC WHERE (SITUACAO_CTRC <> "C") GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC e na Query2 SQL TStrings: SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE FROM CTRC WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) ORDER BY SIGLA_CTRC, NUMERO_CTRC entendeu?? funciona certinho.. Agora que vem a pepa....eu não queria usar mais o codigo direto nas querys SQL TStrings, pois como vou ter que deixar o usuario selecionar a data (periodo desejado)...então gostaria de deixar estes codigo na query num BOTÃO. pra isto tenho que trabalhar estes codigos pro botão....e coloca-los em string´s..como coloquei logo acima.....mas eles não funcionam ...duplicam.... não sei porque...pois estou usando o mesmo critério....apenas mudando a forma de processar...que antes tava nos TString direto nas queryes...e agora coloquei no botão...exatamente igual. Valeu..Grato opa deu certo era este codigo abaixo que dava o problema e duplicava: query2.open; ai retirei ele e ficou assim: procedure TFormRanking.XiButton2Click(Sender: TObject); var Qry1, Qry2 : String; begin If DateTimePicker2.Date < DateTimePicker1.Date Then begin ShowMessage('Intervalo de datas Inválido, a data Inicial é maior que a data Final!'); DateTimePicker2.Date := DateTimePicker1.Date; exit; end; {QUERY1} Qry1 :='SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS VALOR_FRETE_TOTAL '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") '+ 'AND DATA_EMISSAO between :datai and :dataf '+ 'GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC'; Query1.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query1.SQL.Text := Qry1; //a instrucao sql recebe o texto acima//Query1.ParamByName('datai').AsDate := DateTimePicker1.Date; // você ta passando as datas iniciais para o parametro Query1.ParamByName('datai').AsDate := DateTimePicker1.Date; Query1.ParamByName('dataf').AsDate := DateTimePicker2.Date; // você ta passando as datas finais para o parametro Query1.Open; {QUERY2} Qry2 :='SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, '+ 'NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE '+ 'FROM WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) '+ 'AND DATA_EMISSAO between :datai and :dataf '+ 'ORDER BY SIGLA_CTRC, NUMERO_CTRC'; Query2.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query2.SQL.Text := Qry2; //a instrucao sql recebe o texto acima Query2.ParamByName('datai').AsDate := DateTimePicker1.Date; Query2.ParamByName('dataf').AsDate := DateTimePicker2.Date; // você ta passando as datas finais para o parametro // If query1.IsEmpty Then begin ShowMessage('Nenhum Registro Encontrado!'); exit; end; FormRAbast1.qrlabel20.Caption:=DateToStr(DateTimePicker1.Date); FormRAbast1.qrlabel22.Caption:=DateToStr(DateTimePicker2.Date); quickrep1.Preview; End; Agora fechou tudo certinho....até por periodo.. :D O que é um codigo colocado incorretamente né :D Carinha sem querer abusar ...lembra da outra dúvida?? acho que esta é facil pra você.. Eu gostaria de saber se da pra listar apenas os 10 maiores clientes..... É facil?? li uns artigos que diz que tem usar um comando chamado:top 10 tentei usar mas não deu certo...não sei se coloquei certo. Grato ;)
  13. R.: Oba....Micheus...ta deixa ver se entendi.. a inicialização que você diz é o parametro da query? se for ....acrescentei esta linha no codigo: Query2.ParamByName('pag_cnpj').asString := QUERY1pag_cnpj.AsString; codigo abaixo completo var Qry1, Qry2 : String; Begin Qry1 := 'SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS VALOR_FRETE_TOTAL '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") '+ 'GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC'; Query1.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query1.SQL.Text := Qry1; Query1.Open; {QUERY2} Qry2 := 'SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) ORDER BY SIGLA_CTRC, NUMERO_CTRC'; Query2.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query2.SQL.Text := Qry2; //a instrucao sql recebe o texto acima Query2.ParamByName('pag_cnpj').asString := QUERY1pag_cnpj.AsString; Query2.Open; quickrep1.Preview; Mesmo assim ta duplicando como mencionei acima... Estou fazendo errado?? Antes eu tava fazendo na propria query..e funcionava.
  14. R.: Opa.....cheguei....foi mal... na correria nem me toquei do nome do campo.... :) Mas..Micheus...mesmo assim...o relatorio saiu loco....duplicando cliente........cnpj.......valor ================= xxxxx.......99999.......10,00 xxxxx.......99999.......10,00 xxxxx.......99999.......10,00 repete um monte de vezes...ai depois muda pra outro cliente yyyyy.......99999.......15,00 yyyyy.......99999.......15,00 e vai repetindo.....não sei porque...ai só pra testar tirei o codigo de DATA_EMISSÃO para ficar igual ao codigo sql que esta na PROPRIA query1 e query2 no quickreport ficando assim: procedure TFormRanking.XiButton2Click(Sender: TObject); var Qry1, Qry2 : String; begin {QUERY1} Qry1 := 'SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS VALOR_FRETE_TOTAL '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") '+ 'GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC'; Query1.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query1.SQL.Text := Qry1; //a instrucao sql recebe o texto acima Query1.Open; {QUERY2} Qry2 := 'SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) ORDER BY SIGLA_CTRC, NUMERO_CTRC'; Query2.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query2.SQL.Text := Qry2; //a instrucao sql recebe o texto acima Query2.Open; quickrep1.Preview; END; e ai continua repetindo......estranho não deveria pois..estou passando atraves do Qry1 e Qry2 variaveis Texto...a instrução sql igualzinho que ta la nas querys no proprio form do quick. O que você acha?? Grato
  15. Ola..Micheus....Carinha...meti a cara hoje de manhã..e ttrabalhei em cima do seu exemplo e CONSEGUI montar exatamente como queria....funcionar 100%....mostrou os totais em ordem de Ranking e totalizei na sumary o relatorio, coloquei também mais um campo o cnpj dos clientes e também coloquei um QrsysData=que mostra a colocação do clientes....ficou show. :D ficou assim as duas queryes query1: SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS VALOR_FRETE_TOTAL FROM CTRC WHERE (SITUACAO_CTRC <> "C") GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC Query2: SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE FROM CTRC WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) ORDER BY SIGLA_CTRC, NUMERO_CTRC Segui exatamente seus passos, e claro que ai eu mudei algumas coisinhas no codigo, tipo mais campos e filtros etc...mas a sua ideia deu certo. Carinha seguinte: me surgiu duas duvidas agora, só por curiosidade. Uma delas é que se eu quizer consultar por data. Eu fiz assim mas da erro: procedure TFormRanking.XiButton2Click(Sender: TObject); var Qry1, Qry2 : String; begin If DateTimePicker2.Date < DateTimePicker1.Date Then begin ShowMessage('Intervalo de datas Inválido, a data Inicial é maior que a data Final!'); DateTimePicker2.Date := DateTimePicker1.Date; exit; end; {QUERY1} Qry1 :='SELECT PAG_CNPJ, PAGADOR_NOME, SUM(VALOR_FRETE) AS VALOR_FRETE_TOTAL '+ 'FROM CTRC WHERE (SITUACAO_CTRC <> "C") '+ 'AND between :datai and :dataf '+ 'GROUP BY PAG_CNPJ, PAGADOR_NOME ORDER BY 3 DESC'; Query1.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query1.SQL.Text := Qry1; //a instrucao sql recebe o texto acima Query1.ParamByName('datai').AsDate := DateTimePicker1.Date; // você ta passando as datas iniciais para o parametro Query1.ParamByName('dataf').AsDate := DateTimePicker2.Date; // você ta passando as datas finais para o parametro Query1.Open; {QUERY2} Qry2 :='SELECT DATA_EMISSAO, PAG_CNPJ, PAGADOR_NOME, SIGLA_CTRC, '+ 'NUMERO_CTRC, REMET_CIDADE, VALOR_FRETE '+ 'FROM WHERE (SITUACAO_CTRC <> "C") AND (PAG_CNPJ = :PAG_CNPJ) '+ 'AND between :datai and :dataf '+ 'ORDER BY SIGLA_CTRC, NUMERO_CTRC'; Query2.Close; //fecha para limpar qualquer instrução que esteje na memoria.... Query2.SQL.Text := Qry2; //a instrucao sql recebe o texto acima Query2.ParamByName('datai').AsDate := DateTimePicker1.Date; // você ta passando as datas iniciais para o parametro Query2.ParamByName('dataf').AsDate := DateTimePicker2.Date; // você ta passando as datas finais para o parametro Query2.Open; If query1.IsEmpty Then begin ShowMessage('Nenhum Registro Encontrado!'); exit; end; quickrep1.Preview; END; e a outra dúvida....bom...esta deixa pra depois... Bom é isto ai....valeu a ajuda..agradecido. Abraços :D
  16. Eder

    Soma Em Edits

    R. Opa..me desculpe eu me atrapalhei no final do codigo.....não havia notado que o total era a variavel..na hora achei que era uma string ou seja que era um EDIT.....perdão...foi mal. E quanto aos edit´s com o mesmo nome da variavel..concordo com nosso colega. Abraço :(
  17. Eder

    Soma Em Edits

    Ola... tenta mudar a linha que soma assim: procedure Trecibo.Button3Click(Sender: TObject); var cota:real; juros:real; multa:real; extra:real; total:real; begin cota:=strtofloat(cota.text); juros:=strtofloat(juros.text); multa:=strtofloat(multa.text); extra:=strtofloat(extra.text); total:= FloatToStr(cota + juros + multa + extra); end; Acho que resolve..... :D
  18. R. Oba...desculpe a demora em responder só agora vi que você havia respondido ;) Entendi o que você mencionou..e já alterei também incluindo o DESC R.: Jóia....valeu...é bom contar com pessoas dispostar a ajudar... Abraços..t+:)
  19. Eder

    [resolvido]data Extenso

    Resposta p/ Micheus: sim...vou pegar o exemplo do Jonas e dar uma estudada, parece que nele tem tudo o que preciso.. Valeu Jonas...qualquer coisa eu peço ajuda aos colegas.. Grato a atenção Micheus e Jonas. Abraço :)
  20. Eder

    [resolvido]data Extenso

    Ola..Jonas...Bza? carinha ...isto tou sabendo beleza... Mas o que eu queria e não to conseguindo fazer é como este exemplo abaixo: Entendeu?? terias algum exemplo como mostro acima?? Grato
  21. Ola..pessoal...tou montando este codigo pra mostrar a data por extenso ...igual se mostra em Promissória. assim: procedure TForm1.Edit3Enter(Sender: TObject); Var DataVencimento : TDateTime; begin DataVencimento:=StrToDateTime(maskedit5.text); Edit3.Text := 'Aos ' + FormatDateTime('dd "dias do mês de " mmmm "do ano de " yyyy',DataVencimento); //converte para exenso end; o resultado ta saindo assim: Não sei ao certo, gostaria de uma dica.....mas acho que deveria sair assim: Ao(s) primeiro dia do mês de Janeiro do ano de dois mil e oito Alguém poderia me dar uma dica e o que eu alteraria no codigo?? Obs.: teria que ser algo que não precisasse da DATEUTILS..pois meu delphi é 4 e não tem ela. Grato
  22. Carinha..achei a solução....até por sinal muito fácil...e deu certo. With Query3 Do Begin Close; With Sql do Begin Clear; Add('Select IVISBLU.CODITEM, IVISBLU.CODVISITA From IVISBLU '); Add('WHERE IVISBLU.CODVISITA ='+ QuotedStr(table1CODIGO.Text)); Add('ORDER BY IVISBLU.CODVISITA'); end; Open; Query3.LAST; Table2CODITEM.Value := Query3CODITEM.AsInteger +1; END; Finalmente deu certo..na verdade a ideia principal é a sua...mas ai ao invés de comparar com a propria table2...fiz a comparaçao entre table1 e table2...ai fechou direitinho. :D ;) Carinha...muito Grato pela Ajuda e pela paciência...afinal foram mais de 20 partes este tópico..ufa... Abraços :D
  23. R. sim...o primeiro grava certinho...nem preciso abrir o database desktop pois tenho o Dbgrid que me mostra exatamente o que vai acontecendo. Como falei em tópico anterior..a consulta não me traz nada....só funciona o primeiro item na gravação...pois é + 1 e é esto hum que é gravado como primeiro registros..após sempre da erro de key..pois ele quer gravar um de novo...pois a consulta não traz nada. Só mais uma curiosidade: se a consulta Query3 está "Select MAX(CODITEM) From IVISBLU where CODVISITA = :CODVISITA", como é que você tem um campo adicionado a query chamado Query3CODITEM? Supostamente deveria ser algo como Query3MAXOFcodigo, já que você não declara um nome para a coluna, e neste caso, a consulta deveria estar "Select MAX(CODITEM) AS CODITEM From IVISBLU where CODVISITA = :CODVISITA" R. aqui eu pipoquei mesmo...eu incluia no braço o CODITEM NA QUERY3.....pois senão ele não me deixava compilar...mas ai mudei agora assim como você me pede: Select MAX(CODITEM) AS CODITEM From IVISBLU where CODVISITA = :CODVISITA Mas mesmo assim.....a consulta não continua me trazendo valor....Não sei porque..deveria trazer, pois concordo a select ta correta...fiz um testezinho coloquei um label e coloquei este codigo no botão: label1.caption:=floattostr(Query3CODITEM.AsFloat + 1); e nada...só me traz o resultado 1 Grato...t+ Abraços
  24. R. Ok....substitui R. Sim tudo certinho. Carinha eu fiz um testezinho e reparei que a query3 não me traz resultado algum...ou seja nada...pois quanto tento gravar o primeiro registro da detalhes não da erro..pois como esta somando o + 1(mas 1) ela grava normalmente..ai explica quando vou pro segundo e da erro de KeyViolation...pois ela torna a querer gravar o 1 de novo...porque a query3 na me traz a qtidade de registros gravados...a consulta da query não funca. :( Então acho que o codigo na propria query3 com o parametro codvisita não funciona...é ali que acho que ta o erro..apartir do momento que a query3 me trazer o resultados da quantidade registros gravados ai funcionará certinho. O que você acha?? :rolleyes: E pra converter estes dados de numerico pra autoincremento...daria?? ai resolveria esta pepa. Tentei fazer isto no database desktop mas ele não me deixa...converter. é eu acho que teria que criar um campo intermediário (inteiro), mover apenas a parte inteira para ele, dropar a coluna numeric, criá-la novamente como integer, mover a coluna temporária para a nova e transformá-la em autoincremente (mais ou menos tudo isso) Independente disto, é recomendado que você não utilize campos numeric para a finalidade aque exposta (código sequencial de controle) R. Este nem vou tentar de emediato....só vou tentar a hora que eu ver que não tem mais jeito da maneira que estamos discutindo acima ;) ....beleza?? :) Abraço e bom final de semana... t+
  25. Eder

    [resolvido] Quickreport

    R. Carinha...fiz e não deu certo. Pra não ter que recriar tudo de novo....ainda bem que tinha uma copia em casa...e como era uma alteração pequena em um qrlabel....então usei o backup e fiz a alteração e na cópia de casa não tinha este problema. É por isto que digo que não tem backup mtas vezes se ferra...hehehe :D Este me safei!!! ;) Valeu Micheus e Jonas..valeu a tentativa. Abraço a todos. t+
×
×
  • Criar Novo...