Thursday, April 12, 2012

Adding a custom lookup to a form control

Saya copas dr milis,

public void lookup() 
{ 
//This lookup basis the list criteria on information in 2 tables
//All display fields come from Table1, Table2 is used for limiting criteria
//super(); 
//This Next Line initializes the the sysTableLookupClass
sysTableLookup          sysTableLookup  =
SysTableLookup::newParameters(tableNum(<TABLENAME1>), this); 
Query                   query           = New Query(); 
QueryBuildDataSource    qbdsTbl1, qbdsTbl2; 
QueryBuildRange         qbr; 
; 
//Add Tables to the data source
qbdsTbl1      = query.addDataSource(tableNum(<TABLENAME1>)); 
qbdsTbl2     = qbdsTbl1.addDataSource(tableNum(TABLENAME2)); 
//Add Query Ranges to limit List records     
qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>,<RANGEFIELDNAME1>)); 
qbr.value(<CRITERIAVALUE>); 
qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>, <RANGEFIELDNAME2>)); 
qbr.value(<CRITERIAVALUE>); 
qbr = qbdsTbl1.addRange(fieldNum(<TABLENAME1>, <RANGEFIELDNAME3>)); 
qbr.value(<CRITERIAVALUE>); 
//Since we have multiple tables in the query turn on relations
qbdsTbl1.relations(true); 
//Add Ranges to the Table2
qbr = qbdsTbl2.addRange(fieldNum(<TABLENAME2>, <RANGEFIELDNAME4>)); 
qbr.value(<CRITERIAVALUE>); 
qbdsTbl2.relations(true); 
//The next 2 lines actualy adds the fields that will be displayed in the lookup grid
sysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>)); 
sysTableLookup.addLookupfield(fieldNum(<TABLENAME1>, <DISPLAYFIELDNAME>)); 
//Hand the created query to the sysTableLookupClass
sysTableLookup.parmQuery(query); 
//Display the drop down 
sysTableLookup.performFormLookup(); 
}
 
Contoh:

//Single table example with actual table and field names instead of  place holders
public void lookup() 
{ 
//This lookup basis the list criteria on information in 2 tables
//super(); 
sysTableLookup          sysTableLookup  = 
SysTableLookup::newParameters(tableNum(salesBillOfLadingJournalTable), this); 
Query                   query           = New Query(); 
QueryBuildDataSource    qbdsJT, qbdsBLR; 
QueryBuildRange         qbr; 
; 
qbdsJT      = query.addDataSource(tableNum(salesBillOfLadingJournalTable)); 
qbdsBLR     = qbdsJT.addDataSource(tableNum(salesBLReservation)); 
qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable,isMaster)); 
qbr.value(enum2str(noYes::No)); 
qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable, custAccount)); 
qbr.value((salesBillOfLadingJournalTableMaster.CustAccount)); 
qbr = qbdsJT.addRange(fieldNum(salesBillOfLadingJournalTable, masterBLID)); 
qbr.value(&quot;&quot;&quot;&quot;); 
qbdsJT.relations(true); 
qbr = qbdsBLR.addRange(fieldNum(salesBLReservation, blOpen)); 
qbr.value(enum2str(noYes::Yes)); 
qbdsBLR.relations(true); 
sysTableLookup.addLookupfield(fieldNum(salesBillOfLadingJournalTable, BillOfLadingID)); 
sysTableLookup.addLookupfield(fieldNum(salesBillOfLadingJournalTable, salesID)); 
sysTableLookup.parmQuery(query); 
sysTableLookup.performFormLookup(); 
}
 
Lengkapnya silahkan klik disini 

 

Wednesday, April 4, 2012

How to recover deleted data from SQL Server

Untuk recover data/rows yg kedelete bisa pakai fungsi sys.fn_dblog. fungsi ini mulai ada di SQL Server 2005 ke atas.

 Select [RowLog Contents 0],* FROM   sys.fn_dblog(NULL, NULL) WHERE  AllocUnitName = 'dbo.tableName'
AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' ) AND Operation in ( 'LOP_DELETE_ROWS' )

lebih lengkapnya lihat reff ini