Validar duplicidad en grid

HMG en Español

Moderator: Rathinagiri

Post Reply
jorge.posadas
Posts: 172
Joined: Mon May 19, 2014 7:43 pm
DBs Used: DBF, SQLite, MS-SQL, ACCESS, MariaDB (en proceso)
Location: Morelia, Mich. México
Contact:

Validar duplicidad en grid

Post by jorge.posadas »

Grupo,

Estoy creando una pantalla en donde se captura las ventas del día, y por cada captura voy llenando un grid para que el usuario vea lo que ha capturado, sin embargo tengo el problema que si el usuario capturo la venta número 120, y más adelante vuelve a capturar ese mismo número de vanta, ¿como valido que en grid BUSQUE si ya existe ese número? esto es para evitar que se capture más de una vez un mismo número de venta.

De antemano agradezco la ayuda.
Cordialmente

POSADAS SOFTWARE
Jorge Posadas Ch.
Programador independiente
Morelia, Mich.
M é x i c o .
Movil +52 44 3734 1858
SKYPE: jorge.posadasch
Email: posoft@gmx.com
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: Validar duplicidad en grid

Post by mustafa »

Si colocas un Contador de Captura no se repetirá
duplicidad de Captura, mira este Sample de Contador

Code: Select all


#include <hmg.ch>

*  Modified by   Mustafa López  Alicante (Spain)
  
*-----------------------------------------------*
FUNCTION MAIN   
*-----------------------------------------------*
  SET CODEPAGE TO SPANISH
  SET LANGUAGE TO SPANISH
  SET EXCLUSIVE ON  
  SET CENTURY ON
  SET DATE FRENCH
  SET DATE FORMAT TO 'dd/mm/yyyy'
  SET EPOCH TO 2000
  SET ESCAPE ON
  SET DELETED ON
  SET NAVIGATION EXTENDED
  SET SOFTSEEK ON  
  SET DECIMALS TO 0
  SET TOOLTIPSTYLE BALLOON

  PRIVATE apar_5 := 0

 IF !FILE("numerato.mem") 
     apar_5 := apar_5 + 1    
     apar_2 := STRZERO( apar_5 ,5)     
     apar_3 := DTOC(DATE())
     apar_4 := TIME()
     SAVE TO numerato.mem ALL LIKE apar_*
 ELSE
   
     RESTORE FROM numerato.mem ADDITIVE
 
  apar_5 := apar_5 + 1 
  apar_2 := STRZERO( apar_5 ,5)     
  apar_3 := DTOC(DATE())
  apar_4 := TIME()
 
  SAVE TO numerato.mem ALL LIKE apar_*

 ENDIF

  RESTORE FROM numerato.mem ADDITIVE

  MsgInfo( apar_5 )
  MsgInfo( apar_2 )

/*
  Para Salvar la Captura de Pantalla 
  RESTORE FROM numerato.mem ADDITIVE

   numeroQ := ALLTRIM( STRZERO( apar_5 ,5) )
   cNunPho := "Photo\"+ numeroQ +".jpg"

  apar_5 := apar_5 + 1 
  apar_2 := STRZERO( apar_5 ,5)     
  apar_3 := DTOC(DATE())
  apar_4 := TIME()
   SAVE TO numerato.mem ALL LIKE apar_*
*/

Return Nil
Mira : https://www.hmgforum.com/viewtopic.php? ... Cam#p60219
==>> WebCamPhoto.zip

Saludos
Mustafa
User avatar
danielmaximiliano
Posts: 2611
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Validar duplicidad en grid

Post by danielmaximiliano »

Simple, el usuario puede capturar las veces que quiera una misma factura ya que la captura contiene en orden de facturacion o/u orden de la numeracion de la factura.. espero se comprendalo. lo mismo es valido para los remitos
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
martingz
Posts: 394
Joined: Wed Nov 18, 2009 11:14 pm
Location: Mexico

Re: Validar duplicidad en grid

Post by martingz »

Jorge puede que sea una manera algo muy basico, pero yo validaria cuando ingreses el numero de la factura ,buscaria recorriendo los valores del grid

for y =1 to form.grid.itemcount
aValues:=form.grid.item(y)
if aValues[X] = form2.textnumfac.value

endif
next

algo asi

saludos
jorge.posadas
Posts: 172
Joined: Mon May 19, 2014 7:43 pm
DBs Used: DBF, SQLite, MS-SQL, ACCESS, MariaDB (en proceso)
Location: Morelia, Mich. México
Contact:

Re: Validar duplicidad en grid

Post by jorge.posadas »

Lo resolvi, gracias a la sugerencia de Martin


// Reviso si no existe una venta previamente capturada
FOR venta := 1 TO Frm_Nota_Venta.Grd_Nota_Venta.ItemCount
IF ALLTRIM(Frm_Nota_Venta.Grd_Nota_Venta.Cell(venta,1)) == ALLTRIM(Frm_Nota_Venta.Txt_Serie.Value) .AND. +;
ALLTRIM(Frm_Nota_Venta.Grd_Nota_Venta.Cell(venta,3)) == ALLTRIM(STR(Frm_Nota_Venta.Txt_Numero_Nota.Value))
MsgExclamation("Ya existe ese número de venta con ese número de serie","Corriga")
Frm_Nota_Venta.Txt_Numero_Nota.SetFocus
RETURN
ENDIF
NEXT venta
Cordialmente

POSADAS SOFTWARE
Jorge Posadas Ch.
Programador independiente
Morelia, Mich.
M é x i c o .
Movil +52 44 3734 1858
SKYPE: jorge.posadasch
Email: posoft@gmx.com
User avatar
mol
Posts: 3718
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Contact:

Re: Validar duplicidad en grid

Post by mol »

It would be easier to build your grid as a VIRTUAL.
In this case you have data in a table and you case use ASCAN function.
Post Reply