VisualFoxPro a OpenOffice
- 13-08-2006 00:22
VisualFoxPro a OpenOffice
Czy scalc.exe z OO może byc uruchomiony jako server COM tak jak Excel do tworzenia arkuszy z poziomu Fox'a ? z wykorzystaniem VBA ? czyli co wpisać w GetCOMInstance ?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Zenon Karol Bednarz - 13-08-2006 00:22
2 Załącznik(i)
wrote:
> Czy scalc.exe z OO może byc uruchomiony jako server COM tak jak Excel do > tworzenia arkuszy z poziomu Fox'a ? z wykorzystaniem VBA ? > czyli co wpisać w GetCOMInstance ? > Można przesyłam maila jakiego dawno temu zamieściłem na podone pytanie na tej grupie ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++ W załączeniu przesyłam program libOOo.prg zawierający bardzo użyteczne funkcje do obsługi OpenOffice z poziomu FOX. program należy wywołać SET PROCEDURE TO libOOo ADDITIVE a następnie korzystać z funkcji. Przesyłam również program rap_kon01.prg który działa w programie produkcyjnym generując raport w OO. Oczywiście program ten u Ciebie nie będzie działał z uwagi na brak koniecznego otoczenia lecz stanowić może przykład jak wykorzystać w/w funkcje.
W internecie jest sporo przykładów linków nie podam bo zapomniałem robiłem to już bardzo dawno temu .Wystarczy hasło w Goglach. Najczęściej przykłady to makra w OO i po ich analizie należy zwykle metodą prób i błędów przepisać to na FOX.
Makra można obejrzeć przez edytor makr w OO.
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++ Uwaga rozszerzenie programów zamienione z .prg na .txt Z rozszerzeniem .prg były problemy z programami sprawdzającymi maile.
- 16-08-2006 01:26
dziękuję
Zenon Karol Bednarz <zkb@lama.net.pl> napisał(a):
> --nextPart2915305.mFNvdNGT96 > Content-Type: text/plain; charset=iso-8859-2 > Content-Transfer-Encoding: 8Bit > > wrote: > > > Czy scalc.exe z OO może byc uruchomiony jako server COM tak jak Excel do > > tworzenia arkuszy z poziomu Fox'a ? z wykorzystaniem VBA ? > > czyli co wpisać w GetCOMInstance ? > > > Można przesyłam maila jakiego dawno temu zamieściłem na podone pytanie na > tej grupie > ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++ > W załączeniu przesyłam program libOOo.prg zawierający bardzo użyteczne > funkcje > do obsługi OpenOffice z poziomu FOX. > program należy wywołać SET PROCEDURE TO libOOo ADDITIVE a następnie > korzystać > z funkcji. > Przesyłam również program rap_kon01.prg który działa w programie > produkcyjnym > generując raport w OO. > Oczywiście program ten u Ciebie nie będzie działał z uwagi na brak > koniecznego > otoczenia lecz stanowić może przykład jak wykorzystać w/w funkcje. > > W internecie jest sporo przykładów linków nie podam bo zapomniałem robiłem > to > już bardzo dawno temu .Wystarczy hasło w Goglach. > Najczęściej przykłady to makra w OO i po ich analizie należy zwykle metodą > prób i błędów przepisać to na FOX. > > Makra można obejrzeć przez edytor makr w OO. > > ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++ > Uwaga rozszerzenie programów zamienione z .prg na .txt > Z rozszerzeniem .prg były problemy z programami sprawdzającymi maile. > > > > > --nextPart2915305.mFNvdNGT96 > Content-Type: text/plain; name="libooo.txt" > Content-Transfer-Encoding: 8Bit > Content-Disposition: attachment; filename="libooo.txt" > > * > * Library of routines to manipulate OpenOffice.org. > * > * > > > *################################################# ########### > * Public API > * High level routines. > *################################################# ########### > > > * Return .T. if OpenOffice.org is installed. > * Return .F. if not installed. > FUNCTION OOoIsInstalled() > LOCAL oServiceManager > oServiceManager = .NULL. > > LOCAL cOldErrHandler > cOldErrHandler = ON( "ERROR" ) > ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS (16), PRO > GRAM(), SYS(2018) ) > oServiceManager = .f. > oServiceManager = OOoGetServiceManager() > ON ERROR &cOldErrHandler > > * If we could create a Service Manager, > * then OpenOffice.org must be installed. > IF VARTYPE(oServiceManager)<>'O' > RETURN .F. > ENDIF > *RETURN NOT ISNULL( oServiceManager ) > RETURN .T. > ENDFUNC > > > > > * Easy way to create a new Draw document. > FUNCTION OOoCreateNewDrawDocument() > LOCAL oDrawDoc > oDrawDoc = OOoOpenURL( "private:factory/sdraw" ) > RETURN oDrawDoc > ENDFUNC > > > * Easy way to create a new Writer document. > FUNCTION OOoCreateNewWriterDocument() > LOCAL oWriterDoc > oWriterDoc = OOoOpenURL( "private:factory/swriter" ) > RETURN oWriterDoc > ENDFUNC > > > * Easy way to create a new Calc document. > FUNCTION OOoCreateNewCalcDocument() > LOCAL oCalcDoc > oCalcDoc = OOoOpenURL( "private:factory/scalc" ) > RETURN oCalcDoc > ENDFUNC > > > * Easy way to create a new Impress document. > FUNCTION OOoCreateNewImpressDocument() > LOCAL oImpressDoc > oImpressDoc = OOoOpenURL( "private:factory/simpress" ) > RETURN oImpressDoc > ENDFUNC > > > > FUNCTION OOoOpenFile( cFilename ) > LOCAL cURL > cURL = OOoConvertToURL( cFilename ) > > LOCAL oDoc > oDoc = OOoOpenURL( cURL ) > RETURN oDoc > ENDFUNC > > > PROCEDURE OOoTerminateProgram() > LOCAL oDesktop > oDesktop = OOoGetDesktop() > oDesktop.Terminate() > > =__OOoReleaseCachedVars() > ENDPROC > > > * Convert a local filename to an OOo URL. > FUNCTION OOoConvertToURL( cFilename ) > * Ensure leading slash. > IF LEFT( cFilename, 1 ) != "/" > cFileName = "/" + cFileName > ENDIF > > LOCAL cURL > cURL = CHRTRAN( cFilename, "\", "/" ) && change backslashes to forward slashes > . > cURL = "file://" + cURL > RETURN cURL > ENDFUNC > > > > > *################################################# ########### > * Draw specific tools > *################################################# ########### > > > * Page zero is the first page. > * Once you have a drawing document, obtain one of its pages. > FUNCTION OOoGetDrawPage( oDrawDoc, nPageNum ) > LOCAL oPages > oPages = oDrawDoc.GetDrawPages() > LOCAL oPage > oPage = oPages.GetByIndex( nPageNum ) > RETURN oPage > ENDFUNC > > > * Given a draw document, create a shape. > * The shape must be added to the draw page, by calling > * the draw page's Add() method. > * The oPosition and oSize arguments are optional, but you may > * pass a Point and Size struct for these arguments. > > FUNCTION OOoMakeRectangleShape( oDrawDoc, oPosition, oSize ) > LOCAL oShape > oShape = OOoMakeShape( oDrawDoc, "com.sun.star.drawing.RectangleShape", oPosit > ion, oSize ) > RETURN oShape > ENDFUNC > > FUNCTION OOoMakeEllipseShape( oDrawDoc, oPosition, oSize ) > LOCAL oShape > oShape = OOoMakeShape( oDrawDoc, "com.sun.star.drawing.EllipseShape", oPositio > n, oSize ) > RETURN oShape > ENDFUNC > > FUNCTION OOoMakeLineShape( oDrawDoc, oPosition, oSize ) > LOCAL oShape > oShape = OOoMakeShape( oDrawDoc, "com.sun.star.drawing.LineShape", oPosition, > oSize ) > RETURN oShape > ENDFUNC > > FUNCTION OOoMakeTextShape( oDrawDoc, oPosition, oSize ) > LOCAL oShape > oShape = OOoMakeShape( oDrawDoc, "com.sun.star.drawing.TextShape", oPosition, > oSize ) > RETURN oShape > ENDFUNC > > > * Create and return a Point struct. > FUNCTION OOoPosition( nX, nY ) > LOCAL oPoint > oPoint = OOoCreateStruct( "com.sun.star.awt.Point" ) > oPoint.X = nX > oPoint.Y = nY > RETURN oPoint > ENDFUNC > > * Create and return a Size struct. > FUNCTION OOoSize( nWidth, nHeight ) > LOCAL oSize > oSize = OOoCreateStruct( "com.sun.star.awt.Size" ) > oSize.Width = nWidth > oSize.Height = nHeight > RETURN oSize > ENDFUNC > > > * Given a shape, alter its position. > PROCEDURE OOoSetPosition( oShape, nX, nY ) > LOCAL oPosition > oPosition = oShape.Position > oPosition.X = nX > oPosition.Y = nY > oShape.Position = oPosition > ENDPROC > > * Given a shape, alter its size. > PROCEDURE OOoSetSize( oShape, nWidth, nHeight ) > LOCAL oSize > oSize = oShape.Size > oSize.Width = nWidth > oSize.Height = nHeight > oShape.Size = oSize > ENDPROC > > > * Given a draw document, create a shape. > * Optional: oPosition, oSize can receive a Point or Size struct. > FUNCTION OOoMakeShape( oDrawDoc, cShapeClassName, oPosition, oSize ) > LOCAL oShape > oShape = oDrawDoc.CreateInstance( cShapeClassName ) > > IF (TYPE([oPosition])="O") AND (NOT ISNULL( oPosition )) > oShape.Position = oPosition > ENDIF > IF (TYPE([oSize])="O") AND (NOT ISNULL( oSize )) > oShape.Size = oSize > ENDIF > > RETURN oShape > ENDFUNC > > > > PROCEDURE DoNothing__ErrorHandler( pnError, pcErrMessage, pnLineNo, pcProgramFi > leSys16, pcProgram, pcErrorParamSys2018 ) > ext_error=.t. > WAIT windows ALLTRIM(STR(pnError))+CHR(13)+pcErrMessage+chr(13) +ALLTRIM(STR (pnL > ineNo))+CHR(13)+pcProgramFileSys16+CHR(13)+pcProgr am+CHR(13) +pcErrorParamSys201 > 8 TIMEOUT 2 > ENDPROC > > > * Return the OpenOffice.org service manager object. > * Cache it in a global variable. > * Create it if not already cached. > FUNCTION OOoGetServiceManager() > IF (TYPE([goOOoServiceManager])!="O") OR ISNULL( goOOoServiceManager ) > PUBLIC goOOoServiceManager > goOOoServiceManager = CREATEOBJECT ( "com.sun.star.ServiceManager" ) > ENDIF > RETURN goOOoServiceManager > ENDFUNC > > > * Sugar coated routine to ask the service manager to > * create you an instance of some other OpenOffice.org UNO object. > FUNCTION OOoServiceManager_CreateInstance( cServiceName ) > LOCAL oServiceManager > oServiceManager = OOoGetServiceManager() > > LOCAL oInstance > oInstance = .NULL. > > LOCAL cOldErrHandler > cOldErrHandler = ON( "ERROR" ) > ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS (16), PRO > GRAM(), SYS(2018) ) > oInstance = oServiceManager.createInstance( cServiceName ) > ON ERROR &cOldErrHandler > > IF ISNULL( oInstance ) > =__OOoReleaseCachedVars() > oServiceManager = OOoGetServiceManager() > oInstance = oServiceManager.createInstance( cServiceName ) > ENDIF > > RETURN oInstance > ENDFUNC > > > * Sugar coated routine to create any UNO struct. > * Use the Bridge_GetStruct() feature of the OLE-UNO bridge. > FUNCTION OOoCreateStruct( cTypeName ) > LOCAL oServiceManager > oServiceManager = OOoGetServiceManager() > > LOCAL oStruct > oStruct = .NULL. > > LOCAL cOldErrHandler > cOldErrHandler = ON( "ERROR" ) > ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO(), SYS (16), PRO > GRAM(), SYS(2018) ) > oStruct = oServiceManager.Bridge_GetStruct( cTypeName ) > ON ERROR &cOldErrHandler > > IF ISNULL( oStruct ) > =__OOoReleaseCachedVars() > oServiceManager = OOoGetServiceManager() > oStruct = oServiceManager.Bridge_GetStruct( cTypeName ) > ENDIF > > RETURN oStruct > ENDFUNC > > > * Return the OpenOffice.org desktop object. > * Cache it in a global variable. > * Create it if not already cached. > FUNCTION OOoGetDesktop() > IF (TYPE([goOOoDesktop])!="O") OR ISNULL( goOOoDesktop ) > PUBLIC goOOoDesktop > goOOoDesktop = OOoServiceManager_CreateInstance ( "com.sun.star.frame.Desktop" > ) > COMARRAY( goOOoDesktop, 10 ) > ENDIF > RETURN goOOoDesktop > ENDFUNC > > > *!* * Return an instance of com.sun.star.reflection.CoreReflection. > *!* * Cache it in a global variable. > *!* * Create it if not already cached. > *!* FUNCTION OOoGetCoreReflection() > *!* IF (TYPE([goOOoCoreReflection])!="O") OR ISNULL( goOOoCoreReflection ) > *!* PUBLIC goOOoCoreReflection > *!* goOOoCoreReflection = OOoServiceManager_CreateInstance ( "com.sun.star.ref > lection.CoreReflection" ) > *!* COMARRAY( goOOoCoreReflection, 10 ) > *!* ENDIF > *!* RETURN goOOoCoreReflection > *!* ENDFUNC > > > *!* * Create a UNO struct object and return it. > *!* * This routine is now obsolete. > *!* * See a superior implementation of this routine elsewhere > *!* * which uses the Bridge_GetStruct() feature of the OLE-UNO bridge. > *!* FUNCTION OOoCreateStruct( cTypeName ) > *!* * Ask service manager for a CoreReflection object. > *!* LOCAL oCoreReflection > *!* oCoreReflection = OOoGetCoreReflection() > *!* > *!* * Get the IDL Class for the type name. > *!* LOCAL oXIdlClass > *!* oXIdlClass = .NULL. > > *!* LOCAL cOldErrHandler > *!* cOldErrHandler = ON( "ERROR" ) > *!* ON ERROR = DoNothing__ErrorHandler( ERROR(), MESSAGE(), LINENO (), SYS(16), > PROGRAM(), SYS(2018) ) > *!* oXIdlClass = oCoreReflection.forName( cTypeName ) > *!* ON ERROR &cOldErrHandler > *!* > *!* IF ISNULL( oXIdlClass ) > *!* =__OOoReleaseCachedVars() > *!* oCoreReflection = OOoGetCoreReflection() > *!* oXIdlClass = oCoreReflection.forName( cTypeName ) > *!* ENDIF > *!* > *!* * Create a variable to hold the created Struct. > *!* * Assign it some initial value. > *!* LOCAL oStruct > *!* oStruct = CREATEOBJECT( "relation" ) && assign some kind of object initial > ly > > *!* * Ask the class definition to create an instance. > *!* oXIdlClass.CreateObject( @oStruct ) > *!* > *!* RETURN oStruct > *!* ENDFUNC > > > * Create a com.sun.star.beans.PropertyValue struct and return it. > FUNCTION OOoPropertyValue( cName, uValue, nHandle, nState ) > LOCAL oPropertyValue > oPropertyValue = OOoCreateStruct( "com.sun.star.beans.PropertyValue" ) > > oPropertyValue.Name = cName > oPropertyValue.Value = uValue > > IF TYPE([nHandle])="N" > oPropertyValue.Handle = nHandle > ENDIF > IF TYPE([nState])="N" > oPropertyValue.State = nState > ENDIF > > RETURN oPropertyValue > ENDFUNC > > > > * Open or Create a document from it's URL. > * New documents are created by URL's such as: > * private:factory/sdraw > * private:factory/swriter > * private:factory/scalc > * private:factory/simpress > FUNCTION OOoOpenURL( cURL ) > * LOCAL oPropertyValue > * oPropertyValue = OOoCreateStruct( "com.sun.star.beans.PropertyValue" ) > > * LOCAL ARRAY aNoArgs[1] > * aNoArgs[1] = oPropertyValue > * aNoArgs[1].Name = "ReadOnly" > * aNoArgs[1].Value = .F. > > * These two lines replace the alternate version above, > * which are left commented for the insight they provide. > LOCAL ARRAY aNoArgs[1] > aNoArgs[1] = OOoPropertyValue( "Hidden", .F. ) > > LOCAL oDesktop > oDesktop = OOoGetDesktop() > > LOCAL oDoc > oDoc = oDesktop.LoadComponentFromUrl( cURL, "_blank", 0, @ aNoargs ) > > * Make sure that arrays passed to this document are passed zero based. > COMARRAY( oDoc, 10 ) > > RETURN oDoc > ENDFUNC > > > PROCEDURE __OOoReleaseCachedVars() > RELEASE goOOoServiceManager, goOOoDesktop, goOOoCoreReflection > ENDPROC > > > > *################################################# ########### > > > * Experimental stuff > > > > *SET PROCEDURE TO LibOOo ADDITIVE > *oDoc = OOoOpenFile( GetDesktopFolderPathname() + "test.sxw" ) > > > * This is an attempt to print a document. > PROCEDURE PrintExperiment( oDoc ) > LOCAL ARRAY aArgs[1] > aArgs[1] = OOoPropertyValue( "CopyCount", 1, -1, 0 ) > * aArgs[1] = OOoPropertyValue( "Collate", .F. ) > > oDoc.Print( @ aArgs ) > ENDPROC > > > *################################################# ########### > > > > ************************************************** ********** > *dodane przez ZKB * > ************************************************** ********** > > *procedura opisu pojedynczej linii komórki > PROCEDURE oOOLine (_width,_color) > > IF VARTYPE(_color)<>'C' > _color=RGB(0,0,0) > ELSE > _color=[RGB(]+_color+[)] > _color=&_color > ENDIF > > IF VARTYPE(_width)<>'N' > _width=15 > ENDIF > > LOCAL oLine > > > > oLine=OOoCreateStruct("com.sun.star.table.BorderLi ne") > oLine.Color = _color > oLine.InnerLineWidth =_width > oLine.OuterLineWidth =_width > oLine.LineDistance =0 > > RETURN oLine > ENDPROC > > > *procedura opisu wszystkich linii komórki > PROCEDURE oOOTableBorder (_oLine,_IsTopLine,_IsBottomLine,_IsLeftLine,_IsRi ghtLi > ne,_IsHorizontalLine,_IsVerticalLine) > > IF VARTYPE(_IsTopLine)<>'L' > _IsTopLine=.F. > ENDIF > > IF VARTYPE(_IsBottomLine)<>'L' > _IsBottomLine=.F. > ENDIF > > IF VARTYPE(_IsLeftLine)<>'L' > _IsLeftLine=.F. > ENDIF > > IF VARTYPE(_IsRightLine)<>'L' > _IsRightLine=.F. > ENDIF > > IF VARTYPE(_IsHorizontalLine)<>'L' > _IsHorizontalLine=.F. > ENDIF > > IF VARTYPE(_IsVerticalLine)<>'L' > _IsVerticalLine=.F. > ENDIF > > LOCAL oTopLine,oBottomLine,oLeftLine,oRightLine,oHorizLi ne,oVertLine,oTableBord > er > > > oTopLine =_oLine > oBottomLine =_oLine > oLeftLine =_oLine > oRightLine =_oLine > oHorizLine =_oLine > oVertLine =_oLine > > oTableBorder=OOoCreateStruct("com.sun.star.table.T ableBorder") > oTableBorder.TopLine = oTopLine > oTableBorder.IsTopLineValid = _IsTopLine > oTableBorder.BottomLine = oBottomLine > oTableBorder.IsBottomLineValid = _IsBottomLine > oTableBorder.LeftLine = oLeftLine > oTableBorder.IsLeftLineValid = _IsLeftLine > oTableBorder.RightLine = oRightLine > oTableBorder.IsRightLineValid= _IsRightLine > oTableBorder.HorizontalLine = oHorizLine > oTableBorder.IsHorizontalLineValid= _IsHorizontalLine > oTableBorder.VerticalLine = oVertLine > oTableBorder.IsVerticalLineValid= _IsVerticalLine > oTableBorder.Distance = 0 > oTableBorder.IsDistanceValid= .F. > > RETURN oTableBorder > ENDPROC > > > ************************************************** ********** > *dodane przez ZKB koniec * > ************************************************** ********** > > > --nextPart2915305.mFNvdNGT96 > Content-Type: text/plain; name="rap_ookon01.txt" > Content-Transfer-Encoding: 8Bit > Content-Disposition: attachment; filename="rap_ookon01.txt" > > PARAMETERS _vver,_narkusz > > btablica=ALIAS() > > *zmienne zewnętrzne > *ext_rap_firma - nazwa firmy > *ext_rap_tytul - tytuł raportu > *ext_ark_tytul - tytuł arkusza > *ext_ark_name - nazwa arkusza > > IF VARTYPE( _vver)='L' > _vver=1 > ENDIF > > IF !_narkusz > *sprawdzić czy zainstalowany OO > *SET PROCEDURE TO LibOOo ADDITIVE > IF !OOoIsInstalled() > kom('Nie zainstalowano Open Office') > RETURN > ENDIF > > *otwarcie dokumentu > oDoc = OOoCreateNewCalcDocument() > > *otwarcie arkusza > oSheet = oDoc.getSheets().getByIndex( 0 ) > ELSE > oSheet = oDoc.getSheets().getByIndex( 1 ) > ENDIF > > > *określenie szerokości kolumn > oColumns = oSheet.getColumns() > oColumnC = oColumns.getByName( "C" ) > > **************************************** > *tytuł arkusza * > *logo firmy napis * > **************************************** > oSheet.getCellByPosition( 3, 1 ).setFormula(ext_rap_firma) > osheet.getCellByPosition( 3, 1 ).CharColor = RGB(255,0,0) > oSheet.getCellByPosition( 3, 1 ).CharHeight = 18 > oSheet.getCellByPosition( 3, 1 ).CharShadowed = .T. > > osheet.getCellRangeByPosition(3,1,4, 1).CellBackColor= RGB(255,200,200) > > osheet.getCellByPosition( 3, 1 ).CellBackColor= RGB(255,200,200) > > ************* > *data * > ************* > btext=[Kraków ]+DTOC(DATE()) > oSheet.getCellByPosition( 0, 1 ).setFormula(btext) > > ********************** > *tytuł raportu * > ********************** > btext=ext_rap_tytul+[ - ]+ext_ark_tytul > oSheet.Name=ext_ark_name > oSheet.getCellByPosition( 0, 3 ).setFormula(btext) > osheet.getCellByPosition( 0, 3 ).CharColor = RGB(0,0,255) > oSheet.getCellByPosition( 0, 3 ).CharHeight = 12 > > > DO CASE > > CASE _vver=1 > > ********************** > *Nagłówki kolumn * > ********************** > bcellrow=5 > boffset=2 > > *nagłówek L.p > oSheet.getCellByPosition( 0,bcellrow).setFormula(ALLTRIM('L.p')) > oColumnC = oColumns.getByIndex(0) > oColumnC.Width = 1000 > > > *nagłówek poziomu > oSheet.getCellByPosition( 1,bcellrow).setFormula(ALLTRIM('Poz')) > oColumnC = oColumns.getByIndex(1) > oColumnC.Width = 1000 > > > *nagłówek detal/oz.obce > oSheet.getCellByPosition( 2,bcellrow).setFormula('Detal / oz.obce') > oColumnC = oColumns.getByIndex(2) > oColumnC.Width = 3800 > > *nagłówek typ > oSheet.getCellByPosition( 3,bcellrow).setFormula('Typ') > oColumnC = oColumns.getByIndex(3) > oColumnC.Width = 1700 > > > *nagłówek indeks > oSheet.getCellByPosition( 4,bcellrow).setFormula('Indeks') > oColumnC = oColumns.getByIndex(4) > oColumnC.Width = 4500 > > > *nagłówek nazwa > oSheet.getCellByPosition( 5,bcellrow).setFormula('Nazwa') > oColumnC = oColumns.getByIndex(5) > oColumnC.Width = 9000 > > *nagłówek J.m > oSheet.getCellByPosition( 6,bcellrow).setFormula('J.m') > oColumnC = oColumns.getByIndex(6) > oColumnC.Width = 1700 > > *nagłówek > oSheet.getCellByPosition( 7,bcellrow).setFormula('Ilość') > oColumnC = oColumns.getByIndex(7) > oColumnC.Width = 1500 > > boffset=7 > > bfsel_row_02=bcellrow > bfsel_col_02=0 > blsel_row_02=bcellrow > blsel_col_02=boffset > > *określenie grubości znaków > osheet.getCellRangeByPosition (bfsel_col_02,bfsel_row_02,blsel_col_02,blsel_row_ > 02).CharWeight = 200 > > *określenie wyrównania komórki > osheet.getCellRangeByPosition (bfsel_col_02,bfsel_row_02,blsel_col_02,blsel_row_ > 02).HoriJustify = 2 > > *określenie ramek wokół nagłówków > blinia=oOOLine(30) > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).RightBo > rder = blinia > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).TopBord > er = blinia > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).BottomB > order = blinia > osheet.getCellByPosition(0,bfsel_row_02).LeftBorde r = blinia > > > > ************************************************** > *Umieszczanie danych liczbowych w pętli * > ************************************************** > blinia=oOOLine() > bfsel_row_01=bcellrow+1 > bfsel_col_01=boffset-1 > > SELECT (btablica) &&pętla na tablicy > bkon=0 > blp=0 > SCAN &&pętla > > bcellrow=bcellrow+1 > blp=blp+1 > *pole ilośći > oSheet.getCellByPosition( 0,bcellrow).setValue(blp) > *pole poziomu > oSheet.getCellByPosition( 1,bcellrow).setValue(poziom) > *pole detalu > bdetal=[']+[ ]+SUBSTR(detail_no,1,7)+[ - ]+SUBSTR(detail_no,8,2)+[ - ] +SUBSTR( > detail_no,10,3) > oSheet.getCellByPosition( 2,bcellrow).setFormula(bdetal) > > oSheet.getCellByPosition( 3,bcellrow).setFormula(ALLTRIM(grupa)) > > oSheet.getCellByPosition( 4,bcellrow).setFormula("'"+ALLTRIM(indeks)) > > IF !empty(descr) > IF empty(nazwa) > bdescr=alltrim(descr) > ELSE > *bdescr=alltrim(descr)+chr(13)+alltrim(nazwa) > bdescr=alltrim(descr)+' '+alltrim(nazwa) > > ENDIF > ELSE > bdescr=alltrim(nazwa) > ENDIF > > oSheet.getCellByPosition( 5,bcellrow).setFormula("'"+ALLTRIM(bdescr)) > > oSheet.getCellByPosition( 6,bcellrow).setFormula("'"+ALLTRIM (jednmiary2)) > > *pole ilośći > oSheet.getCellByPosition( 7,bcellrow).setValue(ilosc) > > ENDSCAN > > > ************************ > *Zakończenie * > ************************ > > > CASE _vver=2 > ********************** > *Nagłówki kolumn * > ********************** > bcellrow=5 > boffset=2 > > *nagłówek L.p > oSheet.getCellByPosition( 0,bcellrow).setFormula(ALLTRIM('L.p')) > oColumnC = oColumns.getByIndex(0) > oColumnC.Width = 1000 > > *nagłówek detal/oz.obce > oSheet.getCellByPosition( 1,bcellrow).setFormula('Detal') > oColumnC = oColumns.getByIndex(1) > oColumnC.Width = 3800 > > *nagłówek indeks > oSheet.getCellByPosition( 2,bcellrow).setFormula('Indeks') > oColumnC = oColumns.getByIndex(2) > oColumnC.Width = 4500 > > > *nagłówek nazwa > oSheet.getCellByPosition( 3,bcellrow).setFormula('Nazwa') > oColumnC = oColumns.getByIndex(3) > oColumnC.Width = 9000 > > > *nagłówek > oSheet.getCellByPosition( 4,bcellrow).setFormula('Ilość') > oColumnC = oColumns.getByIndex(4) > oColumnC.Width = 1500 > > *dostawca > oSheet.getCellByPosition( 5,bcellrow).setFormula('Producent/Dostawca') > oColumnC = oColumns.getByIndex(5) > oColumnC.Width = 5700 > > > boffset=5 > > bfsel_row_02=bcellrow > bfsel_col_02=0 > blsel_row_02=bcellrow > blsel_col_02=boffset > > *określenie grubości znaków > osheet.getCellRangeByPosition (bfsel_col_02,bfsel_row_02,blsel_col_02,blsel_row_ > 02).CharWeight = 200 > > *określenie wyrównania komórki > osheet.getCellRangeByPosition (bfsel_col_02,bfsel_row_02,blsel_col_02,blsel_row_ > 02).HoriJustify = 2 > > *określenie ramek wokół nagłówków > blinia=oOOLine(30) > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).RightBo > rder = blinia > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).TopBord > er = blinia > osheet.getCellRangeByPosition (0,bfsel_row_02,blsel_col_02,blsel_row_02).BottomB > order = blinia > osheet.getCellByPosition(0,bfsel_row_02).LeftBorde r = blinia > > > > ************************************************** > *Umieszczanie danych liczbowych w pętli * > ************************************************** > blinia=oOOLine() > bfsel_row_01=bcellrow+1 > bfsel_col_01=boffset-1 > > SELECT (btablica) &&pętla na tablicy > bkon=0 > blp=0 > SCAN &&pętla > > bcellrow=bcellrow+1 > blp=blp+1 > *pole ilośći > oSheet.getCellByPosition( 0,bcellrow).setValue(blp) > *pole detalu > bdetal=[']+[ ]+SUBSTR(detail_no,1,7)+[ - ]+SUBSTR(detail_no,8,2)+[ - ] +SUBSTR( > detail_no,10,3) > oSheet.getCellByPosition( 1,bcellrow).setFormula(bdetal) > > oSheet.getCellByPosition( 2,bcellrow).setFormula("'"+ALLTRIM(indeks)) > > IF !empty(descr) > IF empty(nazwa) > bdescr=alltrim(descr) > ELSE > *bdescr=alltrim(descr)+chr(13)+alltrim(nazwa) > bdescr=alltrim(descr)+' '+alltrim(nazwa) > > ENDIF > ELSE > bdescr=alltrim(nazwa) > ENDIF > > oSheet.getCellByPosition( 3,bcellrow).setFormula("'"+ALLTRIM(bdescr)) > > *pole ilośći > oSheet.getCellByPosition( 4,bcellrow).setValue(ilosc) > > oSheet.getCellByPosition( 5,bcellrow).setFormula("'"+ALLTRIM(nazwa0pr) +' / '+A > LLTRIM(nazwa1pr)) > > ENDSCAN > > > ENDCASE > > blsel_row_01=bcellrow > blsel_col_01=boffset > > > *określenie wielkości znaków > oSheet.getCellRangeByPosition (0,bfsel_row_01,blsel_col_01,blsel_row_01).CharHei > ght = 8 > > *określenie pozycji znaków > osheet.getCellRangeByPosition(0,bfsel_row_01,0,bls el_row_01).HoriJustify = 2 > osheet.getCellRangeByPosition(4,bfsel_row_01,4,bls el_row_01).HoriJustify = 2 > > RETURN > > > --nextPart2915305.mFNvdNGT96--
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?iso-8859-2?q?Ksi=B1=BFka_Visual_Basic_2005_Express_i_MySQL? =
Oracle XE lub DB2 Express-C i wspolpraca z Visual C# 2005 Expess Edition
=?iso-8859-2?Q?Pro=B6ba?= do posiadaczy Visual Studio 6
[Microsoft][ODBC Visual FoxPro Driver]Error - Pomocy
Microsoft visual C++ runtime error instalacja coreldraw9 BLAD :(
Oracle ODT XE dla Visual C# 2005 Express
Zagwostka dotyczaca Visual Fox Pro
Czy Visual Studio psuje programistów?
MySQL i Visual Studio - jak zintegrowac
Visual Foxpro 8.0
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|