mirror of https://github.com/postgres/postgres
parent
2fb643758d
commit
09b187598c
@ -0,0 +1,104 @@ |
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
||||
<HTML> |
||||
<HEAD> |
||||
<TITLE></TITLE> |
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]"> |
||||
</HEAD> |
||||
<BODY TEXT="#000000" BGCOLOR="#FFEBCD" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000"> |
||||
|
||||
<H1>FORMS</H1> |
||||
|
||||
<P> |
||||
<HR WIDTH="100%"></P> |
||||
|
||||
<P>This version (0.81) of PgAccess introduce the visual form builder.</P> |
||||
|
||||
<P>For the moment, it has only some basic widgets : labels, entries, buttons |
||||
, listboxes , checkboxes and radiobuttons.</P> |
||||
|
||||
<P>Also there is a query widget that allows you yo have access to a query |
||||
results.</P> |
||||
|
||||
<P>In a manner very similar with Visual Tcl or Visual Basic, the user must |
||||
select a widget from the toolbar and drags on the canvas the rectangle |
||||
that would define the widget. It can also specify some attributes in a |
||||
separate window. Renaming, resizing items are possible modifying parameters |
||||
in attribute window. Do not forget to press Enter in the edit field after |
||||
changing a value in order to be accepted.</P> |
||||
|
||||
<P>You can also move items by dragging them or delete them by pressing |
||||
Del key.</P> |
||||
|
||||
<P>In attribute window, there are some fields named <B><TT><FONT SIZE=+1>Command |
||||
</FONT></TT></B>and <B><TT><FONT SIZE=+1>Variable</FONT></TT></B>.</P> |
||||
|
||||
<P>The field <B><TT><FONT SIZE=+1>Command </FONT></TT></B>have meaning |
||||
only for Button widgets and holds the command that will be invoked when |
||||
the button is pressed.</P> |
||||
|
||||
<P>The field <B><TT><FONT SIZE=+1>Variable </FONT></TT></B>have meaning |
||||
only for EditField , Label widgets and checkboxes and it is the name of |
||||
the global variable that will hold the value for that widget. For checkboxes |
||||
the values are 1 or 0.</P> |
||||
|
||||
<P>In order to make a simple test, put an entry field and set it's variable |
||||
to <B>v1</B> and a button who's command is "set v1 whisky". Press |
||||
the button "Test form" and click on the button. In that entry |
||||
should appear whisky. <BR> |
||||
Another test is defining in Script module a script called "My first |
||||
script" having the following commands:<BR> |
||||
<TT><FONT SIZE=+1>tk_messageBox -title Warning -message "This is my |
||||
first message!"<BR> |
||||
</FONT></TT>and then define a button who's command is <B><TT><FONT SIZE=+1>execute_script |
||||
"My first script"</FONT></TT></B>.</P> |
||||
|
||||
<H2>Database manipulation</H2> |
||||
|
||||
<P>Let's presume that our form have the internal name <B><TT>mf </TT></B>(my |
||||
form). He wil be referred inside the Tcl/Tk source as <B><TT>.mf<BR> |
||||
</TT></B>If you want to close the form in run-time you have to issue the |
||||
command <B><TT>destroy .mf</TT></B></P> |
||||
|
||||
<P>Also, any widget will have the name prefixed by <B><TT>.mf </TT></B> We |
||||
will have <B><TT>.mf.button1</TT></B> or <B><TT>.mf.listbox1</TT></B> .</P> |
||||
|
||||
<P>We can name the query widget <B><TT>qry</TT></B> for example. The complete |
||||
name will be <B><TT>.mf.qry</TT></B> then.<BR> |
||||
The <B><TT>Command </TT></B>property of the query widget must contain the |
||||
SQL command that will be executed.<BR> |
||||
When the form will be in run-time, automatically you will have acces to |
||||
the following methods :</P> |
||||
|
||||
<P><TT>.mf.qry:execute</TT> - opens the connection and execute the query |
||||
(returns nothing)<BR> |
||||
<TT>.mf.qry:nrecords</TT> - returns the number of records in the selected |
||||
query<BR> |
||||
<TT>.mf.qry:fields</TT> - returns a list of the fields in the result set<BR> |
||||
<TT>.mf.qry:movefirst</TT> - move the cursor to the first record in the |
||||
recordset<BR> |
||||
<TT>.mf.qry:movelast , .mf.qry:movenext , .mf.qry:moveprevious </TT>- moves |
||||
the cursor <BR> |
||||
<TT>.mf.qry:updatecontrols</TT> - update the variables inside the designed |
||||
form that have a particular name (I'll explain later)<BR> |
||||
<TT>.mf.qry:close</TT> - close the connection (<B><FONT COLOR="#FF0000">if |
||||
you don't close the query result, you will loose memory</FONT></B>)</P> |
||||
|
||||
<P>If you want to bound some controls to the fields of the recordset, you |
||||
will have to name their associate variable like that :</P> |
||||
|
||||
<P><TT>.mf.qry.salary</TT> to get the "salary" field , or <TT>.mf.qry.name</TT> |
||||
to get the "name" field.</P> |
||||
|
||||
<P>It's simple, isn't it ? It's just like a new widget that have some properties |
||||
and methods that can be accesed.<BR> |
||||
Also, the name convention is just like in Tcl/Tk.</P> |
||||
|
||||
<P> |
||||
<HR WIDTH="25%"></P> |
||||
|
||||
<P>Please feel free to send me your oppinion at <B>teo@flex.ro</B> on forms |
||||
designing and usage.<BR> |
||||
</P> |
||||
|
||||
</BODY> |
||||
</HTML> |
@ -0,0 +1,124 @@ |
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
||||
<HTML> |
||||
<HEAD> |
||||
<TITLE>PgAccess - a Tcl/Tk PostgreSQL interface</TITLE> |
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> |
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]"> |
||||
</HEAD> |
||||
<BODY BGCOLOR="#FFFFFF"> |
||||
|
||||
<H1>PgAccess - a database management tool for <A HREF="http://www.postgreSQL.org">PostgreSQL</A></H1> |
||||
|
||||
<P> |
||||
<HR></P> |
||||
|
||||
<P>This program is protected by the following <A HREF="copyright.html">copyright</A> |
||||
</P> |
||||
|
||||
<LI><A HREF="pgaccess-0.81.tar.gz">Download the last version of Pgaccess |
||||
(press shift and click this link)</A>.</LI> |
||||
|
||||
<P>Latest version of PgAccess is 0.81 , 1 March 1998 ! </P> |
||||
|
||||
<CENTER><TABLE BORDER=3 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BGCOLOR="#FFB6C1" > |
||||
<TR> |
||||
<TD> |
||||
<CENTER><P><BR> |
||||
<B><FONT SIZE=+2>PgAccess can now design <A HREF="forms.html">Forms</A></FONT></B>, |
||||
<B><FONT SIZE=+2><A HREF="pga-rad.html">Reports and Scripts</A></FONT></B></P></CENTER> |
||||
</TD> |
||||
</TR> |
||||
</TABLE></CENTER> |
||||
|
||||
<P>I think that there were some problems loading libpgtcl library. <BR> |
||||
I invite you to read a <A HREF="index.html#libpgtcl">special section concerning |
||||
<B>libpgtcl</B></A> </P> |
||||
|
||||
<H3><FONT COLOR="#191970">What does PgAccess now!</FONT></H3> |
||||
|
||||
<P>Here are some images from PgAccess windows : <A HREF="pic-pga-1.gif">Main |
||||
window </A>, <A HREF="pic-pga-2.gif">table builder </A>, <A HREF="pic-pga-4.gif">table(query) |
||||
view </A>, <A HREF="pic-pga-3.gif">visual query builder </A>. </P> |
||||
|
||||
<P><B>Tables</B> <BR> |
||||
- opening tables for viewing, max 200 records (changed by preferences menu) |
||||
<BR> |
||||
- column resizing, dragging the vertical grid line (better in table space |
||||
rather than in the table header) <BR> |
||||
- text wrap in cells - layout saved for every table <BR> |
||||
- import/export to external files (SDF,CSV) <BR> |
||||
- filter capabilities (enter filter like (price>3.14) <BR> |
||||
- sort order capabilities (enter manually the sort field(s)) <BR> |
||||
- editing in place <BR> |
||||
- improved table generator assistant <BR> |
||||
- improved field editing <BR> |
||||
<B>Queries</B> <BR> |
||||
- define , edit and stores "user defined queries" <BR> |
||||
- store queries as views <BR> |
||||
- execution of queries <BR> |
||||
- viewing of select type queries result <BR> |
||||
- query deleting and renaming <BR> |
||||
- <B><BLINK><FONT COLOR="#FF0000">NEW !!!</FONT></BLINK></B> Visual query |
||||
builder with drag & drop capabilities. For any of you who had installed |
||||
the Tcl/Tk plugin for Netscape Navigator, you can see it at work <A HREF="qbtclet.html">clicking |
||||
here</A> <BR> |
||||
<B>Sequences</B> <BR> |
||||
- defines sequences, delete them and inspect them <BR> |
||||
<B>Functions</B> <BR> |
||||
- define, inspect and delete functions in SQL language <BR> |
||||
<B>Reports<BR> |
||||
</B>- design and display simple reports from tables<BR> |
||||
- fields and labels, font changing, style and size<BR> |
||||
- saves and loads report description from database<BR> |
||||
- show report previews, sample postscript output file<BR> |
||||
<B>Forms<BR> |
||||
</B>- open user defined forms<BR> |
||||
- form design module available<BR> |
||||
- query widget available, controls bound to query results<BR> |
||||
- <A HREF="forms.html">click here</A> for a description of forms and how |
||||
they can be used<BR> |
||||
<B>Scripts<BR> |
||||
</B>- define, modify and call user defined scripts<BR> |
||||
Here is <A HREF="pga-rad.html">a special section concerning forms and scripts</A> |
||||
.</P> |
||||
|
||||
<P>On the TODO list! <BR> |
||||
- table design (add new fields, renaming, etc.) <BR> |
||||
<BR> |
||||
</P> |
||||
|
||||
<P>If you have any comment, suggestion for improvements, please feel free |
||||
to e-mail to : <A HREF="mailto:teo@flex.ro">teo@flex.ro </A> <BR> |
||||
</P> |
||||
|
||||
<P><B><FONT COLOR="#FF1493"><FONT SIZE=+2>Mailing list for PgAccess </FONT></FONT></B><A HREF="maillist.html">Here |
||||
you will find how to subscribe to this mailing list</A>.</P> |
||||
|
||||
<P> |
||||
<HR></P> |
||||
|
||||
<H1>More information about libgtcl</H1> |
||||
|
||||
<P>Also, you will need the PostgreSQL to Tcl interface library, lined as |
||||
a Tcl/Tk 'load'-able module. It is called libpgtcl and the source is located |
||||
in the PostgreSQL directory /src/interfaces/libpgtcl. Specifically, you |
||||
will need a libpgtcl library that is 'load'-able from Tcl/Tk. This is technically |
||||
different from an ordinary PostgreSQL loadable object file, because libpgtcl |
||||
is a collection of object files. Under Linux, this is called libpgtcl.so. |
||||
<BR> |
||||
You can download <A HREF="libpgtcl.so">from here </A>a version already |
||||
compiled for Linux i386 systems. Just copy libpgtcl.so into your system |
||||
library director (/usr/lib) and go for it. One of the solutions is to remove |
||||
from the source the line containing <B>load libpgtcl.so </B>and to load |
||||
pgaccess.tcl not with wish, but with pgwish (or wishpg) that wish that |
||||
was linked with libpgtcl library! </P> |
||||
|
||||
<P>If you have installed RedHat 5.0, you should get the last distribution |
||||
kit of postgreSQL and compile it from scratch. RedHat 5.0 is using some |
||||
new versions of libraries and you have to compile and install again at |
||||
least <B>libpq </B>and <B><TT>libpgtcl </TT></B>libraries.</P> |
||||
|
||||
<P>However, the application should work without problems! </P> |
||||
|
||||
</BODY> |
||||
</HTML> |
@ -0,0 +1,43 @@ |
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
||||
<HTML> |
||||
<HEAD> |
||||
<TITLE></TITLE> |
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]"> |
||||
</HEAD> |
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000"> |
||||
|
||||
<P>The mailing list for PgAccess is : <B><TT>pgsql-interfaces@postgresql.org</TT></B></P> |
||||
|
||||
<P>If you have some questions regarding PgAccess you should mail to this |
||||
address. I will also answer to messages addresed directly to me but it |
||||
would be better to post your messages here because it might be possible |
||||
to get an answer quickly from another user of PgAccess.</P> |
||||
|
||||
<P> |
||||
<HR WIDTH="100%"></P> |
||||
|
||||
<P>To subscribe please send a mail message to :</P> |
||||
|
||||
<P> <B><TT><FONT SIZE=+1>pgsql-interfaces-request@postgresql.org |
||||
</FONT></TT></B> </P> |
||||
|
||||
<P>having a single line in the body message : <B><TT><FONT SIZE=+1>subscribe</FONT></TT></B></P> |
||||
|
||||
<P>In a couple of minutes , if everything is ok, you must receive something |
||||
like that :</P> |
||||
|
||||
<P> |
||||
<HR WIDTH="100%"></P> |
||||
|
||||
<P><TT>Welcome to the pgsql-interfaces mailing list!</TT></P> |
||||
|
||||
<P><TT>Please save this message for future reference. Thank you.</TT></P> |
||||
|
||||
<P><TT>If you ever want to remove yourself from this mailing list, you |
||||
can send mail to <Majordomo@hub.org> with the following command in |
||||
the body of your email message:</TT></P> |
||||
|
||||
<P><TT>unsubscribe pgsql-interfaces yourname@yourdomain</TT></P> |
||||
<TT></TT> |
||||
</BODY> |
||||
</HTML> |
@ -0,0 +1,198 @@ |
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
||||
<HTML> |
||||
<HEAD> |
||||
<TITLE></TITLE> |
||||
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; Linux 2.0.32 i586) [Netscape]"> |
||||
</HEAD> |
||||
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000"> |
||||
|
||||
<H1>PgAccess - Scripts and Forms |
||||
<HR WIDTH="100%"></H1> |
||||
|
||||
<P>Beginning with 0.70 version, I have introduced in PgAccess two new modules |
||||
for operating with scripts and forms.</P> |
||||
|
||||
<P> This would give to PgAccess the power of creating |
||||
application directly into PgAccess, defining new modules, procedures, forms |
||||
and possibly making it a rapid development tool for PostgreSQL. The "scripts" |
||||
and "forms" modules are using two new tables called pga_forms |
||||
and pga_scripts. PgAccess take care of creating them if user is opening |
||||
a new database and grant ALL permissions on them to PUBLIC. <BR> |
||||
Both scripts and forms are containing in fact sources |
||||
of code written in Tcl/Tk and when the user has choose to "open" |
||||
one of them, either by double-clicking in the main window or pressing the |
||||
"Open" button PgAccess is searching for them in pga_forms or |
||||
pga_scripts table, get the code and simply "<B>eval</B>" it !<BR> |
||||
Of course, when Designing a script, a simple text editor |
||||
is opened and text is saved as is in pga_scripts table. When "designing" |
||||
a form, a "form editor" that would be very similar with "Visual |
||||
Tcl" would be invoked.</P> |
||||
|
||||
<P> This mechanism and the extremely versatile scripting |
||||
mode of Tcl/Tk would give PgAccess a great power for creating end user |
||||
application using PosgreSQL. The most important thing is that the user |
||||
could call procedures and functions that I have used for building up PgAccess |
||||
!</P> |
||||
|
||||
<H3>Forms</H3> |
||||
|
||||
<P> Forms are special Tcl/Tk source code that is used |
||||
for creating windows and placing widgets inside it. When Tcl/Tk is "eval" |
||||
them, a new window appears, with buttons as defined that could call "user |
||||
defined scripts", "user defined procedures" or "internal |
||||
PgAccess procedures".<BR> |
||||
For the moment, 0.70 version of PgAccess does not have |
||||
a module for designing forms. It is intended to make an interface to the |
||||
most powerful program of designing applications under Tcl/Tk , Visual Tcl |
||||
, so it could handle forms designed to be used inside PgAccess.<BR> |
||||
Forms can hold all the widgets allowed in Tcl/Tk , buttons, |
||||
check-boxes, radio-buttons, list-boxes, frames, canvases, etc. With these |
||||
forms, you can control your application so PgAccess would become just a |
||||
"shell", a startup point for you applications.</P> |
||||
|
||||
<H3>Scripts</H3> |
||||
|
||||
<P> Scripts are normal Tcl/Tk code that is interpreted |
||||
by Tcl/Tk. You can define your own procedures inside a script called "Library" |
||||
for example. You can call your procedures from within another script, from |
||||
another procedure.<BR> |
||||
The most important thing is that you have total access |
||||
to the PgAccess's core of functions and procedures used by me in building |
||||
PgAccess as an application. Just write <B><TT><FONT COLOR="#000080">open_table |
||||
"Your sample table"</FONT></TT></B> and you'll see the result.<BR> |
||||
If you are writing a script called "Autoexec" |
||||
then it will be executed every time the database is opened. You can put |
||||
inside different commands that you want to be executed such as : running |
||||
scripts that would define your own procedures such as <B><TT><FONT COLOR="#000080">execute_script |
||||
"My own procedure library"</FONT></TT></B> or open a form with |
||||
<B><TT><FONT COLOR="#000080">open_form "Main window with menu buttons"</FONT></TT></B> |
||||
, and so on.</P> |
||||
|
||||
<P> |
||||
<HR WIDTH="100%"></P> |
||||
|
||||
<H2>Examples :</H2> |
||||
|
||||
<P>We would like to give you some examples for using forms and scripts. |
||||
First of all, get your PgAccess 0.70 version NOW !</P> |
||||
|
||||
<P><IMG SRC="a_right.gif" HEIGHT=20 WIDTH=20> Define your first |
||||
form. Remember, the form design module hasn't arrived yet :-( , so you |
||||
will have to define your first form using an action query :<BR> |
||||
1. Click on Query tab and press "New" button<BR> |
||||
2. Enter "<TT>Generate my first form</TT>" in Query name field<BR> |
||||
3. Copy and paste from your browser window into query definition area the |
||||
next text :<BR> |
||||
<BR> |
||||
<TT>insert into pga_forms values('My first form',' set base .pga_win_1; |
||||
if {[winfo exists $base]} { wm deiconify $base; return }; toplevel $base |
||||
-class Toplevel; wm focusmodel $base passive; wm geometry $base 395x389+325+188; |
||||
wm maxsize $base 1009 738; wm minsize $base 1 1; wm overrideredirect $base |
||||
0; wm resizable $base 1 1; wm deiconify $base; wm title $base "User |
||||
defined Form No.1"; button $base.b1 -command {execute_script "My |
||||
first script"} -text "My first button" ; button $base.bexit |
||||
-command {destroy [focus]} -padx 9 -pady 3 -text Exit ; place $base.bexit |
||||
-x 340 -y 355 -anchor nw -bordermode ignore ; place $base.b1 -x 10 -y 10 |
||||
-anchor nw;'); </TT></P> |
||||
|
||||
<P>4. Press "Save query definition button" and then "Close"<BR> |
||||
5. In the mai window, select by clicking the query "Generate my first |
||||
form" and press "Open" button.</P> |
||||
|
||||
<P>Your query must have been executed without errors! If you will check |
||||
now the "Forms" tab, you will find there your first form. Press |
||||
"Open" button and enjoy it! For the moment, if you will press |
||||
"My first button" you will get an error message. Of course : |
||||
we haven't yet defined our first script ! </P> |
||||
|
||||
<P><IMG SRC="a_right.gif" HEIGHT=20 WIDTH=20> Defining our first |
||||
script :<BR> |
||||
1. Click on Scripts tab and pres "New" button<BR> |
||||
2. Enter "My first script" in script's name field<BR> |
||||
3. Enter the body as the script the following statements :<BR> |
||||
<BR> |
||||
<TT>MsgBox "Warning" "PgAccess unleashed!"<BR> |
||||
open_table pga_scripts<BR> |
||||
<BR> |
||||
</TT>4. Press "Save" button then "Cancel"</P> |
||||
|
||||
<P>It's now the time to define our first library script. I am defining |
||||
not because I need it. I could write directly in "My first script" |
||||
the instructions for creating that warning window but I only wanted to |
||||
show you how you can mix PgAccess script execution with Tcl/Tk code and |
||||
so on.</P> |
||||
|
||||
<P><IMG SRC="a_right.gif" HEIGHT=20 WIDTH=20> Define our first |
||||
library that will contain your "user defined" Tcl/Tk procedures |
||||
and functions :<BR> |
||||
1. Click on Scripts tab and pres "New" button<BR> |
||||
2. Enter "My first library" in script's name field<BR> |
||||
3. Enter the body of the script the following statements :<BR> |
||||
<BR> |
||||
<TT>proc MsgBox {title msg} {<BR> |
||||
tk_messageBox -title $title -message |
||||
$msg<BR> |
||||
}<BR> |
||||
<BR> |
||||
</TT>4. Press "Save" button then "Cancel"</P> |
||||
|
||||
<P><IMG SRC="file:/home/teo/a_right.gif" HEIGHT=20 WIDTH=20> Define |
||||
our first autoexec script that will contain commands that will be executed |
||||
when opening database :<BR> |
||||
1. Click on Scripts tab and pres "New" button<BR> |
||||
2. Enter "Autoexec" in script's name field<BR> |
||||
3. Enter the body of the script the following statements :<BR> |
||||
<BR> |
||||
<TT>execute_script "My first library"<BR> |
||||
open_form "My first form"<BR> |
||||
<BR> |
||||
</TT>4. Press "Save" button then "Cancel"</P> |
||||
|
||||
<P>Everything is OK now! You will have to exit PgAccess and enter it again |
||||
opening the same database ! Voila , your first form will pop-up on the |
||||
screen, a message box is displayed and after clicking Ok button the table |
||||
pga_scripts will be opened in table viewer revealing what's inside ! With |
||||
this occasion I have shown how you could open in table view mode a "pga_..." |
||||
system table that is hidden by PgAccess in main view mode!</P> |
||||
|
||||
<P>I am stopping here, asking you to try this new features and sending |
||||
me as more feed-backs as you can! What do you think about this new features |
||||
? How would you like to be developed PgAccess in future ? In this |
||||
moment, I am working in recoding the main part of PgAccess in order to |
||||
give to the user more "system" functions that would help him |
||||
creating new applications very easy.<BR> |
||||
<BR> |
||||
Remember : I'm waiting your messages at <A HREF="mailto:teo@flex.ro">teo@flex.ro</A> |
||||
</P> |
||||
|
||||
<P> |
||||
<HR WIDTH="50%"></P> |
||||
|
||||
<P>You will also have the ability of hiding the main window of PgAccess |
||||
at the beginning of "Autoexec" script execution and showing it |
||||
before destroying "My first form". For this example, delete the |
||||
previously defined "My first form" and create it with another |
||||
action query with this code :<BR> |
||||
<BR> |
||||
<TT>insert into pga_forms values('My first form',' set base .pga_win_1; |
||||
if {[winfo exists $base]} { wm deiconify $base; return }; toplevel $base |
||||
-class Toplevel; wm focusmodel $base passive; wm geometry $base 395x389+325+188; |
||||
wm maxsize $base 1009 738; wm minsize $base 1 1; wm overrideredirect $base |
||||
0; wm resizable $base 1 1; wm deiconify $base; wm title $base "User |
||||
defined Form No.1"; button $base.b1 -command {execute_script "My |
||||
first script"} -text "My first button" ; button $base.bexit |
||||
-command {Window show .dw ; destroy [focus]} -padx 9 -pady 3 -text Exit |
||||
; place $base.bexit -x 340 -y 355 -anchor nw -bordermode ignore ; place |
||||
$base.b1 -x 10 -y 10 -anchor nw;'); <BR> |
||||
<BR> |
||||
</TT>This new one is just showing main window (.dw) before destroying the |
||||
"user defined window" . <BR> |
||||
Also make "Autoexec" script to show like this :<BR> |
||||
<BR> |
||||
<TT>execute_script "My first library"<BR> |
||||
Window hide .dw<BR> |
||||
open_form "My first form"</TT><BR> |
||||
</P> |
||||
|
||||
</BODY> |
||||
</HTML> |
@ -0,0 +1,45 @@ |
||||
<html> |
||||
|
||||
<title> Visual Query Builder in Tcl/Tk </title> |
||||
<body bgcolor=white> |
||||
<h1> Visual Query Builder</h1> |
||||
<hr> |
||||
This visual query builder is included in <a href='http://www.flex.ro/pgaccess'> |
||||
PgAccess</a>, a visual interface to |
||||
<a href='http://www.postgreSQL.org'> PostgreSQL</a> written entirely in |
||||
vTcl , (Visual Tcl). |
||||
|
||||
|
||||
<p align="center"> |
||||
|
||||
<embed src="qbtclet.tcl" width=590 height=485> |
||||
|
||||
</p> |
||||
|
||||
<br> |
||||
|
||||
|
||||
Visual Query Designer demo<br> |
||||
Click <a href='qbtclet.tar.gz'>here</a> to download the source </a> |
||||
created by Constantin Teodorescu with vTcl (visual Tcl), teo@flex.ro |
||||
<hr> |
||||
Facitilies<br> |
||||
- drag and drop selection of fields<br> |
||||
- drag and drop fields from a table to another do create links<br> |
||||
- move table position by dragging<br> |
||||
- point and click any link or table then press delete to delete them<br> |
||||
- modify sort order by clicking on (unsorted)<br> |
||||
- enter filter conditions as criteria (>2000 , ='item')<br> |
||||
- easy panning of table and result panels<br> |
||||
- show SQL command<br> |
||||
<br> |
||||
If you want to use it for your database, modify ql_read_struct in order to read |
||||
your table structure. |
||||
<br> |
||||
Feel free to use, modify or copy this software for non-commercial purposes.<br> |
||||
In any other case, please contact me. |
||||
<br> |
||||
FLEX Consulting Braila, ROMANIA is able to deliver high end interfaces |
||||
and any other commercial products written in Tcl/Tk just like that you have seen. |
||||
</body> |
||||
</html> |
Loading…
Reference in new issue