meu professor, você conseguiu resolver o problema dos textos/imagens que sobrepõem aí no menu e textos?JoséQuintas escreveu:Fiz um teste agora, mas é um controle meu que não existe na GTWVG oficial.
Ainda não coloquei recurso no controle de redimensionar imagem, mas fica igual outras LIBs.
Parece piada, mas é sério: até criei controles de uso em tela Windows, pra GTWVG, mas eu mesmo não uso.
Meu modo de trabalho
Moderador: Moderadores
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Meu modo de trabalho
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
A saída seria usar menu Windows, e deixar a imagem fixa de fundo, igual outras LIBs fazem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Faltou dizer:
Não precisa, e NEM DEVEM copiar daqui.
É bom tentar comentar com os desenvolvedores das LIBs, porque eles devem fazer os arquivos mais adequados, os meus são só para meus testes, e podem estar errados.
Mesmo assim, estão todos aqui.
https://github.com/JoseQuintas/AllGui
Os fontes das LIBs são originais, mas os HBP e HBC não vieram com as LIBs, então é só pra teste mesmo.
Pra produção é melhor usar os arquivos originais, porque são eles que vão ser usados para suporte.
Mas fica aí a dica, pra cobrar dos autores de suas LIBs.
E podem criar pra fivewin também, no mesmo estilo.
E numa IDE, bastaria a IDE ter arquivos iguais.....
Não precisa, e NEM DEVEM copiar daqui.
É bom tentar comentar com os desenvolvedores das LIBs, porque eles devem fazer os arquivos mais adequados, os meus são só para meus testes, e podem estar errados.
Mesmo assim, estão todos aqui.
https://github.com/JoseQuintas/AllGui
Os fontes das LIBs são originais, mas os HBP e HBC não vieram com as LIBs, então é só pra teste mesmo.
Pra produção é melhor usar os arquivos originais, porque são eles que vão ser usados para suporte.
Mas fica aí a dica, pra cobrar dos autores de suas LIBs.
E podem criar pra fivewin também, no mesmo estilo.
E numa IDE, bastaria a IDE ter arquivos iguais.....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Meu modo de trabalho
prezado professor, por incrível que pareça, estava num outro tópico onde eu tenho "umas muitas dúvidas" e alguém havia me dado uma pasta (eu perguntando sobre HMG) e que eu não achava... até que o MSDN disse que era referente à HMG-E.JoséQuintas escreveu:Mas fica aí a dica, pra cobrar dos autores de suas LIBs.
Se o Sr. que é "ninja" está com este montão de "trecos/troços", imagina "euzinho" que estou ainda de fraldas...
Eu, disse no outro tópico, que deveria haver uma união e homogenia entre as LIBs, pois são tantas: HMG, HMGE, OOHG, HWGUI, WVW, VWG, etc... e o que a gente aprende numa - apesar de tudo ser HARBOUR, não é do mesmo jeito na outra...
deveria ser padronizado como são o ABNT e ABNT2, ou ASC e ASCII.
#ficaAdica
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Meu modo de trabalho
como pós imagem em modo console?
viewtopic.php?f=43&t=16842&hilit=wvw&start=45
download/file.php?id=2901&mode=view
viewtopic.php?f=43&t=16842&hilit=wvw&start=45
download/file.php?id=2901&mode=view
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
DrawImage(), e depois o texto por cima.juniorcamilo escreveu:como pós imagem em modo console?
Mas a imagem some se mover tela, minimizar, etc... por isso só usei em teste.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Vixe.....
No Harbour 3.4 o Viktor transferiu a função, que é da API Windows pra hbwin.
Ta aí uma coisa interessante:
No 3.2, a função está na GTWVG, mas era pura API Windows
No 3.4, o Viktor padronizou e moveu a função pra HBWIN, que contém rotinas do Windows.
Diferença?
É API Windows... nem precisa GTWVG.
IGUAL EM QUALQUER LIB GRÁFICA.
Tão entendendo o que digo sobre padronizar LIBs?
O que era GTWVG... que era API Windows... foi para o lugar certo.
Igual todas as LIBs poderiam fazer, e ficaria muito mais padronizado !!!!
Nem precisa da GTWVG !!!HB_FUNC_TRANSLATE( WVG_DRAWTEXT , WAPI_DRAWTEXT )
No Harbour 3.4 o Viktor transferiu a função, que é da API Windows pra hbwin.
Ta aí uma coisa interessante:
No 3.2, a função está na GTWVG, mas era pura API Windows
No 3.4, o Viktor padronizou e moveu a função pra HBWIN, que contém rotinas do Windows.
Diferença?
É API Windows... nem precisa GTWVG.
IGUAL EM QUALQUER LIB GRÁFICA.
Tão entendendo o que digo sobre padronizar LIBs?
O que era GTWVG... que era API Windows... foi para o lugar certo.
Igual todas as LIBs poderiam fazer, e ficaria muito mais padronizado !!!!
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
/* mappings to hbwin */
HB_FUNC_TRANSLATE( WVG_APPENDMENU , WAPI_APPENDMENU )
HB_FUNC_TRANSLATE( WVG_BRINGWINDOWTOTOP , WAPI_BRINGWINDOWTOTOP )
HB_FUNC_TRANSLATE( WVG_CALLWINDOWPROC , WAPI_CALLWINDOWPROC )
HB_FUNC_TRANSLATE( WVG_CHECKDLGBUTTON , WAPI_CHECKDLGBUTTON )
HB_FUNC_TRANSLATE( WVG_CHECKMENUITEM , WAPI_CHECKMENUITEM )
HB_FUNC_TRANSLATE( WVG_CHECKRADIOBUTTON , WAPI_CHECKRADIOBUTTON )
HB_FUNC_TRANSLATE( WVG_CLIENTTOSCREEN , WAPI_CLIENTTOSCREEN )
HB_FUNC_TRANSLATE( WVG_CREATEMENU , WAPI_CREATEMENU )
HB_FUNC_TRANSLATE( WVG_CREATEPOPUPMENU , WAPI_CREATEPOPUPMENU )
HB_FUNC_TRANSLATE( WVG_CREATEWINDOWEX , WAPI_CREATEWINDOWEX )
HB_FUNC_TRANSLATE( WVG_DEFWINDOWPROC , WAPI_DEFWINDOWPROC )
HB_FUNC_TRANSLATE( WVG_DELETEMENU , WAPI_DELETEMENU )
HB_FUNC_TRANSLATE( WVG_DESTROYMENU , WAPI_DESTROYMENU )
HB_FUNC_TRANSLATE( WVG_DESTROYWINDOW , WAPI_DESTROYWINDOW )
HB_FUNC_TRANSLATE( WVG_DRAWMENUBAR , WAPI_DRAWMENUBAR )
HB_FUNC_TRANSLATE( WVG_DRAWTEXT , WAPI_DRAWTEXT )
HB_FUNC_TRANSLATE( WVG_ENABLEMENUITEM , WAPI_ENABLEMENUITEM )
HB_FUNC_TRANSLATE( WVG_ENABLEWINDOW , WAPI_ENABLEWINDOW )
HB_FUNC_TRANSLATE( WVG_FILLRECT , WAPI_FILLRECT )
HB_FUNC_TRANSLATE( WVG_GETDESKTOPWINDOW , WAPI_GETDESKTOPWINDOW )
HB_FUNC_TRANSLATE( WVG_GETDIALOGBASEUNITS , WAPI_GETDIALOGBASEUNITS )
HB_FUNC_TRANSLATE( WVG_GETDLGITEM , WAPI_GETDLGITEM )
HB_FUNC_TRANSLATE( WVG_GETDLGITEMTEXT , WAPI_GETDLGITEMTEXT )
HB_FUNC_TRANSLATE( WVG_GETFOCUS , WAPI_GETFOCUS )
HB_FUNC_TRANSLATE( WVG_GETSTOCKOBJECT , WAPI_GETSTOCKOBJECT )
HB_FUNC_TRANSLATE( WVG_HINSTANCE , WIN_HINSTANCE )
HB_FUNC_TRANSLATE( WVG_HIWORD , WAPI_HIWORD )
HB_FUNC_TRANSLATE( WVG_INSERTMENU , WAPI_INSERTMENU )
HB_FUNC_TRANSLATE( WVG_ISDLGBUTTONCHECKED , WAPI_ISDLGBUTTONCHECKED )
HB_FUNC_TRANSLATE( WVG_ISICONIC , WAPI_ISICONIC )
HB_FUNC_TRANSLATE( WVG_ISWINDOW , WAPI_ISWINDOW )
HB_FUNC_TRANSLATE( WVG_ISZOOMED , WAPI_ISZOOMED )
HB_FUNC_TRANSLATE( WVG_LOWORD , WAPI_LOWORD )
HB_FUNC_TRANSLATE( WVG_MAKELPARAM , WAPI_MAKELPARAM )
HB_FUNC_TRANSLATE( WVG_MESSAGEBOX , WAPI_MESSAGEBOX )
HB_FUNC_TRANSLATE( WVG_MOVEWINDOW , WAPI_MOVEWINDOW )
HB_FUNC_TRANSLATE( WVG_POSTMESSAGE , WAPI_POSTMESSAGE )
HB_FUNC_TRANSLATE( WVG_SCREENTOCLIENT , WAPI_SCREENTOCLIENT )
HB_FUNC_TRANSLATE( WVG_SENDDLGITEMMESSAGE , WAPI_SENDDLGITEMMESSAGE )
HB_FUNC_TRANSLATE( WVG_SENDMESSAGE , WAPI_SENDMESSAGE )
HB_FUNC_TRANSLATE( WVG_SENDMESSAGETEXT , WAPI_SENDMESSAGE )
HB_FUNC_TRANSLATE( WVG_SETBKCOLOR , WAPI_SETBKCOLOR )
HB_FUNC_TRANSLATE( WVG_SETBKMODE , WAPI_SETBKMODE )
HB_FUNC_TRANSLATE( WVG_SETDLGITEMTEXT , WAPI_SETDLGITEMTEXT )
HB_FUNC_TRANSLATE( WVG_SETFOCUS , WAPI_SETFOCUS )
HB_FUNC_TRANSLATE( WVG_SETFOREGROUNDWINDOW , WAPI_BRINGWINDOWTOTOP )
HB_FUNC_TRANSLATE( WVG_SETPARENT , WAPI_SETPARENT )
HB_FUNC_TRANSLATE( WVG_SETTEXTCOLOR , WAPI_SETTEXTCOLOR )
HB_FUNC_TRANSLATE( WVG_SETWINDOWLONG , WAPI_SETWINDOWLONGPTR )
HB_FUNC_TRANSLATE( WVG_SETWINDOWTEXT , WAPI_SETWINDOWTEXT )
HB_FUNC_TRANSLATE( WVG_SHOWWINDOW , WAPI_SHOWWINDOW )
HB_FUNC_TRANSLATE( WVG_SLEEP , WAPI_SLEEP )
HB_FUNC_TRANSLATE( WVG_TREEVIEW_SELECTITEM , WAPI_TREEVIEW_SELECTITEM )
HB_FUNC_TRANSLATE( WVG_TREEVIEW_SETBKCOLOR , WAPI_TREEVIEW_SETBKCOLOR )
HB_FUNC_TRANSLATE( WVG_TREEVIEW_SETLINECOLOR , WAPI_TREEVIEW_SETLINECOLOR )
HB_FUNC_TRANSLATE( WVG_TREEVIEW_SETTEXTCOLOR , WAPI_TREEVIEW_SETTEXTCOLOR )
HB_FUNC_TRANSLATE( WVG_UPDATEWINDOW , WAPI_UPDATEWINDOW )
HB_FUNC_TRANSLATE( WVT__MAKEDLGTEMPLATE , __WAPI_DLGTEMPLATE_RAW_NEW )
#ifdef HB_LEGACY_LEVEL5
/* local synonyms (deprecated) */
HB_FUNC_TRANSLATE( WVT_APPENDMENU , WAPI_APPENDMENU )
HB_FUNC_TRANSLATE( WVT_CREATEMENU , WAPI_CREATEMENU )
HB_FUNC_TRANSLATE( WVT_CREATEPOPUPMENU , WAPI_CREATEPOPUPMENU )
HB_FUNC_TRANSLATE( WVT_DELETEMENU , WAPI_DELETEMENU )
HB_FUNC_TRANSLATE( WVT_DESTROYMENU , WAPI_DESTROYMENU )
HB_FUNC_TRANSLATE( WVT_ENABLEMENUITEM , WAPI_ENABLEMENUITEM )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Em parte...hazael escreveu:você pode (sempre pôde) fazer isso
O Viktor padronizou mais, movendo e padronizando as chamadas à API Windows.
Talvez no 3.2 não existam todas essas funções, e precise mais código fonte pra fazer a mesma coisa.
Foi nessa padronização que acabei tendo o recurso do Windows de redimensionar imagem, que faz parte do Windows !!!
Acho que no 3.2 ainda não tem isso, já que não atualizaram a GTWVG com as atualizações do 3.4, e nem a hbwin.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Mas voltando à pergunta sobre letra maior na GTWVG
Provavelmente a próxima vai ser: e como uso isso?
Se é função da API Windows.... tem manual detalhado na Microsoft, não precisa manual no Harbour, e nem na GTWVG !!!
Provavelmente a próxima vai ser: e como uso isso?
Se é função da API Windows.... tem manual detalhado na Microsoft, não precisa manual no Harbour, e nem na GTWVG !!!
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Continuando....
Em posts anteriores, de 2016, eu havia comentado de acabar com DBFs, mas parei de mexer por alguns anos.
Faltaram telas em GTWVG.
Agora usando ícones multiresolução, que ficam bons em qualquer resolução de monitor.
E o EXE... que tinha cerca de 2MB na época das postagens, agora tem 6.5MB por conta das imagens.
Em posts anteriores, de 2016, eu havia comentado de acabar com DBFs, mas parei de mexer por alguns anos.
Faltaram telas em GTWVG.
Agora usando ícones multiresolução, que ficam bons em qualquer resolução de monitor.
E o EXE... que tinha cerca de 2MB na época das postagens, agora tem 6.5MB por conta das imagens.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Então....
Na continuação da migração pra MySQL, comecei a mexer em outras coisas ao mesmo tempo...
Então anulei tudo, e fazer uma coisa de cada vez.
Uma coisa é o seguinte: tenho um único cadastro pra clientes/fornecedores e transportadoras.
clientes/fornecedores usa cdtipo="1", e transportadoras usa cdtipo="3".
Vou separar as transportadoras e acabar com esse cdtipo.
Primeiro passo: confirmar índices
Já tenho índices com e sem o cdtipo, e já faço muito uso desses índices sem cdtipo, isso vai facilitar.
Só lembrando:
usando NTX, temos lá trocentos arquivos de índice
SET INDEX TO ntx1, ntx2, ntx3, ntx4, ntx5, ntx6, ntx7, ntx8, ntx9, ntx10, ntx11
usando CDX, é um único arquivo, e os índices são internos
SET INDEX TO jpcadas
Além disso, ao invés de SET ORDER TO 1, SET ORDER TO 2, etc...., podemos usar o nome: OrdSetFocus( "numlan" )
Com isso, vou poder apagar os índices jpcadas1 a 4 tranquilamente (após retirar o uso nos fontes, lógico).
Se usasse SET ORDER por número... isso não seria possível.
Primeiro rotina de criar/atualizar estrutura do arquivo:
Depois rotina de reindexar:
Pronto, na próxima atualização do sistema, arquivo será criado automaticamente.
Na continuação da migração pra MySQL, comecei a mexer em outras coisas ao mesmo tempo...
Então anulei tudo, e fazer uma coisa de cada vez.
Uma coisa é o seguinte: tenho um único cadastro pra clientes/fornecedores e transportadoras.
clientes/fornecedores usa cdtipo="1", e transportadoras usa cdtipo="3".
Vou separar as transportadoras e acabar com esse cdtipo.
Primeiro passo: confirmar índices
Código: Selecionar todos
IndexDbf( "jpcadas", "Cadastros (Cli/Forn/Transp)" )
IndexInd( "jpcadas1", "cdTipo + cdCodigo" )
IndexInd( "jpcadas2", "cdTipo + cdNome + cdCodigo" )
IndexInd( "jpcadas3", "cdTipo + cdCnpj + cdDivisao + cdCodigo" )
IndexInd( "jpcadas4", "cdTipo + cdApelido + cdCodigo" )
IndexInd( "telefone", "cdTipo + cdTelefone + cdCodigo" )
IndexInd( "numlan", "cdCodigo" )
IndexInd( "nome", "cdNome + cdCodigo" )
IndexInd( "cnpj", "cdCnpj+cdCodigo" )
Só lembrando:
usando NTX, temos lá trocentos arquivos de índice
SET INDEX TO ntx1, ntx2, ntx3, ntx4, ntx5, ntx6, ntx7, ntx8, ntx9, ntx10, ntx11
usando CDX, é um único arquivo, e os índices são internos
SET INDEX TO jpcadas
Além disso, ao invés de SET ORDER TO 1, SET ORDER TO 2, etc...., podemos usar o nome: OrdSetFocus( "numlan" )
Com isso, vou poder apagar os índices jpcadas1 a 4 tranquilamente (após retirar o uso nos fontes, lógico).
Se usasse SET ORDER por número... isso não seria possível.
Primeiro rotina de criar/atualizar estrutura do arquivo:
Código: Selecionar todos
STATIC FUNCTION JPTRANSPCreateDbf()
LOCAL mStruOk := { ;
{ "TPCODIGO", "C", 6 }, ;
{ "TPNOME", "C", 50 }, ;
{ "TPAPELIDO", "C", 20 }, ;
{ "TPCNPJ", "C", 18 }, ;
{ "TPENDERECO", "C", 40 }, ;
{ "TPNUMERO", "C", 10 }, ;
{ "TPCOMPL", "C", 20 }, ;
{ "TPBAIRRO", "C", 20 }, ;
{ "TPCIDADE", "C", 21 }, ;
{ "TPUF", "C", 2 }, ;
{ "TPCEP", "C", 9 }, ;
{ "TPTELEFONE", "C", 30 }, ;
{ "TPINSEST", "C", 18 }, ;
{ "TPCONTATO", "C", 30 }, ;
{ "TPTELEF2", "C", 15 }, ;
{ "TPTELEF3", "C", 15 }, ;
{ "TPFAX", "C", 30 }, ;
{ "TPEMAIL", "C", 250 }, ;
{ "TPHOMEPAGE", "C", 100 }, ;
{ "TPOBS", "C", 100 }, ;
{ "TPSTATUS", "C", 6 }, ;
{ "TPINFINC", "C", 80 }, ;
{ "TPINFALT", "C", 80 } }
SayScroll( "JPTRANSP, verificando atualizações" )
IF ! ValidaStru( "jptransp", mStruOk )
MsgStop( "jptransp não disponível!" )
QUIT
ENDIF
RETURN NIL
Código: Selecionar todos
IndexDbf( "jptransp", "Transportadoras" )
IndexInd( "numlan", "tpCodigo" )
IndexInd( "nome", "tpNome + tpCodigo" )
IndexInd( "cnpj", "tpCnpj + tpCodigo" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
Agora a transferência.
Já tenho a rotina de atualização automática, então é só acrescentar mais essa.
E agora criar a Update1019() (19/10) fazendo a transferência de cdtipo="3" para o novo jptransp.
Na próxima vez que o cliente atualizar versão, terá um arquivo novo só com transportadoras.
Agora é alterar os fontes, para ao invés de usar jpcadas, passar a usar jptransp.
Neste ponto não posso liberar pra cliente, só quando terminar a alteração pra usar jptransp ao invés de jpcadas, senão a conversão vai ficar desatualizada.
Terminado isto, já posso liberar pra clientes.
Depois, mexer nos fontes pra eliminar de vez o campo cdtipo.
Começar eliminando o uso dos índices jpcadas1 a jpcadas4.
Primeiro eliminar as pesquisas por esses índices.
Nesta etapa, tanto faz se atualizar ou não nos clientes durante o processo.
Depois, ajustar os fontes de clientes/fornecedores pra não usarem o cdtipo, deixando a remoção definitiva por último.
Mesma coisa: vou poder atualizar nos clientes a qualquer momento.
Por último: eliminar de vez, mas....antes de eliminar o campo, preciso pegar as transportadoras, lembram? cdtipo="3"
Então, cdtipo só vai deixar de existir no arquivo depois, quando realmente não precisar mais.
Uso isto na fase intermediária:
Ou seja, defino até quando o campo vai existir.
Quem atualizar versão depois desta, após a transferência o campo vai ser eliminado.
Quando terminar por definitivo, altero aqui também:
Esse é o controle de versão de DBF.
Ao alterar o número de versão, obrigatoriamente o aplicativo faz backup de tudo.
Só depois do backup é que o aplicativo vai alterar estruturas, e transferir transportadoras.
Isso já venho usando desde a versão de 2002, desde o Clipper, que já mostrei neste post.
Apenas coloquei no aplicativo pra ele fazer automático, o que muito antigamente eu fazia manualmente.
É criar uma rotina que atualiza, e com o tempo vai melhorando, conforme as necessidades que forem aparecendo.
Já tenho a rotina de atualização automática, então é só acrescentar mais essa.
Código: Selecionar todos
// ze_update2019.prg
FUNCTION ze_Update2019()
IF AppVersaoDbfAnt() < 20191011; Update1011(); ENDIF
IF AppVersaoDbfAnt() < 20191019; Update1019(); ENDIF
RETURN NIL
Na próxima vez que o cliente atualizar versão, terá um arquivo novo só com transportadoras.
Agora é alterar os fontes, para ao invés de usar jpcadas, passar a usar jptransp.
Neste ponto não posso liberar pra cliente, só quando terminar a alteração pra usar jptransp ao invés de jpcadas, senão a conversão vai ficar desatualizada.
Terminado isto, já posso liberar pra clientes.
Depois, mexer nos fontes pra eliminar de vez o campo cdtipo.
Começar eliminando o uso dos índices jpcadas1 a jpcadas4.
Primeiro eliminar as pesquisas por esses índices.
Nesta etapa, tanto faz se atualizar ou não nos clientes durante o processo.
Depois, ajustar os fontes de clientes/fornecedores pra não usarem o cdtipo, deixando a remoção definitiva por último.
Mesma coisa: vou poder atualizar nos clientes a qualquer momento.
Por último: eliminar de vez, mas....antes de eliminar o campo, preciso pegar as transportadoras, lembram? cdtipo="3"
Então, cdtipo só vai deixar de existir no arquivo depois, quando realmente não precisar mais.
Uso isto na fase intermediária:
Código: Selecionar todos
IF AppVersaoDbfAnt() < 20191019
AAdd( mStruOk, { "CDTIPO", "C", 1 } )
ENDIF
Quem atualizar versão depois desta, após a transferência o campo vai ser eliminado.
Quando terminar por definitivo, altero aqui também:
Código: Selecionar todos
FUNCTION AppVersaoDbf()
RETURN 20191014
Ao alterar o número de versão, obrigatoriamente o aplicativo faz backup de tudo.
Só depois do backup é que o aplicativo vai alterar estruturas, e transferir transportadoras.
Isso já venho usando desde a versão de 2002, desde o Clipper, que já mostrei neste post.
Apenas coloquei no aplicativo pra ele fazer automático, o que muito antigamente eu fazia manualmente.
É criar uma rotina que atualiza, e com o tempo vai melhorando, conforme as necessidades que forem aparecendo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Meu modo de trabalho
A atualização... tudo rotina comum.
A checagem é precaução.
Não excluir é precaução.
Durante os testes, posso ficar convertendo toda hora.
Mas terminando as alterações, antes de instalar nos clientes, aí apago de vez.
Código: Selecionar todos
STATIC FUNCTION Update1019()
IF ! AbreArquivos( "jptransp", "jpcadas" )
QUIT
ENDIF
SELECT jpcadas
SET ORDER TO 0
GOTO TOP
DO WHILE ! Eof()
IF jpcadas->cdTipo != "3"
SKIP
LOOP
ENDIF
SELECT jptransp
SEEK jpcadas->cdCodigo
IF Eof()
RecAppend()
REPLACE jptransp->tpCodigo WITH jpcadas->cdCodigo, ;
ENDIF
RecLock()
REPLACE ;
jptransp->tpNome WITH jpcadas->cdNome, ;
jptransp->tpApelido WITH jpcadas->cdApelido ;
...
jptransp->tpInfAlt WITH jpcadas->cdInfAlt
SELECT jpcadas
//RecLock()
//DELETE
//RecUnlock()
SKIP
ENDDO
CLOSE DATABASES
RETURN NIL
Não excluir é precaução.
Durante os testes, posso ficar convertendo toda hora.
Mas terminando as alterações, antes de instalar nos clientes, aí apago de vez.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/