public function testAbs() { $objTest = new TypeTest(); $objTest->TestFloat = -1.0; $objTest->Save(); $objTest2 = new TypeTest(); $objTest2->TestFloat = -2.0; $objTest2->Save(); $objResArray = TypeTest::QueryArray(QQ::GreaterThan(QQ::Abs(QQN::TypeTest()->TestFloat), 1.0)); $this->assertEquals(1, count($objResArray)); if (count($objResArray) > 0) { $objRes = $objResArray[0]; $this->assertNotNull($objRes); if ($objRes) { $this->assertEquals(-2.0, $objRes->TestFloat); } } $objTest->Delete(); $objTest2->Delete(); }
<?php QApplication::$Database[1]->EnableProfiling(); $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Virtual('diff', QQ::MathOp('+', QQN::Person()->ProjectAsManager->Spent, QQ::Neg(QQN::Person()->ProjectAsManager->Budget))), 20), QQ::Clause(QQ::OrderBy(QQ::Virtual('diff'), 'DESC'), QQ::Expand(QQ::Virtual('diff')), QQ::Select(array(QQ::Virtual('diff'), QQN::Person()->FirstName, QQN::Person()->LastName)))); foreach ($objPersonArray as $objPerson) { _p($objPerson->FirstName . ' ' . $objPerson->LastName) . ' : ' . $objPerson->GetVirtualAttribute('diff'); _p('<br/>', false); } ?> <p><?php QApplication::$Database[1]->OutputProfiling(); ?> </p> <h2>SQL Function Example</h2> <p>Use the QQ::Abs and QQ::Sub functions to retrieve projects both over-budget and under-budget by $20.</p> <?php QApplication::$Database[1]->EnableProfiling(); $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Virtual('absdiff', QQ::Abs(QQ::Sub(QQN::Person()->ProjectAsManager->Spent, QQN::Person()->ProjectAsManager->Budget))), 20), QQ::Clause(QQ::OrderBy(QQ::Virtual('absdiff'), 'DESC'), QQ::Expand(QQ::Virtual('absdiff')), QQ::Select(array(QQ::Virtual('absdiff'), QQN::Person()->FirstName, QQN::Person()->LastName)))); foreach ($objPersonArray as $objPerson) { _p($objPerson->FirstName . ' ' . $objPerson->LastName) . ' : ' . $objPerson->GetVirtualAttribute('diff'); _p('<br/>', false); } ?> <p><?php QApplication::$Database[1]->OutputProfiling(); ?> </p> </div> <?php require '../includes/footer.inc.php';
/** * Tests to ensure the example to work */ public function testExample() { $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Sub(QQN::Person()->ProjectAsManager->Spent, QQN::Person()->ProjectAsManager->Budget), 20)); $this->assertGreaterThan(0, count($objPersonArray)); foreach ($objPersonArray as $objPerson) { $this->assertNotNull($objPerson->FirstName); $this->assertNotNull($objPerson->LastName); } $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Virtual('diff', QQ::Sub(QQN::Person()->ProjectAsManager->Spent, QQN::Person()->ProjectAsManager->Budget)), 20), QQ::Clause(QQ::OrderBy(QQ::Virtual('diff'), 'DESC'), QQ::Expand(QQ::Virtual('diff')))); $this->assertGreaterThan(0, count($objPersonArray)); foreach ($objPersonArray as $objPerson) { $this->assertNotNull($objPerson->FirstName); $this->assertNotNull($objPerson->LastName); $this->assertNotNull($objPerson->GetVirtualAttribute('diff')); } $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Virtual('diff', QQ::MathOp('-', QQN::Person()->ProjectAsManager->Spent, QQN::Person()->ProjectAsManager->Budget)), 20), QQ::Clause(QQ::OrderBy(QQ::Virtual('diff'), 'DESC'), QQ::Expand(QQ::Virtual('diff')), QQ::Select(array(QQ::Virtual('diff'), QQN::Person()->FirstName, QQN::Person()->LastName)))); $this->assertGreaterThan(0, count($objPersonArray)); foreach ($objPersonArray as $objPerson) { $this->assertNotNull($objPerson->FirstName); $this->assertNotNull($objPerson->LastName); $this->assertNotNull($objPerson->GetVirtualAttribute('diff')); } $objPersonArray = Person::QueryArray(QQ::GreaterThan(QQ::Virtual('absdiff', QQ::Abs(QQ::Sub(QQN::Person()->ProjectAsManager->Spent, QQN::Person()->ProjectAsManager->Budget))), 20), QQ::Clause(QQ::OrderBy(QQ::Virtual('absdiff'), 'DESC'), QQ::Expand(QQ::Virtual('absdiff')), QQ::Select(array(QQ::Virtual('absdiff'), QQN::Person()->FirstName, QQN::Person()->LastName)))); $this->assertGreaterThan(0, count($objPersonArray)); foreach ($objPersonArray as $objPerson) { $this->assertNotNull($objPerson->FirstName); $this->assertNotNull($objPerson->LastName); $this->assertNotNull($objPerson->GetVirtualAttribute('absdiff')); } }