Jump to content
Fivewin Brasil

gunafe

Membros
  • Posts

    599
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by gunafe

  1. Bom dia a Todos, Estou tentando publicar uma foto mas esta dando erro, mas vou continuar tentando... []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  2. Bom dia Mauricio, Pelo contrario, o que entendi é que o tef tem que ser emitido por ECF em documento vinculado, o que significa que as maquininhas POS é que estão sendo proibidas, ou seja, em são paulo o ECF não era obrigatório e passa a ser a partir deste decreto. Me corrijam se eu estiver errado em minha interpretação. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  3. Bom dia, O jeito é usar um rpreview.prg que permite a seleção das impressoras diretamente nele, copie o código abaixo e compile junto com seu sistema e veja se resolve: //////////////////////////////////////////////////// // clase RPREVIEW // reformada por mcn Valdenebro para select printer /////////////////////////////////////////////////// #include "FiveWin.ch" #define DEVICE oWnd:cargo #define GO_POS 0 #define GO_UP 1 #define GO_DOWN 2 #define GO_LEFT 1 #define GO_RIGHT 2 #define GO_PAGE .T. #define VSCROLL_RANGE 20 * nZFactor #define HSCROLL_RANGE 20 * nZFactor #define TXT_FIRST LoadString( GetResources(), 07 ) #define TXT_PREVIOUS LoadString( GetResources(), 08 ) #define TXT_NEXT LoadString( GetResources(), 09 ) #define TXT_LAST LoadString( GetResources(), 10 ) #define TXT_ZOOM LoadString( GetResources(), 11 ) #define TXT_UNZOOM LoadString( GetResources(), 12 ) #define TXT_TWOPAGES LoadString( GetResources(), 13 ) #define TXT_ONEPAGE LoadString( GetResources(), 14 ) #define TXT_PRINT LoadString( GetResources(), 15 ) #define TXT_EXIT LoadString( GetResources(), 16 ) #define TXT_FILE LoadString( GetResources(), 17 ) #define TXT_PAGE LoadString( GetResources(), 18 ) #define TXT_PREVIEW LoadString( GetResources(), 03 ) #define TXT_PAGENUM LoadString( GetResources(), 19 ) #define TXT_A_WINDOW_PREVIEW_IS_ALLREADY_RUNNING LoadString( GetResources(), 20 ) #define TXT_GOTO_FIRST_PAGE LoadString( GetResources(), 21 ) #define TXT_GOTO_PREVIOUS_PAGE LoadString( GetResources(), 22 ) #define TXT_GOTO_NEXT_PAGE LoadString( GetResources(), 23 ) #define TXT_GOTO_LAST_PAGE LoadString( GetResources(), 24 ) #define TXT_ZOOM_THE_PREVIEW LoadString( GetResources(), 25 ) #define TXT_UNZOOM_THE_PREVIEW LoadString( GetResources(), 26 ) #define TXT_PREVIEW_ON_TWO_PAGES LoadString( GetResources(), 27 ) #define TXT_PREVIEW_ON_ONE_PAGE LoadString( GetResources(), 28 ) #define TXT_PRINT_CURRENT_PAGE LoadString( GetResources(), 29 ) #define TXT_EXIT_PREVIEW LoadString( GetResources(), 30 ) #define TXT_FACTOR LoadString( GetResources(), 31 ) #define TXT_ZOOM_FACTOR LoadString( GetResources(), 32 ) #define MK_MBUTTON 16 static oWnd, oBar, oMeta1, oMeta2, oPage, oTwoPages, oZoom, oMenuZoom, oMenuTwoPages static oMenuUnZoom, oMenuOnePage, oFactor, cResFile static aFactor , nPage, nZFactor, lTwoPages, lZoom //----------------------------------------------------------------------------// Function RPreview( oDevice ) local aFiles := oDevice:aMeta local hOldRes := GetResources() local oSay local nFor local oWndMain := WndMain(), oIcon, oCursor, oMenu, oBrush, oFont local l97Look := oWndMain != nil .and. oWndMain:oBar != nil .and.; Len( oWndMain:oBar:aControls ) > 0 .and. oWndMain:oBar:aControls[ 1 ]:l97Look local lExit := .F. local oHand, oImageList, oReBar // , cPageNum local aImpre := aGetPrinters(), oCbx, cCbx := PrnGetName(), cImpre := cCbx // mcn valdenebro #ifdef __CLIPPER__ cResFile := "Preview.dll" #else if !IsWin64() cResFile := "Prev32.dll" else cResFile = "Prev64.dll" endif #endif IF SetResources( cResFile ) < 32 MsgStop( cResFile + " não encontrado, imposivel continuar", "Erro de Impressão do FiveWin") Return nil EndIF IF oWnd != nil MsgStop( TXT_A_WINDOW_PREVIEW_IS_ALLREADY_RUNNING ) SetResources( hOldRes ) Return nil EndIF IF oWndMain != nil oIcon = oWndMain:oIcon Else DEFINE ICON oIcon RESOURCE "Print" EndIF IF oDevice:lPrvModal .and. oWndMain != nil oWndMain:Hide() Else lExit := .T. EndIF //DEFINE FONT oFont NAME GetSysFont() SIZE 0,-12 DEFINE FONT oFont NAME 'Courier New' SIZE 0,-12 DEFINE CURSOR oCursor RESOURCE "Lupa" DEFINE WINDOW oWnd FROM 0, 0 TO 24, 80 TITLE oDevice:cDocument; COLOR CLR_BLACK,CLR_LIGHTGRAY; ICON oIcon; VSCROLL HSCROLL // So IsAppThemed() is properly detected as the window is already built oWnd:SetMenu( BuildMenu() ) oWnd:SetFont(oFont) oWnd:oVScroll:SetRange(0,0) oWnd:oHScroll:SetRange(0,0) DEFINE CURSOR oHand HAND IF IsAppThemed() DEFINE IMAGELIST oImageList SIZE 16, 16 oImageList:AddMasked( TBitmap():DEFINE( "top2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "previous2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "next2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "bottom2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "zoom2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "two_pages2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "printer2",, oWnd ), nRGB( 255, 0, 255 ) ) // oImageList:AddMasked( TBitmap():DEFINE( "efe7",, oWnd ), nRGB( 192, 192, 192 ) ) // oImageList:AddMasked( TBitmap():DEFINE( "efe8",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "exit2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "unzoom2",, oWnd ), nRGB( 192, 192, 192 ) ) oImageList:AddMasked( TBitmap():DEFINE( "one_page2",, oWnd ), nRGB( 192, 192, 192 ) ) oReBar = TReBar():New( oWnd ) DEFINE TOOLBAR oBar OF oReBar SIZE 25, 25 IMAGELIST oImageList oReBar:InsertBand( oBar ) oBar:nHeight -= 2 DEFINE TBBUTTON OF oBar; // top2 ACTION TopPage(); TOOLTIP Strtran(TXT_FIRST,"&",""); MESSAGE TXT_GOTO_FIRST_PAGE DEFINE TBBUTTON OF oBar; // previous2 ACTION PrevPage(); TOOLTIP Strtran(TXT_PREVIOUS,"&","") ; MESSAGE TXT_GOTO_PREVIOUS_PAGE DEFINE TBBUTTON OF oBar; // next2 ACTION NextPage(); TOOLTIP Strtran(TXT_NEXT,"&",""); MESSAGE TXT_GOTO_NEXT_PAGE DEFINE TBBUTTON OF oBar; // bottom2 ACTION BottomPage(); TOOLTIP Strtran(TXT_LAST,"&","") ; MESSAGE TXT_GOTO_LAST_PAGE DEFINE TBSEPARATOR OF oBar DEFINE TBBUTTON OF oBar; // zoom2 ACTION Zoom(); TOOLTIP Strtran(TXT_ZOOM,"&",""); MESSAGE TXT_ZOOM_THE_PREVIEW DEFINE TBBUTTON OF oBar; //two_pages2 ACTION TwoPages(); TOOLTIP StrTran( Strtran(TXT_TWOPAGES,"&",""), "á", "a" ); MESSAGE TXT_PREVIEW_ON_TWO_PAGES DEFINE TBSEPARATOR OF oBar DEFINE TBBUTTON OF oBar; // printer2 ACTION PrintPage(); TOOLTIP Strtran(TXT_PRINT,"&",""); MESSAGE TXT_PRINT_CURRENT_PAGE /* DEFINE BUTTON RESOURCE "Efe7" OF oBar; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F7'); TOOLTIP Strtran( TXT_PRINT,"&","" ) DEFINE BUTTON RESOURCE "Efe8" OF oBar; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F8'); TOOLTIP Strtran( TXT_PRINT,"&","" ) DEFINE TBSEPARATOR OF oBar */ DEFINE TBBUTTON OF oBar ; ACTION oWnd:End() ; TOOLTIP Strtran(TXT_EXIT,"&","") ; MESSAGE TXT_EXIT_PREVIEW Else DEFINE BUTTONBAR oBar _3D SIZE 26, If( LargeFonts(), 30, 26 ) OF oWnd oBar:bRClicked := {|| nil } IF l97Look DEFINE BUTTON RESOURCE "Top" OF oBar ; MESSAGE TXT_GOTO_FIRST_PAGE ; ACTION TopPage() ; TOOLTIP Strtran(TXT_FIRST,"&","") NOBORDER DEFINE BUTTON RESOURCE "Previous" OF oBar ; MESSAGE TXT_GOTO_PREVIOUS_PAGE ; ACTION PrevPage() ; TOOLTIP Strtran(TXT_PREVIOUS,"&","") NOBORDER DEFINE BUTTON RESOURCE "Next" OF oBar ; MESSAGE TXT_GOTO_NEXT_PAGE ; ACTION NextPage() ; TOOLTIP Strtran(TXT_NEXT,"&","") NOBORDER DEFINE BUTTON RESOURCE "Bottom" OF oBar ; MESSAGE TXT_GOTO_LAST_PAGE ; ACTION BottomPage() ; TOOLTIP Strtran(TXT_LAST,"&","") NOBORDER DEFINE BUTTON oZoom RESOURCE "Zoom" OF oBar GROUP ; MESSAGE TXT_ZOOM_THE_PREVIEW ; ACTION Zoom() ; TOOLTIP Strtran(TXT_ZOOM,"&","") NOBORDER DEFINE BUTTON oTwoPages RESOURCE "Two_Pages" OF oBar ; MESSAGE TXT_PREVIEW_ON_TWO_PAGES ; ACTION TwoPages() ; TOOLTIP Strtran(TXT_TWOPAGES,"&","") NOBORDER DEFINE BUTTON RESOURCE "Printer" OF oBar GROUP ; MESSAGE TXT_PRINT_CURRENT_PAGE ; ACTION PrintPage() ; TOOLTIP Strtran(TXT_PRINT,"&","") NOBORDER /* DEFINE BUTTON RESOURCE "Efe7" OF oBar GROUP; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F7'); TOOLTIP Strtran( TXT_PRINT,"&","" ) DEFINE BUTTON RESOURCE "Efe8" OF oBar; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F8'); TOOLTIP Strtran( TXT_PRINT,"&","" ) */ DEFINE BUTTON RESOURCE "Exit" OF oBar GROUP ; MESSAGE TXT_EXIT_PREVIEW ; ACTION oWnd:End() ; TOOLTIP Strtran(TXT_EXIT,"&","") NOBORDER Else DEFINE BUTTON RESOURCE "Top" OF oBar ; MESSAGE TXT_GOTO_FIRST_PAGE ; ACTION TopPage() ; TOOLTIP Strtran(TXT_FIRST,"&","") DEFINE BUTTON RESOURCE "Previous" OF oBar ; MESSAGE TXT_GOTO_PREVIOUS_PAGE ; ACTION PrevPage() ; TOOLTIP Strtran(TXT_PREVIOUS,"&","") DEFINE BUTTON RESOURCE "Next" OF oBar ; MESSAGE TXT_GOTO_NEXT_PAGE ; ACTION NextPage() ; TOOLTIP Strtran(TXT_NEXT,"&","") DEFINE BUTTON RESOURCE "Bottom" OF oBar ; MESSAGE TXT_GOTO_LAST_PAGE ; ACTION BottomPage() ; TOOLTIP Strtran(TXT_LAST,"&","") DEFINE BUTTON oZoom RESOURCE "Zoom" OF oBar GROUP ; MESSAGE TXT_ZOOM_THE_PREVIEW ; ACTION Zoom() ; TOOLTIP Strtran(TXT_ZOOM,"&","") DEFINE BUTTON oTwoPages RESOURCE "Two_Pages" OF oBar ; MESSAGE TXT_PREVIEW_ON_TWO_PAGES ; ACTION TwoPages() ; TOOLTIP Strtran(TXT_TWOPAGES,"&","") DEFINE BUTTON RESOURCE "Printer" OF oBar GROUP ; MESSAGE TXT_PRINT_CURRENT_PAGE ; ACTION PrintPage() ; TOOLTIP Strtran(TXT_PRINT,"&","") /* DEFINE BUTTON RESOURCE "Efe7" OF oBar GROUP; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F7'); TOOLTIP Strtran( TXT_PRINT,"&","" ) DEFINE BUTTON RESOURCE "Efe8" OF oBar; MESSAGE TXT_PRINT_CURRENT_PAGE; ACTION msginfo( 'Chamada para F8'); TOOLTIP Strtran( TXT_PRINT,"&","" ) */ DEFINE BUTTON RESOURCE "Exit" OF oBar GROUP ; MESSAGE TXT_EXIT_PREVIEW ; ACTION oWnd:End() ; TOOLTIP Strtran(TXT_EXIT,"&","") EndIF AEval( oBar:aControls, { | o | o:oCursor := oHand } ) EndIF #ifdef __CLIPPER__ SET MESSAGE OF oWnd TO TXT_PREVIEW CENTERED NOINSET CLOCK DATE KEYBOARD #else DEFINE STATUSBAR OF oWnd PROMPT " " + TXT_PREVIEW // CLOCK #endif oMeta1 := TMetaFile():New( 0, 0, 0, 0,; aFiles[ 1 ],; oWnd,; CLR_BLACK,; CLR_WHITE,; oDevice:nHorzRes(),; oDevice:nVertRes() ) oMeta1:oCursor := oCursor oMeta1:blDblClick := { |nRow, nCol, nKeyFlags| SetOrg1( nCol, nRow, nKeyFlags ) } oMeta1:bKeyDown := { |nKey,nFlags| CheckKey( nKey, nFlags ) } oMeta1:bMouseWheel := { | nKeys, nDelta, nXPos, nYPos | CheckMouseWheel( nKeys, nDelta, nXPos, nYPos ) } #ifndef __XPP__ // XBPP bug. Warning: don't change this into #ifdef __CLIPPER__ oMeta2 := TMetaFile():New( 0,0,0,0,"",; oWnd, CLR_BLACK, CLR_WHITE, oDevice:nHorzRes(), oDevice:nVertRes() ) #else oMeta2 := TMetaFile():New():_New( 0,0,0,0,"",; oWnd, CLR_BLACK, CLR_WHITE, oDevice:nHorzRes(), oDevice:nVertRes() ) #endif oMeta2:oCursor := oCursor oMeta2:blDblClick := {|nRow, nCol, nKeyFlags| ; SetOrg2(nCol, nRow, nKeyFlags)} oMeta2:hide() nPage := 1 nZFactor := 1 lTwoPages := .F. lZoom := .F. //@ 7, 275 SAY oSay PROMPT "Aumento: " SIZE 60, 15 PIXEL OF oBar FONT oFont // ha dado error @ 7, 325 SAY oSay PROMPT "Aumento: " SIZE 60, 15 PIXEL OF oBar FONT oFont // ha dado error IF IsAppThemed() oSay:SetBrush( TBrush():New( "NULL" ) ) EndIF //@ 3, 325 COMBOBOX oFactor VAR nZFactor; @ 3, 375 COMBOBOX oFactor VAR nZFactor; ITEMS{ "1", "2", "3", "4", "5", "6", "7", "8", "9" } OF oBar; FONT oFont PIXEL SIZE 35,200 ON CHANGE SetFactor( nZFactor ) // modi Sebastian Almiron rectificar número de páginas en preview //@ 7, 410 SAY oPAGE PROMPT "Número de página: " + ltrim( str( nPage, 4, 0 ) ) + " / " +; @ 7, 495 SAY oPAGE PROMPT "Número de página: " + ltrim( str( nPage, 4, 0 ) ) + " / " +; ltrim( str( len( aFiles ) ) ) SIZE 180, 15 PIXEL OF oBar FONT oFont // mcn Valdenebro para seleccionar impresora desde el preview //@ 3, 580 COMBOBOX oCbx VAR cCbx; @ 3, 680 COMBOBOX oCbx VAR cCbx; PROMPTS aImpre; OF oBar FONT oFont PIXEL SIZE 150,200; ON CHANGE F_CamImpre( oDevice, cCbx ) IF IsAppThemed() FixSays( oBar:hWnd ) EndIF #ifndef __XPP__ oFactor:Set3dLook() #endif oWnd:cargo := oDevice WndCenter( oWnd:hWnd ) SysRefresh() SetResources(hOldRes) oWnd:oHScroll:bPos := {|nPos| hScroll(GO_POS, .f., nPos)} oWnd:oVScroll:bPos := {|nPos| vScroll(GO_POS, .f., nPos)} SetFactor() // mcn valdenebro para salir con escape oWnd:bKeyDown := { |nK| IF( nK != VK_ESCAPE, , oWnd:End() ) } ACTIVATE WINDOW oWnd MAXIMIZED; ON RESIZE PaintMeta(); ON UP vScroll( GO_UP ); ON DOWN vScroll( GO_DOWN ); ON PAGEUP PrevPage(); //vScroll( GO_UP, GO_PAGE ); ON PAGEDOWN NextPage(); //vScroll( GO_DOWN, GO_PAGE ); ON LEFT hScroll( GO_LEFT ); ON RIGHT hScroll( GO_RIGHT ); ON PAGELEFT hScroll( GO_LEFT, GO_PAGE ); ON PAGERIGHT hScroll( GO_RIGHT, GO_PAGE ); ON INIT( Zoom() ); VALID( oWnd:oIcon := nil,; oFont:End(),; oMeta1:End(),; oMeta2:End(),; F_CamImpre( oDevice, cImpre ),; oDevice:End(),; oHand:End(),; oWnd := nil,; IF( IsAppThemed(), oImageList:End(),),; lExit := .t., .t. ) StopUntil( { || lExit } ) IF oDevice:lPrvModal .and. oWndMain != nil oWndMain:Show() EndIF Return (nil) //----------------------------------------------------------------------------// static function BuildMenu() local nFor, oMenu local lThemed := IsAppThemed() local cPrinter := If( lThemed, "Printer2", "Printer" ) local cTop := If( lThemed, "Top2", "Top" ) local cPrevious := If( lThemed, "Previous2", "Previous" ) local cNext := If( lThemed, "Next2", "Next" ) local cBottom := If( lThemed, "Bottom2", "Bottom" ) local cZoom := If( lThemed, "Zoom2", "Zoom" ) local cUnZoom := If( lThemed, "UnZoom2", "UnZoom" ) local cOne_Page := If( lThemed, "One_page2", "One_page" ) local cTwo_Pages := If( lThemed, "Two_pages2", "Two_pages" ) local cExit := If( lThemed, "Exit2", "Exit" ) aFactor := Array(9) MENU oMenu MENUITEM TXT_FILE MENU MENUITEM TXT_PRINT ACTION PrintPage() ; MESSAGE TXT_PRINT_CURRENT_PAGE RESOURCE cPrinter SEPARATOR MENUITEM TXT_EXIT ACTION oWnd:End() ; MESSAGE TXT_EXIT_PREVIEW RESOURCE cExit ENDMENU MENUITEM TXT_PAGE MENU MENUITEM TXT_FIRST ACTION TopPage() ; MESSAGE TXT_GOTO_FIRST_PAGE RESOURCE cTop MENUITEM TXT_PREVIOUS ACTION PrevPage() ; MESSAGE TXT_GOTO_PREVIOUS_PAGE RESOURCE cPrevious MENUITEM TXT_NEXT ACTION NextPage() ; MESSAGE TXT_GOTO_NEXT_PAGE RESOURCE cNext MENUITEM TXT_LAST ACTION BottomPage() ; MESSAGE TXT_GOTO_LAST_PAGE RESOURCE cBottom SEPARATOR MENUITEM oMenuZoom PROMPT TXT_ZOOM ACTION Zoom(.T.) ; ENABLED ; MESSAGE TXT_ZOOM_THE_PREVIEW RESOURCE cZoom MENUITEM oMenuUnZoom PROMPT TXT_UNZOOM ACTION Zoom(.T.) ; MESSAGE TXT_UNZOOM_THE_PREVIEW RESOURCE cUnZoom MENUITEM "&Factor" MESSAGE TXT_ZOOM_FACTOR MENU FOR nFor := 1 TO len(aFactor) MENUITEM aFactor[nFor] ; PROMPT "&"+ltrim(str(nFor)) ; MESSAGE "Factor " + LTrim( Str( nFor ) ) ; ACTION ( oFactor:Set( oMenuItem:nHelpId ),; Eval( oFactor:bChange ) ) NEXT ENDMENU SEPARATOR MENUITEM oMenuTwoPages PROMPT TXT_TWOPAGES ACTION TwoPages(.T.) ; ENABLED ; MESSAGE TXT_PREVIEW_ON_TWO_PAGES RESOURCE cTwo_Pages MENUITEM oMenuOnePage PROMPT TXT_ONEPAGE ACTION TwoPages(.T.) ; MESSAGE TXT_PREVIEW_ON_ONE_PAGE RESOURCE cOne_Page ENDMENU ENDMENU oMenuUnZoom:Disable() oMenuOnePage:Disable() return oMenu //----------------------------------------------------------------------------// static function PaintMeta() local oCoors1, oCoors2 local aFiles := DEVICE:aMeta local nWidth, nHeight, nFactor, nMetaWidth if IsIconic(oWnd:hWnd) RETU nil endif DO case case ! lTwoPages if ! lZoom if DEVICE:nHorzSize() >= ; // landscape (apaisado) DEVICE:nVertSize() nFactor := .8 // .4 else nFactor := .40 // .25 endif else nFactor := .47 endif nWidth = oWnd:nWidth() - If( lZoom, 20, 0 ) nHeight = oWnd:nHeight() - If( lZoom .and. nZFactor > 1, 20, 0 ) - 10 - ; If( LargeFonts(), 100, 80 ) if ! lZoom nMetaWidth = ( nHeight - 40 ) * nFactor else nMetaWidth = nWidth * nFactor endif oCoors1 := TRect():New( 40,; Max( ( nWidth / 2 ) - nMetaWidth, 10 ),; nHeight,; Min( ( nWidth / 2 ) + nMetaWidth, nWidth - 20 ) ) oMeta2:Hide() oMeta1:SetCoors( oCoors1 ) oMeta1:Refresh() case lTwoPages nFactor := .4 aFiles := DEVICE:aMeta nWidth := oWnd:nWidth() nHeight := oWnd:nHeight() - 10 - If( LargeFonts(), 100, 80 ) nMetaWidth = Min( ( nHeight - 40 ) * nFactor, ( nWidth - 60 ) / 4 ) oCoors1 := TRect():New(40,; ( nWidth / 4 ) - nMetaWidth,; nHeight,; ( nWidth / 4 ) + nMetaWidth ) oCoors2 := TRect():New(40,; ( nWidth / 4 ) - nMetaWidth + ( nWidth / 2 ),; nHeight,; ( nWidth / 4 ) + nMetaWidth + ( nWidth / 2 ) ) if nPage == Len(aFiles) oMeta2:SetFile("") else oMeta2:SetFile(aFiles[nPage+1]) endif oMeta1:SetCoors(oCoors1) oMeta2:SetCoors(oCoors2) oMeta1:Refresh() oMeta2:Show() endcase oMeta1:SetFocus() return nil //----------------------------------------------------------------------------// static function NextPage() local hOldRes := GetResources() local aFiles := DEVICE:aMeta if nPage >= len(aFiles) MessageBeep() RETU nil endif nPage++ SET RESOURCES TO cResFile oMeta1:SetFile( aFiles[ nPage ] ) oPage:SetText( TXT_PAGENUM + LTrim( Str( nPage, 4, 0 ) ) + " / " + ; LTrim( Str( Len( aFiles ) ) ) ) oBar:Refresh() oMeta1:Refresh() if lTwoPages if Len( aFiles ) >= nPage + 1 oMeta2:SetFile( aFiles[ nPage + 1 ] ) else oMeta2:SetFile( "" ) endif oMeta2:Refresh() endif oMeta1:SetFocus() SetResources(hOldRes) return nil //----------------------------------------------------------------------------// static function PrevPage() local hOldRes := GetResources() local aFiles := DEVICE:aMeta if nPage == 1 MessageBeep() RETU nil endif nPage-- SET RESOURCES TO cResFile oMeta1:SetFile( aFiles[ nPage ] ) oPage:SetText( TXT_PAGENUM + LTrim( Str( nPage, 4, 0 ) ) + " / " + ; LTrim( Str( Len( aFiles ) ) ) ) oBar:Refresh() oMeta1:Refresh() if lTwoPages if Len( aFiles ) >= nPage + 1 oMeta2:SetFile( aFiles[ nPage + 1 ] ) else oMeta2:SetFile( "" ) endif oMeta2:Refresh() endif oMeta1:SetFocus() SetResources(hOldRes) return nil //----------------------------------------------------------------------------// static function TopPage() local hOldRes := GetResources() local aFiles := DEVICE:aMeta if nPage == 1 MessageBeep() return nil endif nPage = 1 SET RESOURCES TO cResFile oMeta1:SetFile( aFiles[ nPage ] ) oPage:SetText( TXT_PAGENUM + LTrim( Str( nPage, 4, 0 ) ) + " / " + ; LTrim( Str( Len( aFiles ) ) ) ) oBar:Refresh() oMeta1:Refresh() if lTwoPages if Len( aFiles ) >= nPage + 1 oMeta2:SetFile( aFiles[ nPage + 1 ] ) else oMeta2:SetFile( "" ) endif oMeta2:Refresh() endif oMeta1:SetFocus() SetResources(hOldRes) return nil //----------------------------------------------------------------------------// static function BottomPage() local hOldRes := GetResources() local aFiles := DEVICE:aMeta if nPage == Len( aFiles ) MessageBeep() return nil endif nPage = Len( aFiles ) SET RESOURCES TO cResFile oMeta1:SetFile( aFiles[ nPage ] ) oPage:SetText( TXT_PAGENUM + LTrim( Str( nPage, 4, 0 ) ) + " / " + ; LTrim( Str( Len( aFiles ) ) ) ) oBar:Refresh() oMeta1:Refresh() if lTwoPages oMeta2:SetFile( "" ) oMeta2:Refresh() endif oMeta1:SetFocus() SetResources(hOldRes) return nil //----------------------------------------------------------------------------// static function TwoPages(lMenu) local hOldRes := GetResources() SET RESOURCES TO cResFile DEFAULT lMenu := .F. lTwoPages := !lTwoPages if lTwoPages if len(DEVICE:aMeta) == 1 // solo hay una pagina lTwoPages := !lTwoPages MessageBeep() SetResources(hOldRes) RETU nil endif if DEVICE:nHorzSize() >= ; // Apaisado DEVICE:nVertSize() lTwoPages := !lTwoPages MessageBeep() SetResources(hOldRes) RETU nil endif if lZoom Zoom(.T.) endif if ! IsAppThemed() oTwoPages:FreeBitmaps() oTwoPages:LoadBitmaps("One_Page") oTwoPages:cMsg := TXT_PREVIEW_ON_ONE_PAGE oTwoPages:cTooltip := StrTran(TXT_ONEPAGE,"&","") else oBar:ChangeBitmap( 6, 10 ) oBar:SetTooltip( 6, StrTran(TXT_ONEPAGE,"&","") ) oBar:SetMessage( 6, TXT_PREVIEW_ON_ONE_PAGE ) endif oMenuTwoPages:disable() oMenuOnePage:enable() else if ! IsAppThemed() oTwoPages:FreeBitmaps() oTwoPages:LoadBitmaps("Two_Pages") oTwoPages:cMsg := TXT_PREVIEW_ON_TWO_PAGES oTwoPages:cTooltip := StrTran(TXT_TWOPAGES,"&","") else oBar:ChangeBitmap( 6, 6 ) oBar:SetTooltip( 6, StrTran(TXT_TWOPAGES,"&","") ) oBar:SetMessage( 6, TXT_PREVIEW_ON_TWO_PAGES ) endif oMenuTwoPages:enable() oMenuOnePage:disable() endif if lMenu .and. ! IsAppThemed() oTwoPages:Refresh() endif oWnd:Refresh() PaintMeta() SetResources(hOldRes) return nil //----------------------------------------------------------------------------// static function Zoom(lMenu) local hOldRes := GetResources() SET RESOURCES TO cResFile DEFAULT lMenu := .F. lZoom := !lZoom if lZoom if lTwoPages TwoPages(.T.) endif if ! IsAppThemed() oZoom:FreeBitmaps() oZoom:LoadBitmaps("Unzoom") oZoom:cMsg := TXT_UNZOOM_THE_PREVIEW oZoom:cTooltip := StrTran(TXT_UNZOOM,"&","") else oBar:ChangeBitmap( 5, 9 ) oBar:SetTooltip( 5, StrTran(TXT_UNZOOM,"&","") ) oBar:SetMessage( 5, TXT_UNZOOM_THE_PREVIEW ) endif oMenuZoom:disable() oMenuUnZoom:enable() oWnd:oVScroll:SetRange(1,VSCROLL_RANGE) if nZFactor > 1 oWnd:oHScroll:SetRange(1,HSCROLL_RANGE) endif oMeta1:ZoomIn() else if ! IsAppThemed() oZoom:FreeBitmaps() oZoom:LoadBitmaps("Zoom") oZoom:cMsg := TXT_ZOOM_THE_PREVIEW oZoom:cTooltip := StrTran(TXT_ZOOM,"&","") else oBar:ChangeBitmap( 5, 5 ) oBar:SetTooltip( 5, StrTran(TXT_ZOOM,"&","") ) oBar:SetMessage( 5, TXT_ZOOM_THE_PREVIEW ) endif oMenuZoom:enable() oMenuUnZoom:disable() oWnd:oVScroll:SetRange(0,0) oWnd:oHScroll:SetRange(0,0) oMeta1:ZoomOut() nZFactor = 1 AEval( aFactor, {|val,elem| val:SetCheck( ( elem == 1 ) ) }) oFactor:Set( 1 ) endif if lMenu .and. ! IsAppThemed() oZoom:Refresh() endif PaintMeta() SetResources( hOldRes ) return nil //----------------------------------------------------------------------------// static function VScroll(nType,lPage, nSteps) local nYfactor, nYorig, nStep DEFAULT lPage := .F. if nType == GO_UP if oWnd:oVScroll:GetPos() <= oWnd:oVScroll:nMin return nil endif else if oWnd:oVScroll:GetPos() > oWnd:oVScroll:nMax return nil endif endif nYfactor := Int(DEVICE:nVertRes()/oWnd:oVScroll:nMax) if nSteps != nil nStep := nSteps elseif lPage nStep := oWnd:oVScroll:nMax/10 else nStep := 1 endif if nType == GO_UP nStep := -(nStep) elseif nType == GO_POS oWnd:oVscroll:SetPos(nSteps) nStep := 0 endif nYorig := nYfactor * (oWnd:oVScroll:GetPos() + nStep - 1) if nYorig > DEVICE:nVertRes() nYorig := DEVICE:nVertRes() endif if nYorig < 0 nYorig := 0 endif #ifdef __CLIPPER__ oMeta1:SetOrg( nil, nYorig ) #else oMeta1:SetOrg( nil, nYorig / DEVICE:nVertRes() * 10 ) #endif oMeta1:Refresh() return nil //----------------------------------------------------------------------------// static function HScroll(nType,lPage, nSteps) local nXfactor, nXorig, nStep DEFAULT lPage := .F. if nType == GO_UP if oWnd:oHScroll:GetPos() <= oWnd:oHScroll:nMin return nil endif else if oWnd:oHScroll:GetPos() > oWnd:oHScroll:nMax return nil endif endif nXfactor := Int(DEVICE:nHorzRes()/oWnd:oHScroll:nMax) if nSteps != nil nStep := nSteps elseif lPage nStep := oWnd:oHScroll:nMax/10 else nStep := 1 endif if nType == GO_LEFT nStep := -(nStep) elseif nType == GO_POS oWnd:oHscroll:SetPos(nSteps) nStep := 0 endif nXorig := nXfactor * (oWnd:oHScroll:GetPos() + nStep - 1) if nXorig > DEVICE:nHorzRes() nXorig := DEVICE:nHorzRes() endif if nXorig < 0 nXorig := 0 endif #ifdef __CLIPPER__ oMeta1:SetOrg(nXorig, nil ) #else oMeta1:SetOrg( nXorig / DEVICE:nHorzRes() * 10, nil ) #endif oMeta1:Refresh() return nil //----------------------------------------------------------------------------// static function SetOrg1(nX, nY) local oCoors local nXStep, nYStep, nXFactor, nYFactor,; nWidth, nHeight, nXOrg if lZoom Zoom(.T.) RETU nil endif oCoors := oMeta1:GetRect() nWidth := oCoors:nRight - oCoors:nLeft + 1 nHeight := oCoors:nBottom - oCoors:nTop + 1 if .f. nXStep := Max(Int(nX/nWidth*HSCROLL_RANGE) - 9, 0) nXFactor := Int(DEVICE:nHorzRes()/HSCROLL_RANGE) endif if .f. nYStep := Max(Int(nY/nHeight*VSCROLL_RANGE) - 9, 0) nYFactor := Int(DEVICE:nVertRes()/VSCROLL_RANGE) endif Zoom(.T.) if !empty(nXStep) HScroll(2,,nxStep) oWnd:oHScroll:SetPos(nxStep) endif if !empty(nYStep) VScroll(2,,nyStep) oWnd:oVScroll:SetPos(nyStep) endif return nil //----------------------------------------------------------------------------// static function SetOrg2(nX, nY) local oCoors local aFiles local nXStep, nYStep, nXFactor, nYFactor,; nWidth, nHeight, nXOrg if oMeta2:cCaption == "" RETU nil endif if lZoom Zoom(.T.) RETU nil endif oCoors := oMeta2:GetRect() nWidth := oCoors:nRight - oCoors:nLeft + 1 nHeight := oCoors:nBottom - oCoors:nTop + 1 if .f. nXStep := Max(Int(nX/nWidth*HSCROLL_RANGE) - 9, 0) nXFactor := Int(DEVICE:nHorzRes()/HSCROLL_RANGE) endif if .f. nYStep := Max(Int(nY/nHeight*VSCROLL_RANGE) - 9, 0) nYFactor := Int(DEVICE:nVertRes()/VSCROLL_RANGE) endif oMeta1:SetFile( oMeta2:cCaption ) aFiles := DEVICE:aMeta if nPage = Len( aFiles ) oMeta2:SetFile( "" ) else oMeta2:SetFile( aFiles[ ++nPage ] ) endif oPage:Refresh() Zoom( .T. ) if ! Empty( nXStep ) HScroll( 2,, nxStep ) oWnd:oHScroll:SetPos( nxStep ) endif if ! Empty( nYStep ) VScroll( 2,, nyStep ) oWnd:oVScroll:SetPos( nyStep ) endif return nil //----------------------------------------------------------------------------// static function CheckKey (nKey,nFlags) // Thanks to Joerg K. if !lZoom DO case case nKey == VK_HOME TopPage() case nKey == VK_END BottomPage() case nKey == VK_PRIOR PrevPage() case nKey == VK_NEXT NextPage() endcase else DO case case nKey == VK_UP oWnd:oVScroll:GoUp() case nKey == VK_PRIOR oWnd:oVScroll:PageUp() case nKey == VK_DOWN oWnd:oVScroll:GoDown() case nKey == VK_NEXT oWnd:oVScroll:PageDown() case nKey == VK_LEFT oWnd:oHScroll:GoUp() case nKey == VK_RIGHT if oWnd:oHScroll != nil .and. oWnd:oHScroll:nMax > 0 oWnd:oHScroll:GoDown() endif case nKey == VK_HOME oWnd:oVScroll:GoTop() oWnd:oHScroll:GoTop() oMeta1:SetOrg(0,0) oMeta1:Refresh() case nKey == VK_END oWnd:oVScroll:GoBottom() oWnd:oHScroll:GoBottom() oMeta1:SetOrg(.8*DEVICE:nHorzRes(),.8*DEVICE:nVertRes()) oMeta1:Refresh() endcase endif return nil //----------------------------------------------------------------------------// static function CheckMouseWheel( nKeys, nDelta, nXPos, nYPos ) if !lZoom if lAnd( nKeys, MK_MBUTTON ) if nDelta > 0 TopPage() else BottomPage() endif else if nDelta > 0 PrevPage() else NextPage() endif endif else if lAnd( nKeys, MK_MBUTTON ) if nDelta > 0 if oWnd:oVScroll:GetPos() > oWnd:oVScroll:nMin oWnd:oVScroll:PageUp() endif else if oWnd:oVScroll:GetPos() < oWnd:oVScroll:nMax oWnd:oVScroll:PageDown() endif endif else if nDelta > 0 if oWnd:oVScroll:GetPos() > oWnd:oVScroll:nMin oWnd:oVScroll:GoUp() endif else if oWnd:oVScroll:GetPos() < oWnd:oVScroll:nMax oWnd:oVScroll:GoDown() endif endif endif endif return nil //----------------------------------------------------------------------------// static function SetFactor( nValue ) local lInit := .F. if nValue == nil Aeval(aFactor, {|v,e| v:nHelpId := e}) nValue := nZFactor lInit := .T. endif Aeval(aFactor, {|val,elem| val:SetCheck( (elem == nValue) ) }) oMeta1:SetZoomFactor(nZFactor, nZFactor*2) if !lZoom .AND. !lInit Zoom(.T.) endif if lZoom oWnd:oVScroll:SetRange( 1, VSCROLL_RANGE ) if nZFactor > 1 oWnd:oHScroll:SetRange( 1, HSCROLL_RANGE ) else oWnd:oHScroll:SetRange( 0, 0 ) endif endif oMeta1:SetFocus() return nil //----------------------------------------------------------------------------// static function PrintPage() local hOldRes := GetResources() local hMeta := oMeta1:hMeta local oDlg, oRad, oPageIni, oPageFin local nOption := 1 ,; nFirst := 1 ,; nLast := len(DEVICE:aMeta) if nLast == 1 PrintPrv(nil, nOption, nFirst, nLast) RETU nil endif SET RESOURCES TO cResFile DEFINE DIALOG oDlg RESOURCE "PRINT" REDEFINE BUTTON ID 101 OF oDlg ; ACTION PrintPrv(oDlg, nOption, nFirst, nLast) REDEFINE BUTTON ID 102 OF oDlg ACTION oDlg:End() REDEFINE RADIO oRad VAR nOption ID 103,104,105 OF oDlg ; ON CHANGE iif(nOption==3 ,; (oPageIni:Enable(),oPageFin:Enable()) ,; (oPageIni:Disable(),oPageFin:Disable()) ) REDEFINE GET oPageIni ; VAR nFirst ; ID 106 ; PICTURE "@K 99999" ; VALID iif(nFirst<1 .OR. nFirst>nLast,(MessageBeep(),.F.),.T.) ; OF oDlg REDEFINE GET oPageFin ; VAR nLast ; ID 107 ; PICTURE "@K 99999" ; VALID iif(nLastlen(DEVICE:aMeta), ; (MessageBeep(),.F.),.T.) ; OF oDlg oPageIni:Disable() oPageFin:Disable() SetResources(hOldRes ) ACTIVATE DIALOG oDlg return nil //----------------------------------------------------------------------------// static function PrintPrv(oDlg, nOption, nPageIni, nPageEnd) local oDevice := DEVICE local aFiles := oDevice:aMeta local hMeta := oMeta1:hMeta local nFor CursorWait() StartDoc(oDevice:hDC, oDevice:cDocument ) DO case case nOption == 1 // All FOR nFor := 1 TO len(aFiles) #ifdef __CLIPPER__ StartPage(oDevice:hDC) hMeta := GetMetaFile(aFiles[nFor]) PlayMetaFile( oDevice:hDC, hMeta ) DeleteMetafile(hMeta) EndPage(oDevice:hDC) #else StartPage(oDevice:hDC) hMeta := GetEnhMetaFile(aFiles[nFor]) PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. ) DeleteEnhMetafile(hMeta) EndPage(oDevice:hDC) #endif NEXT case nOption == 2 // Current page StartPage(oDevice:hDC) hMeta := oMeta1:hMeta #ifdef __CLIPPER__ PlayMetaFile( oDevice:hDC, hMeta ) #else PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. ) #endif EndPage(oDevice:hDC) case nOption == 3 // Range FOR nFor := nPageIni TO nPageEnd StartPage(oDevice:hDC) #ifdef __CLIPPER__ hMeta := GetMetaFile(aFiles[nFor]) PlayMetaFile( oDevice:hDC, hMeta ) DeleteMetafile(hMeta) #else hMeta := GetEnhMetaFile(aFiles[nFor]) PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. ) DeleteEnhMetafile(hMeta) #endif EndPage(oDevice:hDC) NEXT endcase EndDoc(oDevice:hDC) CursorArrow() if oDlg != nil oDlg:End() endif return nil //----------------------------------------------------------------------------// #ifdef __CLIPPER__ static function IsAppThemed() return .f. static function TToolBar() return nil static function TRebar() return nil #endif //------------------------------------------------------------------------ // función para cambiar la impresora desde previo mcn valdenebro //------------------------------------------------------------------------ func f_CamImpre (oDevice, cCbx ) local cPrinter cPrinter := GetProfString( "windows", "device" , "" ) WriteProfString( "windows", "device", cCbx ) SysRefresh() PrinterInit() DeleteDC( oDevice:hDC ) // Sugestion by Enrico M. Giordano // Insert here the function to create the report // oWnd:End() // George - To close current preview oDevice:hDC := GetPrintDefault( GetActiveWindow() ) SysRefresh() WriteProfString( "windows", "device", cPrinter ) RETURN nil id=code>id=code>[]´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  4. Bom dia, A droga do programa do BB roda como componente, só que não da pra desativar, voce tira e ele volta, o jeito que eu arrumei, foi o seguinte: - Pluguei outro hd na maquina e dai consegui excluir a pasta onde estava instalado o "mardito", e pronto. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  5. Bom dia, Não sei se o problema é o mesmo, só sei que o exe finaliza "do nada", duas coisas eu acho que pode ser a causa, a primeira a dll das IF´s e a segunda estes plugins de banco do internet banking, especialmente do Banco do Brasil que me deu um problema sério, tive até que formatar pra tirar a tralha que eles instalam. Também fiz atualização das dll´s da IF, uso daruma e bematech, espero que estes comentarios ajudem com o problema. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  6. Boa dia, Para a Daruma, use assim: //---------------------------------------------------------------------------------------------// Function Gnf_TerminaFechamento( cMsg, rnomclie, rendclie, rcgc, rpedo ) // Termina Fechamento do cupom com mensagem promocional DEFAULT rnomclie := '',; rendclie := '',; rcgc := '',; cMsg := ' Obrigado pela Preferencia, Volte Sempre! ' IF tportacom = "Daruma" // Identifica Consumidor Str_Consumidor := rnomclie Str_Endereco := rendclie Str_CPF_ou_CNPJ := rcgc Imprime_Ok := Daru_FI_IdentificaConsumidor( Str_Consumidor, Str_Endereco, Str_CPF_ou_CNPJ ) Imprime_Ok := Daru_FI_TerminaFechamentoCupom( cMsg ) EndIF Return .t. id=code>id=code>Espero que ajude, []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  7. Boa Tarde, "Quando eu era pequeno, pedia algodão doc pra minha mãe e ela só me dava pé-de-moleque!", acho que o problema não é tão grave quanto o meu, veja: set device to printer set printer to "EXPORTNFE.TXT" * nLinhaF := 0 @ nLinhaF,00 say "NOTA FISCAL|1" nLinhaF += 1 @ nLinhaF,00 say "A|2.00|NFe|" nLInhaF += 1 @ nLinhaF,00 say "B||" set device to screen id=code>id=code>Antes do set device to screen, coloque: Set Printer To que deve resolver, precisa desligar a printer antes de definir a saida para o video novamente, tenta ae. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  8. Boa noite Oscar, Esta portaria esta mais para o PAF do que para sintegra, verifique a obrigatoriedade do PAF em são paulo, qualquer duvida, entre em contato por email ou skype. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  9. Boa noite a todos, Dia 03/03 estive na tecpar, certificador pafecf do paraná para pre certificação do meu paf e comentei com o homologador sobre este satce, ele me disse o seguinte: "Este assunto já esta passado, não vingou e nem vai vingar", os governos já desistiram disso, ainda não acredito, mas ele participou recentemente de uma reunião das sefaz em brasilia e com certeza o que ele falou, deve ser verdade, vamos aguardar pra ver, continua tudo como antes. []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  10. Bom dia a todos, Kabiaba, voce também escorregou feio no portugues, hein?? até desculpo, pode ter sido por distração, mas esse nosso amigo HD INFO, é mesmo uma "sumidade", ele não escorrega, se arrasta! []´s Obs.: Fala ae Sergio, porque o leão usa juba? Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  11. Boa Noite, Para o PAF-ECF, voce precisa dos seguintes registros: 10, 11, 60M, 60A, 60D, 61, 75 e 90. Agora, se não for para o PAF, sugiro ler o manual do sintegra porque dependendo do segmento e UF, alguns registros são obrigatórios e outros não. Espero ter esclarecido, []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  12. Bom dia, Para emitir a ReducaoZ existe comando proprio da impressora, que seria assim: IF tportacom = "Bematech" Bematech_FI_ReducaoZ( '', '' ) Else IF tportacom = "Daruma" Daruma_FI_ReducaoZ( '', '' ) EndIF EndIF // Sintaxe da definicao do comando DLL32 Function Bema_FI_ReducaoZ( Data As STRING, Hora As STRING) AS _INT PASCAL; FROM "Bematech_FI_ReducaoZ" LIB "BEMAFI32.DLL" DLL32 Function Daru_FI_ReducaoZ( Data As STRING, Hora As STRING) AS _INT PASCAL; FROM "Daruma_FI_ReducaoZ" LIB "DARUMAI32.DLL" id=code>id=code>Este comando so pode ser executado apenas uma vez ao dia. Qualquer duvida, grita ae, []´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  13. Bom dia, Nao, somente as impressoras termicas com MFD permitem isso. Use o relatorio de reducaoZ pra pegar os dados. Para o PAF, voce nao pode emitir o sintegra direto da impressora, porque na hora do teste, a impressora eh desligada! Espero ter esclarecido sua duvida. []'s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  14. Boa tarde Joao, Eu tambem gostaria de poder fazer via programacao, mas como nao sei mexer com a api do windows, faco via "manual" mesmo. []'s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  15. Boa Noite Joao, Edvaldo Va em propriedades da impressora e na aba Comandos de Impressora : <1B>C<02> Selecao de Fontes : Multilingui Latino 1 850 Cofiguracoes do Dispositivo : Ledger em preferencias de Impressao selecione a aba Papel/Qualidade e selecione a opcao : Cortar o papel Pronto, depois disso vai funcionar belezinha. []'s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  16. Boa Noite, Joao, este comando serve pra qualquer impressora, estava para postar isso, eu uso isso aqui e em cliente e funciona certinho. []'s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  17. Edvaldo, Onde esta lpt1, substitui pela porta COM que o emulador da USB esta usando e pronto, deve resolver o seu problema. []'s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  18. Boa Noite, Eu tive um problema parecido e resolvi da seguinte maneira: //----------------------------------------------------------------------------// Function scv20209( oClient, oFld, lPrint ) LOCAL nRow, nCol, nvalitem, ntotal := 0 LOCAL ncont, z, l, c, lResp := .t., xtpec // Executa a Impressao do Recibo. IF __YesNoMsg("Imprime Comprovante ?", "Atenção Operador" ) oPrn := TDosPrn():New("lpt1") oPrn:CharSay( 0,0, Chr(27) + "C" + Chr(02)) *----------------------------------* * Imprime cabecalho do Comprovante xtpec := 0 // contador de itens xtcompra := 0 // totalizador do pedido l := 1 oPrn:CharSay( l + 1, 05, Subs(m->rempres,1,30)) oPrn:CharSay( l + 2, 01, m->rendere ) oPrn:CharSay( l + 3, 01, m->rcidade + " " + m->rbairro ) oPrn:CharSay( l + 4, 01, m->restado ) oPrn:CharSay( l + 4, 12, "Cep.: " + m->rcep ) oPrn:CharSay( l + 5, 01, Repli('-', 44 )) oPrn:CharSay( l + 6, 09, "COMPROVANTE DE VENDA" ) oPrn:CharSay( l + 7, 01, 'Data : ' + dtoc( date()) ) oPrn:CharSay( l + 7, 19, 'Hora : ' + Subs( time(),1,5) ) oPrn:CharSay( l + 8, 01, "Descricao Unid PcoUnit Qtd Total") oPrn:CharSay( l + 9, 01, Repli('-', 44 )) l += 10 // Dados do Produto dbSelectArea(yalias) (yalias)->( dbGotop()) While !(yalias)->( EOF()) rdescr := (yalias)->DESCRICAO rpco := (yalias)->PRECO rqtd := (yalias)->QUANT oPrn:CharSay( l, 01, Subs(rdescr,1,29)) l++ col := runid + " " + ; transform( rpco,"@Z 99,999,999.99" ) + " X " +; ltrim(Str( rqtd,8,0 )) + " = " +; transform( rpco * rqtd,"@Z 99,999,999.99" ) oPrn:CharSay( l, 06, col ) l++ xtpec++ xtcompra += rpco * rqtd (yalias)->( dbSkip()) EndDo // Dados do Servico dbSelectArea(xalias) (xalias)->( dbGotop()) While !(xalias)->( EOF()) rdescr := (xalias)->DESCRICAO rpco := (xalias)->PRECO rqtd := (xalias)->QUANT oPrn:CharSay( l, 01, Subs(rdescr,1,29)) l++ col := runid + " " + ; transform( rpco,"@Z 99,999,999.99" ) + " X " +; ltrim(Str( rqtd,8,0 )) + " = " +; transform( rpco * rqtd,"@Z 99,999,999.99" ) oPrn:CharSay( l, 06, col ) l++ xtpec++ xtcompra += rpco * rqtd (xalias)->( dbSkip()) Enddo // ----------- CONCLUINDO O FECHAMENTO DA VENDA --------------- oPrn:CharSay( l + 1,01, 'Total de Itens:' ) oPrn:CharSay( l + 1,18, strzero( xtpec,5 ) ) oPrn:CharSay( l + 2,01, 'Total a pagar R$' ) oPrn:CharSay( l + 2,18, ltrim(Str( xtcompra,13,2 ))) l += 3 oPrn:CharSay( l + 1,01, 'Pedido No.: ' + AllTrim( rped )) oPrn:CharSay( l + 2,01, 'Vendedor: ' + rtrim( rnomven )) oPrn:CharSay( l + 3,01, 'Pago em : ' + m->moeda) // Condicao de Pagamento oPrn:CharSay( l + 4,01, "Condicao de Pagamento" ) oPrn:CharSay( l + 5,01, "Plano Pagamento : " + m->cditems[02] ) l += 6 ncont := 0 Z := 5 While ncont < pagto->divisao oPrn:CharSay( l + ncont,01, dtoc( m->cditems[Z] )) oPrn:CharSay( l + ncont,18, ltrim(Str( m->cditems[Z+1],13,2 ))) ncont++ Z += 2 Enddo // Fechamento l += ncont oPrn:CharSay( l + 1,01, "Total da Compra : " ) oPrn:CharSay( l + 1,24, ltrim(Str( xtcompra,13,2 ))) oPrn:CharSay( l + 2,01, "Acrescimo/Desconto : " ) oPrn:CharSay( l + 2,24, ltrim(Str( m->cditems[03],13,2 )) ) oPrn:CharSay( l + 3,01, "Entrada : " ) oPrn:CharSay( l + 3,24, ltrim(Str( m->rentra,13,2 )) ) oPrn:CharSay( l + 4,01, "Total a Pagar : " ) oPrn:CharSay( l + 4,24, ltrim(Str( m->cditems[04],13,2 )) ) oPrn:CharSay( l + 5,01, "Valor Pago : " ) oPrn:CharSay( l + 5,24, ltrim(Str( m->nvalpago,13,2 )) ) oPrn:CharSay( l + 6,01, "Troco : " ) oPrn:CharSay( l + 6,24, ltrim(Str( m->ntroco,13,2 )) ) oPrn:CharSay( l + 7,05, 'Obrigado. Volte Sempre!' ) oPrn:CharSay( l + 16,01, '--' ) // oPrn:EndPage() // optional oPrn:End() oECF:AcionaGaveta() Else __InfoMsg("Comprovante de Venda Não Foi Impresso", "Atenção Operador") oECF:AcionaGaveta() EndIF Return .t. id=code>id=code>Observe a linha abaixo, oPrn:CharSay( 0,0, Chr(27) + "C" + Chr(02)) O total de linhas em uma pagina eh de somente duas linhas, por se tratar de uma bobina, nao ha salto de pagina, ou melhor, o salto de pagina avanca somente duas linhas, compreendeu? Espero que ajude. Obs.: o comando CharSay esta na TDOSPRN METHOD CharSay(nRow,nCol,cText) INLINE (IIf(::lCompress,; ::SayCmp(nRow,nCol,cText),; ::Say(nRow,nCol,cText))) id=code>id=code>Abracos, Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  19. citação:No momento nada é longe. Se nada humano existente, existe as conecções. A necessidade de cada contratante é: devo investir? Confiar? Os resultados virão bem? POIS, EU VÓS DIGO DO ANALISTA/PRAGRAMADOR SÉRIO, É, CAPAZ DE FAZER QUAISQUER USUARIO SATISFEITO. QUICUSSI. Profundo, só que não entendi nada! Abraços, id=quote>id=quote>Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  20. E ae Marcelo, tudo beleza? Porque não falou comigo, praticamente toda minha familia mora em campo grande, ms. Abraços, Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  21. gunafe

    Ads free

    Luis, O CFG já esta da forma que voce esta falando, veja abaixo: [sETTINGS] USER_LICENSE=30 ; Advantage Local Server configuration file ; ; The Advantage Local Server DLL (for Windows) and SO (for Linux) reads ; this configuration file when the DLL/SO is loaded. Values input ; after the keyword and equal sign are used to configure the DLL/SO. ; If no value is inserted after a keyword and equal sign, the default ; is used. This file should be located in the same directory as your ; Advantage Local Server DLL (adsloc32.dll) or SO (libadsloc.so). ; ; Number of Connections ; Default = 20; Range = 1 - No upper limit CONNECTIONS=20 ; ; Number of Tables ; Default = 50; Range = 1 - No upper limit TABLES=150 ; ; Number of Index Files ; Default = 75; Range = 1 - No upper limit INDEXES=125 ; ; Number of Data Locks ; Default = 500; Range = 1 - No upper limit LOCKS=500 ; ; Maximum Size of Error Log (in KBytes) ; Default = 1000 KBytes; Range = 1 KByte - No upper limit ERROR_LOG_MAX=1000 ; ; Error Log and Assert Log Path ; Default = C:\ ERROR_ASSERT_LOGS= ; ; ANSI Character Set ; Default = Use the currently configured ANSI character set that is active ; on the workstation. ; If you do not wish to use the ANSI character set that is active on the ; current workstation, the available ANSI character sets to be used are: ; Danish, Dutch, Engl(Amer), Engl(UK), Engl(Can), Finnish, French, ; French Can, German, Icelandic, Italian, Norwegian, Portuguese, Spanish, ; Span(Mod), Swedish, Russian, ASCII, Turkish, Polish, Baltic, or ; Ukrainian ANSI_CHAR_SET=Portuguese ; ; OEM/Localized Character Set ; Default = USA ; Options are: ; USA, DANISH, DUTCH, FINNISH, FRENCH, GERMAN, GREEK437, GREEK851, ICELD850, ; ICELD861, ITALIAN, NORWEGN, PORTUGUE, SPANISH, SWEDISH, MAZOVIA, PC_LATIN, ; ISOLATIN, RUSSIAN, NTXCZ852, NTXCZ895, NTXSL852, NTXSL895, NTXHU852, ; NTXPL852, TURKISH, or BOSNIAN OEM_CHAR_SET=PORTUGUE ; ; Local File Flush Frequency (in milliseconds) ; Default = 20000 ms (20 seconds); Range = 0 ms - 100000 ms FLUSH_FREQUENCY=50000 ; ; Lowercase All Paths ; Default = 0 (false) ; Options are: 0 (for false) and 1 (for true) ; Option to force the Linux Advantage Local Server SO to lowercase all ; paths and filenames before attempting to access them on disk. This ; option is ignored by the Advantage Local Server DLL for Windows. LOWERCASE_ALL_PATHS= id=code>id=code>O Giovani que é o meu guru do ads, sugeriu usar FLUSH_FREQUENCY=30000, mas meu FLUSH_FREQUENCY já esta =50000, segundo o Giovani, o ads não funciona muito bem com o xharbour, e dai não tem muito que fazer pra tentar resolver isso. Abraços, Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  22. gunafe

    Ads free

    Luiz Fernando, O Arlindo não usa o xbrowse, mas sim o listbox nativo, estou testando a twbrowse do Hernan, pra mudar para o xbrowse o trabalho seria dobrado. De qualquer forma, vamos continuar tentando. Abraços, Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  23. Boa tarde, Se o cliente pede um sistema que tenha a possibilidade de fraudar o fisco, entao eu digo que este cliente nao serve pra ser meu cliente, ele que fique com a concorrencia, porque eu quero poder dormir tranquilo. Esta eh a minha opiniao, sou a favor de sistema 100% legal, nada de maracutaia. abrs., Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  24. Bom dia, Esta questão dos ???? é bem simples de responder, vamos la: - O objetivo é verificar a integridade dos dados dos seus bds, sem que seja possivel qualquer tipo de alteração manual dos dados; - Na bateria de testes, alguns dados de determinados campos são alterados para que na hora de montar o relatorio haja a substituição por ????; - Como para cada relatório( R01, R02,...R07 ) é feito a comparação de campos pré determinados, o que eu fiz foi, ao fazer qualquer movimentação nos arquivos cujos dados alimentam estes relatórios, juntar estes campos e gravar um campo resultante criptografado( MD5 ) e, na hora de montar o relatório, comparar se o que esta criptografado é igual ao dado que estou utilizando, desta maneira, se for diferente, substituo o campo pré determinado por ????. Foi desta maneira que montei e o resultado foi o esperado, espero ter esclarecido alguma coisa, Bom dia a todos, Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
  25. Boa Tarde, Pompeo, Jef2_tim, obrigado por responder, acho que posso montar a rotina da maneira que voces falaram. Abrs., Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou"
×
×
  • Create New...