* °³¿ä
OZ Application ¿¡¼ OZ Report¸¦ ½ÇÇà ÇÒ ¶§ µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ µÎ ¹ø Á¶È¸ÇÏÁö ¾Ê±â À§ÇØ Application¿¡ Á¶È¸µÈ µ¥ÀÌÅ͸¦ Report·Î ³Ñ±æ ¼ö ÀÖ½À´Ï´Ù. Application¿¡¼ SDMÆÄÀÏÀ» »ý¼ºÇÏ¿© ¸®Æ÷Æ®¿¡¼ ÇØ´ç SDM ÆÄÀÏ·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿Í º¸°í¼¸¦ º¸¿©ÁÝ´Ï´Ù.
* »ó¼¼ ¼³¸í
SDM »ý¼º COM API ±â´É
Server
SDMÀ» »ý¼ºÇÏ´Â COM API°¡ ±â´ÉÀ» ¼³¸íÇÕ´Ï´Ù.
SDMÀ» »ý¼ºÇÏ´Â °´Ã¼´Â Concurrent Mode¿Í Batch Mode·Î ¾Æ·¡¿Í °°½À´Ï´Ù.
n Concurrent Mode (oz5.0 ÀÌ»ó Áö¿øµÊ)
OZFXDataModule.OZFXConcurrentDataModule
n Batch Mode
OZFXDataModule.OZFXBatchDataModule
n ¼Ó¼º
n ÇÔ¼ö
¡Ø Âü°í»çÇ× : Çʵå ŸÀÔ »ó¼ö °ª
Çʵå ŸÀÔ |
»ó¼ö °ª |
Áö¿ø ¿©ºÎ |
TINYINT |
-6 |
Áö¿øÇÔ |
SMALLINT |
5 |
Áö¿øÇÔ |
BIGINT |
-5 |
Áö¿øÇÔ |
INTEGER |
4 |
Áö¿øÇÔ |
REAL |
7 |
Áö¿øÇÔ |
FLOAT |
6 |
Áö¿øÇÔ |
DOUBLE |
8 |
Áö¿øÇÔ |
BIT |
-7 |
Áö¿øÇÔ |
CLOB |
2005 |
Áö¿ø ¾ÈÇÔ |
CHAR |
1 |
Áö¿øÇÔ |
VARCHAR |
12 |
Áö¿øÇÔ |
LONGVARCHAR |
-1 |
Áö¿øÇÔ |
BINARY |
-2 |
Áö¿ø ¾ÈÇÔ |
VARBINARY |
-3 |
Áö¿ø ¾ÈÇÔ |
BLOB |
2004 |
Áö¿ø ¾ÈÇÔ |
LONGVARBINARY |
-4 |
Áö¿ø ¾ÈÇÔ |
NUMERIC |
2 |
Áö¿øÇÔ |
DECIMAL |
3 |
Áö¿øÇÔ |
DATE |
91 |
Áö¿øÇÔ |
TIME |
92 |
Áö¿øÇÔ |
TIMESTAMP |
93 |
Áö¿øÇÔ |
Report Viewer
OZ Report Viewer 5.0¿¡¼´Â SDM COM API¸¦ »ç¿ëÇÏ¿© Concurrent Mode·Î »ý¼ºÇÑ SDM ÆÄÀÏÀ» ¿¬µ¿ÇÏ´Â ±â´ÉÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù.
¡Ø Âü°í»çÇ× : ±âÁ¸ 4.0 ÀÌÇÏ ¹öÀü¿¡¼´Â Batch Mode·Î »ý¼ºÇÑ SDM ÆÄÀÏ¿¡ ´ëÇؼ¸¸ ¿¬µ¿ °¡´ÉÇÕ´Ï´Ù.
Àû¿ë ¿¹
º» ¸Å´º¾ó¿¡¼´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ COM API¸¦ ÅëÇÏ¿© Concerrent Mode·Î SDM ÆÄÀÏÀ» »ý¼ºÇÑ ÈÄ ÇØ´ç SDMÀ¸·Î º¸°í¼¸¦ ¹Ì¸®º¸±âÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
- Button1(SDM ÆÄÀÏ »ý¼º)
var dm = new ActiveXObject("OZFXDataModule.OZFXConcurrentDataModule");
//SDM ÆÄÀÏ »ý¼º °æ·Î
dm.fileName = "C:\\MasterDetail.sdm";
dm.addDataSet("OZParam", "");
var masterDataSetName = "Master";
dm.addDataSet(masterDataSetName, "");
dm.addField(masterDataSetName, "Region", 12);
var detailDataSetName = "Detail";
dm.addDataSet(detailDataSetName, masterDataSetName);
dm.addField(detailDataSetName, "Region", 12);
dm.addField(detailDataSetName, "BranchOffice", 12);
dm.addField(detailDataSetName, "CarID", 12);
dm.addField(detailDataSetName, "Quantity", 4);
dm.startBinding();
//master
dm.startSet(masterDataSetName);
dm.setValue(1, "¼¿ï");
dm.completeRow();
dm.setValue(1, "°æ±â");
dm.completeRow();
//detail
dm.startSet(detailDataSetName);
dm.setValue(1, "¼¿ï");
dm.setValue(2, "´ë¹æ");
dm.setValue(3, "H04");
dm.setValue(4, 5);
dm.completeRow();
dm.setValue(1, "¼¿ï");
dm.setValue(2, "Á¾·Î");
dm.setValue(3, "D04");
dm.setValue(4, 12);
dm.completeRow();
dm.endSet(detailDataSetName);
dm.startSet(detailDataSetName);
dm.setValue(1, "°æ±â");
dm.setValue(2, "±¤ÁÖ");
dm.setValue(3, "H04");
dm.setValue(4, 7);
dm.completeRow();
dm.setValue(1, "°æ±â");
dm.setValue(2, "ºÎõ");
dm.setValue(3, "04");
dm.setValue(4, 12);
dm.completeRow();
dm.endSet(detailDataSetName);
dm.endSet(masterDataSetName);
dm.endBinding();
dm.finish();
µ¥ÀÌÅͼÂÀ» ¸®Æ÷Æ®·Î Àü´ÞÇÏ´Â ¿¹Á¦
OZ Application Designer¿¡¼ Á¶È¸ÇÑ DataSetÀ» SDMÆÄÀÏ·Î »ý¼ºÇÑ ÈÄ ¸®Æ÷Æ®¸¦ ¶ç¿ì´Â »ùÇÃÀÔ´Ï´Ù. Application¿¡¼ ¼¹ö¿¡¼ °¡Á®¿Â µ¥ÀÌÅ͸¦ ¸®Æ÷Æ® È£Ãâ½Ã ´Ù½Ã °¡Á®¿ÀÁö ¾Ê°í ¸®Æ÷Æ®·Î Àü´ÞÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
1. OZ Application Designer 4.0\bin\ Æú´õ¿¡ OZFXDataModule.dll ÆÄÀÏ(÷ºÎµÊ)À» º¹»çÇϼ¼¿ä.
C:\Program Files\FORCS\OZ XStudio 4.0\OZ Application Designer 4.0\bin\OZFXDataModule.dll
2. ½ÃÀÛ-½ÇÇà¿¡¼ cmd ¸¦ Ä£ÈÄ ÄܼÖâ¿¡¼ ¾Æ·¡¿Í °°ÀÌ registry¿¡ dllÆÄÀÏÀ» µî·ÏÇϼ¼¿ä.
C:\Documents and Settings\MyHome>regsvr32 "C:\Program Files\FORCS\OZ XStudio 4.0 \OZ Application Designer 4.0\bin\OZFXDataModule.dll" |
¼º°øÇÏ¸é ¾Æ·¡°ú °°Àº ¸Þ½ÃÁö°¡ ³ª¿É´Ï´Ù.
--------------------------- RegSvr32 --------------------------- C:\Program Files\FORCS\OZ XStudio 4.0\OZ Application Designer 4.0\bin\OZFXDataModule.dllÀÇ DllRegisterServer ¼º°ø --------------------------- È®ÀÎ --------------------------- |
3. ÷ºÎµÈ CreateSDM.oza ¿¡ ÀÖ´Â °Í ó·³ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
var dm = new ActiveXObject("OZFXDataModule.OZFXConcurrentDataModule");
/* oz4.0ÀÌÇÏÀÎ °æ¿ì¿¡´Â ¾Æ·¡¿Í °°ÀÌ »ç¿ë
var dm = new ActiveXObject("OZFXDataModule.OZFXBatchDataModule");
*/
//SDM ÆÄÀÏ »ý¼º °æ·Î
dm.fileName = "C:\\temp.sdm";
var set = "set1";
dm.addDataSet("OZParam", "");
dm.addDataSet(set, "");
var FXDataModule = _GetFXDataModule();
var FXDataSet = FXDataModule.GetFXDataSet("set1");
dm.addField(set, FXDataSet.GetColumnName(0), 4);
dm.addField(set, FXDataSet.GetColumnName(1), 12);
dm.addField(set, FXDataSet.GetColumnName(2), 12);
dm.startBinding();
dm.startSet(set);
var ColumnCount = FXDataSet.GetColumnCount();
var RowCount = FXDataSet.GetRowCount();
for(i=0; i<RowCount; i++) {
for(j=0; j<ColumnCount; j++) {
var str = FXDataSet.GetStringDataByIndex(i, j);
dm.setValue(j+1, str);
}
dm.completeRow();
}
dm.endSet(set);
dm.endBinding();
dm.finish();
var ReportControl = ReportBoard.GetChild("ReportControl1");
//Parameter ÃʱâÈ
ReportControl.InitUserParameter();
//ReportControl.AddReportParameter("connection.usingusl","true");
// º¸°í¼ ¼³Á¤
ReportControl.ReportViewerURL = "ozp://AppSample/CreateSDM/sdmReport.ozr";
// ºä¾î Äֿܼ¡ µð¹ö±× Á¤º¸ Ç¥½Ã
ReportControl.AddReportParameter( "information.debug","true");
//¼¹ö·ÎºÎÅÍ µ¥ÀÌÅ͸¦ °¡Á®¿ÃÁö ¿©ºÎ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ´ÙÀ½ ¼³Á¤À¸·Î ·ÎÄ÷κÎÅÍ µ¥ÀÌÅÍ °¡Á®¿È
ReportControl.AddReportParameter("connection.datafromserver", "false");
// º¸°í¼¿¡¼ »ç¿ëÇÏ´Â ODI ÆĶó¹ÌÅÍ ¼³Á¤
ReportControl.AddReportParameter( "odi.odinames", "sdmReport");
ReportControl.AddReportParameter("odi.sdmReport.usescheduleddata", "c:\\temp.sdm");
// ¹Ì¸®º¸±â
ReportControl.AddReportParameter("viewer.isframe", "false");
ReportControl.AddReportParameter("viewer.mode", "preview");
ReportControl.ApplyReport();
// Á¦Ç° ¸ñ·Ï º¸°í¼ ȸéÀ» Æ˾÷À¸·Î ¶ç¿ì±â
This.GetBoard().ShowDialog(ReportBoard.Name, "º¸°í¼", false, 0, 0, true, true, true); |
4. ¸®Æ÷Æ® ODI »ý¼º (sdmReport.odi)
¸®Æ÷Æ® µðÀÚÀνà ÇÊ¿äÇÑ ODIÆÄÀÏÀ» ¸¸µì´Ï´Ù. Application¿¡¼ ³Ñ±â´Â µ¥ÀÌÅͼ ±¸Á¶¿Í µ¿ÀÏÇÑ ODIÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù. µ¥ÀÌÅͼҽº´Â JDBC, UDS, FileStore... »ó°ü¾øÀÌ °¡´ÉÇÕ´Ï´Ù.
¸¸¾à ¸®Æ÷Æ®°¡ 5.0 ¹öÀüÀ̸é Application¿¡¼ ¸¸µé¾îÁø SDMÆÄÀÏ·Î ODIÆÄÀÏÀ» »ý¼ºÇÏÁö ¾Ê°í ReportDesigner¿¡¼ FXDataModule·Î ¹Ù·Î »ý¼ºÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
(°ü·Ã¹®¼ : http://www.oztn.net/kb/article/kbrpt/122845539386700 )
5. º¸°í¼ OZR »ý¼º (sdmReport.ozr)
À§ÀÇ 4¹ø ODI¸¦ Ãß°¡ÇÑ º¸°í¼ ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù.
6. OZFXDataModule.dll ¹èÆ÷
OZFXDataModule.dllÀ» ¼³Ä¡Çϱâ À§ÇØ ¼¹ö¿¡ ÀÖ´Â ¾îÇø®ÄÉÀÌ¼Ç ºä¾î¸¦ ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
"AppViewer\ozaviewer.idf" ÆÄÀÏ¿¡ ¸¶Áö¸· ºÎºÐ¿¡ ¾Æ·¡ ³»¿ëÀ» Ãß°¡Çϼ¼¿ä
;copy & register dll file for OZFXDataModule [OZFXDataModule] EntryVersion=4000,2008,1029,100 file=OZFXDataModule.zip entry=OZFXDataModule.dll clsid={D26A8714-95B8-4520-A185-8132B9DB3DE4} compress = zip command = RegisterServer destDir = <THIS>/bin |
±×¸®°í ÷ºÎ ÆÄÀÏÀÇ OZFXDataModule.zipÀ» "AppViewer" Æú´õ¿¡ ¾÷·ÎµåÇÏ½Ã¸é ºä¾î°¡ ¼³Ä¡µÉ ¶§ OZFXDataModule.dllµµ °°ÀÌ ¼³Ä¡µË´Ï´Ù.
* ÷ºÎÀÚ·á ¼³¸í
- OZFXDataModule.dll : OZFXDataModule ActiveXObject¸¦ ÂüÁ¶ÇÒ ¶§ »ç¿ëµÊ
- OZFXDataModule.zip : OZFXDataModule.dll À» ÀÎÁõÇÑ ÆÄÀÏ. ºä¾î¹èÆ÷½Ã »ç¿ëµÊ.
|