|
ÀûÓÃXMLʵÏÖͨÓÃWEB±¨±í´òÓ¡
|
|
|
|
2003-02-15¡¤ ¡¤Â¬Ñ塤¡¤Microsoft
|
|
1 2 3 4 5 ÏÂÒ»Ò³
¡¡¡¡¿ª·¢B/S½á¹¹µÄÓ¦ÓóÌÐò×îÍ·ÌÛµÄÎÊÌâ¿ÉÄܾÍÊDZ¨±í´òÓ¡ÁË£¬ÓÉÓÚÖ»ÄܲÉÓÃä¯ÀÀÆ÷À´×÷ΪÓû§½çÃæ½øÐн»»¥£¬ËùÒÔ²»Äܾ«È·¿ØÖƿͻ§¶ËµÄ´òÓ¡»ú¡£¶øºÜ¶àB/S½á¹¹µÄÓ¦ÓóÌÐò³£³£ÐèÒªÍê³É·Ç³£¸´Ôӵı¨±í´òÓ¡ÈÎÎñ¡£¶ø¿¿IE×Ô´øµÄÒ³Ãæ´òÓ¡¹¦ÄÜÒ»°ã²»ÄÜÂú×ãÐèÒª¡£
¡¡¡¡²ÉÓÃCrystal
ReportÊÇÒ»ÖÖ´óÐͱ¨±íϵͳ³£ÓúÍÍÆ¼öµÄ½â¾ö·½°¸£¬µ«ÊÇÈç¹ûÎÒÃÇÖ»ÐèÒª½øÐÐһЩС¹æÄ£µÄ±¨±í´òÓ¡µÄ»°£¬Crystal
ReportÔòÏÔµÃÅÓ´óÂé·³ÁËÒ»µã£¬¿É¶¨ÖÆÐÔÒ²²»Ì«ºÃ£¬ËüµÄ´òӡʵ¼ÊÉÏÒ²ÊÇÀûÓÃÁËIEµÄ´òÓ¡¹¦ÄÜ£¬Ò²²»Äܾ«È·¿ØÖÆ´òӡЧ¹û£¬¶øÇÒÐèÒªÄú¶ÔËü½øÐÐ×¢²á¡£
¡¡¡¡ËùÒÔÎÒÃÇÕâÀïÌÖÂÛµÄÊÇÁíÍâÒ»ÖÖ°ì·¨£¬¼òµ¥À´Ëµ£¬Èç¹ûÄúÓÐÏÂÁÐÐèÇóÖеÄÈκÎÒ»Ìõ£¬ÄÇô¾Í¿ÉÒÔ³¢ÊÔ²ÉÓñ¾·½°¸¡£
¡¡¡¡·½°¸ÊÊÓÃÐÔ
¡¡¡¡1. Ô¶³ÌÊý¾Ý´òÓ¡¡£ÐèÒª´òÓ¡µÄÊý¾Ý²¢²»ÔÚ±¾µØ£¬±ØÐë½øÐÐÔ¶³Ì¶ÁÈ¡¡£
¡¡
¡¡¡¡2. ÐèÒª¾«È·¿ØÖÆ´òӡЧ¹û£¬°üÀ¨Ò³Ãæ¸ñʽ£¬·ÖÒ³£¬¸½¼ÓÌõÄ¿£¬±í¸ñµÈ¡£
¡¡¡¡3. ³öÓÚ°²È«ÐÔ¿¼ÂÇ£¬²»ÄÜÖ±½ÓÁ¬½Óµ½Êý¾Ý¿â¡£
¡¡¡¡·½°¸ÔÀí
¡¡¡¡ÆäʵÔÀíºÜ¼òµ¥£¬Í¨¹ýXMLÇ¿´óµÄ×Ô¶¨Ò幦ÄÜ£¬ÎÒÃDZãÄÜ·½±ãµÄ×Ô¶¨Òå³öÎÒÃÇËùÓÐÐèÒªµÄ¸ñʽ¿ØÖƱêÇ©£¬ÔÚ·þÎñÆ÷¶Ë½øÐж¯Ì¬±àÂëºóͨ¹ýWEB·þÎñÆ÷´«µ½¿Í»§¶Ë£¬È»ºóÔÚ¿Í»§¶Ë½øÐиñʽ½âÎö£¬¸ù¾Ý·þÎñÆ÷¶Ë¶¨ÒåµÄ´òÓ¡¸ñʽ´Ó¿Í»§¶ËÖ±½Ó¿ØÖÆ´òÓ¡»ú´òÓ¡³öÎÒÃÇÐèÒªµÄ±¨±í¡£
¡¡¡¡¼¼ÊõÑ¡Ôñ
¡¡¡¡ÓÉÓÚ±¨±í´òÓ¡±È½Ï¸´ÔÓ£¬ÎªÁËÄܹ»¾«È·¿ØÖÆ´òÓ¡¸ñʽ£¬²»ÄܲÉÓÃWEBä¯ÀÀÆ÷Ò³Ãæ´òÓ¡µÄ·½Ê½½øÐб¨±í´òÓ¡¹¤×÷£¬Ö»ÄܲÉÈ¡×Ô±à³Ì¿ØÖƿͻ§¶ËµÄ´òÓ¡¹¤×÷¡£ÓÉÓÚ.NET
frameworkµÄwinform¿ÉÒÔÖ±½ÓǶÈëµ½ÍøÒ³ÖУ¬ÎÒÃÇÔÚÕâÀïÑ¡ÓÃÁ˸ü¼Êõ£¬µ«ÊÇÇë×¢Ò⣬ÎÒÕâô×ö²¢²»´ú±í.NET
winformÊÇΨһµÄÑ¡Ôñ£¬ÆäʵÄú¿ÉÒÔ²ÉÓÃÈκοͻ§¶Ë´úÌæËü£¬ÀýÈçJava Applet»òÕßActiveX£¬ÉõÖÁÊÇÒ»¸öÆÕͨµÄÓ¦ÓóÌÐò¶¼ÄÜÐС£
¡¡¡¡²»ÔÊÐíÖ±½ÓÁ¬½Óµ½Êý¾Ý¿â£¬Òò´ËÖ»ÄܲÉÓÃXMLÎļþ½øÐÐÖмäÊý¾Ý½»»»¸ñʽ£¬Í¨¹ýÆÕͨWEB·þÎñÆ÷µÄĬÈÏ80¶Ë¿Ú½øÐÐÊý¾Ý´«Êä¡£ÊÂʵÉÏ£¬ÎÒ¼òÖ±ÕÒ²»µ½ÆäËü¸üÀíÏëµÄ·½°¸ÁË£¬µ±È»£¬web serviceÒ²ÐíÄÜËãÊÇÒ»ÖÖ£¬µ«ÊÇËü²ÉÓõÄÊÇSOAP´«ÊäÊý¾Ý£¬´ÓÔÀíÉÏ¿´£¬Ó¦¸ÃºÍÎÒÃDzÉÓõÄXMLÊôÓÚͬÖÖÀ༼Êõ¡£
¡¡¡¡ÔÙ²¹³ä˵Ã÷Ò»ÏÂÎÒΪʲôҪ²ÉÓÃ.NET±àдµÄÊÜ¿Ø×é¼þ£¬ÓŵãÔÚÓÚ£º
¡¡¡¡1. Ëü²»ÐèÒª½øÐпͻ§¶Ë×¢²á¡£Ïà¶ÔÓÚActiveXµÄÒ»¸ö´óÓŵ㡣
¡¡¡¡2. ±ÈActiveX°²È«ÐԸߡ£ÔÚ.NET Common
Language RuntimeµÄ¿ØÖÆÖ®ÏÂÔËÐÐ
¡¡¡¡3. ±àд·½±ã¡£ÎÒϲ»¶C#ºÍVisual Studio .NET¡£
¡¡¡¡4. ÓкÜÇ¿´óµÄ´òÓ¡¿ØÖƹ¦ÄÜ¡£ÀûÓÃ.NET
frameworkÀà¿â¡£
¡¡¡¡5. Ö±½ÓÖ§³ÖXML¼¼Êõ¡£
¡¡¡¡6. ºÍIE¼æÈÝÐԸߡ£Í¬ÎªMicrosoft¹«Ë¾²úÆ·¡£
¡¡¡¡ÁíÍ⣬ÐèҪעÒâÒ»µã¾ÍÊÇ£¬ÔÚ.NET
framework sp1ºÍsp2ÖÐĬÈϵݲȫ¼¶±ðÊDz»ÄÜÖ±½ÓÔËÐÐÊÜ¿Ø×é¼þµÄ£¬µ«ÊÇÔÚ.NET
framework 1.1 betaÖÐÓÖ¸ÄÁË»ØÀ´£¬¿ÉÒÔÖ±½ÓÔËÐÐÁË¡£
¡¡¡¡·þÎñÆ÷¶ËÄúÔò¿ÉÒÔ²ÉÓÃÏÖÓеķþÎñÆ÷ϵͳºÍÊý¾Ý¿â£¬²»ÐèÒªÐÂÌí¼ÓÈκÎÐÂÓ²¼þÉ豸ºÍеÄ.NET·þÎñÆ÷¹ÜÀíÈËÔ±£¬ËûÃÇÍùÍùÊÇЩҪÇóÄøßнµÄ¼Ò»ï¡£ £º£©
¡¡¡¡·þÎñÆ÷µÄ¹¤×÷Á÷³ÌΪ£º
¡¡¡¡1. ½ÓÊܿͻ§¶ËµÄ±ê×¼XMLÄ£°æ²éѯ¡£
¡¡¡¡2. ÐèÒª¸ù¾Ý²éѯҪÇó½«Êý¾Ý¿âÊý¾Ý¸ñʽת»»³É±ê×¼µÄXMLÊý¾Ý¸ñʽ¡£
¡¡¡¡3. ½«XMLÊý¾Ýͨ¹ý80¶Ë¿Ú·¢ËͳöÈ¥¡£
¡¡¡¡¿ÉÐÐÐÔ·ÖÎö
¡¡¡¡ÓÉÓÚÏÖÔڵĴ󲿷ÖÊý¾Ý¿â¶¼Ö§³ÖXML¸ñʽµÄÊý¾Ý²éѯºÍת»»£¬ÈçSQL Server
2000£¬Oracle 9i£¬IBM DB2µÈ´óÐ͹ØÏµÐÍÊý¾Ý¿â¡£Ö»ÐèҪͨ¹ý¼òµ¥µÄÉèÖþÍÄÜÖ±½Ó½øÐÐXMLÊý¾Ýת»»¹¤×÷¡£Èç¹ûÊý¾Ý¿â²»ÄÜÖ§³ÖÖ±½ÓXMLÊý¾Ýת»»£¬Ò²¿ÉÒÔ¼®ÓÉһЩ·þÎñÆ÷¶Ë½Å±¾³ÌÐò½øÐнű¾×ª»»¹¤×÷£¬±ÈÈçJSP£¬ASP£¬PHPµÈµÈ¡£
¡¡¡¡¿Í»§¶ËÒ²²»ÐèÒªÈκÎÌØÊâµÄÉèÖù¤×÷£¬½öÐèÒª°²×°Ò»¸ö´óСΪ21MµÄ.NET framework·Ö·¢°ü£¬È»ºóÖ±½Ó´ò¿ªÍøÒ³¾Í¿ÉÒÔ½øÐй¤×÷¡£Ò²Ã»ÓвÙ×÷ϵͳÏÞÖÆ£¬´Ówindows 98µ½windows xp¶¼ÄܺܺõÄÖ§³Ö¡£
|
ÉìËõÐԺͰ²È«ÐÔ
¡¡¡¡ÉìËõÐÔ
¡¡¡¡ÓÉÓÚ²ÉÓõÄÊÇXML±ê×¼Êý¾Ý¸ñʽ×÷ΪÖмäÊý¾Ý½»»»£¬Òò´Ë±¾½â¾ö·½°¸¾ßÓзdz£ºÃÉìËõÐÔ£¬ÀýÈ磬¿Í»§¶ËµÄ.NET¿Ø¼þ¿ÉÒÔ²ÉÓÃJAVA APPLET¡¢ACTIVX»òÕßÊÇVB£¬VCµÈ±àдµÄ¿Í»§¶ËÓ¦ÓóÌÐòÖ±½ÓÌæ»»¡£·þÎñÆ÷Ò²¿ÉÒÔÈÎÒâÑ¡Ôñ²ÉÓÃIIS»òAPACHEµÈWEB·þÎñÆ÷¡£Êý¾Ý¿âÒ²¿ÉÒÔ²ÉÓÃÈÎÒâÒ»ÖÖÊý¾Ý¿â¡£°üÀ¨SQL Server£¬Oracle»òÕßÊÇAccessµÈ¡£ÕâµãÉÏÎÄÒѾ̸µ½¹ý£¬ÒòΪÎÄÕµij¤Ò»µã²¢²»»áʹË͸øÎÒµÄTÐô´óÒ»ºÅ£¬ÕâÀïÔÙÇ¿µ÷Ò»±éÖ»ÊÇΪÁ˼ÓÉî¶ÁÕß¶ÔXMLµÄ¿çƽ̨ÐÔµÄÈÏʶ¡£ £º£©
¡¡¡¡°²È«ÐÔ
¡¡¡¡ÓÉÓÚ²ÉÓõÄÊÇÆÕͨWEB·þÎñÆ÷´«ËÍÊý¾Ý£¬Òò´Ë¿ÉÒÔÖ±½Ó²ÉÓÃSSL°²È«Ì×½Ó×ÖµÈÒѾ³ÉÊìµÄWEB¼ÓÃܼ¼Êõ¡£Í¬Ê±»¹¿ÉÒÔ¶ÔXML½øÐÐÊý¾ÝËã·¨¼ÓÃÜ£¬ÔÚ¿Í»§¶ËÔÙ½øÐнâÃÜ£¬±£Ö¤ÁË´«ÊäµÄ°²È«ÐÔ¡£
¡¡¡¡ÓÉÓÚ²ÉÓõÄÊÇ80¶Ë¿Ú£¬²»ÐèÒªÔÙÁíÍâÐÂÔö¼ÓרÓö˿ڣ¬¼õÉÙÁ˰²È«Â©¶´µÄ¿ÉÄÜÐÔ£¬Í¬Ê±»¹ÄÜ·½±ãµÄ´©¹ýË«·½µÄµÄÍøÂç·À»ðǽµÈ±£»¤É豸¡£
¡¡¡¡·½°¸Éè¼ÆÍ¼

¡¡¡¡¸ñʽ¶¨Òå
¡¡¡¡ÎªÁËÄÜ×Ô¼º¿ØÖÆ´òÓ¡µÄ¸ñʽ£¬ÎÒÃǶ¨ÒåÁËÏÂÁеĸñʽ±êÇ©£¬ÆäÖÐÔÚÃüÃûÉϲο¼ÁËHTMLµÄÃüÃû°ì·¨£¬ËùÒÔ»ù±¾ÉÏÊìϤHTMLµÄ¶¼ÄÜÒ»¿´¾ÍÄÜÃ÷°×±êÇ©µÄ¾ßÌ庬Òå¡£Èç¹ûÄú¾õµÃÕâЩ±êÇ©µÄ±í´ïÄÜÁ¦»¹²»¹»Ç¿£¬Äú»¹¿ÉÒÔ×Ô¼º¶¨ÒåһЩ¸ü¶à¸ü¾«È·µÄ¸ñʽ±êÇ©¡£
¡¡¡¡±êǩӦÓÃʾÀý£º
|
£¼root£¾
£¼pagesetting£¾
£¼Landscape£¾true£¼/Landscape£¾
£¼paperkind£¾A4£¼/paperkind£¾
£¼paperwidth£¾210£¼/paperwidth£¾
£¼paperheight£¾297£¼/paperheight£¾
£¼pageleft£¾0£¼/pageleft£¾
£¼pageright£¾0£¼/pageright£¾
£¼pagetop£¾0£¼/pagetop£¾
£¼pagebottom£¾0£¼/pagebottom£¾
£¼/pagesetting£¾
£¼reporttable£¾
£¼text
x="450" y="40" fontname="ºÚÌå"
fontsize="24" fontcolor="Black"
b="true" i="false" u="true"£¾×îгɽ»ºÏͬÐÅÏ¢£¼/text£¾
£¼text
x="70" y="100" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="true"£¾ÖƱíʱ¼ä£º2002Äê0ÔÂ10ÈÕ£¼/text£¾
£¼text
x="910" y="100" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="true"£¾µ¥Î»£ºÔª£¼/text£¾
£¼table
x="65" y="130" border ="1" bordercolor="Black"
maxlines="28"£¾
£¼tablehead£¾
£¼tr
height="25"£¾
£¼td
width="90" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾ºÏͬºÅ£¼/td£¾
£¼td
width="90" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾²úÆ·Ãû³Æ£¼/td£¾
£¼td
width="50" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾³É½»Á¿£¼/td£¾
£¼td
width="50" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾³É½»¼Û£¼/td£¾
£¼td
width="50" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾³É½»½ð¶î£¼/td£¾
£¼td
width="50" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾¹Òµ¥Á¿£¼/td£¾
£¼td
width="50" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾Æðʼ¼Û£¼/td£¾
£¼td
width="330" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾Âô·½£¼/td£¾
£¼td
width="330" align="center" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾Âò·½£¼/td£¾
£¼/tr£¾
£¼/tablehead£¾
£¼tablebody£¾
£¼tr
height="25"£¾
£¼td
width="100" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾20021010015£¼/td£¾
£¼td
width="100" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White"£¾CNR£¼/td£¾
£¼td
width="70" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾93£¼/td£¾
£¼td
width="70" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White"£¾6680£¼/td£¾
£¼td
width="70" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾621240£¼/td£¾
£¼td
width="70" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White"£¾93£¼/td£¾
£¼td
width="70" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾6680£¼/td£¾
£¼td
width="200" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾ºþ±±Ê¡¹úÓªÐÂÐÇÍÏÀ»ú³§£¼/td£¾
£¼td
width="200" align="left" fontname="ËÎÌå"
fontsize="12" fontcolor="Black"
b="true" i="false" u="false"
bgcolor="White"£¾Öл¯¹ú¼ÊóÒ׹ɷÝÓÐÏÞ¹«Ë¾£¼/td£¾
£¼/tr£¾
¡¡¡.
£¼/tablebody£¾
£¼tablefoot£¾
£¼/tablefoot£¾
£¼/table£¾
£¼/reporttable£¾
£¼/root£¾
|
¡¡¡¡×¢ÒâÊÂÏ
¡¡¡¡a) Èç¹û²ÉÓ÷þÎñÆ÷½Å±¾¶¯Ì¬Éú³ÉXMLÎĵµÊ±£¬·¢ËÍÄÚÈÝÀàÐÍÓ¦¸ÃÉèÖÃΪtext/xml£¨ÆÕͨhtmlÒ³ÃæÎªtext/html£©£¬×Ö·û±àÂëÓ¦¸ÃΪUTF-8£¬·ñÔò»á³öÏÖ±àÂë´íÎóÎÊÌâ¡£
¡¡¡¡b) Ó¦¸ÃÑϸñ°´ÕÕXML¹æ¶¨µÄ¸ñʽÀ´Éú³ÉÎļþ£¬·ñÔòXML½âÎöÆ÷½«²»»áÓèÒÔ½âÎö¡£
¡¡¡¡2. ¿Í»§¶Ë
¡¡¡¡¿ÉÒÔ²ÉÓÃÈÎÒâÓ¦ÓóÌÐòÀ´¶ÁÈ¡·þÎñÆ÷¶ËÉú³ÉµÄXMLÎļþ£¬Èç¹û²ÉÓÃVB¡¢DELPHIµÈ×ÀÃæÓ¦ÓÃÈí¼þ¿ª·¢¹¤¾ß£¬Ôò¿ÉÒÔʹÓÃMSXMLµÄCOM½âÎöÆ÷¡£ÍƼö²ÉÓÃ.NET£¬ÄÚ²¿ÒѾ¼¯³ÉÁËXML½âÎöÆ÷£¬Ö±½Ó¾Í¿ÉÒÔͨ¹ýʹÓÃ.NETÀà¿âµ÷Ó᣼ȿÉÒÔ×ö³É×ÀÃæÓ¦ÓóÌÐòÐÎʽ£¬Í¨¹ýÔ¶³Ìµ÷Óã»Ò²¿ÉÒÔǶÈëµ½IEä¯ÀÀÆ÷ÖУ¬Ö±½ÓÔÚÍøÒ³ÖÐÔËÐС£
¡¡¡¡Ð§¹ûʾÀýͼ

´òÓ¡Ô¤ÀÀ

¡¡¡¡×¢ÒâÊÂÏ
¡¡¡¡1. Èç¹û²ÉÓÃ.NET£¬¿Í»§¶Ë±ØÐëÏȰ²×°.NET
framework1.0ÔËÐл·¾³£¬ÏÂÔØµØÖ·Îª£ºhttp://download.microsoft.com/download/.NETframesdk/Redist/1.0/W98NT42KMeXP/EN-US/dotnetredist.exe
¡¡¡¡2. Èç¹û²ÉÓÃǶÈëµ½ÍøÒ³ÖеÄÐÎʽ£¬ÄÇô±¾³ÌÐòÐèÒª±àÒë³ÉÒ»¸ö¿Ø¼þÐÎʽ£¨Ò»¸öÀ©Õ¹ÃûΪdllµÄÎļþ£©£¬È»ºóÔÚÍøÒ³ÖвåÈëÒÔϱê¼Ç£º
£¼object
id="print" classid="http:print.dll#Print.UserControl1"
Width="728" Height="460"£¾£¼/object£¾
¡¡¡¡½«¿Ø¼þǶÈëµ½Ò»¸ö¾²Ì¬»ò¶¯Ì¬ÍøÒ³ÖС£È»ºó½«¸Ã¿Ø¼þÎļþ¿½±´µ½ºÍ¸ÃÍøÒ³ÏàͬµÄĿ¼ÖУ¨±ê¼ÇÖÐPrint.dllΪÉú³ÉµÄ¿Ø¼þÎļþÃû£¬Print.UserControl1Ϊ¸Ã¿Ø¼þµÄÃüÃû¿Õ¼äNAMESPACE£©¡£
.Net Web¿Ø¼þ·½°¸µÄʵÏÖºÍÀ©³ä
¡¡¡¡Èí¼þÔÀí£º
¡¡¡¡¸ÃÈí¼þµÄÔÀíÆäʵºÜ¼òµ¥£¬¾ÍÊÇÒª·½±ãµÄ½âÎö³ö¶¨ÒåºÃµÄXML¸ñʽ±ê¼Ç£¬½â¶Á³öÎļþÖбê¼ÇµÄ²ÎÊý¶¨Ò壬×îºó½«ÕâЩÐÅÏ¢»¹Ô³É´òÓ¡»úÊä³öµÄͼÐθñʽ¡£
¡¡¡¡ÎªÁËÄܱí´ï³ö¸´Ôӵı¨±íÑùʽ£¬ÎÒÃÇÐèÒª¶¨ÒåһЩ±ê¼Ç£¬ÔÚÕâЩ±ê¼ÇÖи½¼ÓÉϾßÌåµÄÑùʽÐÅÏ¢£¬×÷ÓÃÀàËÆHTMLµÄ±êÇ©£¬¶øÎÒÃǵĽâÎö³ÌÐò¾ÍÏ൱ÓÚIEä¯ÀÀÆ÷£¬Ëù²»Í¬µÄÊÇIE½«Í¼ÐÎÊä³öµ½ÆÁÄ»£¬¶øÎÒÃÇÊǽ«Í¼ÐÎÊä³öµ½´òÓ¡»ú£¬ÓÉÓÚ´òÓ¡»úÏà¶ÔÓÚÏÔʾÆÁµÄÌØÊâÐÔ£¨ÀýÈç·ÖÒ³£©£¬Òò´ËÎÒÃDz»ÄÜÖ±½Ó²ÉÓÃÍøÒ³ä¯ÀÀÆ÷µÄ±êÇ©½âÎö¹¦ÄÜÀ´´òÓ¡£¬ÐèÒª×Ô¼ºÀ´×öÒ»¸öÂú×ãÐèÒªµÄ"´òÓ¡ä¯ÀÀÆ÷"¡£
¡¡¡¡Õë¶Ô´ó¶àÊý±¨±íµÄ¹¦ÄÜÐèÒª£¬ÎÒÖ»¶¨ÒåÁËÁ½ÖÖ¸ñʽ±êÇ©£ºÎı¾£¨text£©ºÍ±í¸ñ(table)£¬ËüÃǵľßÌåÊôÐÔ¶¨ÒåºÍÁíÍâһЩÉèÖÃÐԵıêÇ©¶¨ÒåÇë²Î¿¼Ç°ÎÄ£¬ÕâÀïÔÙ²¹³äÒ»·ù½á¹¹Í¼°ïÖú¶ÁÕßÀí½â¡£ÈçÏÂËùʾ£º

¡¡¡¡½á¹¹Éè¼Æ£º
¡¡¡¡ÎªÁËÃèÊöËùÓеÄÑùʽ±ê¼Ç£¬ÎÒÏȶ¨ÒåÁËÒ»¸ö³éÏó»ùÀàPrintElement£¬ËüÓµÓÐÒ»¸öÐéÄâ·½·¨Draw£¬È»ºó¶ÔÓ¦±í¸ñºÍÎı¾£¬´ÓPrintElementÅÉÉú³öÁ½¸ö×ÓÀ࣬·Ö±ðÊÇTableºÍText£¬ÎÒ»¹´´½¨ÁËÒ»¸öParserÀàÓÃÀ´½âÎö²»Í¬µÄÑùʽ±ê¼ÇºÍ´´½¨¶ÔÓ¦µÄ¶ÔÏó£¬ËüÓµÓÐÒ»¸ö¾²Ì¬µÄ·½·¨CreateElement£¬ÓÃÀ´¸ù¾Ý²»Í¬µÄ¸ñʽ±êÇ©´´½¨³ö¶ÔÓ¦µÄ¶ÔÏ󡣽ṹͼÈçÏÂËùʾ£º

¡¡¡¡¶Á¹ý¡¶Éè¼ÆÄ£Ê½¡·µÄ¶ÁÕßÒ»¶¨ÒѾ¿´³öÀ´ÁË£¬ÕâÖÖÉè¼ÆÓ¦ÓÃÁËÉè¼ÆÄ£Ê½ÖеÄÒ»¸ö·Ç³£ÖøÃûµÄģʽ£ºAbstract
Factory¡£ÕâÀïʹÓøÃģʽµÄºÃ´¦¾ÍÊÇÈñêÇ©¶ÔÏóºÍ½âÎöÆ÷¶¼¶ÀÁ¢³öÀ´£¬½µµÍÁËϵͳµÄñîºÏ¶È£¬ÓÐÀûÓÚ½ñºóÔÚÐèÒªµÄʱºò¿ÉÒÔºÜÈÝÒ×µÄÔö¼ÓÆäËüµÄ¸ñʽ±êÇ©£¨ÏÂÎĽ«»á¾ÙÒ»¸öʵÀý£©ºÍ·½±ãµÄ¸ü»»²»Í¬µÄÓû§½çÃæ£¨Í¼ÖÐClient±íʾWindowsÓ¦ÓóÌÐò»òÕßÊÇÍøÒ³²å¼þ£©¡£
¡¡¡¡´úÂëʵÏÖ£º
¡¡¡¡Ê×ÏÈ£¬´´½¨Ò»¸ö"Windows¿Ø¼þ¿â"µÄÐÂÏîÄ¿£¬ÔÚÏîÄ¿Ãû³Æ´¦Ð´ÈëRemotePrint£¬ÈçÏÂͼËùʾ£º

¡¡¡¡È»ºó°Ñн¨ÏîÄ¿ÖеÄÄǸöĬÈϵÄUserControl1Àà,ËüµÄ¹¹Ô캯ÊýÃûºÍÎļþÃû¶¼¸Ä³ÉPrintControl¡£ÔÙ½«ËüµÄ±³¾°ÑÕÉ«ÉèÖÃΪ°×É«£¬Ìí¼ÓÈý¸ö°´Å¦£¬²¢½«ËüÃǵÄEnableÊôÐÔ¶¼ÉèÖÃΪfalse£¬AnchorÊôÐÔÉèÖÃΪBottom, Right£¬ÔÙÌí¼ÓÒ»¸öLabel¿Ø¼þÓÃÀ´ÏÔʾ³ÌÐò״̬£¬ËüµÄAnchorÊôÐÔÉèÖÃΪLeft¡£ÈçÏÂͼËùʾ£º

¡¡¡¡ÔٴӿؼþÀ¸ÖÐÍÏÈëÈý¸ö´òÓ¡¶ÔÏó£ºPrintDocument,
PageSetupDialog, PrintPreviewDialog,ÈçÏÂͼËùʾ£º

¡¡¡¡½«ÆäÖеÄpageSetupDialog1ºÍprintPreviewDialog1µÄDocumentÊôÐÔ¾ùÉèÖÃΪprintDocument1¡£
¡¡¡¡È»ºóΪÏîÄ¿Ìí¼ÓÒ»¸öPrintElementµÄÐÂÀ࣬´úÂëÈçÏ£º
|
using
System;
using System.Xml;
using System.Drawing;
namespace
RemotePrint
{
public class PrintElement
{
public PrintElement()
{
}
public
virtual bool Draw(Graphics g)
{
return false;
}
}
}
|
¡¡¡¡¸ÃÀàÖÐÖ»ÓÐÒ»¸öÐéÄâ·½·¨Draw£¬×¢ÒâËü¹æ¶¨ÐèÒª·µ»ØÒ»¸öboolÖµ£¬Õâ¸öÖµµÄ×÷ÓÃÊÇÓÃÀ´Ö¸Ê¾±êÇ©ÊÇ·ñÔÚÒ³ÄÚ´òÓ¡Íê±Ï¡£
¡¡¡¡È»ºóÔÙÌíÒ»¸öTableµÄÐÂÀ࣬´úÂëÈçÏ£º
|
using
System;
using System.Xml;
using System.Drawing;
namespace
RemotePrint
{
public class Table : PrintElement
{
private XmlNode table;
public static int count = 0, pc = 1;
public
Table(XmlNode Table)
{
table = Table;
}
public
override bool Draw(Graphics g)
{
file://±í¸ñ×ø±ê
int tableX = int.Parse(table.Attributes["x"].InnerText);
int tableY = int.Parse(table.Attributes["y"].InnerText);
int x = tableX, y = tableY;
DrawTopLine(g, table);//»±í¸ñ¶¥Ïß
Pen pen = new Pen(Color.FromName(table.Attributes["bordercolor"].InnerText),
float.Parse(table.Attributes["border"].InnerText));
int trheight = 0;
file://±íÍ·
foreach(XmlNode tr in table["tablehead"].ChildNodes)
{
trheight = int.Parse(tr.Attributes["height"].InnerText);
DrawTR(x, y, tr, pen, g);
y += trheight;
}
file://±íÏî
for(int i = 0; i £¼
int.Parse(table.Attributes["maxlines"].InnerText); i++)
{
XmlNode tr = table["tablebody"].ChildNodes[count];
trheight = int.Parse(tr.Attributes["height"].InnerText);
DrawTR(x, y, tr, pen, g);
y += trheight;
count++;
if(count == table["tablebody"].ChildNodes.Count)
break;
}
x = tableX;
file://±íµ×
foreach(XmlNode tr in table["tablefoot"].ChildNodes)
{
trheight = int.Parse(tr.Attributes["height"].InnerText);
DrawTR(x, y, tr, pen, g);
y += trheight;
}
int currentpage = pc;
pc++;
bool hasPage = false;
if(count £¼
table["tablebody"].ChildNodes.Count - 1)
{
hasPage = true;//ÐèÒª¼ÌÐø´òÓ¡
}
else
{
count = 0;
pc = 1;
hasPage = false;//±í¸ñ´òÓ¡Íê±Ï
}
return hasPage;
}
private
void DrawTopLine(Graphics g, XmlNode table)
{
Pen pen = new
Pen(Color.FromName(table.Attributes["bordercolor"].InnerText),
float.Parse(table.Attributes["border"].InnerText));
int width = 0;
foreach(XmlNode td in table.FirstChild.FirstChild)
{
width += int.Parse(td.Attributes["width"].InnerText);
}
int x = int.Parse(table.Attributes["x"].InnerText);
int y = int.Parse(table.Attributes["y"].InnerText);
g.DrawLine(pen, x, y, x + width, y);
}
file://»±í¸ñÐÐ
private void DrawTR(int x, int y, XmlNode tr, Pen pen, Graphics g)
{
int height = int.Parse(tr.Attributes["height"].InnerText);
int width;
g.DrawLine(pen, x, y, x, y + height);//»×ó¶ËÏßÌõ
foreach(XmlNode td in tr)
{
width = int.Parse(td.Attributes["width"].InnerText);
DrawTD(x, y, width, height, td, g);
g.DrawLine(pen, x + width, y, x + width, y + height);//ÓÒÏß
g.DrawLine(pen, x, y + height, x + width, y + height);//µ×Ïß
x += width;
}
}
file://»µ¥Ôª¸ñ
private void DrawTD(int x, int y, int width, int height, XmlNode td, Graphics
g)
{
Brush brush = new
SolidBrush(Color.FromName(td.Attributes["bgcolor"].InnerText));
g.FillRectangle(brush, x, y, width, height);
FontStyle style = FontStyle.Regular;
file://ÉèÖÃ×ÖÌåÑùʽ
if(td.Attributes["b"].InnerText == "true")
style |= FontStyle.Bold;
if(td.Attributes["i"].InnerText == "true")
style |= FontStyle.Italic;
if(td.Attributes["u"].InnerText == "true")
style |= FontStyle.Underline;
Font font = new Font(td.Attributes["fontname"].InnerText,
float.Parse(td.Attributes["fontsize"].InnerText), style);
brush = new
SolidBrush(Color.FromName(td.Attributes["fontcolor"].InnerText));
StringFormat sf = new StringFormat();
file://ÉèÖÃ¶ÔÆë·½Ê½
switch(td.Attributes["align"].InnerText)
{
case "center":
sf.Alignment = StringAlignment.Center;
break;
case "right":
sf.Alignment = StringAlignment.Near;
break;
default:
sf.Alignment = StringAlignment.Far;
break;
}
sf.LineAlignment = StringAlignment.Center;
RectangleF rect = new RectangleF( (float)x, (float)y, (float)width,
(float)height);
g.DrawString(td.InnerText, font, brush, rect, sf);
}
}
}
|
¡¡¡¡TableÀཫtable±êÇ©ÄÚ²¿µÄ½âÎöºÍ´òÓ¡¶ÀÁ¢³öÀ´£¬È«²¿ÔÚÀàµÄÄÚ²¿Íê³É£¬ÕâÑù£¬ÎÒÃÇÔÚ¶Ô¶¥²ã±êÇ©½âÎöµÄʱºòÖ»ÒªÊÇÅöµ½table±êÇ©¾ÍÖ±½Ó½»¸øTableÀàÈ¥Íê³É£¬²»ÐèÒªÔÙ¹ØÐÄÆäʵÏÖϸ½Ú¡£
¡¡¡¡ÔÙÌí¼ÓÒ»¸öTextÀ࣬´úÂëÈçÏ£º
|
using
System;
using System.Xml;
using System.Drawing;
namespace
RemotePrint
{
public class Text : PrintElement
{
private XmlNode text = null;
public Text(XmlNode Text)
{
text = Text;
}
public override bool Draw(Graphics g)
{
Font font = new Font(text.Attributes["fontname"].InnerText,
int.Parse(text.Attributes["fontsize"].InnerText));
Brush brush = new
SolidBrush(Color.FromName(text.Attributes["fontcolor"].InnerText));
g.DrawString(text.InnerText, font, brush,
float.Parse(text.Attributes["x"].InnerText),
float.Parse(text.Attributes["y"].InnerText));
return false;
}
}
}
|
¡¡¡¡Í¬TableÀàÒ»Ñù£¬TextÀàÍê³É¶Ôtext±êÇ©µÄ½âÎöºÍ´òÓ¡£¬²»¹ýÒòΪtextµÄ¼òµ¥ÐÔ£¬ËüµÄ´úÂëÒ²ÉÙÁ˺ܶࡣËüÃÇÁ½ÕßͬÑù¼Ì³Ð×ÔPrintElement£¬¶¼ÖØÔØÁËDraw·½·¨µÄʵÏÖ¡£
×îºó£¬ÎÒÃÇ»¹ÐèÒªÒ»¸ö½âÎöÆ÷ÓÃÀ´½âÎö¶¥²ãµÄ±êÇ©ºÍÉú³ÉÏàÓ¦µÄ¶ÔÏó£¬ËüÔÚ´ËģʽÖеÄ×÷ÓþÍÊÇÒ»¸ö"¹¤³§Àà"£¬¸ºÔðÉú²ú³öÓû§ÐèÒªµÄ"²úÆ·"¡£´úÂëÈçÏ£º
|
using
System;
using System.Xml;
namespace
RemotePrint
{
public class Parser
{
public Parser()
{
}
public static PrintElement CreateElement(XmlNode element)
{
PrintElement printElement = null;
switch(element.Name)
{
case "text":
printElement = new Text(element);
break;
case "table":
printElement = new Table(element);
break;
default:
printElement = new PrintElement();
break;
}
return printElement;
}
}
}
|
¡¡¡¡ºÃÁË£¬ºËÐĵĽâÎöºÍ±êÇ©µÄ¾ßÌå´òÓ¡·½·¨ÒѾÍê³ÉÁË£¬ÏÖÔÚÎÒÃǻص½PrintControlÖбàдһЩ´úÂëÀ´²âÊÔÎÒÃǵijɹû¡£
¡¡¡¡Ê×ÏÈ£¬ÐèÒªÒýÓÃÁ½¸öÒªÓõ½µÄÃû³Æ¿Õ¼ä£º
|
using
System.Xml;
using
System.Drawing.Printing;
|
¡¡¡¡È»ºó£¬ÔÚ´òӡ֮ǰ£¬ÐèÒª¸ù¾ÝXMLÎļþÖеÄpagesetting±êÇ©À´ÉèÖÃһϴòÓ¡»úµÄÒ³Ãæ£¬ËùÒÔÎÒÃÇÏÈдһ¸ö·½·¨À´ÉèÖôòÓ¡»ú¡£ÔÚPrintControlÀàÖÐÔö¼ÓÒ»¸ö˽Óеķ½·¨£º
|
private
void SettingPrinter(XmlNode ps)
{
file://´òÓ¡·½Ïò£¨×Ý/ºá£©
this.printDocument1.DefaultPageSettings.Landscape =
bool.Parse(ps["landscape"].InnerText);
file://ÉèÖÃÖ½ÕÅÀàÐÍ
string papername = ps["paperkind"].InnerText;
bool fitpaper = false;
file://»ñÈ¡´òÓ¡»úÖ§³ÖµÄËùÓÐÖ½ÕÅÀàÐÍ
foreach(PaperSize size in this.printDocument1.PrinterSettings.PaperSizes)
{
if(papername == size.PaperName)//¿´¸Ã´òÓ¡»úÊÇ·ñÓÐÎÒÃÇÐèÒªµÄÖ½ÕÅÀàÐÍ
{
this.printDocument1.DefaultPageSettings.PaperSize = size;
fitpaper = true;
}
}
if(!fitpaper)
{
file://¼ÙÈçûÓÐÎÒÃÇÐèÒªµÄ±ê×¼ÀàÐÍ,ÔòʹÓÃ×Ô¶¨ÒåµÄ³ß´ç
this.printDocument1.DefaultPageSettings.PaperSize =
new PaperSize("Custom",
int.Parse(ps["paperwidth"].InnerText),
int.Parse(ps["paperheight"].InnerText));
}
}
|
¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃÇÀàÖÐÌí¼ÓÒ»¸öXmlDocumentµÄ¶ÔÏóºÍÒ»¸ö¾²Ì¬±äÁ¿¼ÆËãÒ³Â룺
|
private
XmlDocument doc = new XmlDocument();
public
static int Pages = 1;
|
¡¡¡¡È»ºóÔٿؼþµÄLoadʼþÖÐΪ¸Ã¶ÔÏó¼ÓÔØXML±¨±íÊý¾Ý£¬´úÂëÈçÏ£º
|
private
void PrintControl_Load(object sender, System.EventArgs e)
{
try
{
file://×°ÔØ±¨±íXMLÊý¾Ý
this.label1.Text = "ÕýÔÚ¼ÓÔØ±¨±íÊý¾Ý£¬ÇëÉÔºî...";
doc.Load("http://localhost/report.xml");
this.label1.Text = "±¨±íÊý¾Ý¼ÓÔØÍê±Ï£¡";
this.button1.Enabled = this.button2.Enabled = this.button3.Enabled = true;
}
catch(Exception ex)
{
this.label1.Text = "³öÏÖ´íÎó£º" + ex.Message;
}
}
|
¡¡¡¡Çë×¢Ò⣬ÎÒÃÇÕâÀïÖ»ÊÇ×°ÈëÁËÒ»¸ö±¾µØµÄ²âÊÔÊý¾ÝÎļþ£¬Æäʵ£¬ÍêÈ«¿ÉÒԸijÉ×°ÔØÍøÂçÉÏÈκεط½µÄ¾²Ì¬»òÕß¶¯Ì¬µÄXMLÎļþ£¬ÀýÈçÒÔÉϵÄdoc.Load("http://localhost/report.xml")¿ÉÒÔ¸Äд³É£º
doc.Load("http://www.anywhere.com/report.xml");
doc.Load("http://www.anywhere.com/report.asp");
doc.Load("http://www.anywhere.com/report.jsp£¿date=xxx");
¡¡¡¡µÈµÈ£¬Ö»Òª×°ÔصÄÊý¾ÝÊÇ·ûºÏÎÒÃǹ涨µÄXMLÊý¾ÝÎĵµ¾Í¿ÉÒÔ¡£
¡¡¡¡È»ºóÔڿؼþµÄ¹¹Ô캯ÊýÖмÓÈë´òӡʼþµÄίÍУº
|
public
PrintControl()
{
InitializeComponent();
this.printDocument1.PrintPage
+= new PrintPageEventHandler(this.pd_PrintPage);
}
|
¡¡¡¡¸ÃίÍз½·¨µÄ´úÂëÈçÏ£º
|
private
void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
Graphics g = ev.Graphics;
bool HasMorePages = false;
PrintElement printElement = null;
foreach(XmlNode node in
doc["root"]["reporttable"].ChildNodes)
{
printElement = Parser.CreateElement(node);//µ÷ÓýâÎöÆ÷Éú³ÉÏàÓ¦µÄ¶ÔÏó
try
{
HasMorePages = printElement.Draw(g);//ÊÇ·ñÐèÒª·ÖÒ³
}
catch(Exception ex)
{
this.label1.Text = ex.Message;
}
}
file://ÔÚÒ³µ×ÖмäÊä³öÒ³Âë
Font font = new Font("ºÚÌå", 12.0f);
Brush brush = new SolidBrush(Color.Black);
g.DrawString("µÚ " + Pages.ToString() + " Ò³",
font,brush,ev.MarginBounds.Width / 2 + ev.MarginBounds.Left - 30,
ev.PageBounds.Height - 60);
if(HasMorePages)
{
Pages++;
}
ev.HasMorePages = HasMorePages;
}
|
¡¡¡¡Èý¸ö°´Å¦µÄClickʼþ´úÂë·Ö±ðÈçÏ£º
|
//Ò³ÃæÉèÖÃ
private void button1_Click(object sender, System.EventArgs e)
{
this.pageSetupDialog1.ShowDialog();
this.printDocument1.DefaultPageSettings = this.pageSetupDialog1.PageSettings;
}
file://´òÓ¡Ô¤ÀÀ
private void button2_Click(object sender, System.EventArgs e)
{
try
{
this.printPreviewDialog1.ShowDialog();
}
catch(Exception ex)
{
this.label1.Text = ex.Message;
}
}
file://´òÓ¡
private void button3_Click(object sender, System.EventArgs e)
{
try
{
this.printDocument1.Print();
}
catch(Exception ex)
{
this.label1.Text = ex.Message;
}
}
|
¡¡¡¡ºÃÁË£¬ÎÒÃǵĴòÓ¡¿Ø¼þµ½ÕâÀï¾ÍÈ«²¿×öÍêÁË£¬Ñ¡ÔñÉú³ÉÒ»¸öReleaseµÄ°æ±¾£¬È»ºóµ½¹¤³ÌĿ¼Ï½«Éú³ÉµÄPrintControl.dllÎļþ¿½±´µ½IISµÄÐéÄâ¸ùĿ¼Ï£¬È»ºóн¨Ò»¸öremoteprint.htmµÄHTML¸ñʽÎļþ£¬ÔÚºÏÊʵĵط½¼ÓÉÏ£º£¼object
id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl"
Width="100%" Height="60"£¾ £¼/object£¾£¬ÎªÁ˸ü¼ÓÐÎÏóºÍÃÀ¹Û£¬»¹¿ÉÒÔ½«ÐèÒª´òÓ¡µÄÊý¾Ý×ö³ÉÍøÒ³ÐÎʽ·ÅÔÚÉÏÃæ£¬Èç¹ûÐèÒª»ñÈ¡µÄXMLÊǶ¯Ì¬Êý¾ÝÔ´£¬Ôò¿ÉÒÔ²ÉÓÃaspµÈ¶¯Ì¬½Å±¾À´Éú³É¸ÃÍøÒ³±í¸ñ£¬Èç¹ûÐèÒª»ñÈ¡µÄXMLÊÇÒ»¸ö¾²Ì¬µÄÎı¾£¬Ôò¿ÉÒÔ²ÉÓÃXSLTÖ±½Ó½«XMLÎļþת»»³ÉÍøÒ³±í¸ñ¡£
¡¡¡¡´ò¿ªä¯ÀÀÆ÷£¬ÊäÈ룺http://localhost/remoteprint.htm£¬Èç¹ûÄúÒѾ¸úÎÒÒ»Ñù£¬ÊÂÏÈ×öºÃÁËÒ»¸öXML±¨±íÊý¾ÝÎļþµÄ»°£¬Äú¾Í¿ÉÒÔ¿´µ½ÏÂͼËùʾµÄЧ¹û
¡¡¡¡

¡¡¡¡Çë×¢Ò⣺¸ÃͼʾÀýÖеÄËùÓÐÊý¾Ý¾ùΪ±ÊÕßËæÒâÐéÄâ£¬ÍøÒ³Öеıí¸ñÊý¾ÝºÍ´òÓ¡Êý¾Ý²¢·ÇÀ´×ÔͬһÊý¾ÝÔ´£¬Ò²Ã»ÓпÌÒâÈ¥¶ÔµÈ£¬½ö½öÖ»ÊÇΪÁËÑÝʾһÏÂЧ¹û£¬Òò´ËÍøÒ³ÏÔʾ±¨±í¸ú´òÓ¡Ô¤ÀÀÖеı¨±íÓÐһЩ³öÈëÊÇÕý³£µÄ¡£ÔÚʵ¼ÊÓ¦ÓÃÖпÉÒÔÈÃÍøÒ³ÏÔʾÊý¾Ý¸ú´òÓ¡Êä³öÊý¾ÝÍêȫһÖ¡£
·½°¸À©³ä£º
¡¡¡¡ÄÇôÈçºÎ´òÓ¡Ò»Ð©ÌØÊâÐÎ̬µÄͼ±í£¬Ç°ÎÄÖÐÒѾÌáµ½£¬²ÉÓñ¾·½°¸¿ÉÒԷdz£·½±ãµÄ¶¨Òå³ö×Ô¼ºËùÐèÒªµÄ±êÇ©£¬ÔÚÀíÂÛÉÏ¿ÉÒÔ´òÓ¡³öÈκÎÑùʽµÄÌØÊâͼ±í¡£Òò´Ë±¾ÎÄ´òËãÏêϸ½éÉÜÒ»ÏÂÔö¼Ó×Ô¼º¶¨ÒåµÄ±êÇ©À©³ä´òÓ¡¸ñʽµÄ¾ßÌå¹ý³Ì¡£
¡¡¡¡ÏȼÙÉèÎÒÃǵĿͻ§¿´ÁË´òӡЧ¹ûºó»ù±¾ÉÏÂúÒ⣬µ«ÊÇ»¹ÓоõµÃÒ»µã²»×㣬Èç¹ûÐèÒª´òӡһЩͼ±íÔõô°ì£¿ÀýÈçÕÛÏßͼ¡¢KÏßͼ¡¢±ý״ͼ¡¢Öù״ͼµÈµÈ¡£Ê¹ÓÃÎÒÃÇÏÖÓеıêÇ©¾Í²»ÐÐÁË£¬ËùÒÔÎÒÃÇÊ×ÏÈÒªÀ©³äÎÒÃǵıêÇ©¿â£¬ÈÃËüµÄ±í´ïÄÜÁ¦¸ü¼ÓÇ¿¡£ÔÚÕâÀÎÒ½«Ö»´òËãÈÃÎÒÃǵĴòÓ¡¿Ø¼þѧ»á»¼òµ¥µÄÕÛÏßͼ£¬Ï£Íû¶ÁÕßÄܾÙÒ»·´Èý£¬´´Ôì³öÆäËü¸÷ÖÖ¸÷ÑùµÄ´òӡЧ¹û¡£
¡¡¡¡×î»ù±¾µÄÕÛÏßͼÊÇÓÉX×ø±êÖá¡¢Y×ø±êÖáºÍһϵÁеãÁ¬½Ó³ÉµÄÏß¹¹³ÉµÄ£¬Òò´Ë£¬ÎÒ¶¨ÒåÁËÒÔϼ¸ÖÖ±êÇ©£º
¡¡¡¡1. linechart£º¸útable£¬text±êǩһÑù£¬ÎªÑùʽ¸ù±êÇ©¡£
¡¡¡¡¡¡ÊôÐÔ£ºÎÞ
¡¡¡¡2£® coordinate£º×ø±ê¡£
¡¡¡¡¡¡ÊôÐÔ£ºÎÞ
¡¡¡¡3£® xcoordinate£ºXÖá×ø±êÏß
¡¡¡¡¡¡ÊôÐÔ£º
¡¡¡¡¡¡# x£ºÆðµãX×ø±êÖµ
¡¡¡¡¡¡# y£ºÆðµãY×ø±êÖµ
¡¡¡¡¡¡# length£º³¤¶ÈÖµ
¡¡¡¡¡¡# stroke£º´Öϸ
¡¡¡¡¡¡# color£ºÑÕÉ«
¡¡¡¡¡¡# arrow£ºÊÇ·ñÓмýÍ·
¡¡¡¡4£® ycoordinate£ºYÖá×ø±êÏß
¡¡¡¡¡¡ÊôÐÔ£ºÍ¬xcoordinate¡£
¡¡¡¡5£®scale£º¿Ì¶ÈÏß
¡¡¡¡¡¡±êÇ©ÄÚÈÝ£ºÏÔʾÔڿ̶ȱߵÄÎÄ×Ö
¡¡¡¡¡¡ÊôÐÔ£º
¡¡¡¡¡¡# length£º¾àÀëÆðµã³¤¶ÈÖµ
¡¡¡¡¡¡# height£º¿Ì¶ÈÏ߸߶È
¡¡¡¡¡¡# width£º¿Ì¶ÈÏß¿í¶È
¡¡¡¡¡¡# color£ºÑÕÉ«
¡¡¡¡¡¡# fontsize£º×ÖÌå´óС
¡¡¡¡6£®chart£ºÍ¼±í¸ù
¡¡¡¡¡¡ÊôÐÔ£ºÎÞ
¡¡¡¡7£®lines£ºÏß¶Î
¡¡¡¡¡¡ÊôÐÔÖµ£º
¡¡¡¡¡¡# stroke£º´Öϸ
¡¡¡¡¡¡# color£ºÑÕÉ«
¡¡¡¡8£® point£ºµã
¡¡¡¡¡¡ÊôÐÔÖµ£º
¡¡¡¡¡¡# x£ºX×ø±êÖµ
¡¡¡¡¡¡# y£ºY×ø±êÖµ
¡¡¡¡¡¡# radius£º°ë¾¶
¡¡¡¡¡¡# color£ºÑÕÉ«
¡¡¡¡Æä½á¹¹Í¼ÈçÏÂËùʾ£º

¡¡¡¡ÏÂÃæÊÇÒ»¶ÎÓøղŶ¨ÒåµÄ±êÇ©ÖÆ×÷µÄXMLÕÛÏßͼʾÀý£º
|
£¼linechart£¾
£¼coordinate£¾
£¼xcoordinate
x="200" y="600" length="800"
stroke="2" color="Black" arrow="true"£¾
£¼scale length="100"
height="10" width="1" color="Black"
fontsize="9"£¾100£¼/scale£¾
£¼scale
length="200" height="10" width="1"
color="Black" fontsize="9" |