mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	* update .gitmodules * Update grammars.yml * Create hello.ring * Create Natural.ring * Create weblib.ring * vendor/grammars/language-ring * fix order in grammars.yml * remove two files from samples * delete hello.ring * Update languages.yml - add the R * Create hello.ring * Create natural.ring * Create weblib.ring * Create grammars.yml * Create .gitmodules * Create languages.yml * Create languages.yml * Create language-ring.txt * Update .gitmodules Prefer HTTPS links. * Update hello.ring Sample file from "real" applications (under permissive license) to train the Bayesian classifier. * Update languages.yml * Update weblib.ring Reduce the file size * Update .gitmodules * Update .gitmodules * Update .gitmodules * Update .gitmodules * Update submodule : language-ring * Update weblib.ring Sample : Using the web library. * Create weighthistory Add Sample * Rename weighthistory to weighthistory.ring * Update weblib.ring
		
			
				
	
	
		
			175 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Load "guilib.ring"
 | 
						|
 | 
						|
MyApp = new qApp
 | 
						|
{
 | 
						|
  $ApplicationObject = "oApp"   # To be used when calling events
 | 
						|
  oApp = new App
 | 
						|
  exec()
 | 
						|
  oApp.CloseDatabase()
 | 
						|
}
 | 
						|
 | 
						|
class App
 | 
						|
 | 
						|
  cDir = currentdir() + "/"
 | 
						|
  oCon
 | 
						|
  aIDs = []
 | 
						|
 | 
						|
  win1 = new qWidget()
 | 
						|
  {
 | 
						|
        setWindowTitle("Weight History")
 | 
						|
        resize(600,600)
 | 
						|
        layoutButtons = new qhboxlayout()
 | 
						|
        {
 | 
						|
          label1 = new qLabel(win1) { setText("Weight") }
 | 
						|
          text1 = new qlineedit(win1)
 | 
						|
          btnAdd = new qpushbutton(win1) {
 | 
						|
                  setText("Add")
 | 
						|
                  setClickEvent($ApplicationObject+".AddWeight()")
 | 
						|
          }
 | 
						|
          btnDelete = new qpushbutton(win1) {
 | 
						|
                  setText("Delete")
 | 
						|
                  setClickEvent($ApplicationObject+".Deleteweight()")
 | 
						|
          }
 | 
						|
          addwidget(label1)
 | 
						|
          addwidget(text1)
 | 
						|
          addwidget(btnAdd)
 | 
						|
          addwidget(btnDelete)
 | 
						|
        }
 | 
						|
        layoutData  = new qhboxlayout()
 | 
						|
        {
 | 
						|
          Table1 = new qTableWidget(win1) {
 | 
						|
                setrowcount(0)
 | 
						|
                setcolumncount(3)
 | 
						|
                setselectionbehavior(QAbstractItemView_SelectRows)
 | 
						|
                setHorizontalHeaderItem(0, new QTableWidgetItem("Date"))
 | 
						|
                setHorizontalHeaderItem(1, new QTableWidgetItem("Time"))
 | 
						|
                setHorizontalHeaderItem(2, new QTableWidgetItem("Weight"))
 | 
						|
                setitemChangedEvent($ApplicationObject+".ItemChanged()")
 | 
						|
                                   setAlternatingRowColors(true)
 | 
						|
                                   horizontalHeader().setStyleSheet("color: blue")
 | 
						|
                                   verticalHeader().setStyleSheet("color: red")
 | 
						|
          }
 | 
						|
          addWidget(Table1)
 | 
						|
        }
 | 
						|
        layoutClose = new qhboxlayout()
 | 
						|
        {
 | 
						|
          btnclose = new qpushbutton(win1) {
 | 
						|
            setText("Close")
 | 
						|
            setClickEvent("MyApp.Quit()")
 | 
						|
          }
 | 
						|
          addwidget(btnClose)
 | 
						|
        }
 | 
						|
        layoutMain = new qvboxlayout()
 | 
						|
        {
 | 
						|
          addlayout(layoutButtons)
 | 
						|
          addLayout(LayoutData)
 | 
						|
          addLayout(layoutClose)
 | 
						|
        }
 | 
						|
        setlayout(layoutMain)
 | 
						|
        self.OpenDatabase()
 | 
						|
        self.ShowRecords()
 | 
						|
        show()
 | 
						|
  }
 | 
						|
 | 
						|
  Func OpenDatabase
 | 
						|
        lCreate = False
 | 
						|
        if not fexists(cDir + "weighthistory.db")
 | 
						|
          lCreate = True
 | 
						|
        ok
 | 
						|
        new QSqlDatabase() {
 | 
						|
          this.oCon = addDatabase("QSQLITE") {
 | 
						|
                setDatabaseName("weighthistory.db")
 | 
						|
                Open()
 | 
						|
          }
 | 
						|
        }
 | 
						|
        if lCreate
 | 
						|
          new QSqlQuery( ) {
 | 
						|
                exec("create table weighthistory (id integer primary key,"+
 | 
						|
                     " f_date varchar(10),"+
 | 
						|
                     " f_time varchar(8), f_weight varchar(8) );")
 | 
						|
                delete()
 | 
						|
          }
 | 
						|
        ok
 | 
						|
 | 
						|
 | 
						|
  Func CloseDatabase
 | 
						|
        oCon.Close()
 | 
						|
 | 
						|
  Func AddWeight
 | 
						|
        cWeight = text1.text()
 | 
						|
        AddRecord(cWeight)
 | 
						|
 | 
						|
  Func DeleteWeight
 | 
						|
        Table1 {
 | 
						|
           nRow = CurrentRow()
 | 
						|
          if nRow >= 0
 | 
						|
                nID = this.aIDs[nROW+1]
 | 
						|
                new QSqlQuery( ) {
 | 
						|
                  exec("delete from weighthistory where id = " + nID )
 | 
						|
                }
 | 
						|
                Del(this.aIDs,nRow+1)
 | 
						|
                removerow(nRow)
 | 
						|
                selectrow(nRow)
 | 
						|
          ok
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
  Func AddRecord cWeight
 | 
						|
        new QSqlQuery( ) {
 | 
						|
          cStr = "insert into weighthistory (f_date,f_time,f_weight) values"+
 | 
						|
          " ('%f1','%f2','%f3')"
 | 
						|
          cDate = Date()
 | 
						|
          cTime = Time()
 | 
						|
          cStr = substr(cStr,"%f1",cDate)
 | 
						|
          cStr = substr(cStr,"%f2",cTime)
 | 
						|
          cStr = substr(cStr,"%f3",cWeight)
 | 
						|
          exec(cStr)
 | 
						|
          delete()
 | 
						|
        }
 | 
						|
        ShowRecords()
 | 
						|
        Table1.selectrow(table1.rowcount()-1)
 | 
						|
 | 
						|
 | 
						|
  Func ShowRecords
 | 
						|
        table1.setitemChangedEvent("")
 | 
						|
        aIDs = []
 | 
						|
        query = new QSqlQuery() {
 | 
						|
          exec("select * from weighthistory")
 | 
						|
          nRows = 0
 | 
						|
          this.Table1.setrowcount(0)
 | 
						|
          while movenext()
 | 
						|
                this.table1 {
 | 
						|
                  insertRow(nRows)
 | 
						|
                  this.aIDs + query.value(0).tostring()
 | 
						|
                  for x = 1 to 3
 | 
						|
                        cStr = query.value(x).tostring()
 | 
						|
                        item = new qTableWidgetItem(cStr)
 | 
						|
                        setItem(nRows,x-1,item)
 | 
						|
                  next
 | 
						|
                }
 | 
						|
                nRows++
 | 
						|
          end
 | 
						|
          delete()
 | 
						|
        }
 | 
						|
        table1.setitemChangedEvent($ApplicationObject+".ItemChanged()")
 | 
						|
 | 
						|
  Func ItemChanged
 | 
						|
        nRow =  table1.currentrow()
 | 
						|
        if nRow >= 0
 | 
						|
          myitem = Table1.item(table1.currentrow(),0)
 | 
						|
          cDate = myitem.text()
 | 
						|
          myitem = Table1.item(table1.currentrow(),1)
 | 
						|
          cTime = myitem.text()
 | 
						|
          myitem = Table1.item(table1.currentrow(),2)
 | 
						|
          cWeight = myitem.text()
 | 
						|
          new QSqlQuery( ) {
 | 
						|
                cStr = "update weighthistory set f_date ='%f1' , f_time = '%f2' , "+
 | 
						|
                "f_weight ='%f3' where id = " +  this.aIDs[nROW+1]
 | 
						|
                cStr = substr(cStr,"%f1",cDate)
 | 
						|
                cStr = substr(cStr,"%f2",cTime)
 | 
						|
                cStr = substr(cStr,"%f3",cWeight)
 | 
						|
                exec(cStr)
 | 
						|
                delete()
 | 
						|
          }
 | 
						|
        ok
 |