Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 23-04-2007 08:29:24

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Coloration des scripts dans les messages

Mod phpMultiSyn-PunBB-1.1.7

Un post en partie publique (pour accès invités) concernant la coloration syntaxique des scripts utilisée sur pbadonf. (cf  les news du forum)
Il s'agit de l'implémentation du mod Multi Syntax Highlighter For PunBB.



Pour ceux qui préfèrent une explication en vidéo  © xlat



UTILISATION

La syntaxe BBcode est :

[ code=LANGAGE] (sans espace)

script

[ /code]
(sans espace)

avec LANGAGE dans :

apache
applescript
cpp
delphi
firebird
ini
mssql
pascal
pb
php
sql
vb
vbnet
vbscript



VERSIONS

V1.0 (Mod1.1.?) : 22/03/07 : mod pb supporte les mot clés, chaines, commentaires, force les minuscules, bug sql
V1.1 (Mod1.1.2) : 25/04/07 : mod pb supporte les mot clés, chaines, commentaires, bug sql
V1.3 (Mod1.1.2) : 30/04/07 : mod pb supporte les mot clés, chaines, commentaires



EXTENSIONS pb

* datatypes (distincts de mot clés)
* énumérés Valeur!
* CamelCase


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#2 23-04-2007 08:31:34

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

EXEMPLE PB

Code: pb

$PBExportHeader$w__tablesql_dyn.srw
$PBExportComments$[RESP] Fenetre de recherche de tables
forward
global type w__tablesql_dyn from window
end type
type cb_sql from commandbutton within w__tablesql_dyn
end type
type st_liste from statictext within w__tablesql_dyn
end type
type gb_liste from groupbox within w__tablesql_dyn
end type
end forward

public subroutine wf_modify_dwresult (datawindow adw_liste, boolean ab_listing);
//////////////////////////////////////////////////////////////////////////////
//
//    Nom      : wf_Modify_DwResult (EXTERNE)
//    But      : Modifier les attributs visuels de la DW générée
//    script   :
//    Argument : adw_liste, datawindow recevant le résultat
//
//    Return   :
//    Comment  :
//    section  :
// History  :
//
////////////////////////////////////////////////////////////////////////////////
string    ls_TextList[], ls_ColList[]
Integer    li_nbrObj, li_i1
Long        ll_maxheight = 0
Boolean    lb_maxheight = False

// Modifier la couleur de fond
adw_liste.Object.DataWindow.Color='31778020'
// Modifier le style et la couleur des textes
li_nbrObj = wf_dw_nbobject(adw_liste,true,ls_TextList)
FOR li_i1 = 1 TO li_nbrObj
    IF li_i1 = 1 THEN ll_maxheight = Long(adw_liste.Describe(ls_TextList[li_i1] +".Height"))
    IF ll_maxheight <> Long(adw_liste.Describe(ls_TextList[li_i1] +".Height")) THEN lb_maxheight = TRUE
    IF ll_maxheight < Long(adw_liste.Describe(ls_TextList[li_i1] +".Height")) THEN
        ll_maxheight = Long(adw_liste.Describe(ls_TextList[li_i1] +".Height"))
    END IF
    adw_liste.Modify(ls_TextList[li_i1] + ".Background.Mode='0'")
    adw_liste.Modify(ls_TextList[li_i1] + ".Background.Color='67108864'")
    adw_liste.Modify(ls_TextList[li_i1] + ".Border='6'")
NEXT
// Mettre tous les objets textes à la hauteur maxi
IF lb_maxheight = TRUE THEN
    FOR li_i1 = 1 TO li_nbrObj
        adw_liste.Modify(ls_TextList[li_i1] +".Height='" + string(ll_maxheight) + "'")
    NEXT
END IF
// Modifier le style et la couleur des colonnes
li_nbrObj = wf_dw_nbobject(adw_liste,false,ls_ColList)
FOR li_i1 = 1 TO li_nbrObj
    IF ab_listing = True THEN
        adw_liste.Modify(ls_ColList[li_i1] + ".Background.Mode='1'")
       
        adw_liste.Modify("DataWindow.Detail.Color= '" + string(12582911) + &
                "~tif( mod(getRow(),2 ) = 0 ," + string(12582911) + ", rgb(255, 211, 168))'")               
               
    ELSE
        adw_liste.Modify(ls_ColList[li_i1] + ".Background.Mode='0'")
    END IF
    adw_liste.Modify(ls_ColList[li_i1] + ".Background.Color='16777215'")
    adw_liste.Modify(ls_ColList[li_i1] + ".Border='0'")
NEXT
adw_liste.Modify("DataWindow.ReadOnly=Yes")

end subroutine

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 23-04-2007 08:32:05

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

EXEMPLE FICHIER .INI

Code: ini

[PB]
CompilerWarnings=1
DashesInIdentifiers=1
DatabaseWarnings=1
Maximized=1
PromptOnExit=0
StripComments=0
WebLink1=&Sybase Web Site,http://www.sybase.com
WebLink2=&Electronic Case Management,http://login.sybase.com/login?referer=http://casexpress.sybase.com/cx/cx.stm
WebLink3=Sybase &Online Books Site,http://www.sybase.com/support/manuals/ 

[SQL Painter]
Hidecomments=0
Tabitem=1

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 23-04-2007 08:42:14

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

EXEMPLE CODE SQL (mode sql ou mssql)

Code: sql

-- exemple SQL
SELECT NOM, PRENOM 
FROM EMPLOYE 
WHERE NOM LIKE 'pick%' AND PRENOM = 'ouic'
OR SALAIRE > 10000
UNION
SELECT NOM, PRENOM 
FROM EMPLOYE 
WHERE SALAIRE > 100000 AND MATRICULE NOT IN ( '007', '117' )
GROUP BY 1
ORDER BY 1,2;

Code: mssql

-- exemple MSSQL
DECLARE @titre VARCHAR(50), @genre VARCHAR(50), @rupture_genre VARCHAR(50), @rupture_auteur VARCHAR(50), @auteur VARCHAR(50)
DECLARE @i_genre INT

SET @i_genre = 1
SET @rupture_genre = ''
SET @rupture_auteur = ''

DECLARE curseur_ouvrages CURSOR FOR 
  SELECT ouvrage_titre, genre_nom, auteur_nom FROM t_ouvrages O
  LEFT OUTER JOIN t_genres
    ON genre_id = ouvrage_genre
  LEFT OUTER JOIN t_ouvrages_auteurs TOA
    ON TOA.ouvrage_id = O.ouvrage_id
  LEFT OUTER JOIN t_auteurs TA
    ON TA.auteur_id = TOA.auteur_id
  ORDER BY ouvrage_genre
  
OPEN curseur_ouvrages

FETCH curseur_ouvrages INTO @titre , @genre, @auteur

WHILE @@FETCH_STATUS = 0
BEGIN
  IF @genre != @rupture_genre
  BEGIN
    PRINT ''
    PRINT CONVERT(CHAR(2),@i_genre) + '. ' + @genre

    SET @i_genre = @i_genre + 1
    SET @rupture_auteur = ''
  END

  IF @auteur != @rupture_auteur
  BEGIN
    PRINT ''
    PRINT @auteur
    PRINT '------------'
  END

  PRINT @titre;

  SET @rupture_genre = @genre
  SET @rupture_auteur = @auteur
  FETCH curseur_ouvrages INTO @titre , @genre, @auteur
END

CLOSE curseur_ouvrages
DEALLOCATE curseur_ouvrages

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 23-04-2007 08:43:32

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

EXEMPLE VB

Code: vb

Public Function GetSAPData() As Integer
Dim ctlLogon As Object
Dim funcControl As Object
Dim ctlTableFactory As Object
Dim objConnection As Object
Dim booReturn As Boolean
Dim RFC_READ_TABLE As Object
Dim strExport1 As Object
Dim strExport2 As Object
Dim tblOptions As Object
Dim tblData As Object
Dim tblFields As Object
Dim intRow As Integer
Dim iStr_Split As Variant
Dim iStr_SQL As String
Dim iRec As Recordset
Dim iBln_Prem As Boolean
Dim iBln_Data As Boolean
   
    ecritLog "Connection à SAP."
    Set ctlLogon = CreateObject("SAP.LogonControl.1")
    Set funcControl = CreateObject("SAP.Functions")
    Set ctlTableFactory = CreateObject("SAP.TableFactory.1")
    Set objConnection = ctlLogon.NewConnection
    
    objConnection.ApplicationServer = fngGetParamString("SAPLogin", "ApplicationServer") 
    objConnection.System = fngGetParamString("SAPLogin", "System") '"DE3"
    objConnection.SystemNumber = fngGetParamString("SAPLogin", "SystemNumber") '"0"
    objConnection.Client = fngGetParamString("SAPLogin", "Client") '"100"
    objConnection.Language = fngGetParamString("SAPLogin", "Language") '"FR"
    objConnection.User = fngGetParamString("SAPLogin", "User") ' Le User SAP
    objConnection.Password = fngGetParamMdP("SAPLogin", "Password") 'Le pass SAP
    booReturn = objConnection.Logon(0, True)
 
    If booReturn <> True Then
        ecritLog "Impossible de se logger à SAP."
        GoTo Erreur
    Else
        ecritLog "Connection à SAP OK."
        funcControl.Connection = objConnection
        Set RFC_READ_TABLE = funcControl.Add("RFC_READ_TABLE")
        Set tblOptions = RFC_READ_TABLE.Tables("OPTIONS")
        Set tblData = RFC_READ_TABLE.Tables("DATA")
              
        Set strExport1 = RFC_READ_TABLE.Exports("QUERY_TABLE")
        Set strExport2 = RFC_READ_TABLE.Exports("DELIMITER")
        strExport1.Value = "VBKD"
        strExport2.Value = "|"
        
        iStr_SQL = "SELECT DocVente, DocVentePoste " & _
                   "FROM Commandes  " & _
                   "WHERE not(InfoEnvoyee) "
        Set iRec = gObj_DataBase.OpenRecordset(iStr_SQL)
        iBln_Prem = True
        intRow = 2
        Set tblFields = RFC_READ_TABLE.Tables("FIELDS")
        tblFields.AppendRow
        tblFields(1, "FIELDNAME") = "VBELN"
        tblFields.AppendRow
        tblFields(2, "FIELDNAME") = "POSNR"
        tblFields.AppendRow
        tblFields(3, "FIELDNAME") = "BSTKD"
        tblFields.AppendRow
        tblFields(4, "FIELDNAME") = "BSTKD_E"
        
        If Not iRec.EOF Then
            tblOptions.AppendRow
            tblOptions.AppendRow
        End If
        ecritLog "Récupération des données (Numéros de commande) dans SAP."
        While Not iRec.EOF
            tblOptions(1, "TEXT") = "VBELN EQ '" & iRec.Fields(0).Value & "'"
            tblOptions(2, "TEXT") = " AND POSNR EQ '" & Left("000000", 6 - Len(iRec.Fields(1).Value)) & iRec.Fields(1).Value & "'"
                        
            If RFC_READ_TABLE.Call = True Then
            Else
                ecritLog "Erreur lors de la récupération des données : " & RFC_READ_TABLE.exception
                objConnection.Logoff
                GoTo Erreur
            End If
            iRec.MoveNext
        Wend
        If tblData.RowCount > 0 Then
            For intRow = 1 To tblData.RowCount
                iStr_Split = Split(tblData(intRow, "WA"), "|")
                iStr_SQL = "Update COMMANDES " & _
                           "set BSTKD = '" & Left(Trim(iStr_Split(2)), Len(Trim(iStr_Split(2))) - 3) & "', " & _
                           "BSTKD_E = '" & Trim(iStr_Split(3)) & "' " & _
                           "WHERE DocVente = '" & iStr_Split(0) & "' " & _
                           "AND DocVentePoste = " & iStr_Split(1)
                gObj_DataBase.Execute iStr_SQL, dbFailOnError
                ecritLog "Récupération des données OK pour la commande " & iStr_Split(0) & " - " & iStr_Split(1)
            Next
        Else
            ecritLog "Pas de données récupérées." ' pour la commande " ' & iStr_Split(0) & " - " & iStr_Split(1)
        End If
        
        iRec.Close
        objConnection.Logoff
        Set objConnection = Nothing
        Set ctlLogon = Nothing
        Set funcControl = Nothing
        Set ctlTableFactory = Nothing
        Set RFC_READ_TABLE = Nothing
        Set strExport1 = Nothing
        Set strExport2 = Nothing
        Set tblOptions = Nothing
        Set tblData = Nothing
        Set tblFields = Nothing

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 23-04-2007 09:03:19

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4655
Pépites: 933
Banque: 2,147,483,647
Site web

Re: Coloration des scripts dans les messages


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 26-04-2007 07:26:27

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

voilà c'est réglé pour les codes forcés en minuscules


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 26-04-2007 07:34:31

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Coloration des scripts dans les messages

eRaSorZ a écrit:

voilà c'est réglé pour les codes forcés en minuscules

Et 50 pépites pour eRaSorZ qui traînait encore sur le site à 1H30 du mat' pour nous faire  ses smilies, ses mod et... sa belle 2ème place au classement


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#9 26-04-2007 08:00:33

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: Coloration des scripts dans les messages

eRaSorZ a écrit:

voilà c'est réglé pour les codes forcés en minuscules




Il ne reste plus que le bug sql (le rouge qui reste)

foon a écrit:

Et 50 pépites pour eRaSorZ

Très bonne idée ! Et 100 de plus.


never let people work on more than one thing at once.

Hors ligne

 

#10 28-04-2007 17:07:59

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

shahin a écrit:

Il ne reste plus que le bug sql (le rouge qui reste)

et non, , il reste encore:
* datatypes (distincts de mot clés)
* énumérés Valeur!

je suis actuellement (non-activement ) sur le 1er point...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#11 01-05-2007 07:51:05

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

bug sql résolu


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#12 01-05-2007 09:31:24

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Coloration des scripts dans les messages

Le bug eradicator junior gagne toujours

Code: mssql

delete db_bug where user_id = 'eRaSorZ';

select 'Cool ça marche' from dual;

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#13 01-05-2007 11:05:09

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

foon a écrit:

Code: mssql

delete db_bug where user_id = 'eRaSorZ';
select 'Cool ça marche' from dual;

http://pbadonf.fr/forum/_files/capello.jpg d'ailleurs ton code est faux ...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#14 01-05-2007 16:27:54

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Coloration des scripts dans les messages

Yeap! la seconde ligne est un affreux mélange de Transact SQL et de PL/SQL


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#15 05-03-2008 15:59:20

Sailor LVCV  
N2I power
Lieu: Vigneux sur Seine
Date d'inscription: 04-03-2008
Messages: 54
Pépites: 1,253
Banque: 0

Re: Coloration des scripts dans les messages


Moi, Sailor LVCV, au nom d'Aldebaran, je vais vous punir !!!

Hors ligne

 

#16 07-10-2011 12:00:13

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Coloration des scripts dans les messages

Pour ceux qui préfèrent une explication en vidéo  © xlat


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22