2016-06-22 2 views
1

판매 시점에 관한 프로젝트가 있습니다. 내 안드로이드는 모든 판매가 발생했을 때 인보이스를 인쇄하길 원합니다.android command print를 만드는 방법

Android 용 Android Studio를 사용하고 있습니다. 나는 SQL 서버를 사용하고 있고 데스크톱의 응용 프로그램은 vb.net 언어 (Visual Studio 2012)를 사용하고 있습니다. 내 구조입니다

this

. 내 컴퓨터에 연결된 프린터를 사용하여 android print invoices를 만들려면 어떻게해야합니까? 내 데스크톱 응용 프로그램에서 인보이스 디자인을 만들고 있습니다. 감사!

+0

당신은 귀하의 안드로이드 애플 리케이션에서 인보이스가 인쇄되어야한다는 것을 나타내는 데이터베이스에 무언가를 쓸 수 있습니다. 예를 들어, Invoiceid에 대한 링크가있는 PrintInvoices라는 테이블 또는 무엇이든 상태를 입력하십시오. 그런 다음이 테이블을 x 초마다 확인하고 아직 인쇄되지 않은 송장을 인쇄하는 데스크탑 응용 프로그램에 항목을 추가 할 수 있습니다 (상태 필드 기반) – Tonny

답변

0

인보이스를 인쇄 할 수있는 기능이 웹 서비스를 사용하는 것처럼 자연 스럽지만 서비스에 인보이스 ID (예 :/service/print/invoice/7)를 말하면됩니다. 인쇄 작업을 반환 할 것을 제안합니다 ID 당신이 당신의 안드로이드에서 상태의 쿼리 수 (/ 서비스/인쇄/작업 ID/상태) 또는 취소 (/ 서비스/인쇄/작업 ID/취소)

는 데이터베이스에 보류중인 인쇄 작업을 만들

내가 알고 싶어하는 까다로운 일은 웹 서비스를 앱과 통신하는 방법이다. 창을 사용함에 따라 주문을 윈도우 메시지로 보내는 것이 좋다. FindWindowEx (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)로 앱 창을 찾으십시오. 앱이 실행 중이 아니면 실행하고 창을 찾을 때까지 기다리십시오. 창 처리기에서 사용자 메시지를 보내면 사용자 메시지는 ID가 WM_USER (https://msdn.microsoft.com/en-us/library/windows/desktop/ms644931(v=vs.85).aspx) 인 메시지입니다. 예를 들어 보류중인 인쇄 작업을 확인하는 데 WM_USER +1을 사용합니다. 메시지 사용 PostMessage를를 보내는

는 :

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> 


Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean 
End Function 

HWND (즉, null이 아닌지 확인) 메시지를 messageId가가,이 예에서 WM_USER해야 Y는 FindWindowEx로 검색 한 앱 윈도우의 핸들 1 의 wParam과 lParam에 매개 변수가 https://msdn.microsoft.com/en-us/library/windows/desktop/ms644944%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396을 확인 당신이 바로 WndProc을 무시하고 앱에서

PostMessage를

에 대한 추가 정보를 원하시면 보낼 수있는 정수 당신은 메시지 확인을 recevie 때 경우의 인쇄 송장 메시지 (WM_USER + 1 -> & H401) DB에서 보류중인 인쇄 작업을 실행합니다.

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) 
Select Case m.Msg 
    Case &H401 
     ExecutePendingPrintingJobsFromDB() 
    Case Else 
     MyBase.WndProc(m) 
End Select 
End Sub 

다른 것들에 대해 다른 사용자 메시지를 정의 할 수도 있습니다.

희망이 도움이됩니다.

관련 문제