Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. o erro é que existe uma entrada duplicada para a sua chave primaria que é o numero 1 ... voce pode procura-lo e excluir esse registro ------------------- no entanto, se a definição do seu campo chave for um tipo INT mude para um tipo BIGINT e nesse caso use o comando ALTER TABLE teste MODIFY id INT UNSIGNED AUTO_INCREMENT NOT NULL; ------------------------- voce tambem pode, desmarcar o campo chave e fazer a reparação do banco de dados mysqlcheck --auto-repair = true -uroot -p <dbname> --------------------------- A entrada de chave duplicada acontece quando você atingir o limite superior do campo de incremento automático pode ser resolvido com ALTER TABLE AUTO_INCREMENT my_freshly_deleted_table = 1; Para ver o próximo Autoindex: SHOW TABLE STATUS LIKE 'my_freshly_deleted_table'; ---------------------------------- voce tambem pode destruir o campo chave e depois reconstrui-lo novamente ALTER TABLE table_name DROP INDEX index_name --------------------------------------- abraço
  2. isso está errado .... se inicio e final são strings, porque voce esta convertendo data para string na select, se já é uma string se eu me engano ...tambem vai ocorrer um erro de: Tipos incompativeis inicio : string [60]; final : string [60]; Query1.SQL.Text := 'SELECT Data, Num_veiculo, Placa, Km FROM bdgeral '+ 'WHERE Data >= DateToStr(INICIO) and data <= DateToStr(FINAL) ORDER BY Data'; veja um exemplo simples: maneira correta procedure TForm1.Button1Click(Sender: TObject); begin Query1.Active := FALSE; Query1.SQL.Clear; Query1.SQL.Append('SELECT * FROM Moviment WHERE DTENTREGA >= :INI AND DTENTREGA <= :FIM ORDER BY DTENTREGA '); Query1.Params[0].AsDate := DateTimePicker1.Date; Query1.Params[1].AsDate := DateTimePicker2.Date; Query1.Active := TRUE; end; agora jogando dentro de uma variavel procedure TForm1.Button1Click(Sender: TObject); var inicio, final :TDate; begin inicio := DateTimePicker1.Date; final := DateTimePicker2.Date; Query1.Active := FALSE; Query1.SQL.Clear; Query1.SQL.Append('SELECT * FROM Moviment WHERE DTENTREGA >= :INI AND DTENTREGA <= :FIM ORDER BY DTENTREGA '); Query1.Params[0].AsDate := inicio; Query1.Params[1].AsDate := final; Query1.Active := TRUE; end; então podemos dizer que no seu caso ficaria assim inicio : TDate; final : TDate; end; if (PorData.Checked=true) then begin If TDateTimePicker2.Date < TDateTimePicker1.Date Then begin ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!'); TDateTimePicker2.Date := TDateTimePicker1.Date; end Else begin Inicio := DateTimePicker1.Date; Final := DateTimePicker2.Date; edit1.text:= datetostr(inicio); edit2.Text:= datetostr(final); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'SELECT Data, Num_veiculo, Placa, Km FROM bdgeral '+ 'WHERE Data >= :INI and data <= :FIN ORDER BY Data'; Query1.Params[0].AsDate := inicio; Query1.Params[1].AsDate := final; Query1.Prepare; Query1.Open; DBGrid1.SetFocus ======================================================= OBS: voce esta colocando assuntos diferentes no mesmo post ... quando forem assuntos diferentes coloque em outros posts... ok ? abraço
  3. basta colocar o componente openDialog1 no seu Form abraço
  4. ok, vou dar uma pesquisada... mas de qualquer forma, vou te passar projetos prontos para as impressoras Diebold e Bematech ... de uma olhada, talvez ajude a resolver o problema de outra maneira http://sourceforge.net/p/printerplugin/svn/9/ abraço
  5. tente isso WriteLn(Impressora,Pchar(comandolidoini)+buscaitem.FieldByName('nome').AsString); caso não funcione, vou dar uma verificada e te dou uma resposta depois...
  6. Name WriteLn Procedure Syntax procedure WriteLn(Expr:Width:Precision; ...); procedure WriteLn(var F: TextFile; Expr:Width:Precision; ...); Description WriteLn is just like the Write procedure, except it prints a line ending after printing its arguments. A line ending is a carriage return followed by a line feed (#13#10). With no arguments, or only a TextFile argument, WriteLn prints only a line ending. ----------------------------------------------------------------------------------------------------------------------------------------- pelo que deu para entender, se voce colocar o comando diretamente, ele executa corretamente e se colocar em uma variavel não ... é isso ?
  7. são impressoras fiscais ? ou lazer ? ou jato de tinta, ou termal ?
  8. só para tirar a duvida .... essas impressoras são matriciais ou não ?
  9. o seu primeiro exemplo sera colocado como string e não comandos de impressão teria que ser como no segundo exemplo me passe alguns comandos ( 2º exemplo ) e farei alguns testes
  10. coloque como está os comandos dentro do arquivo ini
  11. Ler Arquivos .INI exemplos no link https://www.google.com.br/webhp?sourceid=chrome-instant&rlz=1C1RLNS_pt-BRBR672BR672&ion=1&espv=2&ie=UTF-8#q=ler+arquivo+ini+delphi Este é um exemplo de como imprimir direto para impressora: procedure TForm1.Button1Click(Sender: TObject); var F : TextFile; i : integer; begin AssignFile(F,'LPT1'); Rewrite(F); i := 0; Writeln(F,'Teste de impressao - Linha 0'); Writeln(F,'Teste de impressao - Linha 1'); Writeln(F,#27#15+'Teste de Impressão - Linha 2'); Writeln(F,'Teste de impressao - Linha 3'); Writeln(F,#27#18+'Teste de Impressão - Linha 4'); Writeln(F,'Teste de impressao - Linha 5'); Writeln(F,#12); // Ejeta a página CloseFile(F); end; OBS: faça um loop para ler um arquivo ini e vá colocando os comandos lidos, dentro dos comandos Writeln abraço
  12. mas essa é a dura realidade .... infelizmente, quando voce procura um emprego, eles querem que voce tenha experiencia, entretanto, não dão a voce, as condições para que voce possa ter essa experiência. escolha uma area que te agrade, e seja bom no que faz... isso ajuda muito abraço
  13. amigo, hoje em dia, contratar um estagiário por um período (até 1 ano ) é jogo para a empresa, pois deixa de cumprir com uma série de normas legais .... o que acaba sendo um lucro nas costas dos estagiários. como voce mesmo disse, voce estava ensinando o seu supervisor, quando deveria ser o contrário .. o supervisor ensinando voce. é facil saber se a empresa quer realmente contratá-lo no final do estágio ... observe o tipo de serviço que eles te mandam fazer... se for vários tipos de serviços, então estão te tratando somente como office boy se for um tipo de serviço especifico. então a contratação, voce depender da sua competência ao final do estágio. tudo o que voce puder aprender vai ajudar a abrir as portas ... abraço
  14. Funções de desenvolvimento de aplicações para Android e iOS estão disponíveis no Delphi versões Enterprise e superiores, no Delphi versão Professional com pacote add-on mobile opcional, e em todas as versões. Versão Trial 30 dias https://www.embarcadero.com/br/products/delphi/downloads OBS: voce pode converter seus programas x86 para IOS e Androide ( com algumas modificações no programa original ) abraço
  15. deixando em branco, ele pega o diretório padrão C:\ HTML.SaveToFile('\index.htm'); ou HTML.SaveToFile('C:\index.htm'); o erro é que voce não tem autorização para salvar no seu Diretório C:\ poderia me informar um método para salvar o html gerado no mesmo diretório da aplicação? procedure TForm1.Button1Click(Sender: TObject); var HTML : TStringList; dirAtual : string; begin HTML := TStringList.Create; HTML.Add('<html>'); HTML.Add('<head>'); HTML.Add(' <title>' + Edit1.Text + '</title>'); HTML.Add('</head>'); HTML.Add('</html>'); HTML.Add('<body>'); HTML.Add('<h1>' + Edit2.Text + '</h1><br />'); HTML.Add('<center>' + Memo1.Lines.Text + '</center>'); HTML.Add('</body>'); dirAtual := GetCurrentDir(); HTML.SaveToFile(dirAtual + '\index.htm'); HTML.Free; end; abraço
  16. testei o seu código é está funcionando se voce estiver usando o windows 7 ou 8 talvez voce precise dar autorização para gravar no drive C: obs: crie uma pasta no drive C: e tente salvar o arquivo nessa pasta abraço
  17. HTML.SaveToFile('C:\index.htm'); abraço
  18. essa é a ordem de gravação dos registros para que fique sempre na ordem cronológica, basta colocar no select um comando ORDER BY ( ordenar por ) exemplo usando SQL select * from tabela order by nomecampo select * from produtos order by venda exemplo usando Ordenação crescente e decrescente no ClientDataSet http://pt.stackoverflow.com/questions/6075/ordena%C3%A7%C3%A3o-crescente-e-decrecente-no-clientdataset outra maneira http://www.linhadecodigo.com.br/artigo/714/delphi-realizando-consultas_pesquisas-iniciante.aspx abraço
  19. exemplo: begin Query1.Active := FALSE; Query1.SQL.Clear; Query1.SQL.Append('SELECT * FROM Produtos WHERE VAL_UNIT = '+''''+EDIT1.TEXT+''''); Query1.Active := TRUE; end; no seu caso, faça dessa forma dm.q_produtos.SQL.add('select * from tbl_produtos where estoque <= '+''''+ Edit2.Text +''''); abraço
  20. Queria saber se tem como eu restaurar meu projeto ate onde eu fiz a modificação.. uma boa pratica é salvar o seu projeto todo em um arquivo ZIP, no final do dia de trabalho, ou de tempos em tempos com isso voce sempre vai ter uma cópia do seu projeto que voce sabe que esta funcionando perfeitamente entretanto, o delphi pode nos livrar de dores de cabeça como essa. cada vez que voce modifica algum form de seu projeto, ele cria um backup desse form antes da modificação exemplo UCadAlu.~dpp UCadAlu.~dfm UCadAlu.~pas então basta deletar os arquivos .dfm e .pas e renomear novamente os .~dfm e .~pas tirando o ~ recompile novamente o projeto, e ele vai voltar ao que era, antes da modificação abraço
  21. Nota : seria mesmo apenas os códigos para que, ao clicar nos botôes ( estando o cursor dentro da dbgrid ) ---- esses simulassem seta para baixo ou para cima ---- a setas para os lados esquerdo e direito eu posso usar do próprio teclado virtual do tablet ---- porém se for o caso eu coloco 4 botões, creio que ficará até mais prático. Lista de Virtual Keys VK_LBUTTON botão esquerdo do mouse VK_RBUTTON Botão direito do mouse VK_CANCEL Control + Break VK_MBUTTON botão do meio VK_BACK tecla Backspace VK_TAB tecla Tab VK_CLEAR tecla Clear VK_RETURN tecla Enter VK_SHIFT tecla Shift VK_CONTROL tecla Ctrl VK_MENU tecla Alt VK_PAUSE tecla Pause Caps Lock VK_CAPITAL chave VK_KANA Usado com IME VK_HANGUL Usado com IME VK_JUNJA Usado com IME VK_FINAL Usado com IME VK_HANJA Usado com IME VK_KANJI Usado com IME VK_CONVERT Usado com IME VK_NONCONVERT Usado com IME VK_ACCEPT Usado com IME VK_MODECHANGE Usado com IME VK_ESCAPE tecla Esc. VK_SPACE barra de espaço VK_PRIOR tecla Page Up VK_NEXT tecla Page Down VK_END tecla End VK_HOME tecla Home VK_LEFT esquerda Seta VK_UP tecla Seta para cima VK_RIGHT Seta para Direita VK_DOWN Seta para baixo VK_SELECT Selecione chave VK_PRINT tecla Print (teclado específico) VK_EXECUTE Execute-chave VK_SNAPSHOT tecla Print Screen VK_INSERT tecla Insert VK_DELETE tecla Delete VK_HELP Ajuda chave Exemplo em Delphi unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, Buttons; type TForm1 = class(TForm) SpeedButton1: TSpeedButton; DataSource1: TDataSource; DBGrid1: TDBGrid; Query1: TQuery; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.SpeedButton1Click(Sender: TObject); var KeyState: TKeyboardState; begin // SIMULAR PRESSIONAMENTO DA TECLA PARA CIMA GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_UP ] = 0) then Keybd_Event(VK_UP , 1, KEYEVENTF_EXTENDEDKEY or 0, 0) else Keybd_Event(VK_UP , 0, KEYEVENTF_EXTENDEDKEY or 0, 0); end; procedure TForm1.SpeedButton2Click(Sender: TObject); var KeyState: TKeyboardState; begin // SIMULAR PRESSIONAMENTO DA TECLA PARA BAIXO GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_DOWN ] = 0) then Keybd_Event(VK_DOWN , 1, KEYEVENTF_EXTENDEDKEY or 0, 0) else Keybd_Event(VK_DOWN , 0, KEYEVENTF_EXTENDEDKEY or 0, 0); end; procedure TForm1.SpeedButton3Click(Sender: TObject); var KeyState: TKeyboardState; begin // SIMULAR PRESSIONAMENTO DA TECLA PARA DIREITA GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_RIGHT ] = 0) then Keybd_Event(VK_RIGHT , 1, KEYEVENTF_EXTENDEDKEY or 0, 0) else Keybd_Event(VK_RIGHT , 0, KEYEVENTF_EXTENDEDKEY or 0, 0); end; procedure TForm1.SpeedButton4Click(Sender: TObject); var KeyState: TKeyboardState; begin // SIMULAR PRESSIONAMENTO DA TECLA PARA ESQUERDA GetKeyboardState(KeyState); // testar o estado do teclado if(KeyState[VK_LEFT ] = 0) then Keybd_Event(VK_LEFT , 1, KEYEVENTF_EXTENDEDKEY or 0, 0) else Keybd_Event(VK_LEFT , 0, KEYEVENTF_EXTENDEDKEY or 0, 0); end; end. OBS: o cursor estando dentro do DBGrid, voce poderá movimentá-lo pelos botões abraço
  22. somar campo total com o mesmo campo total não tem lógica mas somar... os campos Sub-Total em um Total-Geral, ai sim tem lógica se no sumary voce colocar somente Sum(<frxDBDataset1."Total"> ) voce vai ter a soma total dos campos dos registros abraço
  23. olha, por esse preço, não só da para implantar essa função e muitas outras, como dá pra fazer um sistema novo...rs abraço
  24. tenho um sistema desenvolvido em delphi que trabalha com a web, coloquei uma função que verifica a conexão com a internet a cada segundo ... no caso de falha da internet ou da pagina, uma mensagem de aviso é retornada ao usuario, pois um erro ocorreu. o sistema pode apresentar o erro na tela, ou o erro pode ser interceptado pelo sistema e retornar uma mensagem do programador para o usuario. em resumo: detectar quando ocorre um erro por perda de conexão, não é dificil ... só depende do conhecimento e experiencia do programador. abraço
  25. coloquei a seguinte função [(Sum(<frxDBDataset1."Total">,MasterData1))] mais ele não soma ele apenas junta os valores se voce quer somar campos diferentes, seria isso: exemplo SUM(CDS_Opcoes.TOT_CORR) + SUM(CDS_Opcoes.SALDO) lembrando: um sumary vai retornar a soma total, da soma individual do grupo abraço
×
×
  • Criar Novo...