Ahora al hacerlo directamente sobre el oQry, cuando doy de alta un nuevo registro me graba correctamente, pero al querer modificar un dato, si por ejemplo sobre ese campo lo deje en blanco cuando llamo el diálogo, esos campos vacios no me permite escribir sobre ellos y en el caso del campo INFORME que sí puedo no me graba las modificaciones
Gracias por su atención
- Code: Select all Expand view RUN
#include "FIVEWIN.CH"
#include "tarray.ch"
#include "Tdolphin.ch"
#include "xbrowse.ch"
STATIC oQry, oLbx, oDlg
FUNCTION BrwClient(oMysql)
LOCAL oRadioButton
LOCAL nOrden:=1
LOCAL nbut:= array(5)
LOCAL cQuery := "SELECT * FROM maeclie ORDER by nape"
oQry1:end()
oQry := oMysql:Query( cQuery )
DEFINE DIALOG oDlg RESOURCE "DIALOG_1"
oDlg:cCaption := "Clientes"
REDEFINE RADIO oRadioButton VAR nOrden id 105 OF oDlg
oLbx := TxBrowse():New( oDlg )
oLbx:SetDolphin( oQry )
oLbx:CreateFromResource( 107 )
oLbx:nColDividerStyle := LINESTYLE_BLACK
oLbx:nRowDividerStyle := LINESTYLE_BLACK
oLbx:lColDividerComplete := .T.
olBX:bLDblClick := {|| Clientes(oQry, .f.) }
oLbx:aCols[1]:cHeader := "Código"
oLbx:aCols[2]:cHeader := "Razón Social"
oLbx:aCols[3]:cHeader := "Domicilio"
oLbx:aCols[4]:cHeader := "Localidad"
oLbx:aCols[5]:cHeader := "Nro Pcia"
oLbx:aCols[6]:cHeader := "Cod Postal"
oLbx:aCols[7]:cHeader := "Provincia"
oLbx:aCols[8]:cHeader := "Teléfonos"
oLbx:aCols[9]:cHeader := "Cuit"
oLbx:aCols[10]:cHeader := "Iva"
oLbx:aCols[11]:cHeader := "Tipo Iva"
REDEFINE BUTTON nbut[1] id 101 of oDlg ACTION Clientes( oQry,.t.)
REDEFINE BUTTON nbut[2] id 102 OF oDlg ACTION Clientes( oQry, .f.)
REDEFINE BUTTON nbut[3] id 103 OF oDlg ACTION ( Buscar(),Clientes(oQry, .f.))
REDEFINE BUTTON nbut[4] id 109 of oDlg ACTION borro()
REDEFINE BUTTON nbut[5] id 108 OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER
RETURN( NIL )
//------------------------------------------------------------//
FUNCTION Clientes( oQry, lNuevo)
LOCAL oDlgCli
LOCAL aivaa := {"Inscripto" , "No Inscripto", "Monotributo","Exento", "Cons. Final"}
LOCAL lSalvar := .F.
LOCAL nbut := array(3)
LOCAL oCiva
LOCAL oRadio, norden
LOCAL oGet := array(8)
LOCAL ivaa := ""
LOCAL aMae := aCargar()
LOCAL cDato := ""
LOCAL aPcia := PROVIN()
IF lNuevo
oQry:GetBlankRow(.F.)
endif
DEFINE DIALOG oDlgCli resource "cliente_1"
oDlgCli:cCaption:= "Edición de Clientes";
redefine get oGet[1] VAR oQry:ncli id 101 of oDlgCli picture "9999"
if lNuevo
oGet[1]:disable()
endif
REDEFINE get oGet[2] VAR oQry:Nape id 102 of oDlgCli picture "@!"
REDEFINE get oGet[3] VAR oQry:Domi id 103 of oDlgCli
REDEFINE get oGet[4] VAR oQry:loca id 104 of oDlgCli
REDEFINE get oGet[5] VAR oQry:Tele id 105 of oDlgCli
REDEFINE combobox oGet[6] VAR oQry:pcia items aPcia id 106 of oDlgCli
REDEFINE get oGet[7] VAR oQry:cuit id 107 of oDlgCli picture "99-99999999-9"
REDEFINE combobox oGet[8] VAR oQry:iva items aivaa id 108 of oDlgCli
REDEFINE BUTTON nbut[1] id 109 of oDlgCli ACTION (lSalvar := .T.,oDlgCli:end())
REDEFINE BUTTON nbut[2] id 110 OF oDlgCli ACTION oDlgCli:end()
REDEFINE BUTTON nbut[3] id 111 OF oDlgCli ACTION nmemo(lNuevo)
ACTIVATE DIALOG oDlgCli CENTER // Todo definido?, Activamos la caja de di logo.
IF lSalvar
oQry:save()
iif(!empty(oLbx),oLbx:refresh(),) // Repintamos el objeto ListBox
ENDIF
RETURN( NIL )
//------------------------------------------------------------//
static function borro()
if msgyesno("Desea borrar este registro" + CRLF + oQry:nape)
oQry:delete()
olbx:refresh()
endif
return nil
//------------------------------------------------------------//
FUNCTION nmemo(lnuevo)
local lcancel := .f., oBut1, oBut2, oMem
local odMemo
local cDato := oQry:informe
DEFINE DIALOG odMemo RESOURCE "dialo_memo"
REDEFINE GET oMem VAR oQry:informe MEMO ID 101 of odMemo;
message "Datos varios del cliente" UPDATE;
MULTILINE
odMemo:bStart := { | | oMem:SetSel(0,0) }
REDEFINE BUTTON oBut1 ID 103 of odMemo ACTION (lcancel := .f.,odMemo:end());
message "Sale y Graba"
REDEFINE BUTTON oBut2 ID 102 of odMemo ACTION (lcancel := .t., odMemo:end());
message "Sale sin grabar"
ACTIVATE DIALOG odMemo
if !lcancel
oQry:informe := cdato
endif
return
//----------------------------------------------------------//
FUNCTION Buscar( )
busnap(olbx,oQry,,,,.t.)
return NIL
La tabla es la siguiente:
- Code: Select all Expand view RUN
- CREATE TABLE `maeclie` (
`ncli` int(6) unsigned NOT NULL AUTO_INCREMENT,
`nape` varchar(35) CHARACTER SET utf8 DEFAULT '""',
`domi` varchar(30) CHARACTER SET utf8 DEFAULT '""',
`loca` varchar(25) CHARACTER SET utf8 DEFAULT '""',
`nropcia` int(1) DEFAULT '0',
`cpos` int(6) DEFAULT '0',
`pcia` varchar(30) CHARACTER SET utf8 DEFAULT '""',
`tele` varchar(40) CHARACTER SET utf8 DEFAULT '""',
`cuit` varchar(13) CHARACTER SET utf8 DEFAULT '""',
`iva` varchar(12) CHARACTER SET utf8 DEFAULT '""',
`informe` text CHARACTER SET utf8,
UNIQUE KEY `codcli` (`ncli`)
) ENGINE=InnoDB AUTO_INCREMENT=1833 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci