how create dynamic's CHECKBOX

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

User avatar
dragancesu
Posts: 921
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia

how create dynamic's CHECKBOX

Post by dragancesu »

How from DBF from attachment create this code diynamicly?

Code: Select all

    @ 30, 20 CHECKBOX qsearch_1 CAPTION "Argentina (1) " WIDTH 150 HEIGHT 25 
    @ 52, 20 CHECKBOX qsearch_2 CAPTION "Australia (1) " WIDTH 150 HEIGHT 25 
    @ 74, 20 CHECKBOX qsearch_3 CAPTION "Austria (1) " WIDTH 150 HEIGHT 25 
    @ 96, 20 CHECKBOX qsearch_4 CAPTION "Belgium (1) " WIDTH 150 HEIGHT 25 
    @ 118, 20 CHECKBOX qsearch_5 CAPTION "Brazil (5) " WIDTH 150 HEIGHT 25 
    @ 140, 20 CHECKBOX qsearch_6 CAPTION "Canada (8) " WIDTH 150 HEIGHT 25 
    @ 162, 20 CHECKBOX qsearch_7 CAPTION "Chile (1) " WIDTH 150 HEIGHT 25 
    @ 184, 20 CHECKBOX qsearch_8 CAPTION "Czech Republic (2) " WIDTH 150 HEIGHT 25 
    @ 206, 20 CHECKBOX qsearch_9 CAPTION "Denmark (1) " WIDTH 150 HEIGHT 25 
    @ 228, 20 CHECKBOX qsearch_10 CAPTION "Finland (1) " WIDTH 150 HEIGHT 25 
    @ 250, 20 CHECKBOX qsearch_11 CAPTION "France (5) " WIDTH 150 HEIGHT 25 
    @ 272, 20 CHECKBOX qsearch_12 CAPTION "Germany (4) " WIDTH 150 HEIGHT 25 
    @ 294, 20 CHECKBOX qsearch_13 CAPTION "Hungary (1) " WIDTH 150 HEIGHT 25 
    @ 316, 20 CHECKBOX qsearch_14 CAPTION "India (2) " WIDTH 150 HEIGHT 25 
    @ 338, 20 CHECKBOX qsearch_15 CAPTION "Ireland (1) " WIDTH 150 HEIGHT 25 
    @ 360, 20 CHECKBOX qsearch_16 CAPTION "Italy (1) " WIDTH 150 HEIGHT 25 
    @ 382, 20 CHECKBOX qsearch_17 CAPTION "Netherlands (1) " WIDTH 150 HEIGHT 25 
    @ 404, 20 CHECKBOX qsearch_18 CAPTION "Norway (1) " WIDTH 150 HEIGHT 25 
    @ 426, 20 CHECKBOX qsearch_19 CAPTION "Poland (1) " WIDTH 150 HEIGHT 25 
    @ 448, 20 CHECKBOX qsearch_20 CAPTION "Portugal (2) " WIDTH 150 HEIGHT 25 
    @ 470, 20 CHECKBOX qsearch_21 CAPTION "Spain (1) " WIDTH 150 HEIGHT 25 
    @ 492, 20 CHECKBOX qsearch_22 CAPTION "Sweden (1) " WIDTH 150 HEIGHT 25 
    @ 514, 20 CHECKBOX qsearch_23 CAPTION "USA (13) " WIDTH 150 HEIGHT 25 
    @ 536, 20 CHECKBOX qsearch_24 CAPTION "United Kingdom (3) " WIDTH 150 HEIGHT 25 
	
Thanks
Attachments
qsearch.zip
(425 Bytes) Downloaded 148 times
edk
Posts: 911
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland

Re: how create dynamic's CHECKBOX

Post by edk »

Code: Select all

#include "hmg.ch"

Function Main
	Local cCheckBoxName, cCaption
	Local nRow := 30

	USE qsearch
	INDEX ON row TO qsearch_row

	DEFINE WINDOW Win_1 ;
		ROW 0 ;
		COL 0 ;
		WIDTH 400 ;
		HEIGHT 600 ;
		TITLE "how create dynamic's CHECKBOX" 

		DO WHILE !EOF()
			cCheckBoxName := Lower ( Alias() ) + "_" + Alltrim (Str( qsearch->row ))
			cCaption := Alltrim( qsearch->search ) + " (" + Alltrim (Str( qsearch->count )) + ") "
			@ nRow, 20 CHECKBOX &(cCheckBoxName) CAPTION cCaption WIDTH 150 HEIGHT 25
			nRow += 22
			SKIP
		ENDDO

	END WINDOW

	CLOSE DATA

	Win_1.Center

	Activate Window Win_1

Return
User avatar
dragancesu
Posts: 921
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia

Re: how create dynamic's CHECKBOX

Post by dragancesu »

Thank you edk, but I need more help

source in attachment, and here what is my idea

main program is edit_1, simple form for insert, edit, delete record
click on head, in this case COUNTRY you see unique value from field (like SQL DISTINCT) and count it

then (but not work) user select one or more checkbox and click on OK be create filter (function for this is in test.prg)

qsearch.prg create test.prg
this is maybe complicated, generate program which generate dynamic function for it, or on other way, I don't idea now

Thank for help
Attachments
qsearch2.zip
(24.69 KiB) Downloaded 151 times
User avatar
jorge_riv
Posts: 64
Joined: Thu Nov 22, 2018 2:20 pm
DBs Used: DBF, MySQL,SQL SERVER, Oracle.

Re: how create dynamic's CHECKBOX

Post by jorge_riv »

Hola dragancesu
He modificado un par de lineas en los programas:
open_dbf.prg
open_ntx.prg
use_dbf.prg
test.prg
De esa forma funciona bien, envio fuentes y exe
Abrazo
User avatar
jorge_riv
Posts: 64
Joined: Thu Nov 22, 2018 2:20 pm
DBs Used: DBF, MySQL,SQL SERVER, Oracle.

Re: how create dynamic's CHECKBOX

Post by jorge_riv »

Alli esta el ZIP
Attachments
Edit_1.rar
(772.35 KiB) Downloaded 142 times
User avatar
serge_girard
Posts: 3165
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: how create dynamic's CHECKBOX

Post by serge_girard »

Dragan,

First:

Code: Select all

IF !IsWIndowActive (window_1) 
   use _qsearch index _qsearch new
   zap
   ...etc
    select _qsearch 
   close 
   END WINDOW 
   ACTIVATE WINDOW window_1 
ELSE   
   window_1.SetFocus  
ENDIF
This solve your first problembut then a new error comes up: Variable does not exist: CSEARCH_1

Serge
There's nothing you can do that can't be done...
User avatar
serge_girard
Posts: 3165
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: how create dynamic's CHECKBOX

Post by serge_girard »

Secondly:

Code: Select all

FUNCTION do_filter_5()

   _qry_exp = ""
   CMD := " "
   TEL := 0

   _nRow = 30
   USE _qsearch INDEX _qsearch NEW
   dbgotop()
   DO WHILE .NOT. eof()
      cValue = alltrim(search)
      cCheckBoxName = "cSearch_" + alltrim(str(row))
      cb := getProperty('window_1', cCheckBoxName, 'Value' )

      IF cb 
         IF TEL > 0
            CMD := CMD + ' .OR. '
         ENDIF
         TEL++
         X := _qsearch->search
         CMD := CMD + ' COUNTRY =  "' + ALLTRIM(X) + '" '

         ? CMD
      ENDIF 
      DBSKIP()
   ENDDO

   SELECT customer
   SET FILTER TO &CMD
   DBGOTOP()
   
   *Win_1.Browse_1.Refresh      // refresh browse 

RETURN
Then new error comes up! 1 Workarea not in use: ORDLISTADD

Serge
Serge
There's nothing you can do that can't be done...
User avatar
serge_girard
Posts: 3165
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: how create dynamic's CHECKBOX

Post by serge_girard »

This is also cleaner:

Code: Select all

   DEFINE WINDOW window_1 ;
      AT 5, 500 ; 
      WIDTH 200 ; 
      HEIGHT 20 + (_row * 25) ; 
      MODAL ;

Serge
There's nothing you can do that can't be done...
edk
Posts: 911
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland

Re: how create dynamic's CHECKBOX

Post by edk »

In my opinion, the grid with checkboxes looks nicer than the checkboxes themselves for this solution ;)
selcountry.gif
selcountry.gif (502.47 KiB) Viewed 2869 times
Attachments
Edit_1.7z
(18.12 KiB) Downloaded 170 times
Last edited by edk on Sat Jul 11, 2020 10:06 am, edited 1 time in total.
User avatar
bpd2000
Posts: 1207
Joined: Sat Sep 10, 2011 4:07 am
Location: India

Re: how create dynamic's CHECKBOX

Post by bpd2000 »

edk wrote: Fri Jul 10, 2020 2:01 pm In my opinion, the grid with checkboxes looks nicer than the checkboxes themselves for this solution ;)
ezgif.com-optimize.gif
fantastic
BPD
Convert Dream into Reality through HMG
Post Reply