Jump to content
Fivewin Brasil

siscat

Membros
  • Posts

    1,842
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by siscat

  1. pessoal, bom dia como faço para apresentar uma imagem .EMF usando a classe TMetaFile..?? pelo manual do FW isso é possivel... más em meus testes eu não consegui... vejam o trexho de codigo abaixo: #include 'fivewin.ch' Function Metafile() Local oWnd Local oMeta1 Local cFile := 'e:\orionh.804\piloto\system\transaction\a.emf' // este nao funciona //Local cFile := 'e:\orionh.804\piloto\system\transaction\b.wmf' // este funciona DEFINE WINDOW oWnd FROM 1, 1 TO 20, 70 TITLE "A Window" ; VERTICAL SCROLL ; HORIZONTAL SCROLL oMeta1 := TMetaFile():New( 0, 0, 0, 0,; cFile,; oWnd,; CLR_BLACK,; CLR_WHITE ) //,; oCoors1 := TRect():New(5,5,600,800) oMeta1:SetCoors(oCoors1) SysRefresh() ACTIVATE WINDOW oWnd MAXIMIZED Return id=code>id=code>se alguem tiver alguma ideia, por favor... obrigado []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  2. pessoal, bom dia como faço para apresentar uma imagem .EMF usando a classe TMetaFile..?? pelo manual do FW isso é possivel... más em meus testes eu não consegui... vejam o trexho de codigo abaixo: #include 'fivewin.ch' Function Metafile() Local oWnd Local oMeta1 Local cFile := 'e:\orionh.804\piloto\system\transaction\a.emf' // este nao funciona //Local cFile := 'e:\orionh.804\piloto\system\transaction\b.wmf' // este funciona DEFINE WINDOW oWnd FROM 1, 1 TO 20, 70 TITLE "A Window" ; VERTICAL SCROLL ; HORIZONTAL SCROLL oMeta1 := TMetaFile():New( 0, 0, 0, 0,; cFile,; oWnd,; CLR_BLACK,; CLR_WHITE ) //,; oCoors1 := TRect():New(5,5,600,800) oMeta1:SetCoors(oCoors1) SysRefresh() ACTIVATE WINDOW oWnd MAXIMIZED Return id=code>id=code>se alguem tiver alguma ideia, por favor... obrigado []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  3. parabens Jose Carlos... a voce e a todos que participaram tanto como organizadores quanto como participantes. Mais uma vêz foi um sucesso e apesar de eu não ter ido estou acompanhando as mensagens e cheguei a conclusão do ótimo nivel que vocês estão alcançando. Mais uma vêz parabens a todos! []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  4. Luiz, bom dia esperimente forçar um oBrw:Refresh() ou um oBrw:Gotop() []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  5. Yury, eu deixei de fazer bloqueio de registros desde quando comecei a trabalhar com a SQLRDD. A única coisa que eu faço é executar COMMIT após cada atualização de registros no banco... com isso eu garanto que meus dados serão gravados corretamente sempre que o usuário confirmar uma "tela" de dados.. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  6. complementando o que o Vailtom disse... se voce necessita ediatar os dados retornados o melhor seria voce trazer os mesmo para um array, processar este array (incluido, excluido ou alterando) o que for necessário e depois efetuando a gravação dos dados editados de volta ao banco de dados... é um processo um tanto que complicado e trabalhoso... más seria uma forma... a outra seria voce usar o dbUseArea() para abrir o alias, assim voce pode trata-lo como um DBF normal... podendo utilizar todos os comandos e funcoes da RDD.. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  7. Quicussi, boa tarde com relação ao CR+LF voce precisa enviar sim no final de cada linha... caso contrario os sistemas dos bancos não reconhecem. Isto está bem claro nos manuais de todos os bancos. o que eu te aconselho a observar é se existem caracteres especiais (acima do ASC 128) incluido os caracteres acentuados (que os bancos não aceitam)... qq coisa gera um arquivo ai e me envia por email que dou uma olhada aqui pra voce. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  8. isso nao me preocupa... a Microsoft já está nesse mercado a muito tempo.. isso não é novidade! o Dynamics é uma evolução do "falecido" Solomos que a MS tentou lançar no mercado e foi um fracasso total. fazer um ERP não é só colocar um monte de programador pra escrever codigo... tem varias coisas que tem que ser levadas em conta... uma delas (senão a amis importante) é a questão tributária do Brasil... não é qualquer empresa que chega aqui e consegue colocar uma solução ERP no mercado... nossa tributação é um caos pra esse pessoal de fora.. vejam o exemplo do SAP.. que só entra em empresas multinacionais peloa fato delas terem que efetuar a apresentação de seus resultados com as regras tributárias de seus paises origem. deixa ele virem... chegar é facil, más ganhar o mercado é outra coisa!!! []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio
  9. citação:Apesar de ter aberto estas classes que mostrastes, e não ter concordado contigo, como dei ´muro´, kreo ke tens razão. id=quote>id=quote>João, dá uma olhadela no fonte tWindow (window.prg)... lá voce vai encontrar isto aqui: CLASS tWindow ... METHOD Refresh( lErase ) INLINE InvalidateRect( ::hWnd,; If( lErase != nil, lErase, .t. ) ) id=code>id=code>esta é a declaração do Method Refresh() vou mudar a ordem de apresentação pra ficar melhor pra visualizar... tWindow ----|-- | +-> tControl ----|--- | +-> tListBox +-> tSay +-> tGet +-> tComboBox +-> tDialog etc... id=code>id=code>todas as classes visuais são descendentes de tWindow e com isso herdam as caracteristicas de tWindow. parece complicado más depois que vc entende fica bem simples... e quando vc compreende voce vê o potencial imenso que este conceito de programação tem. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Server id=green>FWH for xHarbour + SQL + SQLRDD + xDevStudio Editado por - siscat on 17/11/2007 10:49:26
  10. citação:Brother , voce não intendeu a questão... explicar .. *Meu PRG cria tabela com DBcreate() use tabela shared via "SQLRDD" // aconsigo abrir normal ___________________________________________________________ *Criar tabela no front e depois abrir no meu prg use tabela shared via "SQLRDD" // da erro , tabela não existe obs1:deve ser como o brother falou em uma posta a cima... Obs2: Quanto a o problema de bagunça no browse consegui junto a um camarada meu resolver o problema com duas funções da SQLRDD , sr_deleteds(.f.) sr_dbrefresh() Finalizo minhas duvidas aqui.... id=quote>id=quote>Naruto, eu entendi perfeitamente sua dúvida e respondi da forma mais clara possivel!! citação:Naruto, bom dia --> sql front com comandos SQL voce pode acessar qualquer table do banco de dados... --> dbCreate agora se estiver usando o dbUseArea, dbSkip, ou qualquer outra funcao de RDD voce só pode usar sobre tables criadas pela SQLRDD ... isso por causa dos controles internos que são necessários pela SQLRDD... ok id=quote>id=quote>[]s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Server id=green>FWH for xHarbour + SQL + SQLRDD + xDevStudio
  11. citação:Marllon, se me permite pegar carona no tópico. Isto que voce mencionou de se usar comandos create para tabelas, é só com SQLRDD ??, ou é genérico. Explico: Uso a SQLLIB do Vailtom, e crio minhas tabelas com dbCreate(), e acesso minhas tabelas com SqlFront 2.5 e 3.2, e outros mais, e não notei nada de diferente aos meus olhos de leigo no assunto. id=quote>id=quote>sim Sergio... vale para todos os RDD SQL... []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Server id=green>FWH for xHarbour + SQL + SQLRDD + xDevStudio
  12. citação:REFRESH(), É UM COMANDO, SUBSTITUIU O CLEAR SCREEN(CLS). SÓ QUE ELE É LOCALIZADO, OU SEJA PARA PROGRAMAÇÃO ORIENTADA A OBJETO, ENTÃO LIMPA-SE(REFRESCA-SE) O OBJETO EM FOCO. id=quote>id=quote>desculpe João... más sua informação está equivocada!! []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Server id=green>FWH for xHarbour + SQL + SQLRDD + xDevStudio
  13. Viol, boa tarde... bom, pela sua pergunta e acredito que voce não esteja muito familiarizado com programação OOP (orientada a objeto) correto...? bem, neste caso eu te sugiro ler alguma literatura sobre programação orientada a objeto, existem muitos livros a esse respeito, desde os mais simples aos mais complexos.. e tambem existe muita materia na propria internet... até porque a OOP não é caracteristica exclusiva do FW, más sim um conceito adotado em varias linguagens de programação.! esse tipo de leitura seria de suma importancia para voce começar a entender o que faz o method Refresh() funcionar na Listbox mesmo não estando declarado implicitamente na classe... só pra esclarecer esta sua duvida... isto é uma caracteristica da OOP que se chama HERANÇA... ou seja uma classe "herda" de uma outra suas caracteristicas... que no caso da Listbox sua extrutura é a seguinte... tListBox ----|-- | tControl ----|--- | tWindow ----|-- |--> aqui é declarado o Method Refresh() id=code>id=code>que por HERANÇA é valido na tControl e por conseguinte na tListBox... []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com SigLCS Sistema Integrado de Gestão App Siscat Serverid=green> FWH for xHarbour + SQL + SQLRDD + xDevStudio Editado por - siscat on 16/11/2007 15:18:05
  14. Naruto, bom dia com comandos SQL voce pode acessar qualquer table do banco de dados... agora se estiver usando o dbUseArea, dbSkik, ou qualquer outra funcao de RDD voce só pode usar sobre tables criadas pela SQLRDD ... isso por causa dos controles internos que são necessários pela SQLRDD... ok []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho! Editado por - siscat on 15/11/2007 09:18:49
  15. Fabio, bom dia o Rossine matou a charada... o problema é no LoadLib32("CHRON32.DLL") ... falha minha.. eu não havia reparado que vc usa o Clipper... com este voce tem que usar LoadLibrary("CHRON32.DLL") pois o Clipper é 16 bits faz isso que o erro: "Error Code : 0 Loading 0" não vai ocorrer mais... Quando voce migrar para xHarbour, ai sim voce vai utilizar o LoadLib32. testei aqui e funcionou... Outra coisa.. esse erro quie voce disse que está ocorrendo de imprimir uma linha cheia de CCCCCCCC.. isso é configuração da porta serial... velocidade, paridade, stopbits... a impressora Chronos o default dela é 9600,8,N,1 []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho! Editado por - siscat on 15/11/2007 09:14:22
  16. citação:Mas antes , pode me explicar sobre o campo Sr_recno se ele ficar na função sempre igual a 10 , não seria amesma coisa de dizer , SEMPRE APAGUE O REGISTRO 10 ??? id=quote>id=quote>exatamente, más o que eu escrevi acima foi somente um exemplo de uso... o que voce pode fazer é passar uma variavel com o registro que voce quer excluir... nRecno := Recno() oSql:Exec( "DELETE FROM V01001 WHERE SR_RECNO = " + Str(nRecno,10) ) []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  17. Marcelo, bom dia ainda não consegui nada a respeito!! []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  18. Fabio, bom dia não funcionou. após algumas tentativas eu resolvi deixar de lado pois tinha algumas coisas mais prioritárias. Voce teve algum sucesso?? []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  19. pessoal, vamos ter mais atenção nas leituras... nosso amigo disse por mais de uma vez que usa a SQLRDD e nao a SQLLIB... Naruto, seguinte... voce deve estar com algum outro problema ai que não tem nada a ver com o SQLRDD..!! ... o fato de excluir utilizado DELETE ou dbDelete() não gera nenhum problema de "bagunçar" os banco de dados... eu utilizo a SQLRDD a um tempão sempre desta forma e não tenho nenhum tipo de problema. isto aqui: If dbrLock() DELETE // ou dbDelete() dbrUnLock() EndIf id=code>id=code>funciona tão bem quanto isto aqui: oSql := SR_GetConnection() // para executar esta funcao voce precisa já estar conectado ao banco de dados // isto aqui exclui fisicamente o registro oSql:Exec( "DELETE FROM V01001 WHERE SR_RECNO = 10" ) // isto aqui marca para exclusao //oSql:Exec( "UPDATE V01001 SET SR_DELETED = 'T' WHERE SR_RECNO = 10" ) id=code>id=code>[]s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho! Editado por - siscat on 13/11/2007 13:15:06
  20. procure estas referencias no manual da SQLRDD... oSql := SR_GetConnection() nRet := oSql:Exec( "SELECT * FROM V01001 WHERE V01_ESTADO = 'RS'" AND SR_DELETED = '') id=code>id=code>isto deve resolver teu problema... []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  21. Marcelo, bom dia olha só, fiz uns testes aqui no meu MySQL 5 e comigo funcionou bem... sem erro... segue o teste que eu fiz: -- criacao da table 1 CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; -- criacao da table 2 com chave extrangeira apontada para table 1 CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id), CONSTRAINT `FORE_1` FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB; -- aqui consegui incluir uma nova coluna na table 2 (normal) ALTER TABLE child ADD parent_nome Char(20) AFTER parent_id -- aqui, de acordo com voce, deveria dar erro... más consegui incluir uma nova coluna na table 2 ALTER TABLE parent ADD parent_nome Char(20) AFTER id drop table parent -- isto aqui sim, gera erro 150 pois nao posso excluir a table 1 se ela estiver relacionada (FOREIGN KEY) com outra table... neste caso eu tenho que desfazer o "link" entre elas para executar o DROP... isto pode ser feito com o proprio ALTER TABLE... segue sintaxe para o MySQL 5 ALTER TABLE child DROP FOREIGN KEY FORE_1 executo a alteracao na table 1 e depois refaço e "link" ALTER TABLE child ADD CONSTRAINT `FORE_1` FOREIGN KEY (parent_id) REFERENCES parent(id) espero que ajude... []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  22. é isso ai Sergio... nossa raça (programadores) não se entregam com facilidade!!!.. abraço e boa melhora. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  23. nunca... mas nunca mesmo se deve excluir uma table SQL sem ser peo algum software de gerenciamento de SQL ou usando o comando DROP TABLE lembrem-se... SQL não é DBF!!! []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  24. Leonardo.. só isso nao resolve o problema do Soares, visto que o DBGOBOTTOM funciona com base na ordem de apresentação selecionada automaticamente pelo DB .. o que não garante que o último registro seja a informação que o nosso colega necessita. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho!
  25. Soares, boa tarde.. veja se isso te resolve... Select codigo, sum(valor) as "Total", max(valor) as "Maior", min(valor) as "Menor", ( select valor from f03001 f03c where f03c.sr_recno = (select max(sr_recno) from f03001 f03b where f03a.codigo = f03b.codigo) ) as "Ultimo" FROM f03001 f03a group by codigo id=code>id=code>estou usando uma table minha... mas a lógica pra voce seria a mesma... desculpe, postei esta resposta ontem (31/10) no final da tarde na correria e nem deu tempo de explicar... Então vai hoje (1/11) uma breve explicação da lógica que eu utilizei... observe o que voce tem 3 selects encadeados... a necessidade disto se dá pelo fato de voce querer saber o ultimo lancamento para o codigo... não existe na sintaxe SQL nada que te retorne a ultima ocorrencia de determinada "coisa" .. portanto necessitamos resolver o problema com um select... bom, o primeiro select traz as colunas que voce necessita, eu inclui a coluna CODIGO, más ela não é obrigatoria... para retornar o VALOR poderiamos fazer um select simples como abaixo: Select codigo, sum(valor) as "Total", max(valor) as "Maior", min(valor) as "Menor", valor ... id=code>id=code>más isto nos traria um VALOR qualquer... do começo, meio ou fim do group by que estamos fazendo... más o que voce quer é a ultima ocorrencia para o CODIGO correto.. então fazemos um ajuste solicitando do banco de dados o ultimo registro (SR_RECNO) incluido no banco para aquele CODIGO... (select max(sr_recno) from f03001 f03b where f03a.codigo = f03b.codigo) id=code>id=code>o resultado deste select será o maior numero de SR_RECNO para o CODIGO ... más ainda não resolveria nosso problema, pois precisamos do VALOR... para resolver isso, criamos uma coluna virtual no select mais externo de forma a trazer o valor do SR_RECNO que recuperamos na select mais interna... ( select valor from f03001 f03c where f03c.sr_recno = (select max(sr_recno) from f03001 f03b where f03a.codigo = f03b.codigo) ) as "Ultimo" id=code>id=code> com isso temos como resultado o CODIGO, com seu valor MINIMO, MAXIMO e Ultimo ... ps: observe que este mecanismo irá funcionar de forma adequada somente se voce incluir os dados no banco de forma linear... imagine que estando no dia 1/11/07 voce faça lançamentos retroativos no seu banco de dados.. por exemplo, do dia 31/10/07 .. estes serão recpnhecidos pelo banco de dados como ULTIMA ocorrencia e serão eles que serão retornados por MAX(SR_RECNO) ... ok Outra coisa é que esta sintaxe funciona bem em MySQL ... más se voce tiver de usa-la em outro banco irá ter problemas... más acredito que bastarão alguns ajustes. []s.. Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Sistema Integrado de Gestão - SIGLCS FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho! Editado por - siscat on 01/11/2007 08:59:33
×
×
  • Create New...