info21c 12개월 결제시 1달 더 연장 받기.

|
이곳으로 접속하여 12달 결제시 1달 더 연장을 해줍니다. :~)



인포로 가기
And

미라지폰 M480 관련 사이트

|
And

Textarea박스에서 탭키 Tab 효과 주기

|

코리아인터넷닷컴에 예제를 응용하여 만들었습니다. -_-V

<HTML>
<HEAD>
<script src="http://prototypejs.org/javascripts/prototype.js" type="text/javascript"></script>
<SCRIPT>
function saveCurrentPos (objTextArea) {
   if (objTextArea.createTextRange)
         objTextArea.currentPos = document.selection.createRange().duplicate();
}

function tab_event(objTextArea){
 var text=' ';
 if(event.keyCode==9 && objTextArea.createTextRange){
  var currentPos = objTextArea.currentPos;
  currentPos.text = currentPos.text.charAt(currentPos.text.length - 1) == ' ' ? text + ' ' : text;

 // Event.stop(event); //Prototype
 /* tab Event 없애기 */
  if(!window.Event){
   var Event = new Object();
  }
  if(event.preventDefault){
   event.preventDefault();
   event.stopPropagation();
  }else{
   event.returnValue = false;
   event.cancelBubble = true;
  }
 }
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myForm">
<TEXTAREA NAME="myTextArea" ROWS="5" COLS="80" WRAP="soft"
       ONSELECT="saveCurrentPos(this)"
       ONCLICK="saveCurrentPos(this)"
       ONKEYUP="saveCurrentPos(this)"
    onkeydown="tab_event(this.form.myTextArea);"
>
이벤트 테스트~!!!!
</TEXTAREA>

</FORM>
</BODY>
</HTML>

And

strtotime 버그 인가? 이전달 구하기

|
오늘이 2008-07-31일이라 하고
원하는 이전달의 값은 2008-06-01이라고 한다면

아래와 같은경우

date('Y-m-01',strtotime('-1 month'));
는 2008-06-01이 나올거 같지만 2008-07-01이 나온다.. -_-;;

그래서 다시 한게 아래다.. 아래로 하면 착하게 원하는 값이 나온다 ^^

$time = time();
date("Y-m-d",mktime(0,0,0,date('m',$time)-1,1,date('Y',$time)));
And

파일 다운로드 파일

|
$filename = $_SERVER['DOCUMENT_ROOT'].'/파일명';
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));
readfile($filename);
And

[입찰전문사이트 인포21] - 편리한 서류함 관리기능~!

|

가장 빠르고 정확한 건설 입찰정보
http://info21c.net/

업계 점유율 25%를 차지하고 있는 info21c 사이트가 새로운 기능을 선보였네요.
기존의 개인서류함을 리뉴얼 하면서 새롭게 <나의폴더> 기능 추가했는데요.
진작에 필요한 기능이었는데 info21c가 젤 먼저 폴더개념을 도입해서 현명하게 풀어낸것 같습니다.

사실 하루에도 몇백건씩 공고가 쏟아지는데
매번 필요한 공고들을 찾아서 개인서류함에 저장을 한다 해도 한계가 있었죠.

원하는 폴더를 만들어서 필요한 공고를 얼마든지 나눠서 관리할 수 있다면 상당히 효율적인것 같습니다.

사이트에 있는 동영상 이용안내 링크 걸어둡니다.
궁금하신 분은 클릭해보삼!

And

dispatchEvent, addEventListener 던지고 받기~

|
던지는곳~
dispatchEvent(new ListEvent(ListEvent.FILTER,sendData, true, false));
이런식으로 던져준다.. 앞에 상수, 뒤에 boolean 2개는 필수닷..

클래스 선언~(com.events.ListEvent)

package com.events
{
  import flash.events.Event;
 
 public class ListEvent extends Event
 {
  public static const FILTER:String = "filter";
 
  public function ListEvent(type:String, data:Array=null, bubbles:Boolean=false, cancelable:Boolean=false){
   super(type, bubbles, cancelable);
   
   item = data;
  }
   public var item:Array;
  }
 }

받는 곳~
import com.events.ListEvent;

   private function load():void{
     connectDB();
     Application.application.systemManager.addEventListener(com.events.ListEvent.FILTER, _filter);
    }
   
   private function _filter(e:com.events.ListEvent):void{
    requestData = e.item;
    selectData();
   }
And

Local DB - SQLite 예제

|

db파일위치때문에 한참 해멨다..
C:\Documents and Settings\BoKi\Application Data\sqlLife\Local Store/


<?xml version="1.0" encoding="utf-8"?>

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init()"

backgroundColor="0x003030" focusRect="false" layout="vertical">

 

<mx:Script>

 <![CDATA[
  import mx.effects.Fade;

 import mx.controls.List;

 import mx.controls.TextInput;

 import mx.events.DataGridEvent;

 import mx.collections.ArrayCollection;

 import mx.utils.ArrayUtil;

 import mx.controls.Alert;

 import flash.data.SQLConnection;

 import flash.data.SQLResult;

 import flash.data.SQLStatement;

 import flash.events.SQLErrorEvent;

 import flash.events.SQLEvent;

 import mx.events.ListEvent;

 import flash.filesystem.File;


 [Bindable]

 private var resultData:Array;


 private var conn:SQLConnection = new SQLConnection();

 private var selectStmt:SQLStatement =  new SQLStatement();


 private function connectDB():void{

  

// 로컬 데이터베이스 존재 확인 그리고 열려져 있는지 또는 새 테이블 만들기

  var dbFile:File = File.applicationStorageDirectory.resolvePath("aa.db");
  trace(dbFile.nativePath);


  if(dbFile.exists) {

   conn.addEventListener(SQLEvent.OPEN, openHandler);

   conn.open(dbFile);

  }else {

   conn.addEventListener(SQLEvent.OPEN, newDatabaseHandler);

   conn.open(dbFile);

  }

 }


 private function openHandler(event:SQLEvent):void{

   // selectData();

  trace("The database was opened");

 }




// 데이터 가져오기

 private function selectData():void{

  selectStmt.sqlConnection = conn;

  var sql:String = "SELECT * FROM employees";

  selectStmt.text = sql;


  selectStmt.addEventListener(SQLEvent.RESULT, selectHandler);

  selectStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  selectStmt.execute();

 }


 private function selectHandler(event:SQLEvent):void{

  resultData = selectStmt.getResult().data;

 }

 

// 새 테이블 생성하기

 private function newDatabaseHandler(event:SQLEvent):void{

  createTable();

  trace("Table created");

 }


 private function createTable():void{

  var createStmt:SQLStatement =  new SQLStatement();

  createStmt.sqlConnection = conn;

  var sql:String =

  "CREATE TABLE IF NOT EXISTS employees (" +

  "empId INTEGER PRIMARY KEY AUTOINCREMENT, " +

  "firstName TEXT, " +

  "lastName TEXT, " +

  "salary NUMERIC CHECK (salary > 0)" +

  ")";

  createStmt.text = sql;

  createStmt.addEventListener(SQLEvent.RESULT, createTableResult);

  createStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  createStmt.execute();

 }

 

 private function createTableResult(event:SQLEvent):void{

          trace("Employees table created ");

    }


//데이터 삽입


private function insertData():void{

  var insertStmt:SQLStatement =  new SQLStatement();

  insertStmt.sqlConnection = conn;

  var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES ('Eric', 'Moon', 80000)"; 

  insertStmt.text = sql;


  insertStmt.addEventListener(SQLEvent.RESULT, insertHandler);

  insertStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  insertStmt.execute();

 }


 private function insertHandler(event:SQLEvent):void{

  trace("INSERT statement succeeded");

  selectData();

 }



// 데이터 삭제

 private function deleteData():void{

  if (resultAC.length >0)


  var empid:int = dg.selectedItem.empId;

   

  var deleteStmt:SQLStatement =  new SQLStatement();

  deleteStmt.sqlConnection = conn;


  var sql:String = "DELETE FROM employees WHERE empID="+empid; 

  deleteStmt.text = sql;


  deleteStmt.addEventListener(SQLEvent.RESULT, deleteHandler);

  deleteStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  deleteStmt.execute();

  resultAC.removeItemAt( dg.selectedIndex);

 }


 private function deleteHandler(event:SQLEvent):void{

  trace("Delete statement succeeded");

  selectData();

 }    





 // 에러 처리

 private function errorHandler(event:SQLErrorEvent):void{

  var errMessage:String;

  errMessage  = "Error code: " + event.error.message  + "\r";
 

  errMessage += "Details   : " + event.error.message  ;

  Alert.show(errMessage);

 }


 private function init():void{

  //stage.displayState = StageDisplayState.FULL_SCREEN;

  connectDB();

 }


// 데이터 업데이트  

  private function updateData():void{

  var updateStmt:SQLStatement =  new SQLStatement();

  updateStmt.sqlConnection = conn;


  var sql:String = "UPDATE employees " +

    "SET firstName = '" +  dg.selectedItem.firstName + "', " +

    "lastName = '" + dg.selectedItem.lastName + "', " +

    "salary = '" + dg.selectedItem.salary + "' " +

    "WHERE empID="+ dg.selectedItem.empId; 


  updateStmt.text = sql;


  updateStmt.addEventListener(SQLEvent.RESULT, updateHandler);

  updateStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler);

  updateStmt.execute();

     }


 private function updateHandler(event:SQLEvent):void{

  trace("Update statement succeeded");

  selectData();

 }

 ]]>

</mx:Script>




<mx:ArrayCollection id="resultAC" source ="{ArrayUtil.toArray(resultData)}" />


<mx:VBox height="100%">


<mx:DataGrid id="dg"  dataProvider="{resultAC}" editable="true" height="100%" width="100%">

<mx:columns>

 <mx:DataGridColumn headerText="Emp ID" dataField="empId"/>

 <mx:DataGridColumn headerText="Last Name" dataField="lastName"/>

 <mx:DataGridColumn headerText="First Name" dataField="firstName"/>

 <mx:DataGridColumn headerText="Salary" dataField="salary"/>

</mx:columns>

</mx:DataGrid>


<mx:HBox width="100%">

 <mx:Button label="Create Table" click="createTable();"/>

 <mx:Button label="Select" click="selectData();"/>

 <mx:Button label="Insert" click="insertData()"/>

 <mx:Button label="Update" click="updateData();"/>

 <mx:Button label="Delete" click="deleteData();"/>

</mx:HBox>

</mx:VBox>

</mx:WindowedApplication>

출처 : http://cafe.naver.com/flexcomponent.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=5203

And

페이징

|

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="load()">
 <mx:Style>

 </mx:Style>
 <mx:Script>
  <![CDATA[
   import mx.events.ItemClickEvent;
   import mx.collections.ArrayCollection;
 
   include "spXML_List.as";
   import  mx.controls.Alert;
   import mx.collections.ArrayCollection;
   import mx.controls.Button;
   
    [Bindable]
   public var nav:ArrayCollection = new ArrayCollection();
   
   private function ClickPrev():void
   {
    var page:int = spXML_List.page;
    if(page <= 1){
     Alert.show('처음 페이지 입니다.');
    }else{
     page-=1;
     spXML_List.page = page;
    }
   }
   
   private function ClickNext():void
   {
    var page:int = spXML_List.page;
    if(page >= spXML_List.total_page){
     Alert.show("마지막 페이지 입니다.");
    }else{
     page+=1;
     spXML_List.page = page;
    }
   }
   
 
   
    private function load():void{
     for(var i:Number = 2; i < 50; i++){
     spXML_List.newElement = <item>
            <num>{i}</num>
            <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
            <itemcode>통신</itemcode>
            <basic>32,000,000</basic>
            <yega>31,970,640</yega>
            <success>31,493,000</success>
            <spb>98.4156</spb>
            <ypb>-0.0917</ypb>
            <sypb>12.1609</sypb>
            <constdt>08.06.20</constdt>
           </item>;
    } 
     
     pageing(spXML_List.page);

   
    }
   
   
    private function pageing(page:Number):void{
    var p_min:Number = spXML_List.p_min;
    var p_max:Number = spXML_List.p_max;
    var total_page:Number = spXML_List.total_page;
   
    nav.removeAll();        
     
     if(p_min > 1){
      nav.addItem({label:"이전", data:p_min-1, id:"pre"});
     }
     
     //Alert.show(page.toString());
     for(var j:Number = p_min; j <= p_max; j++){
      nav.addItem({label:j, data:j});
     }
     
     if(p_max < total_page){
      nav.addItem({label:"다음", data:p_max+1});
     }
     
     spXML_List.page = page;   
    }
   
    private function navigatePage(event:ItemClickEvent):void{
     var lb:String = event.item.label;
     
     if(lb.indexOf("다음") > -1){
      spXML_List.p_min = event.item.data;
      spXML_List.p_max = event.item.data + 4;
      lb = event.item.data;
     }else if(event.item.id == 'pre'){
      spXML_List.p_min = event.item.data - 4;
      spXML_List.p_max = event.item.data;
      lb = event.item.data;
     }
     
     pageing(Number(lb));
    }
   
    private function N_page(min:int, max:int):void{
     trace(min);
     
    }

    
  ]]>
 </mx:Script>
 



 <mx:Canvas id='listBox' width="80%" borderStyle="solid" backgroundColor="blue" showEffect="Fade" hideEffect="Fade" x="35" y="29">
  <mx:Panel layout="absolute" title="List" width="100%" x="0">
   <mx:DataGrid  width="100%" height="285"
    rowCount="12"
    id="ListGrid"
    dataProvider="{spXML_List.item}"
    horizontalCenter="0"
    fontSize="12"
    fontFamily="Arial"
    >
    <mx:columns>
     <mx:DataGridColumn headerText="번호" dataField="num" width="35" />
     <mx:DataGridColumn headerText="공고명" dataField="constnm" width="300"/>
     <mx:DataGridColumn headerText="업종" dataField="itemcode"/>
     <mx:DataGridColumn headerText="기초금액" dataField="basic"/>
     <mx:DataGridColumn headerText="예정가격" dataField="yega"/>
     <mx:DataGridColumn headerText="1순위 투찰금액" dataField="success"/>
     <mx:DataGridColumn headerText="1순위 기초대비" dataField="spb"/>
     <mx:DataGridColumn headerText="예가/기초" dataField="ypb"/>
     <mx:DataGridColumn headerText="1순위사정율" dataField="sypb"/>
     <mx:DataGridColumn headerText="입찰일" dataField="constdt"/>
    </mx:columns>
   </mx:DataGrid>
 
  
   
  </mx:Panel>
 </mx:Canvas>
 <mx:Text text="Total: {spXML_List.total_page} Page:{spXML_List.page} / {spXML_List.total_page}" fontSize="10" y="35" x="73"/>
 <mx:Button label="Previous" click="ClickPrev()"  x="780" y="32"/><mx:Button label="Next" click="ClickNext()"  x="865" y="32"/>
 
 <mx:ToggleButtonBar id="PageNav"  x="73" y="394" dataProvider="{nav}" itemClick="navigatePage(event)" horizontalGap="5"/>
 
</mx:Application>

-----------------------------------------------------------------------------------------------

as파일

// ActionScript file
[Bindable]

public var spXML_List:XML =
<rr>
 <total_num>49</total_num>
 <total_page>10</total_page>
 <page>1</page>
 <p_min>1</p_min>
 <p_max>5</p_max>
 
 
 <item>
  <num>1</num>
  <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
  <itemcode>통신</itemcode>
  <basic>32,000,000</basic>
  <yega>31,970,640</yega>
  <success>31,493,000</success>
  <spb>98.4156</spb>
  <ypb>-0.0917</ypb>
  <sypb>12.1609</sypb>
  <constdt>08.06.20</constdt>
 </item>

</rr>;

And

화면전환

|
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 >
<mx:states>
  <mx:State name="w" >
   <mx:SetProperty target="{left}" name="width" value="400"/>
  </mx:State>
 </mx:states>
 
 <mx:transitions>
  <mx:Transition fromState="*" toState="*">
   <mx:Resize duration="100" target="{left}"/>
  </mx:Transition>
 </mx:transitions>
 
 <mx:Canvas width="100%" height="100%"
  backgroundColor="#eeeeee"
 >
  <mx:VBox width="40" height="100%" id="left" backgroundColor="#ffffff">
   
  </mx:VBox>
  <mx:Button x="{left.x+left.width}"
   click="{
    currentState = currentState==null ? 'w' : null;
    trace(currentState);
   }" />
 </mx:Canvas>
</mx:Application>
And
prev | 1 | 2 | 3 | 4 | next