[delphi-br] Bookmarks e IndexFieldNames
Grupo Delphi-BRGostaria de saber se esse comportamento do ClientDataSet é normal, ou se eu é que não estou fazendo algo corretamente: a) Em uma certa tela de consulta, ordeno os registros de um ClientDataSet por DATAEMISSAO+NUMERO_NF. Assim: ClientDataSet.IndexFieldNames := 'DATAEMISSAO;NUMERO_NF'; b) Em certo momento, preciso fazer uma pesquisa pelo NUMERO_NF, e por isso mudo o IndexFieldNames para: ClientDataSet.IndexFieldNames := 'NUMERO_NF'; ClientDataSet.FindKey([1234]); // apenas um exemplo (aqui o ClientDataSet se posiciona normalmente na NF 1234 c) Porém, preciso retornar logo depois ao índice anterior: ClientDataSet.IndexFieldNames := 'DATAEMISSAO;NUMERO_NF'; d) O problema é que, quando eu retorno à classificação anterior, o registro posicionado muda, ou seja, o ponteiro do ClientDataSet deixa de estar na NF 1234 e passa a estar em outro registro. e) Tentei usar GetBookMark e GotoBookMark, mas parece que não adianta, porque após mudar o IndexFieldNames, o GotoBookMark continua caindo em outro registro Alguém tem alguma idéia de como executar os comandos acima, ou seja, mudar a classificação, pesquisar um registro, retornar à classificação anterior e manter o ponteiro no registro que foi pesquisado ? Obs.: Eu não criei índices nesse ClientDataSet porque não vi necessidade, pelo menos até o momento. Apena o IndexFieldNames estava resolvendo bem a situação, até eu me deparar com o problema acima. Grato pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Pedido de auxílio com o Inno Setup
Pessoal: A respeito de uma instalação que estou criando com o Inno Setup/IsTool: a) Alguém pode me enviar um exemplo de arquivo EM PORTUGUÊS a ser exibido na tela "Contrato de Licença de Uso" ? Não sei que tipo de termos costumam ser usados nesse arquivo (estou usando, por enquanto, um exemplo em inglês que veio com o próprio Inno, mas acredito que ele não sirva para um sistema que pretendo "vender" através da Internet). b) Como faço para não exibir a tela "Selecionar a pasta do menu Iniciar" ? (ou seja, quero que os atalhos dos programas do meu sistema sejam automaticamente incluídos em um grupo próprio MEUSISTEMA, sem que o usuário possa alterá-lo). Muito obrigado pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Chamar um comando do DOS e receber o resultado dentro do meu sistema
Pessoal: - Preciso chamar um comando do DOS (que exibe dados na tela), e receber a saída do comando no meu sistema - Vou exemplificar com o comando DIR, apenas para facilitar o entendimento: - Meu sistema chamaria (por exemplo) o comando DIR C:\ e o resultado desse comando, em vez de ir para a tela, iria para um TMemo, por exemplo, e então eu processaria o conteúdo desse memo. - Pensei em chamar o comando via rotina WinExecAndWait32, ou algo parecido, enviando o resultado para um .TXT: DIR C:\ > C:\TEMP\ARQTESTE.TXT ... depois, eu carregaria o C:\TEMP\ARQTESTE.TXT no TMemo (Memo1.Lines.LoadFromFile) O que está descrito acima eu consigo fazer, mas gostaria de saber Alguém tem uma idéia melhor ? Grato pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Impressa de Cheque Chronos
Luciano: - Certa vez, precisei imprimir cheques em uma impressora desse tipo. Tentei de tudo, inclusive algumas DLLs, mas não deu certo. - A solução foi o conjunto de componentes ACBr, que pode ser encontrado em: http://acbr.sourceforge.net/wiki/index.php Infelizmente, faz muito tempo que mexi com esses componentes, e não me lembro de mais detalhes. Mas consegui ajuda no grupo Automação Total: http://br.groups.yahoo.com/group/AutomacaoTotal/ Acho que você consegue aprender a mexer nos componentes apenas dando uma olhada nos exemplos que vêm no pacote. Boa sorte ! Paulo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] WinExecAndWait32 nao aceita nomes longos no path do programa chamado
Olá, Sílvio ! >Se você quiser transformar no formato DOS, tenho uma > sugestão: Agradeço a função que me enviou, mas eu já estou fazendo uso de uma função parecida (cujo código incluí na minha mensagem anterior), e ela resolve a questão sobre obter o nome curto do path. O que eu gostaria de saber é se realmente esse é o procedimento correto para contornar o erro que a WinExecAndWait32 gera (também incluída na minha mensagem anterior) quando eu passo o nome longo do path, ou se eu é que não estou sabendo passar o nome longo para a rotina corretamente (já tentei colocar aspas de várias formas, e não deu certo). Muito obrigado pela atenção ! Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como conseguir gravar em um arquivo INI, na pasta Arquivos de Programas do Windows Vista
Pessoal: - Criei um instalador de meu sistema, usando o Inno Setup e ISTool - Como default, eu sugiro ao usuário instalar (exemplo) em C:\Arquivos de Programas\MeuSistema (ou C:\Program Files\MeuSistema, se o Windows estiver em inglês) - Quando o usuário termina a instalação, eu chamo um programinha que grava alguns dados em um arquivo INI, na pasta C:\Arquivos de Programas\MeuSistema. - Testei a instalação no Windows XP, e tudo funciona bem. - Porém, no Windows Vista, mesmo que eu faça a instalação logado como administrador, não é permitido gravar na pasta C:\Arquivos de Programas\MeuSistema. - Já li que para permitir a gravação em C:\Arquivos de Programas\, teria que desativar algumas proteções do Vista. Porém, gostaria de saber se não há algum outro modo de eu permitir gravar na pasta de instalação do meu sistema, sem ter que alterar nada no sistema operacional (especialmente, não gostaria de ter de pedir para o usuário alterar nada manualmente) - Se não houver outro jeito, pretendo pré-definir alguma outra pasta (fora do C:\Arquivos de Programas), e obrigar o usuário a instalar o sistema nessa outra pasta. Mas se alguém souber alguma outra solução mais flexível, agradeço muito se me enviar. Muito obrigado pela atenção de todos ! Paulo
[delphi-br] WinExecAndWait32 nao aceita nomes longos no path do programa chamado
Pessoal: Como fazer com que a rotina WinExecAndWait32 (mostrada no final desta mensagem) aceite nomes longos no caminho do programa que estou chamando ? O programa externo que estou chamando fica (exemplo) em C:\Arquivos de Programas\MeuSistema\Util\xyz.exe. Tentei passar o caminho entre aspas (de várias maneiras - tudo entre aspas, apenas Arquivos de Programas entre aspas, etc.) mas nenhuma deu certo. Se eu passar o nome curto de Arquivos de Programas (que eu obtenho com a função GetShortFileName, que também estou enviando, apenas para referência), a WinExecAndWait32 consegue chamar normalmente o programa (pois o path fica assim: C:\Arquiv~1\MeuSistema\Util\xyz.exe). Existe alguma solução, ou realmente usar o nome curto do path é a melhor alternativa ? Obs.: Na Internet, existem várias versões da WinExecAndWait32. Estou usando a versão abaixo porque ela também aceita eu informar a pasta (diretório) em que o programa externo será inicializado - e tenho necessidade disso. Grato pela atenção de todos Paulo function WinExecAndWait32(FileName: String; WorkDir: String; Visibility: integer): Integer; var zAppName: array[0..512] of char; zCurDir: array[0..255] of char; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin StrPCopy(zAppName,FileName); StrPCopy(zCurDir,WorkDir); FillChar(StartupInfo,Sizeof(StartupInfo),#0); StartupInfo.cb:=Sizeof(StartupInfo); StartupInfo.dwFlags:=STARTF_USESHOWWINDOW; StartupInfo.wShowWindow:=Visibility; if not CreateProcess(nil,zAppName,nil,nil,False,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,zCurDir,StartupInfo,ProcessInfo) then Result:=-1 else begin WaitforSingleObject(ProcessInfo.hProcess,INFINITE); GetExitCodeProcess(ProcessInfo.hProcess,DWORD(Result)); end; end; // WinExecAndWait32 function GetShortFileName(Const aFileName: String): String; var aTmp: array[0..255] Of char; begin If GetShortPathName(PChar(aFileName), aTmp, Sizeof(aTmp) - 1) = 0 Then Result := aFileName Else Result := StrPas(aTmp); end; // GetShortFileName
[delphi-br] Conectar-se ao FireBird, mas sem abrir qualquer banco de dados
Pessoal: Usando Delphi 7 e DBEXpress, é possível conectar-se ao FireBird, mas sem abrir qualquer banco de dados ? Gostaria de apenas fazer a conexão para confirmar se o FireBird está funcionando, mas sem ser obrigado a imediatamente fazer acesso a dados. Grato pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como listar todos os computadores da rede
Pessoal: Existe alguma função que liste os nomes de todos os computadores da rede ? Ou algum componente ? Em meu sistema, estou criando uma tela para que o usuário configure sua conexão com o servidor de dados (o computador onde está instalado o FireBird). Em vez de exigir que o usuário digite o nome do computador servidor, gostaria de mostrar os computadores disponíveis na rede, para ele selecionar (clicar sobre o nome do servidor), evitando algum erro de digitação. Obs.: Utilizo Delphi 7 (SETE) Grato pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como descobrir se uma porta TCP está livre
Gostaria de saber se alguém já fez algo semelhante (ou se tem idéia de como fazer): A) Se for possível, no Inno Setup: - Gostaria de solicitar ao usuário em qual porta TCP ele deseja instalar o FireBird - Depois que o usuário informar a porta, eu testaria se ela está livre; se não estiver, avisaria o usuário e ele teria de selecionar uma outra porta Observação: Na seção [RUN] do meu script do Inno Setup, estou chamando a instalação de uma instância do FireBird assim (com a porta 3054 pré-determinada): [Run] Filename: {app}\Firebird\bin\install_classic.bat; Parameters: MEU_SERVER; Components : serverFiles Filename: {sys}\netsh.exe; Parameters: "firewall add portopening protocol=TCP port=3054 name=""Firebird MEU_SERVER"" mode=ENABLE scope=SUBNET"; Flags: nowait runhidden; MinVersion: 0,5.01.2600; Components : serverFiles - Também gostaria de pegar automaticamente o nome de rede do computador onde está sendo feita a instalação, e então alterar (durante a instalação) um arquivo BD.INI, onde eu guardaria o nome do servidor e a porta TCP escolhida B) Se não for possível no Inno Setup - Neste caso, pretendo escrever um programinha Delphi de configuração, que seria chamado no final da instalação; esse meu programinha pediria e testaria a porta; se eu tiver que optar por esta alternativa, então meu programinha alteraria o um arquivo BD.INI (isto eu sei fazer). - Para eu poder implementar a idéia da alternativa "B", como é que eu testo se uma determinada porta TCP está livre ? Grato pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como liberar a porta 3050, 3054, ou outra, via codigo
Pessoal: Estou criando uma instalação do FireBird 2.1.1 (e do meu sistema) via Inno Setup. Minha intenção é vender o sistema pela Internet, e por isso quero automatizar ao máximo a instalação, para facilitar aos usuários. Com a ajuda de um colega da lista, aprendi a fazer a instalação do FB através de uma "instância", e dentro da pasta do meu sistema (para evitar conflito com outro FireBird que por ventura esteja instalado na máquina). - Nos meus testes, percebi que as estações só conseguem se conectar ao FB do servidor se o firewall (do servidor XP, com SP3) estiver desabilitado, ou se a porta 3054 (que estou usando para instalar minha instância do FB) estiver liberada no firewall. - No endereço (http://www.ramosdainformatica.com.br/art_recentes01.php?CDA=870) há um exemplo de código Delphi, para modificar o registro do XP e desbloquear a porta para o FB. - Esto pensando em criar um pequeno programa em Delphi com o código mostrado no site, e executar esse programinha a partir da instalação que eu montei no Inno Setup. Assim, quando o usuário terminasse de executar a instalação, a porta seria automaticamente desbloqueada, e ele não teria que manualmente configurar o FireWall (estou pensando em uma pequena rede com 4 ou 5 máquinas, onde não exista ninguém da área de Informática no dia-a-dia da empresa, para fazer essa configuração) Perguntas: 1) Gostaria de saber se alguém já usou código semelhante a este e quais seriam os "contras". 2) Suponho que, para conseguir instalar o sistema e o FB (na pasta C:\Arquivos de Programas, por exemplo), e também para alterar o registro da máquina, o usuário tenha que ter privilégios de administrador. Alguém sabe como é que eu faço um teste, dentro do Inno Setup, que detecte se o usuário é ou não "administrador", e dê um alerta, antes de começar a instalação ? Como é que vocês contornam esta situação. - Tenho várias outras dúvidas, que estou tentando resolver sozinho, pesquisando na Internet. Se puderem enviar algumas dicas, fico muito agradecido ! Paulo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Sistema Lento - Firebird x Interbase
Eduardo: > O sistema aqui da empresa esta bem lento o acesso ao servidor, tem um >servidor e varias maquinas acessando o sistema desse servidor, entre 30 a 40 >maquinas acessando ele. > >O sistema foi desenvolvido usando o Interbase e DBE. >P.S.: O sistema não foi desenvolvido por mim, mas gostaria de saber o que >poderia ser feito para eu sugerir a melhora. > >Minha duvida é o seguinte em todas as maquinas eu tenho que instalar o >Interbase 6.2 se invez de instalar ele, se eu instalar o Firebird direto, o >sistema podera ter alguma melhora? Isso poderia gerar algum problema no >funcionamento do sistema? pois para instalar o sistema tenho que instalar o >DBE, Delphi, Interbase e mudar configurações no DBE Administrador > >Qual seria a diferença em criar um banco de dados em .gbd e instalar o >interbase ou firebird? > >Alguma dica no que poderia melhorar a performance do sistema? a) Suponho que você esteja se referindo ao BDE (Borland Database Engine), e não ao DBE (é isto mesmo ?) b) Se realmente for migrar (o que não aconselho - veja os ítens abaixo), você deve fazer um backup do banco de dados no InterBase e depois fazer um restore no FireBird. Apesar de serem muito parecidos na parte funcional, há algumas tabelas de sistema (que o próprio InterBase e FireBird criam) que não são exatamente as mesmas, nesses dois servidores. Ao fazer o restore no FireBird, ele irá recriar o BD com essas modificações de que ele necessita. Mas não é só isso... O BDE tem algumas incompatibilidades com o FireBird. Veja o que eu acho mais correto você fazer: c) O ideal é você entrar em contato com os desenvolvedores do sistema, e dizer a eles exatamente em que situações o sistema está lento (algum relatório ou processamento específico ? Quando há mais de xxx usuários logados no sistema ?, etc., etc.). Os próprios desenvolvedores poderão reanalisar essas rotinas mais problemáticas, e verificar o que pode ser melhorado (por exemplo, algum comando SQL mais eficiente). Muitas vezes, já reescrevi comandos SQL que estavam mal estruturados e a melhoria foi significativa. Os desenvolvedores também poderão avaliar se a criação de alguns índices pode melhorar a performance. d) Já trabalhei em uma empresa que desenvolvia sistemas com InterBase e BDE, e em alguns clientes tentaram migrar para o FireBird.Nesses poucos clientes, o sistema até funcionou, mas foram necessárias algumas adaptações no código. Não me lembro bem dos detalhes, mas, por exemplo, tivemos de deixar de usar campos BLOB, pois o BDE não estava conseguindo ler corretamente campos desse tipo. Além disso, alguns comandos SQL que funcionavam perfeitamente no InterBase apresentavam problemas de sintaxe no FireBird (não lembro exatamente o quê - estou citando apenas para lhe dar alguns exemplos). Enfim, fale com o pessoal que desenvolveu o sistema e verifique se eles podem melhorar a performance, ou se já têm algum cliente utilizando o FireBird. Boa sorte ! Paulo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Como distribuir um sistema feito em Delphi, que utiliza o FireBird como base de dados
Olá, Leonardo ! >Junto com Inno Setup recomendo o uso do IsTool que facilita muito a criação >do instalador. Tem muitas opções que dá para você configurar Grato pela dica. Vou pesquisar sobre o IsTool também No entanto, minha dúvida maior não é exatamente em relação a que ferramenta usar, mas sim gostaria de conhecer o modo como vocês estruturaram a instalação. Por exemplo: A instalação do sistema deve instalar também o FireBird, ou deve "chamar" a instalação do FireBird ? Ou é melhor deixar um link para que o usuário baixe a instalação "avulsa" do FireBird ? E quanto ao FireBird embarcado ? Alguém usa ? Neste caso, como vocês procedem se o usuário resolve passar a usar o sistema em rede ? Também gostaria de saber sobre o melhor modo de enviar um banco de dados vazio. Finalmente, pela experiência de vocês, um usuário comum (não da área de Informática) consegue instalar adequadamente o FireBird, ou é necessário acompanhá-lo ao telefone, por exemplo ? Grato pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como distribuir um sistema feito em Delphi, que utiliza o FireBird como base de dados
Pessoal: Peço licença para colocar algumas perguntas relacionadas com a distribuição/instalação de um sistema, que pretendo vender através de em um site (ainda a ser montado). Na empresa em que eu trabalhava, eu e meus colegas é que Ãamos diretamente ao cliente e fazÃamos a instalação para ele, em toda a sua rede, e por isso não tenho experiência quanto a vender um sistema pela Internet. Estou terminando um sistema feito em Delphi 7 (sete), que utiliza base de dados FireBird 2.1 (utilizo DBExpress, com driver do InterBase). Obs.: à um sistema relativamente simples, para ser usado em modo monousuário ou em rede. Não faz uso de nenhum recurso especial, não exige conexão com a Internet para funcionar. Gostaria de saber das pessoas que trabalham de forma semelhante à que citei acima como é que fazem para distribuir o sistema (supondo que eu venha a criar um site de onde os clientes possam baixar a instalação). Eis as principais dúvidas: a) Vocês criaram a instalação do FB e do aplicativo como uma única instalação, ou como duas instalações separadas ? b) à preferÃvel eu ter uma instalador apenas para meu sistema, e nas instruções de instalação orientar ao usuário que rode antes o instalador do FB ? c) à possÃvel eu criar um instalador (no Inno Setup, por exemplo) que detecte se o FB está ou não instalado no computador do usuário, e que chame a instalação do FB automaticamente, se necessário ? d) Vocês incluem um banco de dados vazio nas suas instalações, ou chamam alguma rotina (script ?) que se comunica com o FB e cria o banco de dados na hora da instalação ? Podem enviar um exemplo ? e) Estou pensando em enviar o FB embarcado, como default, pois imagino que um usuário que não seja da área de Informática possa ter alguma dificuldade em instalar o FireBird. Assim, tudo o que meu instalador precisaria fazer seria copiar os executável do sistema, o BD vazio, etc. para uma pasta e criar um Ãcone no desktop. Caso o usuário queira usar o sistema em rede, então eu deixaria instruções (no meu site - que estou pensando em criar) para uma instalação em rede - que alertaria ao usuário que alguém da área de Informática deveria fazer a instalação. Alguém já pensou em algo assim ? O que acham disso ? Enfim, agradeço muito se me derem algumas orientações quanto a este assunto. Muito obrigado pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Artigo comentando sobre o Delphi
Artigo (em inglês) sobre o Delphi: http://www.itjoblog.co.uk/2008/08/delphi-a-secret-weapon-for-win.html Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como esconder o botão Salvar do Preview do RvSystem ?
Pessoal: Para gerar relatórios, utilizo o componente RvSystem, versão 6.0.2. Perguntas: 1) Há um modo de ocultar o botão "Open another report" que aparece no Preview do RvSystem ? (já procurei nas propriedades, e não encontrei nada referente a isso) 2) Há um modo de eu traduzir para o português os termos que aparecem no Preview ? Por exemplo: Page...of... move to last page, etc. Muito obrigado pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Erro do DBExpress, depois de migrar do FB 1.5 para o FB 2.1
Pessoal: Tenho um sistema feito em Delphi 7 (SETE), que rodava bem com o FireBird 1.5, acessando com o DBExpress e driver InterBase Migrei para o FireBird 2.1, e agora está aparecendo o seguinte problema: a) Ao fazer algum SELECT que não tenha a cláusula WHERE (porque todos os dados da tabela são necessários naquela rotina), aparece o seguinte erro: SQL Error: Error mapping failed b) Descobri, por tentativa e erro, que se eu incluir a cláusula WHERE no comando, funciona bem: SELECT * FROM TBFERIADOS WHERE DATFERIADO IS NOT NULL (neste caso, o campo DATFERIADO é chave, e por isso nunca é nulo - o que faz o comando trazer todos os dados) c) Isso acontece com qualquer SELECT onde não exista a cláusula WHERE (são vários, espalhados pelo sistema, pois há vários processos que utilizam TODOS os registros da tabela - geralmente são tabelas pequenas ou com dados temporários, por isso não tenho problema com performance em trazer todos os registros) Pergunta: - Gostaria de saber se alguém já passou por este problema, usando DBExpress do Delphi 7 (SETE) e se há alguma outra solução, além de eu ter de forçar a presença da cláusula WHERE em todos os comandos onde hoje ela não existe. Eu digo "forçar" porque, como no exemplo acima, ela seria dispensável (tanto que, com o FireBird 1.5, esse problema não existia). Grato pela atenção de todos Paulo [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Delphi 7, DBEXpress e FireBird 2.1
Pessoal: - Utilizo Delphi 7 (7 mesmo e não 2007), com FireBird 1.5 e DBEXpress (com driver do InterBase) - Tive que formatar meu micro, e antes de reinstalar o FireBird 1.5, estou pensando em migrar para a versão 2.1 Pergunta: O driver DBExpress nativo do Delphi 7 (SETE) é compatível com o FireBird 2.1 ? Obs.: Sei que muitos preferem o ZEOS, mas não posso migrar o sistema neste momento; tenho de continuar usando o DBExpress mesmo. Muito obrigado pela atenção de todos. Paulo [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Agradeimento...Arquivo texto separado com TAB
Agradeço a colaboração do Moacir e José Luiz, as duas opçoes resolveram meu probema. obrigado Paulo
Re: [delphi-br] porta serial
VBA_EXCELENCIA UDIA escreveu: > Boa noite a todos! > Eum prazewr participar, mais estoiu alguma dificulade em encontrar um codigo > nme adapte > E preciso de um codigo para LER DADOS NO SERIAL > Alguem tem um. > > __ > Fale com seus amigos de graça com o novo Yahoo! Messenger > http://br.messenger.yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > > > Procure pelo componente ComPort no Google, é muito bom. Paulo ___ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/
[delphi-br] Habilitar e desabilitar triggers no banco Firebird via Delphi
Bom dia Utilizo banco Firebird 1.53 e gostaria de saber dos amigos que utilizam Delphi e Firebird, se existe alguma forma de habilitar e desabilitar uma determinada trigger via Delphi. obrigado Paulo Lucas ___ Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o Yahoo! Respostas ! http://br.answers.yahoo.com/
Re: [delphi-br] VERIFICADOR CNPJ
Régis, eu uso assim, talvez tenha coisa melhor. Paulo function TForm_PRINCIPAL.CPF(num: string): boolean; var n1,n2,n3,n4,n5,n6,n7,n8,n9: integer; d1,d2: integer; digitado, calculado: string; Confere:boolean; begin Confere:=True; Try n1:=StrToInt(num[1]) Except Confere:=False end; Try n2:=StrToInt(num[2]) Except Confere:=False end; Try n3:=StrToInt(num[3]) Except Confere:=False end; Try n4:=StrToInt(num[4]) Except Confere:=False end; Try n5:=StrToInt(num[5]) Except Confere:=False end; Try n6:=StrToInt(num[6]) Except Confere:=False end; Try n7:=StrToInt(num[7]) Except Confere:=False end; Try n8:=StrToInt(num[8]) Except Confere:=False end; Try n9:=StrToInt(num[9]) Except Confere:=False end; If Confere=True then begin 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[10]+num[11]; If calculado=digitado then CPF:=True Else CPF:=False; end Else CPF:=False; end; e para CNPJ function TForm_PRINCIPAL.CGC(num: string): boolean; var n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12: integer; d1,d2: integer; digitado, calculado: string; Confere:boolean; begin Confere:=True; Try n1:=StrToInt(num[1]) Except Confere:=False end; Try n2:=StrToInt(num[2]) Except Confere:=False end; Try n3:=StrToInt(num[3]) Except Confere:=False end; Try n4:=StrToInt(num[4]) Except Confere:=False end; Try n5:=StrToInt(num[5]) Except Confere:=False end; Try n6:=StrToInt(num[6]) Except Confere:=False end; Try n7:=StrToInt(num[7]) Except Confere:=False end; Try n8:=StrToInt(num[8]) Except Confere:=False end; Try n9:=StrToInt(num[9]) Except Confere:=False end; Try n10:=StrToInt(num[10]) Except Confere:=False end; Try n11:=StrToInt(num[11]) Except Confere:=False end; Try n12:=StrToInt(num[12]) Except Confere:=False end; If Confere=True then begin d1:=n12*2+n11*3+n10*4+n9*5+n8*6+n7*7+n6*8+n5*9+n4*2+n3*3+n2*4+n1*5; d1:=11-(d1 mod 11); if d1>=10 then d1:=0; d2:=d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6; 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 CGC:=true Else CGC:=false; end Else CGC:=False; end; ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/
[delphi-br] Off Topic
Bom dia Me desculpem pelo Off Topic, mas alguem da lista perguntou sobre um programa para envio e recebimento de mensagens pela rede local, favor entrar em contato em PVT que posso solucionar seu problema. obrigado Paulo ___ O Yahoo! está de cara nova. Venha conferir! http://br.yahoo.com -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Sobre Impressão de Notas Fiscais
hideraldo_barbosa escreveu: > Pessoal, bom dia > > Seguinte, eu tenho um problema que gostaria de compartilhar com todos, > ja tentei Impressão grafica e até via DOS (TXT) para achar uma > solução, talvez tecnicamente eu desconheça algo e queria alguns > palpites. > TEnho um cliente que na emissão das notas fiscais ele imprime diversos > formulários para um UNICO NUMERO DE NF, ou seja 2 a 3 ou mais devido > ao numero de itens. Preciso imprimir em caracter 8 ou condensado > (Caracter) para poder caber certas mensagens. Com isto gera muitos > desalinhamentos no decorrer da impressão. E eu gostaria de fazer esta > impressão em modo grafico mesmo e não Caracter. > > Diante de um caso destes qual o melhor gerador de Relatórios e como eu > utilizo...alguém teria algum exemplo ou algo assim que possa me ajudar. > > No mais desculpem o tamanho da mensagem > Abraços > > Hilderaldo Barbosa > > > > > > > > > Meu amigo, eu utilizo o Rdprint da www.deltress.com.br para impressão de NF, Boletos e Duplicatas. Impressão matricial, e funciona perfeitamente, de uma olhada no Demo que existe na página deles. Vale cada centavo que foi pago. Paulo ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Duvidas SQL
Era isso mesmo, funcionou perfeitamente. muito obrigado Paulo ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Duvidas SQL
boa tarde estou executando um comando SQL, mas não estou conseguindo resolver o meu problema, alguem poderia me dar uma ajuda ? SELECT A.CODIGO, A.QTD, A.PUNIT, A.OPERACAO, B.NOME FROM VENDAS A, PRODUTOS B WHERE B.CODIGO = A.CODIGO AND A.CODIGO IN (SELECT CODIGO FROM PRODUTOS WHERE COD_F = :CODF está me retornando os seguintes registros: codigo qtd punit operacao nome 3007 10 2,50 venda batata doce 3006 05 1,50 vendaarroz 3007 12 2,50 venda batata doce 3009 03 1,29 venda feijao 3007 10 2,50 venda batata doce até ae tudo certo, mas agora eu gostaria de montar outro SQL que me retornasse os registros assim, somando os codigo que forem iguais 3007 32 2,50 venda batata doce 3006 05 1,50 vendaarroz 3009 03 1,29 venda feijao alguem saberia me esclarecer como faze-lo ? obrigado Paulo [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Duvidas em SQL
boa tarde estou executando um comando SQL, mas não estou conseguindo resolver o meu problema, alguem poderia me dar uma ajuda ? SELECT A.CODIGO, A.QTD, A.PUNIT, A.OPERACAO, B.NOME FROM VENDAS A, PRODUTOS B WHERE B.CODIGO = A.CODIGO AND A.CODIGO IN (SELECT CODIGO FROM PRODUTOS WHERE COD_F = :CODF está me retornando os seguintes registros: codigo qtd punit operacao nome 3007 10 2,50 venda batata doce 3006 05 1,50 vendaarroz 3007 12 2,50 venda batata doce 3009 03 1,29 venda feijao 3007 10 2,50 venda batata doce até ae tudo certo, mas agora eu gostaria de montar outro SQL que me retornasse os registros assim, somando os codigo que forem iguais 3007 32 2,50 venda batata doce 3006 05 1,50 vendaarroz 3009 03 1,29 venda feijao alguem saberia me esclarecer como faze-lo ? obrigado Paulo [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Duvidas SQL
boa tarde estou executando um comando SQL, mas não estou conseguindo resolver o meu problema, alguem poderia me dar uma ajuda ? SELECT A.CODIGO, A.QTD, A.PUNIT, A.OPERACAO, B.NOME FROM VENDAS A, PRODUTOS B WHERE B.CODIGO = A.CODIGO AND A.CODIGO IN (SELECT CODIGO FROM PRODUTOS WHERE COD_F = :CODF está me retornando os seguintes registros: codigo qtd punit operacao nome 3007 10 2,50 venda batata doce 3006 05 1,50 vendaarroz 3007 12 2,50 venda batata doce 3009 03 1,29 venda feijao 3007 10 2,50 venda batata doce até ae tudo certo, mas agora eu gostaria de montar outro SQL que me retornasse os registros assim, somando os codigo que forem iguais 3007 32 2,50 venda batata doce 3006 05 1,50 vendaarroz 3009 03 1,29 venda feijao alguem saberia me esclarecer como faze-lo ? obrigado Paulo ___ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Impressão lenta
boa tarde a todos relatorio feito pelo quickreport, depois que o computador foi atualizado com o Service Pack 2 do XP ficou muito lento o computador. Antes da atualização ficava lento mas dava pra usar o micro normalmente, agora para até o ponteiro do mouse, enquanto não termina o relatório impossível usar o micro. Alguem teria alguma idéia do que se pode fazer ? Obrigado Paulo [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] OFF TOPIC QuickReport
Bom dia Gostaria de efetuar algumas alterações no preview do QuickReport. Por exemplo, mudar alguns botoes, e até mesmo retirar alguns. Quando abro o Qrpprev.pas, dá erro, dizendo que não achou a classe TQRPreview. obrigado Paulo [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Impressão em LX 300
Allan, eu utilizo o rdprint www.deltress.com.br e funciona muito bem, mas me parece que existe um componente free chamado vdoprint se não me engano, de uma olhada na net. Acredito que resolve seu problema. Paulo - Original Message - From: "Allan" <[EMAIL PROTECTED]> To: "brDelphi - BR" Sent: Friday, June 16, 2006 7:35 PM Subject: [delphi-br] Impressão em LX 300 Prezados, estou, a pedido de um cliente, imprimindo orçamentos em uma bobina duas vias com 80mm de largura, ocorre que está imprimindo tudo certinho, mas logo após a impressão, a impressora empurra a bobina uns 30cm a mais em branco pra fora, tentei fazer de tudo um pouco, configurações de papel, modo de impressão entre outras, e nada de resolver o problema.Será que alguém já passou por isso e possa me ajudar? Obrigado desde já. DEUS É PAI. []'s Allan msn [EMAIL PROTECTED] Skype allan_gabriel Conheça o grupo OPEN PDV, acesse: http://br.groups.yahoo.com/group/OpenPDV [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > Links do Yahoo! Grupos ___ Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! http://br.mobile.yahoo.com/mailalertas/ -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html