*!* Check for duplicates - Found records are hilighted, bold and italic
PUBLIC go_Form
go_Form = CreateObject ("frmForm")
go_Form.Visible = .T.
go_Form.Show
READ Events
CLOSE ALL
CLEAR ALL
***********************************************************************
DEFINE CLASS frmForm As Form
Width = 450
MinWidth = 450
Height = 360
MinHeight = 360
AutoCenter = .T.
Caption = "Identical Code2Check = Duplicate"
ADD OBJECT grdNames as Grid WITH ;
RecordSource = "csrAll", ColumnCount = 5, Visible = .t., Top = 12, Left = 12, Width = 426, Height = 294, Anchor = 15
ADD OBJECT cmdCancel As CommandButton WITH;
Width = 60, Height = 30, Left = 12, Top = 318, Caption = "Release", Anchor = 6
PROCEDURE Load()
CREATE CURSOR csrdemo (cDrawNo C(5), cBallNo C(3), cPartNo C(10))
INSERT INTO csrdemo VALUES ('8342C','130','61225-350')
INSERT INTO csrdemo VALUES ('8342D','130','61225-350')
INSERT INTO csrdemo VALUES ('8342C','131','834X-131')
INSERT INTO csrdemo VALUES ('8342D','131','834X-131')
INSERT INTO csrdemo VALUES ('8342C','132','834X-132')
INSERT INTO csrdemo VALUES ('8342D','132','834X-132')
INSERT INTO csrdemo VALUES ('8342C','133','61225-362')
INSERT INTO csrdemo VALUES ('8342D','133','61225-362')
INSERT INTO csrdemo VALUES ('8342C','137','834X-137')
INSERT INTO csrdemo VALUES ('8342D','137','834X-137')
INSERT INTO csrdemo VALUES ('8342C','141','834X-141')
INSERT INTO csrdemo VALUES ('8342D','141','834X-141')
INSERT INTO csrdemo VALUES ('8342D','141','834X-141')
INSERT INTO csrdemo VALUES ('8342C','150','67242-107')
INSERT INTO csrdemo VALUES ('8342D','150','67242-107')
INSERT INTO csrdemo VALUES ('8342C','152','8332-124')
INSERT INTO csrdemo VALUES ('8342D','152','8332-124')
INSERT INTO csrdemo VALUES ('8342C','153','834X-153')
INSERT INTO csrdemo VALUES ('8342D','153','834X-153')
INSERT INTO csrdemo VALUES ('8342D','153','834X-153')
INSERT INTO csrdemo VALUES ('8342D','153','834X-153')
INSERT INTO csrdemo VALUES ('8342C','154','834X-154')
INSERT INTO csrdemo VALUES ('8342D','154','834X-154')
*!* BEGIN of sql to check for duplicates
SELECT csrDemo.*, csrDemo.cDrawNo + csrDemo.cBallNo as cCode2Check, csrDupes.lDupes ;
FROM csrDemo ;
JOIN (SELECT cDrawNo, cBallNo, .T. as lDupes FROM csrDemo GROUP BY 1, 2 HAVING COUNT(cDrawNo + cBallNo) >= 2) csrDupes ;
ON csrDemo.cDrawNo + csrDemo.cBallNo = csrDupes.cDrawNo + csrDupes.cBallNo ;
UNION ALL ;
SELECT csrDemo.*, csrDemo.cDrawNo + csrDemo.cBallNo as cCode2Check, csrNoDupes.lDupes ;
FROM csrDemo ;
JOIN (SELECT cDrawNo, cBallNo, .F. as lDupes FROM csrDemo GROUP BY 1, 2 HAVING COUNT(cDrawNo + cBallNo) < 2) csrNoDupes ;
ON csrDemo.cDrawNo + csrDemo.cBallNo = csrNoDupes.cDrawNo + csrNoDupes.cBallNo ;
ORDER BY 2, 1 ;
INTO CURSOR csrAll
*!* END of sql to check for duplicates
ENDPROC
PROCEDURE grdNames.Init()
WITH ThisForm.grdNames
.Column1.Header1.Caption = "DrawNo"
.Column2.Header1.Caption = "BallNo"
.Column3.Header1.Caption = "PartNo"
.Column4.Header1.Caption = "Code2Check"
.Column5.Header1.Caption = "Duples?"
.SetAll("DynamicFontItalic", "csrAll.lDupes", "Column")
.SetAll("DynamicFontBold", "csrAll.lDupes", "Column")
.SetAll("DynamicBackColor", "ICASE(csrAll.lDupes, RGB(225,0,0), ;
MOD(ASC(RIGHT(csrAll.cDrawNo, 1)), 2) = 0, RGB(200,200,200), ;
RGB(254,254,254))", "Column")
ENDWITH
ENDPROC
PROCEDURE cmdCancel.Click()
CLEAR Events
ThisForm.Release
ENDPROC
PROCEDURE Destroy()
CLEAR Events
ThisForm.Release
ENDPROC
ENDDEFINE
***********************************************************************