728x90

목동코딩: 코딩교육, 프로젝트수업

이번에 새로이 오픈할 프랫폼을 개발하면서 새롭게 느낀점이 있었다.

엔지니어 마인드로 살다보니, 데이타베이스를 뒤져서 원하는 데이터를 가져오면, 결과를 바로 화면에 표시 하는 줄 알았는데, 마케팅 마인드는 약간의 뜸을 들여야할 필요성을 느꼈다. 그래서 5초간 대기 화면이 나오고 결과를 보여주는 대기 기능을 만들었다

 

<!--로딩바-->
<div id="loading" style="margin-left: 0px;">
    <img src="./images/buttons/loading.gif">
    <p>결과를 준비중입니다. 잠시기다려주세요....</p>
</div>

<div>
    <h3 id="getDB" style="display:block;padding:1em 0.2em;text-align:left;"></h3>
</div>

$(document).ready(function(e) {
    setTimeout(function() {
        $("#getDB").html("결과 보기를 크릭해 주세요");    
        $("#Code<?=$LEVEL_3?>").css('display',"block")          
        $("#loading").css('display',"none")          
    }, 5000 );
});

 

목동코딩, 무인스터디카페 키오스크개발, 프로젝트 코딩교육
목동코딩, 무인스터디카페 키오스크개발, 프로젝트 코딩교육
목동코딩, 무인스터디카페 키오스크개발, 프로젝트 코딩교육
목동코딩, 무인스터디카페 키오스크개발, 프로젝트 코딩교육
목동코딩, 무인스터디카페 키오스크개발, 프로젝트 코딩교육

728x90
728x90

 

목동코딩 : 날짜계산

​

지금 진행하는 프로젝트가 시자을 계산하여 요금을 계산하는 업무이다 보니, 이번 기회에 Mysql에서 시간, 날자 등을 계산하는 방법을 정리해둔다.

SELECT TIMESTAMPDIFF(SECOND, '2021-01-01', '2021-01-02');
SELECT TIMESTAMPDIFF(MINUTE, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(HOUR, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(DAY, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(WEEK, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(MONTH, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(QUARTER, '2021-03-01', '2021-03-31');
SELECT TIMESTAMPDIFF(YEAR, '2020-01-01', '2021-03-31');
SELECT TIMESTAMPDIFF(QUARTER, '2020-01-01', '2021-03-31');

SELECT DATEDIFF('2020-01-01 00:009:00', '2021-03-31 00:00:00');
Declare TIME_DIFF int;

SELECT TIMESTAMPDIFF(SECOND, '2021-01-01', '2021-01-02') into TIME_DIFF ;

이렇게 계산한 TIME_DIFF 를 계산할 Table에 반영한다

 

 

 

목동코딩 코딩교육

728x90
728x90

목동코딩학원 : 코딩교육

방배동 친구의 후배가 전시회에 부스로 참여하는데, I.T 를 융합을 어떤식으로 하면 좋을지를 애기 하기로 해서 아침일찍 집에서 코엑스로 출발했습니다. 막 집을 나가려는데 경주에 거주하고, 지금은 아산에서 사업을 하는 친구가 전화와서 교대를 온다기에 함께 코엑스에서 만났습니다.

전시회를 둘어보면서 저는 제 I.T 능력으로 어느정도의 컨텐트를 Cover 하는지를 체크했습니다.

ㅎㅎ 아직은 더 먹고 살 수 있다는 생각에 감사 했습니다.

어휴 나 코딩 안했으면 무엇을 하고 있을지 생각 하면 깜깜 합니다.

얼마전 아들한테, "아빠는 80살 까지만 코딩 할련다" 했더니, "아빠! 나 그럼 50살 이야 하기에 깜짝 놀랐습니다. "나만 나이 먹는게 아니구나.... ㅠㅠ, 아들이 50살이 된다는 생각이 드니 슬퍼집니다 ㅎㅎ ㅠㅠ.

열심히 플랫폼을 만들어서 , 컴퓨터 전공한 아들이 더욱 확장하도록 , 아빠 찬스를 줄려고요... 이것도 문제가 되나? ㅎㅎ

에이 정치는 어차피 안할건데 모...

전시회를 둘러보니 교육 컨텐츠의 변화가 보입니다.

2000년도에 말리이지아 프로젝트에 참여할때, 가방 하나 끌고서, 전세계의 납품된 자신의 기계를 유지보수하러 출장다니는, 일본 기술자의 모습이 갑자기 생각납니다.

빨리 코로나로 인한 여행 제한이 풀리고 누군가가 "네가 가라 하와이" 하면 "네~~" 하고 빨리 다녀올려고요 ㅎㅎ.

 

목동코딩 코딩교육
목동코딩 코딩교육

728x90
728x90

목동코딩학원 : 안드로이드 교육

안드로이드로 앱을 개발하다 보면, 안드로이드에서 제공하는 Toast 메시지로만 처리하기에는 조금 부족한 면이 있다. 그래서 Toast 역시 커스터마이징 해서 표시되는 위치나 글자 크기, 색상 등을 변경해서 사용하곤 했다.

이번에는 커스텀 다이얼로그를 만들어서 이미지 까지 포함하는 메시지를 사용하는 방법을 정리해둔다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="500dp"
    android:layout_height="500dp"
    android:gravity="center"
    android:layout_marginBottom="30dp"
    android:layout_marginTop="50dp"
    android:background="#ffffff"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/custom_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="이용약관"
            android:textSize="40dp" />

        <TextView
            android:id="@+id/custom_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="확인합니다"
            android:textSize="20dp" />

        <ImageView
            android:id="@+id/custom_image"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/common_member" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginTop="20dp"
        android:weightSum="100">

        <Button
            android:id="@+id/pbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="확인" />

        <Button
            android:id="@+id/nbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="취소" />
    </LinearLayout>
</LinearLayout>

 

목동코딩학원 코딩교육 키오스크개발

 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //다이얼로그 밖의 화면은 흐리게 만들어줌
        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
        layoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
        layoutParams.dimAmount = 0.8f;
        getWindow().setAttributes(layoutParams);

        setContentView(R.layout.custom_dialog);

        full_screen();

        //셋팅
        mTitle = (TextView)findViewById(R.id.custom_title);
        mText = (TextView)findViewById(R.id.custom_text);
        mImage = (ImageView)findViewById(R.id.custom_image);

 
        mTitle.setText(sTitle);
        mText.setText(sText);
        mImage.setImageResource(R.drawable.common);        

        mPositiveButton=(Button)findViewById(R.id.pbutton);
        mNegativeButton=(Button)findViewById(R.id.nbutton);

        //클릭 리스너 셋팅 (클릭버튼이 동작하도록 만들어줌.)
        mPositiveButton.setOnClickListener(mPositiveListener);
        mNegativeButton.setOnClickListener(mNegativeListener);
    }
String title = "구매등록";
String text1 = "이용권 구매를 완료했습니다";
customDialog = new CustomDialog(AmountActivity.this,positiveListener,negativeListener);
customDialog.setsTitle(title);
customDialog.setsText(text1);
customDialog.show();

목동코딩 언택트 코딩교육

 

728x90
728x90

목동코딩 : 안드로이드 코딩교육

안드로이드 앱을 개발하면서 아래 사진과 같은 체크박스를 만들고 싶어서, 구글 검색을 통해 체크박스 크기를 변경하는 방법을 찾다보니, background에 이미지를 넣어서 하는 방법이 있어서 정리해 둡니다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 체크박스 해제상태 -->
    <item android:drawable="@drawable/check_before" android:state_checked="false" />
    <!-- 체크박스 선택상태 -->
    <item android:drawable="@drawable/check_drop" android:state_checked="true" />
    <!-- 체크박스 기본상태 -->
    <item android:drawable="@drawable/check_before" />
</selector>

 

 

<CheckBox

android:layout_width="40dp"

android:layout_height="40dp"

android:text=""

android:id="@+id/term"

android:layout_marginLeft="76dp"

android:gravity="center"

android:button="@android:color/transparent"

android:background="@drawable/check_box"

android:layout_alignParentRight="true" />

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

728x90
728x90

목동코딩: 코딩교육

이번 프로젝트는 조금 일반적이지 않은 프로젝트이다. 쇼핑몰과 비슷한데 공급처별로 보여주고 집계를 해서 주문을 하는 프로젝트이다.(아래화면)

그러다 보니 표시되는 input 태그에 각각의 공급처가 표시 되어야 한다. 그리고 주문시에는 각 공급처 별로 주문저장을 해야한다. 그래서 <input ss="Brand"/> 라는 커스텀 태그를 만들어서 사용하였다.

 

 

<script>
    function toOrder() {
        var number_input = $("input[ss=Brand]");
        console.log(number_input);

         
        $.each(number_input, function(index, value) {
            console.log('IDX :' + index);
            console.log(value);
            console.log('ID =' + $(value).attr("id"));
            console.log('NAME =' + $(value).attr("name"));
            console.log('VALUE =' + $(value).val());
        });
}
</script>

<input ss="Brand" name="Brand"  value="100">

이제는 split 하여서 사용하면 되겠다

 

목동코딩 코딩교육

728x90
728x90

목동코딩: 코딩교육

Php로만 프로젝트를 하다가, 갑자기 NGINX 에서 Kestrel 로 리버싱하여서 Asp.net mvc 프레임으로 개발하면서 많은 고생을 하고 있다. 그중에 SQL에 익숙한 나로선 해결 방법을 찾는데 많은 고생을 한다. 그래서 이미 알고 있는 사람한테는 웃음을 짓겠지만 나는 추후에 보기 위해서 기록한다

 

            FranchiseePoint d = new FranchiseePoint();

            d.RegiDate = c.RegiDate;
            d.FranchiseeId = c.FranchiseeId;
            d.point = c.point;
            d.비고 = c.비고;
            DB.FranchiseePoint.Add(d);

            DB.SaveChanges();

 

 

http://nooh-system.com/

목동코딩: 코딩교육 라즈베리교육

728x90
728x90

목동코딩,코딩교육

function deleteOerder(obj) {

   $("#" + obj.id).closest('tr').remove();
}

var row = "";
row = row + "<tr>";

row = row +
    "<td><input id='" + resArray[0] +
    "' name='ItemCode' class='btn btn-secondary' onclick='deleteOerder(this);' type='button' value='" +
    '삭제' +
    "' style='width: 80%;padding: 0;border-radius: 0.4rem;font-size: 1.45rem;border-color: white;'></td>";
row = row +
    "<td ><input name='DispLetter'  type='text' value='" + resArray[1] +
    "' style='width: 100%;' disabled></td>";
row = row + "<td ><input name='ItemName'  type='text' value='" + resArray[2] +
    "' style='width: 100%;' disabled></td>";
row = row + "<td ><input name='Price'  type='text' value='" + comma(resArray[3]) +
    "' style='width: 100%;text-align:right;padding-right:10px;' disabled></td>";
row = row +
    "<td ><input   name='Cnt' onchange='reCalcu();'  type='number' value='1' min='1' style='width: 100%;' ></td>";

row = row + "</tr>";
$('#orderItems').append(row);
var totSum1 = uncomma($('#buySum').val());
var totSum2 = uncomma(resArray[3]);
var totSum = (parseInt(totSum2) + parseInt(totSum1)).toString();

$('#buySum').val(comma(totSum));
          
});
728x90

+ Recent posts