To Nagesh - XBrowse

To Nagesh - XBrowse

Postby Kleyber » Sun Jan 19, 2014 5:49 pm

Hi Nagesh,

I would like to know if it's possible to use xbrowse to add/edit and delete records directly from a dataset using TDolphin. I've searched some samples but with no success. I have made this using tsbrowse but just with DBF. Now I'm using MySQL (with TDolphin) and migrating my app.

TIA,
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Re: To Nagesh - XBrowse

Postby carlos vargas » Sun Jan 19, 2014 6:32 pm

Kleyber importante anotar que la query toma datos de dos o mas tablas.
podrias poner un screenshot del browse, y el codigo de creacion del query y browse.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: To Nagesh - XBrowse

Postby Kleyber » Sun Jan 19, 2014 6:41 pm

[English ON]
Hi Carlos,

Here is my source code containing what I've got until now: With this I can edit records inside the browse and at the same time it is updating the tables. My problem is when I need to insert a new record (inside the browse).

[Spanish ON]
Hola Carlos,

Aqui está mi codigo fuente conteniendo lo que hice hasta ahora: Con esto yo puedo editar registros dentro del browse y al mismo tiempo esta actualizando las tablas. Mi problem está cuando necesito añadir un nuevo registro (dentro del browse).

Screenshot:

Image

Source Code:
Code: Select all  Expand view  RUN

*****************************************************************************
Static function Edita( oDlg1, lSalva, oQryPedido, oQryItensPedido )
// Edicao do cadastro de pedidos
*****************************************************************************
local oBmp, oIco, oBar, cTitle, oBrw1, aColor[ 2 ], lNoBlink := .F.
local oFontP
Static aBrush[ 7 ]
Private oDlg

cNomeFornecedor:=""
cNomeTransportadora:=""

DEFINE FONT oFontP NAME "MS Sans Serif" SIZE 0, -32

DEFINE DIALOG oDlg RESOURCE "CADPEDIDOS"

REDEFINE BITMAP RESOURCE "BARRA" ID 59 OF oDlg

if !lSalva
   TRY
      DEFINE QUERY oQryMPedido  "SELECT * FROM tab_pedidos WHERE idtab_pedidos = "+Var2Str(oQryPedido:idtab_pedidos)
      DEFINE QUERY oQryIPedido  "SELECT a.id_pedidos, a.id_produto, b.nome, a.quantidade, a.precounitario, a.preco  FROM tab_pedidos_itens a ";
                               +"INNER JOIN tab_produtos b on a.id_produto=b.idtab_produtos WHERE id_pedidos = "+Var2Str(oQryMPedido:idtab_pedidos)
      DEFINE QUERY oQryForn     "SELECT idtab_fornecedores,empresa FROM tab_fornecedores LIMIT 100"
      DEFINE QUERY oQryTran     "SELECT * FROM tab_transportadoras LIMIT 100"
      DEFINE QUERY oQryIProd    "SELECT idtab_produtos,nome,saldo,preco FROM tab_produtos LIMIT 100"
   CATCH oError
      ShowError( oError, { oQryMPedido, oQryIPedido, oQryForn, oQryTran } )
      RETURN
   END
else  
   TRY
      DEFINE QUERY oQryMPedido  "SELECT * FROM tab_pedidos WHERE idtab_pedidos = 0"
      DEFINE QUERY oQryIPedido  "SELECT a.id_pedidos, a.id_produto, b.nome, a.quantidade, a.precounitario, a.preco  FROM tab_pedidos_itens a ";
                               +"INNER JOIN tab_produtos b on a.id_produto=b.idtab_produtos WHERE id_pedidos = 0"
      DEFINE QUERY oQryForn     "SELECT idtab_fornecedores,empresa FROM tab_fornecedores LIMIT 100"
      DEFINE QUERY oQryTran     "SELECT * FROM tab_transportadoras LIMIT 100"
      DEFINE QUERY oQryIProd    "SELECT idtab_produtos,nome,saldo,preco FROM tab_produtos LIMIT 100"
   CATCH oError
      ShowError( oError, { oQryMPedido, oQryIPedido, oQryForn, oQryTran } )
      RETURN
   END
endif

oDlg:Update()
oDlg:Refresh()

REDEFINE BUTTON oBmpS ID 66 OF oDlg PROMPT "&Salvar" //ACTION Grava( oDlg, oDlg1, @lGrava, oQryMPedido, oQryIPedido )
REDEFINE BUTTON oBmpF ID 67 OF oDlg PROMPT "&Fechar" ACTION ( oDlg:End(), oDlg1:SetFocus(), oDlg1:Refresh() )

//--  Mostrando o registro na tela
REDEFINE SAY oNupd       VAR oQryMPedido:idtab_pedidos ID 101 OF oDlg UPDATE
REDEFINE DTPicker oData  VAR oQryMPedido:data          ID 102 OF oDlg UPDATE
REDEFINE GET oFornecedor VAR oQryMPedido:id_fornecedor ID 103 OF oDlg ;
  ACTION ( oQryMPedido:id_fornecedor:=PesquisarFornecedor(),;
           oFornecedor:Refresh(), oNomeFornecedor:Refresh(), xSetFocus(oTransportadora), oDlg:Refresh() ) ;
        BITMAP "PESQ16" UPDATE
REDEFINE SAY oNomeFornecedor VAR cNomeFornecedor     ID 4001 OF oDlg UPDATE
REDEFINE GET oTransportadora VAR oQryMPedido:id_transportadora ID 4002 OF oDlg ;
  ACTION ( oQryMPedido:id_transportadora:=PesquisarTransportadora(),;
           oTransportadora:Refresh(), oNomeTransportadora:Refresh(), oDlg:Refresh() ) ;
        BITMAP "PESQ16" UPDATE
REDEFINE SAY oNomeTransportadora VAR cNomeTransportadora     ID 4004 OF oDlg UPDATE
REDEFINE GET oObservacao VAR oQryMPedido:observacao ID 4003 OF oDlg
REDEFINE SAY oValor VAR oQryMPedido:valor  ID  64 PICTURE "@E 999,999.99" FONT oFontP OF oDlg //--> Total Pedido

REDEFINE XBROWSE oBrwPedidoItens DATASOURCE oQryIPedido ID 61 OF oDlg

ADD TO oBrwPedidoItens DATA oQryIPedido:id_produto       TITLE "Código"       SIZE 050 LEFT
ADD TO oBrwPedidoItens DATA oQryIPedido:nome             TITLE "Nome"         SIZE 280 LEFT
ADD TO oBrwPedidoItens DATA oQryIPedido:quantidade       TITLE "Quant."       SIZE 070 RIGHT
ADD TO oBrwPedidoItens DATA oQryIPedido:precounitario    TITLE "Pr. Unitário" SIZE 069 RIGHT
ADD TO oBrwPedidoItens DATA oQryIPedido:preco            TITLE "Preço Total"  SIZE 084 RIGHT

WITH OBJECT oBrwPedidoItens
   :SetDolphin(oQryIPedido, .F.)
   :nMarqueeStyle       := MARQSTYLE_HIGHLROW
   :nColDividerStyle    := LINESTYLE_BLACK
   :nRowDividerStyle    := LINESTYLE_BLACK
   :lColDividerComplete := .T.
   :lFastEdit           := .T.
   :lRecordSelector     := .F.
   :lHScroll            := .F.
   :bClrStd             := { || If( ( oBrwPedidoItens:KeyNo() % 2 ) == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
   :nStretchCol         := STRETCHCOL_LAST
   :aCols[1]:nEditType  := EDIT_BUTTON
   :aCols[1]:bEditBlock := { | r, c, o | PesquisaProduto( r, c, o ) }
   :aCols[3]:nEditType  := EDIT_GET
   :aCols[4]:nEditType  := EDIT_GET
END

ACTIVATE DIALOG oDlg CENTERED ON INIT oDlg:lHelpIcon:=.F.

oQryMPedido:End()
oQryIPedido:End()
oQryForn:End()
oQryTran:End()
oQryIProd:End()

oQryItensPedido:LoadQuery()

return Nil
 
Last edited by Kleyber on Sun Jan 19, 2014 6:42 pm, edited 1 time in total.
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Re: To Nagesh - XBrowse

Postby joseluisysturiz » Sun Jan 19, 2014 6:41 pm

Si lo quieres tipo excel, solo lo puedes hacer con array y luego actualizas las tablas, si lo quieres directamente sobre el query no lo puedes hacer, palabras de Daniel, puedes usar GET donde leas cada campo del xbrowse, luego de llenar los campos, actualizas el query y s quieres a su vez, la tabla o actualizar la tabla al finalizar la carga de datos en el xbrowse, no se si es eso lo que quieres...yo lo hago tipo factura pero con array y luego actualizo la tabla...

esto es lo que quiere hacer..?

Image
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: To Nagesh - XBrowse

Postby joseluisysturiz » Sun Jan 19, 2014 6:44 pm

Mira este post haber si es lo mismo que quieres hacer...saludos... si ya se puede seria estupendo, asi no hay que hacer ARRAY...y seria directamente al query y de alli a la tabla...:shock:

viewtopic.php?f=6&t=25523&p=139182&hilit=editar+un+query#p139182
Last edited by joseluisysturiz on Sun Jan 19, 2014 6:45 pm, edited 1 time in total.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: To Nagesh - XBrowse

Postby Kleyber » Sun Jan 19, 2014 6:44 pm

Jose Luis,

Exactamente. Es esto lo que quiero hacer.
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Re: To Nagesh - XBrowse

Postby Kleyber » Sun Jan 19, 2014 6:49 pm

Jose Luis,

Te comento que con el codigo que puse he conseguido editar el registro y cuando cambio de registro (pulsando el botón) la query es actualizada automaticamente. si tienes Skype te puedo mostrarte directamente. El problema es solo cuando deseo añadir un nuevo registro.
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Re: To Nagesh - XBrowse

Postby joseluisysturiz » Sun Jan 19, 2014 7:04 pm

Eso que haces tambien lo hago, el detalle es para agregar registros, creo estamos en lo mismo, mi skype es joseluisy si quieres agregame y lo vemos haber si podemos resolver algo, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests