Clipper On Line • Ver Tópico - Rotinas de inclusão/alteração/deleção no GRID

Rotinas de inclusão/alteração/deleção no GRID

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Função de Alteração não funciona

Mensagempor Paulo_CPV » 09 Abr 2013 20:35

Boa noite!

Caro luiz os cálculos que eu faço são baseados que os meses só tenham 30 dias, mesmo no mês de fevereiro. Por acaso você tem uma solução para a meu problema?

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Função de Alteração não funciona

Mensagempor luiz antonio da silva » 09 Abr 2013 20:44

Boa Noite Paulo !

teste o código abaixo.

1) Para incluir basta um enter no campo data final
2) Para alterar, selecione o item do grid e clique em alterar
3) Para excluir basta duplo clique no item do grid.

veja se isso ajuda.

#include "minigui.ch"

func main()
public alterar:=0

set date brit
set century on
set epoch to 1960

DEFINE WINDOW form_1 AT 206 , 290 WIDTH 375 HEIGHT 460 main

     DEFINE FRAME Frame_1
            ROW    10
            COL    10
            WIDTH  161
            HEIGHT 50
            CAPTION "Data Inicial (dd/mm/aaaa)"
            OPAQUE .T.
     END FRAME 

     DEFINE TEXTBOX data_ini
            ROW    30
            COL    30
            WIDTH  120
            HEIGHT 24
            DATE .T.
            on enter form_1.data_fim.setfocus
     END TEXTBOX

     DEFINE FRAME Frame_2
            ROW    10
            COL    190
            WIDTH  161
            HEIGHT 50
            CAPTION "Data Final (dd/mm/aaaa)"
            OPAQUE .T.
     END FRAME 

     DEFINE TEXTBOX data_fim
            ROW    30
            COL    210
            WIDTH  120
            HEIGHT 24
            DATE .T.
            on enter calcula(form_1.data_ini.value,form_1.data_fim.value)
     END TEXTBOX

     DEFINE FRAME Frame_3
            ROW    70
            COL    10
            WIDTH  341
            HEIGHT 48
            CAPTION "Tempo Acumulado"
            OPAQUE .T.
     END FRAME 

     DEFINE LABEL acumulado
            ROW    90
            COL    20
            WIDTH  320
            HEIGHT 22
            VALUE ""
            FONTBOLD .T.
            CENTERALIGN .T.
     END LABEL 

     DEFINE GRID Grid_1
            ROW    130
            COL    10
            WIDTH  340
            HEIGHT 223
            ITEMS {}
            WIDTHS {95,95,50,50,50}
            HEADERS {'Dt ini','Dt final','Ano','Mes','Dia'}
            COLUMNCONTROLS { {'TEXTBOX','DATE'} , {'TEXTBOX','DATE'} , {'TEXTBOX','NUMERIC','999'} , {'TEXTBOX','NUMERIC','999'} , {'TEXTBOX','NUMERIC','999'} }
            JUSTIFY {BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER}
            on dblclick (FORM_1.GRID_1.DELETEITEM(FORM_1.GRID_1.VALUE),ACUMULAR())
     END GRID 

    DEFINE BUTTON bt_altera
           ROW    360
           COL    10
           WIDTH  100
           HEIGHT 28
           CAPTION "&Alterar"
           action alterar_dados()
     END BUTTON 

    DEFINE BUTTON bt_sair
           ROW    360
           COL    250
           WIDTH  100
           HEIGHT 28
           CAPTION "&Sair"
           action form_1.release
     END BUTTON 

END WINDOW

form_1.data_ini.setfocus
activate window form_1

retu

func calcula(dDataInicial,dDataFinal)
v_dia:=v_mes:=v_ano:=0
v_anof=YEAR(dDataFinal)
v_mesf=MONTH(dDataFinal)
v_diaf=DAY(dDataFinal)
v_anoi=YEAR(dDataInicial)
v_mesi=MONTH(dDataInicial)
v_diai=DAY(dDataInicial)
IF v_diaf < v_diai
  v_diaf+=30
  v_mesf-=1
ENDIF
v_dia=v_diaf - v_diai
IF v_mesf < v_mesi
  v_mesf+=12
  v_anof-=1
ENDIF
v_mes=v_mesf - v_mesi
v_ano=v_anof - v_anoi   
v_ret=''
IF v_ano>0
  v_ret=STRZERO(v_ano,2)+IF(v_ano=1,' ano',' anos')+IF(v_mes>0,IF(v_dia>0,',',' e '),IF(v_dia>0,' e ',''))
ENDIF
IF v_mes>0
  v_ret+=STRZERO(v_mes,2)+IF(v_mes=1,' mes ',' meses ')+IF(v_dia>0,'e ','')
ENDIF
IF v_dia>0
  v_ret+=STRZERO(v_dia,2)+IF(v_dia=1,' dia',' dias')
ENDIF

if alterar=1
   form_1.grid_1.cell(form_1.grid_1.value,1):=form_1.data_ini.value
   form_1.grid_1.cell(form_1.grid_1.value,2):=form_1.data_fim.value
   form_1.grid_1.cell(form_1.grid_1.value,3):=v_ano
   form_1.grid_1.cell(form_1.grid_1.value,4):=v_mes
   form_1.grid_1.cell(form_1.grid_1.value,5):=v_dia
else
   add item { form_1.data_ini.value, form_1.data_fim.value,v_ano,v_mes,v_dia} to grid_1 of form_1
endif

acumular()

alterar:=0

form_1.data_ini.value:=""
form_1.data_fim.value:=""
form_1.data_ini.setfocus
Return (v_ret)

retu

func alterar_dados()
alterar:=1
form_1.data_ini.value:=form_1.grid_1.cell(form_1.grid_1.value,1)
form_1.data_fim.value:=form_1.grid_1.cell(form_1.grid_1.value,2)
form_1.data_ini.setfocus
retu

func acumular()
_dia:=_mes:=_ano:=0
for x=1 to form_1.grid_1.itemcount
    _dia:=_dia+form_1.grid_1.cell(x,5)
    _mes:=_mes+form_1.grid_1.cell(x,4)
    _ano:=_ano+form_1.grid_1.cell(x,3)
   
    if _dia>30
       _dia:=0
       _mes:=_mes+1
    endif
   
    if _mes>12
       _mes:=0
       _ano:=_ano+1
    endif
next x

if _dia>1; f_dia:="dias"; else; f_dia:="dia"; endif
if _mes>1; f_mes:="meses"; else; f_mes:="mes"; endif
if _ano>1; f_ano:="anos"; else; f_ano:="ano"; endif

form_1.acumulado.value:=alltrim(str(int(_ano)))+" "+f_ano+", "+;
                        alltrim(str(int(_mes)))+" "+f_mes+", e "+;
                        alltrim(str(int(_dia)))+" "+f_dia
form_1.acumulado.refresh

form_1.grid_1.value:=form_1.grid_1.itemcount
retu


* Mude para hmg.ch...blz

Abraço.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Função de Alteração não funciona

Mensagempor Paulo_CPV » 09 Abr 2013 21:10

Luiz, muito obrigado pela sua ajuda. Funcionou muito bem e precisando eu estou por aqui.
[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Função de Alteração não funciona

Mensagempor luiz antonio da silva » 09 Abr 2013 21:12

Perdão por ter esquecido algo tão importante.

A rotina de cálculo entre datas citada acima, foi retirada aqui mesmo do forum.

http://www.pctoledo.com.br/forum/viewtopic.php?p=50979#p50979

post do nosso amigo Toledo.

Abraço.
Luiz.
Nota de Moderação:
Pablo César: URL editada. Uso de URL tag.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Função de Alteração não funciona

Mensagempor luiz antonio da silva » 10 Abr 2013 08:11

Olá Pssoal !

Analisando o código passado no post acima percebi um erro danado de grande na rotina de acumulo...rsrs
segue correção do mesmo


func acumular()
_dia:=_mes:=_ano:=0
for x=1 to form_1.grid_1.itemcount
  _dia:=_dia+form_1.grid_1.cell(x,5)
  _mes:=_mes+form_1.grid_1.cell(x,4)
  _ano:=_ano+form_1.grid_1.cell(x,3)
 
  while .t.
   if _dia>=30
      _dia:=_dia-30
      _mes:=_mes+1
   else
     exit
   endif
  enddo

  while .t.
   if _mes>=12
      _mes:=_mes-12
      _ano:=_ano+1
   else
      exit
   endif
  enddo

next x

if _dia>1; f_dia:="dias"; else; f_dia:="dia"; endif
if _mes>1; f_mes:="meses"; else; f_mes:="mes"; endif
if _ano>1; f_ano:="anos"; else; f_ano:="ano"; endif

form_1.acumulado.value:=alltrim(str(int(_ano)))+" "+f_ano+", "+;
            alltrim(str(int(_mes)))+" "+f_mes+", e "+;
            alltrim(str(int(_dia)))+" "+f_dia
form_1.acumulado.refresh

form_1.grid_1.value:=form_1.grid_1.itemcount
retu



Abraço.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Função de Alteração não funciona

Mensagempor Pablo César » 10 Abr 2013 14:12

Não é fácil entender o código de outros... principalmente quando a indentação não está no padrão. Eu levo mais tempo indentando do que entendo o próprio código rs

Graças aos códigos do Paulo e do Luiz, eis a minha contribuição:
#include "hmg.ch"

Function Main()
// Public alterar:=0

set date brit
set century on
// set epoch to 1960

DEFINE WINDOW form_1 AT 206 , 290 WIDTH 375 HEIGHT 460 main

     DEFINE FRAME Frame_1
            ROW    10
            COL    10
            WIDTH  161
            HEIGHT 50
            CAPTION "Data Inicial (dd/mm/aaaa)"
            OPAQUE .T.
     END FRAME 
     /*
     DEFINE TEXTBOX data_ini
            ROW    30
            COL    30
            WIDTH  120
            HEIGHT 24
            DATE .T.
            on enter form_1.data_fim.setfocus
     END TEXTBOX
    */
    DEFINE DATEPICKER data_ini
        ROW    30
        COL    30
        WIDTH  110
        HEIGHT 24
        VALUE CTOD(" / / ")
        FONTNAME "Arial"
        FONTSIZE 10
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .T.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER form_1.data_fim.setfocus
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        SHOWNONE .F.
        UPDOWN .F.
        RIGHTALIGN .T.
    END DATEPICKER

     DEFINE FRAME Frame_2
            ROW    10
            COL    190
            WIDTH  161
            HEIGHT 50
            CAPTION "Data Final (dd/mm/aaaa)"
            OPAQUE .T.
     END FRAME 
     /*
     DEFINE TEXTBOX data_fim
            ROW    30
            COL    210
            WIDTH  120
            HEIGHT 24
            DATE .T.
            on enter calcula(form_1.data_ini.value,form_1.data_fim.value)
     END TEXTBOX
    */
    DEFINE DATEPICKER data_fim
        ROW    30
        COL    210
        WIDTH  110
        HEIGHT 24
        VALUE CTOD(" / / ")
        FONTNAME "Arial"
        FONTSIZE 10
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .T.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONENTER Nil
        HELPID Nil
        TABSTOP .T.
        VISIBLE .T.
        SHOWNONE .F.
        UPDOWN .F.
        RIGHTALIGN .T.
    END DATEPICKER

     DEFINE FRAME Frame_3
            ROW    70
            COL    10
            WIDTH  341
            HEIGHT 48
            CAPTION "Tempo Acumulado"
            OPAQUE .T.
     END FRAME 

     DEFINE LABEL acumulado
            ROW    90
            COL    20
            WIDTH  320
            HEIGHT 22
            VALUE ""
            FONTBOLD .T.
            CENTERALIGN .T.
     END LABEL 

     DEFINE GRID Grid_1
            ROW    130
            COL    10
            WIDTH  340
            HEIGHT 223
            ITEMS {}
            WIDTHS {95,95,50,50,50}
            HEADERS {'Dt ini','Dt final','Ano','Mes','Dia'}
         ALLOWEDIT .T.
            COLUMNCONTROLS { {'TEXTBOX','DATE'} , {'TEXTBOX','DATE'} , {'TEXTBOX','NUMERIC','999'} , {'TEXTBOX','NUMERIC','999'} , {'TEXTBOX','NUMERIC','999'} }
            JUSTIFY {BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER,BROWSE_JTFY_CENTER}
         COLUMNWHEN  { { || .T. },{ || .T. },{ || .F. },{ || .F. },{ || .F. } }
         COLUMNVALID { { || Calcula(This.CellValue,form_1.grid_1.cell(form_1.grid_1.value,2),.f.) } , ;
                     { || Calcula(form_1.grid_1.cell(form_1.grid_1.value,1),This.CellValue,.f.) },;
                    { || Nil },;
                    { || Nil },;
                     { || Nil }  }
    END GRID 

    DEFINE BUTTON bt_inclui
           ROW    360
           COL    10
           WIDTH  100
           HEIGHT 28
           CAPTION "&Incluir"
           action calcula(form_1.data_ini.value,form_1.data_fim.value,.t.)
    END BUTTON 
   
   DEFINE BUTTON bt_exclui
           ROW    360
           COL    130
           WIDTH  100
           HEIGHT 28
           CAPTION "&Excluir"
           action (FORM_1.GRID_1.DELETEITEM(FORM_1.GRID_1.VALUE),ACUMULAR())
     END BUTTON 

    DEFINE BUTTON bt_sair
           ROW    360
           COL    250
           WIDTH  100
           HEIGHT 28
           CAPTION "&Sair"
           action form_1.release
     END BUTTON 

END WINDOW
form_1.data_ini.setfocus
activate window form_1
Return Nil

Function calcula(dDataInicial,dDataFinal,lAdd)
v_dia:=v_mes:=v_ano:=0
v_anof=YEAR(dDataFinal)
v_mesf=MONTH(dDataFinal)
v_diaf=DAY(dDataFinal)
v_anoi=YEAR(dDataInicial)
v_mesi=MONTH(dDataInicial)
v_diai=DAY(dDataInicial)
IF v_diaf < v_diai
  v_diaf+=30
  v_mesf-=1
ENDIF
v_dia=v_diaf - v_diai
IF v_mesf < v_mesi
  v_mesf+=12
  v_anof-=1
ENDIF
v_mes=v_mesf - v_mesi
v_ano=v_anof - v_anoi   
v_ret=''
IF v_ano>0
  v_ret=STRZERO(v_ano,2)+IF(v_ano=1,' ano',' anos')+IF(v_mes>0,IF(v_dia>0,',',' e '),IF(v_dia>0,' e ',''))
ENDIF
IF v_mes>0
  v_ret+=STRZERO(v_mes,2)+IF(v_mes=1,' mes ',' meses ')+IF(v_dia>0,'e ','')
ENDIF
IF v_dia>0
  v_ret+=STRZERO(v_dia,2)+IF(v_dia=1,' dia',' dias')
ENDIF

if lAdd
   add item { form_1.data_ini.value, form_1.data_fim.value,v_ano,v_mes,v_dia} to grid_1 of form_1
Else
   form_1.grid_1.cell(form_1.grid_1.value,1):=form_1.data_ini.value
   form_1.grid_1.cell(form_1.grid_1.value,2):=form_1.data_fim.value
   form_1.grid_1.cell(form_1.grid_1.value,3):=v_ano
   form_1.grid_1.cell(form_1.grid_1.value,4):=v_mes
   form_1.grid_1.cell(form_1.grid_1.value,5):=v_dia
endif

acumular()

//alterar:=0

form_1.data_ini.value:=CtoD("")
form_1.data_fim.value:=CtoD("")
form_1.data_ini.setfocus
// Return (v_ret)
Return .T.

Function alterar_dados()
// alterar:=1
form_1.data_ini.value:=form_1.grid_1.cell(form_1.grid_1.value,1)
form_1.data_fim.value:=form_1.grid_1.cell(form_1.grid_1.value,2)
form_1.data_ini.setfocus
Return Nil

Function acumular()
_dia:=_mes:=_ano:=0
for x=1 to form_1.grid_1.itemcount
  _dia:=_dia+form_1.grid_1.cell(x,5)
  _mes:=_mes+form_1.grid_1.cell(x,4)
  _ano:=_ano+form_1.grid_1.cell(x,3)
 
  while .t.
   if _dia>=30
      _dia:=_dia-30
      _mes:=_mes+1
   else
     exit
   endif
  enddo

  while .t.
   if _mes>=12
      _mes:=_mes-12
      _ano:=_ano+1
   else
      exit
   endif
  enddo

next x

if _dia>1; f_dia:="dias"; else; f_dia:="dia"; endif
if _mes>1; f_mes:="meses"; else; f_mes:="mes"; endif
if _ano>1; f_ano:="anos"; else; f_ano:="ano"; endif

form_1.acumulado.value:=alltrim(str(int(_ano)))+" "+f_ano+", "+;
            alltrim(str(int(_mes)))+" "+f_mes+", e "+;
            alltrim(str(int(_dia)))+" "+f_dia
form_1.acumulado.refresh

form_1.grid_1.value:=form_1.grid_1.itemcount
Return Nil
Ainda tinha um erro ao zerar o textbox. Sugiro o uso de DatePicker em lugar de TextBoxes, fica mais prático e tem melhor estética. Adicionei o botão de Adicionar e modifiquei o botão alterar para que exclua e o dobleclick do grid servirá para alterar. Acho que ficou mais intuitivo, espero que gostem !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Função de Alteração não funciona

Mensagempor Paulo_CPV » 11 Abr 2013 08:50

Bom dia!

Obrigado a todos que me ajudaram a resolver o meu problema, em especial ao Luiz e ao Pablo, muito obrigado!

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Alteração dados no Grid

Mensagempor Pablo César » 11 Abr 2013 10:27

Ok, Paulo fico contente que tenha servido o seu propósito. Custou mas saiu... bastou você postar o seu código. Viu como é ? Dessa forma é melhor e mais objetivo ajudar alguém...

Jairo Maia escreveu:Olá Paulo,

O problema é que você tem mais 2 tópicos além deste sobre o mesmo assunto, a saber:
Em 01/04/12 - Ajuda sobre rotina de alteração
Em 04/04/12 - Alteração dados na Grid


Neste último (04/04/12), você tentou as alterações sugeridas pelo colega Daniel? Se sim, também não funcionou?

Paulo_CPV escreveu:já fiz o teste com o que o Daniel me passou e também não deu certo. Estou fazendo de tudo, mas não funciona de geito nenhum.
Os tópicos foram juntados, mas por favor Paulo, não abra novos tópicos se o assunto for o mesmo.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotinas de inclusão/alteração/deleção no GRID

Mensagempor ROBERTO SÁVIO » 15 Jun 2014 17:01

Senhores
Estou aprendendo agora e só tenho dúvidas, não era para ser diferente.
Não vi nenhum exemplo de rotinas de alteração e exclusão de informações do grid que alteram o banco de dados.
Que horas isto acontece? No meu entender no momento que altero o grid tenho que replicar isto no banco, senão...
Abraços
Roberto Sávio
ROBERTO SÁVIO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 29
Data de registro: 29 Mai 2014 10:56
Cidade/Estado: CORONEL FABRICIANO/MG
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Rotinas de inclusão/alteração/deleção no GRID

Mensagempor Pablo César » 16 Jun 2014 10:57

Oi ROberto. Tudo depende do tipo do Grid que você irá escolher. Se você escolher o grid com opção a interagir diretamente no seu dbf, então não precisaria ter rotina para dar manutenção. Mas se você carregar os dados em forma de vetores, certamente você terá que repassar os dados obtidos para o seu bd. Lembrando que alteração de dados no Grid, funciona com double click ou enter. Existe uma opção pre-modelada para exibir os dados e alterar. Veja os exemplos de: C:\hmg.3.3.0\samples\Miscellaneous\EDIT\EDIT_1 e ...\EDIT_2
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotinas de inclusão/alteração/deleção no GRID

Mensagempor ROBERTO SÁVIO » 16 Jun 2014 17:31

Paulo César
Vamos ver se estou captando vossas mensagens corretamente.
Já vi em outras postagens, neste mesmo forum, alguém dizendo que o velho e bom objeto TBROWSEDB() do clipper/xharbour estaria sendo substituido pelo GRID, por diversos motivos.
No TBROWSEDB() eu consigo fazer tudo que preciso. Mostrar os registros do banco, navegar, pesquisar, alternar índices, editar no proprio browse ou não, incluir, excluir, abrir vários objetos relacionando as informações (mestreXdetalhe), etc, etc, etc. Todos os meus sistemas são baseados em transações deste tipo. Posso dizer que funcionam muito bem e com muito boa performance.
Sei que com a HMG estamos falando de outro tipo de programação, como já me disseram aqui no forum, mas porque eu desenvolveria uma transação utilizando o GRID?
Se não puder repercutir todas as modificações ocorridas no GRID para o banco de dados, no momento em que foi modificado, fica difícil achar uma aplicação para isto.
No exemplo em EDIT1, EDIT2 e no EDIT EXTENDED achei algo parecido com o TBROWSEDB(). No entando no EDIT1 há um PRG de 49 linhas que faz milagres.
Nos outros exemplos também. No PRG não mostra como aparece aquela tela muito bonita por sinal.
Como pode ser?
P.S.: Encontrei em C:\hmg.3.3.0\SAMPLES\Applications\AGENDA um bom exemplo da utilização do GRID com atualização simultânea do banco de dados. Com alguns incrementos acho que podemos ter uma boa aplicação para o objeto.

Abraços
Roberto Sávio
ROBERTO SÁVIO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 29
Data de registro: 29 Mai 2014 10:56
Cidade/Estado: CORONEL FABRICIANO/MG
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Anterior



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro