[..] Insérer du code HTML dans une GUI

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

[..] Insérer du code HTML dans une GUI

#1

Message par jpascal »

Bonjour,

J'ai sûrement mal cherché mais je n'arrive pas à effectuer cette opération toute simple, à savoir insérer du code HTML, et l'interpréter en tant que tel dans une GUI.

Si j'utilise ce code :
Local $oIE = _IECreateEmbedded()
GUICreate("Embedded Web control Test", 640, 580, _
        (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
        $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
_IEBodyWriteHTML ($oIE, $sHTML)
j'obtiens l'erreur :
--> IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_InvalidDataType


Si j'ajoute ces lignes cela fonctionne mais je vois tout de même le message d'erreur qui s'affiche dans l'objet IE
_IEAction($oIE, "stop")
Sleep(10)

Quelle est donc la méthode pour insérer du code HTML dans une GUI ?

Voici le code à tester :
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <WindowsConstants.au3>

Local $oIE = _IECreateEmbedded()
GUICreate("Embedded Web control Test", 640, 580, _
        (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
        $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
GUISetState(@SW_SHOW) ;Show GUI

;~ _IENavigate($oIE, "http://www.autoitscript.com")
_IEAction($oIE, "stop")
Sleep(10)
Local $sHTML = ""
$sHTML &= "<HTML><BODY>" & @CRLF
$sHTML &= 'Ceci est un <strong >test</strong >' & @CRLF
$sHTML &= "</BODY></HTML>"
_IEBodyWriteHTML ($oIE, $sHTML)

While 1
    Local $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
marcgforce
Niveau 3
Niveau 3
Messages : 47
Enregistré le : lun. 07 mars 2016 07:20
Status : Hors ligne

Re: [..] Insérer du code HTML dans une GUI

#2

Message par marcgforce »

Voilà ce que j'avais fabriqué il y a quels années dans l'objet de créer une main courante pour les gestions de crise :

Je ne sais pas si il va fonctionner vu que j'avais à l'époque décidé d'utiliser metroGUI, il te faudra surement adapter le code pour l'utiliser, mais dans le fonctionnement, du texte est rentré un ritchedit et est transformé en html pour un affichage dans une fenêtre internet explorer...
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Users\0469327\Pictures\Icones\mci.ico
#AutoIt3Wrapper_Outfile=MCI-PCO.exe
#AutoIt3Wrapper_Res_Comment=Main courante en vue d'une gestion d'un PC opérationnel
#AutoIt3Wrapper_Res_Description=Main courante PC Opérationnel
#AutoIt3Wrapper_Res_Fileversion=1.2.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Marc GRAZIANI SPAFA 13
#AutoIt3Wrapper_Res_Language=1036
#AutoIt3Wrapper_Res_HiDpi=y
#AutoIt3Wrapper_Run_Au3Stripper=y
#Au3Stripper_Parameters=/so /rm /pe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

;YOU NEED TO EXCLUDE FOLLOWING FUNCTIONS FROM AU3STRIPPER, OTHERWISE IT WON'T WORK:
#Au3Stripper_Ignore_Funcs=_iHoverOn,_iHoverOff,_iFullscreenToggleBtn,_cHvr_CSCP_X64,_cHvr_CSCP_X86,_iControlDelete
;Please not that Au3Stripper will show errors. You can ignore them as long as you use the above Au3Stripper_Ignore_Funcs parameters.

;Required if you want High DPI scaling enabled. (Also requries _Metro_EnableHighDPIScaling())
;*****************************************
;MCI-PCO.au3 by Marc GRAZIANI
;Créé avec ISN AutoIt Studio v. 1.06
;*****************************************
;!Highly recommended for improved overall performance and responsiveness of the GUI effects etc.! (after compiling):

#include <GuiConstants.au3>
#include <IE.au3>
#include<date.au3>
#include<array.au3>
#include <GuiRichEdit.au3>
#include <RTF_Printer.au3>
#include <InputImpose.au3>

#include "MetroGUI_UDF.au3"
#include "_GUIDisable.au3" ; For dim effects when msgbox is displayed

;Enable high DPI support: Detects the users DPI settings and resizes GUI and all controls to look perfectly sharp.
_Metro_EnableHighDPIScaling() ; Note: Requries "#AutoIt3Wrapper_Res_HiDpi=y" for compiling. To see visible changes without compiling, you have to disable dpi scaling in compatibility settings of Autoit3.exe

;Set Theme
_SetTheme("LightGreen") ;See MetroThemes.au3 for selectable themes or to add more

;Create resizable Metro GUI
$Form1 = _Metro_CreateGUI("Example", 500, 300, -1, -1, True)

Global $atextForPrinting[1][2], $total_VC, $total_VE, $total_VFS


$largeur=@DesktopWidth
$hauteur=@DesktopHeight
$quart_resolution_hauteur=@DesktopHeight/4
$quart_resolution_largeur=@DesktopWidth/4
$quarantieme_resolution_hauteur=@DesktopHeight/40
$quarantieme_resolution_largeur=@DesktopWidth/40
;consolewrite("largeur : " & @DesktopWidth & " Hauteur : " & @DesktopHeight & @CRLF)
;ConsoleWrite("quart hauteur :" & $quart_resolution_hauteur & " quart largeur : "& $quart_resolution_largeur & @CRLF)
;ConsoleWrite("quartantieme hauteur :" & $quarantieme_resolution_hauteur & " quartantieme largeur : "& $quarantieme_resolution_largeur)
;----------------------------GUI FORM 1 -----------------------------------------------------------
;Create resizable Metro GUI
$Form1 = _Metro_CreateGUI("Main courante PCO", $largeur-$quarantieme_resolution_largeur, $hauteur - $quarantieme_resolution_hauteur*2,-1, -1 , True)
;$form1=GuiCreate("Main courante PCO", $largeur-$quarantieme_resolution_largeur, $hauteur - $quarantieme_resolution_hauteur*2,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$Control_Buttons = _Metro_AddControlButtons(True, True, True, True, True) ;CloseBtn = True, MaximizeBtn = True, MinimizeBtn = True, FullscreenBtn = True, MenuBtn = True

;Set variables for the handles of the GUI-Control buttons. (Above function always returns an array this size and in this order, no matter which buttons are selected.)
$GUI_CLOSE_BUTTON = $Control_Buttons[0]
$GUI_MAXIMIZE_BUTTON = $Control_Buttons[1]
$GUI_RESTORE_BUTTON = $Control_Buttons[2]
$GUI_MINIMIZE_BUTTON = $Control_Buttons[3]
$GUI_FULLSCREEN_BUTTON = $Control_Buttons[4]
$GUI_FSRestore_BUTTON = $Control_Buttons[5]
$GUI_MENU_BUTTON = $Control_Buttons[6]

$inpubox=GUICtrlCreateEdit("",$quarantieme_resolution_largeur,$quarantieme_resolution_hauteur,$quart_resolution_largeur * 3 , $quarantieme_resolution_hauteur * 4)
$button=_Metro_CreateButtonEx("OK", $quart_resolution_largeur * 3 + $quarantieme_resolution_largeur , $quarantieme_resolution_hauteur * 1.5 ,70,70)
;$button= GUICtrlCreateButton("OK", $quart_resolution_largeur * 3 + $quarantieme_resolution_largeur , $quarantieme_resolution_hauteur * 1.5 ,70,70)
$button_print= _Metro_CreateButtonEx("Imprimer",$quart_resolution_largeur * 3.6 , $quart_resolution_hauteur * 3.5 ,70,40)
$menu_fichier=GUICtrlCreateMenu("&Fichier")
$menu_ouvrir=GUICtrlCreateMenuItem("&Ouvrir",$menu_fichier)
$menu_quitter=GUICtrlCreateMenuItem("&Quitter",$menu_fichier)
$menu_Imprimer=GUICtrlCreateMenuItem("&Imprimer",$menu_fichier)
$menu_a_propos=GUICtrlCreateMenuItem("&A propos", $menu_fichier)

$Group_victimes= GUICtrlCreateGroup("VICTIMES CIVILES", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur , $quart_resolution_hauteur / 1.8, $quart_resolution_largeur, $quart_resolution_hauteur/1.2)
GUICtrlCreateLabel("INDEMNES   : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5)
GUICtrlCreateLabel("UR                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 30)
GUICtrlCreateLabel("UA                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 60 )
GUICtrlCreateLabel("DCD               : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 90)
GUICtrlCreateLabel("TOTAL          : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 120)
$nbr_label_VC_indemnes = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5)
$nbr_label_VC_UR= GUICtrlCreateInput("",$quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 +30)
$nbr_label_VC_UA = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 60)
$nbr_label_VC_DCD = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 90)
$nbr_label_VC_TOTAL = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.5 + 120)
Global $aCondition1 = _InputImpose_Create()
_InputImpose_Update($aCondition1, $__INIM_ALLOW_ANYWHERE, '0..9', $__INIM_ALLOW_ONCE, '.')
_InputImpose_Update($aCondition1, $__INIM_TOOLTIP_TEXT, 'Only a Positive number (Whole or Decimal) is allowed', $__INIM_TOOLTIP_TIMEOUT, 3)
_InputImpose_Update($aCondition1, $__INIM_BEEP_FREQUENCY, 700)

$group_police = GUICtrlCreateGroup("VICTIMES FORCES DE SECURITE",  $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur , $quart_resolution_hauteur * 1.5  , $quart_resolution_largeur, $quart_resolution_hauteur/1.5)
GUICtrlCreateLabel("UR                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6)
GUICtrlCreateLabel("UA                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 30)
GUICtrlCreateLabel("DCD               : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 60)
GUICtrlCreateLabel("TOTAL          : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 90)
$nbr_label_VFS_UR= GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6)
$nbr_label_VFS_UA = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 30)
$nbr_label_VFS_DCD = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 60)
$nbr_label_VFS_TOTAL = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 1.6 + 90)

$group_equipage = GUICtrlCreateGroup("VICTIMES EQUIPAGE", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur , $quart_resolution_hauteur * 2.3  , $quart_resolution_largeur, $quart_resolution_hauteur/1.2)
GUICtrlCreateLabel("INDEMNES   : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4)
GUICtrlCreateLabel("UR                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 30)
GUICtrlCreateLabel("UA                  : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 60)
GUICtrlCreateLabel("DCD               : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 90 )
GUICtrlCreateLabel("TOTAL          : ", $quart_resolution_largeur * 3  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 120 )
$nbr_label_VE_indemnes = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 )
$nbr_label_VE_UR= GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 30)
$nbr_label_VE_UA = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 60)
$nbr_label_VE_DCD = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 90)
$nbr_label_VE_TOTAL = GUICtrlCreateInput("", $quart_resolution_largeur * 3.2  + $quarantieme_resolution_largeur, $quart_resolution_hauteur * 2.4 + 120)
$time_label = GUICtrlCreateLabel(_Nowtime(4) , $quart_resolution_largeur * 3.4,$quart_resolution_hauteur / 6 ,$quart_resolution_hauteur /1.1 ,$quarantieme_resolution_largeur *2 )
GUICtrlSetFont(-1,40)

Global $csv= @ScriptDir & "\" & stringreplace(_nowdate(),"/","-") & " " & stringreplace(_nowtime(4),":","h") & "-pcosave.csv"
Global $file = @TempDir & "\nmci-pco.html"
Global $fileini = @scriptdir & "\" & stringreplace(_nowdate(),"/","-") & " " & stringreplace(_nowtime(4),":","h") & "-pcosave.ini"
$oIE = _IECreateEmbedded ()
GuiSetIcon(@SystemDir & "\shell32.dll", 170)
; IE
$GUIActiveX = GUICtrlCreateObj($oIE, $quarantieme_resolution_largeur , $quart_resolution_hauteur / 1.2 , $quart_resolution_largeur * 2.95, $quart_resolution_hauteur * 2.7)
GUICtrlCreateLabel("MC-P.C.O. du " & _nowdate(), $quarantieme_resolution_largeur, $quart_resolution_hauteur / 1.8,$quart_resolution_largeur *2.1,$quarantieme_resolution_hauteur*1.5)
GUICtrlSetFont(-1,20)
Global $label_evenement= GUICtrlCreateInput("Evenement : ",$quart_resolution_largeur * 1.25 ,$quart_resolution_hauteur / 1.8, $quart_resolution_largeur * 1.8,$quarantieme_resolution_largeur)
GUICtrlSetFont(-1,20)
GuiSetState(@SW_SHOW)
_makehtml()


While 1
 _InputImpose($form1, $nbr_label_VC_DCD, $aCondition1)
 _InputImpose($form1, $nbr_label_VC_indemnes, $aCondition1)
 _InputImpose($form1, $nbr_label_VC_UA, $aCondition1)
 _InputImpose($form1, $nbr_label_VC_UR, $aCondition1)
 _InputImpose($form1, $nbr_label_VE_DCD, $aCondition1)
 _InputImpose($form1, $nbr_label_VE_indemnes, $aCondition1)
 _InputImpose($form1, $nbr_label_VE_UA, $aCondition1)
 _InputImpose($form1, $nbr_label_VE_UR, $aCondition1)
 _InputImpose($form1, $nbr_label_VFS_DCD, $aCondition1)
 _InputImpose($form1, $nbr_label_VFS_UA, $aCondition1)
 _InputImpose($form1, $nbr_label_VFS_UR, $aCondition1)
guictrlsetdata($time_label, _NowTime(4) )
guictrlsetdata($nbr_label_VC_TOTAL,GUICtrlRead($nbr_label_VC_DCD)+GUICtrlRead($nbr_label_VC_indemnes)+GUICtrlRead($nbr_label_VC_UA)+guictrlread($nbr_label_VC_UR))
guictrlsetdata($nbr_label_VE_TOTAL,GUICtrlRead($nbr_label_VE_DCD)+GUICtrlRead($nbr_label_VE_indemnes)+GUICtrlRead($nbr_label_VE_UA)+guictrlread($nbr_label_VE_UR))
guictrlsetdata($nbr_label_VFS_TOTAL,GUICtrlRead($nbr_label_VFS_DCD)+GUICtrlRead($nbr_label_VFS_UA)+guictrlread($nbr_label_VFS_UR))
$msg = GuiGetMsg()
   Switch $msg
    Case $GUI_EVENT_CLOSE, $menu_quitter, $GUI_CLOSE_BUTTON
        FileDelete($file)
      $nombre = GUICtrlRead($nbr_label_VC_TOTAL) + guictrlread($nbr_label_VE_TOTAL) + GUICtrlRead($nbr_label_VFS_TOTAL)
      if $nombre <> 0 then _savebandeau()

      if FileExists($csv) then   Msgbox(64,"MC P.C.O","Les évènements ont été enregistrés automatiquement dans le fichier " & @crlf & _
                                       $csv &  ". Pour continuer cet enregistrement " & @crlf & _
                                       "Utiliser le menu sandwich / ouvrir et le sélectionner.",3)
      _Metro_GUIDelete($Form1)
      Exit
   Case $GUI_MAXIMIZE_BUTTON
      GUISetState(@SW_MAXIMIZE, $Form1)
         _IENavigate($oIE, $file)
   Case $GUI_MINIMIZE_BUTTON
      GUISetState(@SW_MINIMIZE, $Form1)
      _IENavigate($oIE, $file)
   Case $GUI_RESTORE_BUTTON
      GUISetState(@SW_RESTORE, $Form1)
      _IENavigate($oIE, $file)
   Case $GUI_MENU_BUTTON
      ;Create an Array containing menu button names
      Local $MenuButtonsArray[4] = ["Ouvrir", "Imprimer", "A propos", "Quitter"]
      Local $MenuSelect = _Metro_MenuStart($Form1, 150, $MenuButtonsArray)
      Switch $MenuSelect ;Above function returns the index number of the selected button from the provided buttons array.
         Case "0"
            ouvrir()
         Case "1"
            imprimer($csv)
         Case "2"
            a_propos()
         Case "3"
            FileDelete($file)
            $nombre = GUICtrlRead($nbr_label_VC_TOTAL) + guictrlread($nbr_label_VE_TOTAL) + GUICtrlRead($nbr_label_VFS_TOTAL)
            if $nombre <> 0 then _savebandeau()
            if FileExists($csv) then   Msgbox(64,"MC P.C.O","Les évènements ont été enregistrés automatiquement dans le fichier " & @crlf & _
                                       $csv &  ". Pour continuer cet enregistrement " & @crlf & _
                                       "Utiliser  le menu sandwich / ouvrir et le sélectionner.", 3)
            _Metro_GUIDelete($Form1)
            Exit
         EndSwitch
   Case $button
      $message=GUICtrlRead($inpubox)
      $arrayMsg =StringRegExpReplace($message, '\R', "__")
      $aText = StringRegExp($message, "(?m)^(.*)$", 3)
      ;_ArrayDisplay($aText)
      if $message = "" then
         consolewrite("")
      Else
         FileWrite($file, _nowtime(4) & " : ")
         FileWrite($csv, _nowtime(4) & " :  ;")
         For $i = 0 To UBound($aText) - 1
            FileWrite($file, $aText[$i]  & "<br />")
            FileWrite($csv,$aText[$i]  & @CRLF)
         ;_IEErrorHandlerRegister ()
         Next
         _savebandeau()
         redim $atextForPrinting[ubound($atextForPrinting) +1][2]
         $atextForPrinting[ubound($atextForPrinting) -1][0]=_NowTime(4) & " : "
         $atextForPrinting[ubound($atextForPrinting) -1][1]= $arrayMsg
         ;_ArrayDisplay($atextForPrinting)
      EndIf
      MsgBox(0,"test",GUICtrlRead($label_evenement),2)
      _IENavigate($oIE, $file)
      GUICtrlSetdata($inpubox,"")
      sleep(1000)
   case $button_print
      imprimer($csv)
   ;Case $menu_ouvrir
   ;  if FileExists($file) then FileDelete($file)
   ;
   ;  _makehtml()
   ;  $fileopen = FileOpenDialog("Main courante P.C.O.",@ScriptDir,"Fichiers CSV (*.csv)", $FD_FILEMUSTEXIST )
   ;  $csv= $fileopen
   ;  local $split = stringsplit($fileopen,".")
   ;  $fileini= $split[1]&".ini"
   ;  if not FileExists($fileini) then _makeini()
   ;
   ;  local $scsv = FileRead($csv)
   ;  $atextForPrinting= toArrayCsv($scsv)
   ;  ;_arraydisplay($atextForPrinting)
   ;  for $i = 0 to ubound($atextForPrinting) -2
   ;     filewrite($file, $atextForPrinting[$i][0] & $atextForPrinting[$i][1] & "</br>")
   ;  Next
   ;
   ;  Filewrite($file, @HOUR & ":" & @MIN & " : Reprise de la main courante le " & @MDAY & "/" & @MON & "/" & @YEAR & "</br>")
   ;  FileWrite($csv, _nowtime(4) & " :  ; Reprise de la main courante le " & @MDAY & "/" & @MON & "/" & @YEAR & "</br>" & @CRLF)
   ;  _loadbandeau()
   ;
   ;  _IENavigate($oIE, $file)
   ;Case $menu_a_propos
   ;  Msgbox(64,"MC-PCO","Ce logiciel doit être utilisé uniquement dans le cadre d'une gestion opérationelle d'un evenement " & @crlf & _
   ;           "Ecrire les evenements dans la cadre du haut pour qu'ils soient répercutés en dessous " & @crlf & _
   ;           "Le bandeau de droite sert à comptabiliser les bléssés et indemnes des trois categories de personnels" & @crlf & _
   ;           "Pour récuperer une crise en cours utiliser le menu fichier/ouvrir " & @crlf & _
   ;           "Concept et developpement Marc GRAZIANI  - DIDPAF 13 / SPAFA ")
   EndSwitch

WEnd

func ouvrir()
   if FileExists($file) then FileDelete($file)

   _makehtml()
   $fileopen = FileOpenDialog("Main courante P.C.O.",@ScriptDir,"Fichiers CSV (*.csv)", $FD_FILEMUSTEXIST )
   $csv= $fileopen
   local $split = stringsplit($fileopen,".")
   $fileini= $split[1]&".ini"
   if not FileExists($fileini) then _makeini()

   local $scsv = FileRead($csv)
   $atextForPrinting= toArrayCsv($scsv)
   ;_arraydisplay($atextForPrinting)
   for $i = 0 to ubound($atextForPrinting) -2
      filewrite($file, $atextForPrinting[$i][0] & $atextForPrinting[$i][1] & "</br>")
   Next
   Filewrite($file, @HOUR & ":" & @MIN & " : Reprise de la main courante le " & @MDAY & "/" & @MON & "/" & @YEAR & "</br>")
   FileWrite($csv, _nowtime(4) & " :  ; Reprise de la main courante le " & @MDAY & "/" & @MON & "/" & @YEAR & @CRLF)
   _loadbandeau()
   _IENavigate($oIE, $file)

EndFunc
Func toArrayCsv($s)
    Local $line = StringSplit($s,@CRLF,2+1) ; combien de ligne de mon fichier <> tableau
    Local $maxCol = 1 ; nombre de colonne de depart
    Local $a[UBound($line)][$maxCol] ; je crée un tableau de n ligne et de 1 colonne que je modifierai à ma guise
    For $i = 0 To UBound($line)-1 ; parcours toutes les lignes
        Local $tmp = StringSplit($line[$i],";",3) ; combien de colonnes pour la ligne n°i
        If(UBound($tmp) > $maxCol ) then $maxCol = UBound($tmp) ; pour connaitre le nombre de colonnes
        ReDim $a[UBound($line)][$maxCol] ; je redimensionne mon tableau aux bonnes dimensions
        For $j = 0 To UBound($tmp)-1 ; je parcours cellule par cellule "de gauche a droite"
            $a[$i][$j] = $tmp[$j] ; je remplis chaque cellule
        Next
    Next
    Return $a
EndFunc
Func a_propos()
   Msgbox(64,"MC-PCO","Ce logiciel doit être utilisé uniquement dans le cadre d'une gestion opérationelle d'un evenement " & @crlf & _
               "Ecrire les evenements dans la cadre du haut pour qu'ils soient répercutés en dessous " & @crlf & _
               "Le bandeau de droite sert à comptabiliser les bléssés et indemnes des trois categories de personnels" & @crlf & _
               "Pour récuperer une crise en cours utiliser le menu sandwich  / ouvrir" & @crlf & _
               "Concept et developpement Marc GRAZIANI  - DIDPAF 13 / SPAFA ")
EndFunc

func imprimer($a)
   Local  $hRichEdit
   local $scsv = FileRead($csv)
   $a= toArrayCsv($scsv)
   $hGui = GUICreate("impression", 320, 350, -1, -1)
   $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, _
         BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
   _GUICtrlRichEdit_SetFont($hRichEdit,20)
   _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & "Main courante PCO : " & GUICtrlRead($label_evenement))
   for $i = 0 to ubound($a)-1
      _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & $a[$i][0] & " " & stringreplace(($a[$i][1] ),"__", @CRLF))
   Next
   _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & "------------------------------------------------------------------------------")
   _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & "Victimes civiles : " & GUICtrlRead($nbr_label_VC_TOTAL ) & " (" & GUICtrlRead($nbr_label_VC_DCD) & " DCD, "  & _
                                                         GUICtrlRead($nbr_label_VC_UA) & " UA, " & _
                                                         GUICtrlRead($nbr_label_VC_UR) & " UR, " & _
                                                         GUICtrlRead($nbr_label_VC_indemnes)& " Indemnes)")
   _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & "Victimes equipage : " & GUICtrlRead($nbr_label_VE_TOTAL ) & " (" & GUICtrlRead($nbr_label_VE_DCD) & " DCD, "  & _
                                                      GUICtrlRead($nbr_label_VE_UA) & " UA, " & _
                                                      GUICtrlRead($nbr_label_VE_UR) & " UR, " & _
                                                      GUICtrlRead($nbr_label_VE_indemnes)& " Indemnes)")
   _GUICtrlRichEdit_AppendText($hRichEdit,@CRLF & "Victimes Forces Intervention: " & GUICtrlRead($nbr_label_VFS_TOTAL ) & " (" & GUICtrlRead($nbr_label_VFS_DCD) & " DCD, "  & _
                                                            GUICtrlRead($nbr_label_VFS_UA) & " UA, " & _
                                                            GUICtrlRead($nbr_label_VFS_UR) & " UR)")
   _GUICtrlRichEdit_SetCharColor($hRichEdit, "0")

   _RTF_PrintFile(_GUICtrlRichEdit_StreamToVar($hRichEdit), Default, False)
EndFunc

func _makehtml()
   if FileExists($file) then FileDelete($file)
   $texte = "<html><head>" & @CRLF & _
               "<title>MCI-PCO</title>" & @CRLF & _
               "<meta name=""title"" content=""PCO"" />" & @CRLF & _
               "<meta name=""description"" content=""main courante PCO"" />" & @CRLF & _
               "<meta name=""keywords"" content=""PCO"" />" & @CRLF & _
               "<meta http-equiv=""content-type"" content=""text/html; charset=UTF-8"" />" & @CRLF & _
               "</head>" & @CRLF & _
               "<body bgcolor=""#ffffff"" background=""images/"" text=""#000000"" link=""#0000cc"" vlink=""#660033"" alink=""#ff0000"" marginheight=""0"" marginwidth=""0"" leftmargin=""0"" topmargin=""0""><font size=""5""><font face=""Times New Roman""> "; & @CRLF
   filewrite($file, $texte)
EndFunc
func _makeini()

   local $asec_civils[5][2]= [[4, ""],["INDEMNES", ""],["UR", ""],["UA", ""],["DCD",""]]
   local $asec_equipage[5][2]= [[4, ""],["INDEMNES", ""],["UR", ""],["UA", ""],["DCD",""]]
   local $asec_fds[4][2]= [[3, ""],["UR", ""],["UA", ""],["DCD",""]]
   Local $titre_pco = GUICtrlRead($label_evenement)
   if not FileExists($fileini) Then
      IniWriteSection($fileini,"CIVILES",$asec_civils)
      IniWriteSection($fileini,"FDS",$asec_fds)
      IniWriteSection($fileini,"EQUIPAGE",$asec_equipage)
      IniWriteSection($fileini,"LABEL","titre=" & $titre_pco)
      Else
      ;  local $aarray=IniReadSectionNames($fileini)
         ;_ArrayDisplay($aarray)
      ;  for $i = 1 to $aarray[0]
      ;     local $asections = IniReadSection($fileini,$aarray[$i])
            ;_ArrayDisplay($asections)
      ;     for $j = 1 to ubound($asections) -1
               ;if $asections[$j][1] <> "" then msgbox(0,"test",$aarray[$i] & " " & $asections[$j][1], 1)
      ;        if $asections[$j][1] <> "" then IniWrite($fileini,$aarray[$i],$asections[$j][1],"")
      ;     Next

      ;  Next

      _savebandeau()
   EndIf

EndFunc
func _savebandeau()

   local $asec_civils[5][2]= [[4, ""],["INDEMNES", GUICtrlRead($nbr_label_VC_indemnes)],["UR", GUICtrlRead($nbr_label_VC_UR) ],["UA", GUICtrlRead($nbr_label_VC_UA) ],["DCD", GUICtrlRead($nbr_label_VC_DCD)]]
   local $asec_equipage[5][2]= [[4, ""],["INDEMNES", GUICtrlRead($nbr_label_VE_indemnes)],["UR", GUICtrlRead($nbr_label_VE_UR)],["UA",GUICtrlRead($nbr_label_VE_UA)],["DCD",GUICtrlRead($nbr_label_VE_DCD)]]
   local $asec_fds[4][2]= [[3, ""],["UR",  GUICtrlRead($nbr_label_VFS_UR) ],["UA", GUICtrlRead($nbr_label_VFS_UA)],["DCD", GUICtrlRead($nbr_label_VFS_DCD)]]
   Local $titre_pco = GUICtrlRead($label_evenement)
   IniWriteSection($fileini,"CIVILES",$asec_civils)
   IniWriteSection($fileini,"FDS",$asec_fds)
   IniWriteSection($fileini,"EQUIPAGE",$asec_equipage)
   IniWriteSection($fileini,"LABEL","titre=" & $titre_pco)

EndFunc

FUNC _loadbandeau()
   GUICtrlSetData($label_evenement,IniRead($fileini,"LABEL","titre",""))
   guictrlsetdata($nbr_label_VC_indemnes,IniRead($fileini,"CIVILES","INDEMNES",0))
   guictrlsetdata($nbr_label_VC_UR,IniRead($fileini,"CIVILES","UR",0))
   guictrlsetdata($nbr_label_VC_UA,IniRead($fileini,"CIVILES","UA",0))
   guictrlsetdata($nbr_label_VC_DCD,IniRead($fileini,"CIVILES","DCD",0))

   guictrlsetdata($nbr_label_VE_indemnes,IniRead($fileini,"EQUIPAGE","INDEMNES",0))
   guictrlsetdata($nbr_label_VE_UR,IniRead($fileini,"EQUIPAGE","UR",0))
   guictrlsetdata($nbr_label_VE_UA,IniRead($fileini,"EQUIPAGE","UA",0))
   guictrlsetdata($nbr_label_VE_DCD,IniRead($fileini,"EQUIPAGE","DCD",0))

   guictrlsetdata($nbr_label_VFS_UR,IniRead($fileini,"FDS","UR",0))
   guictrlsetdata($nbr_label_VFS_UA,IniRead($fileini,"FDS","UA",0))
   guictrlsetdata($nbr_label_VFS_DCD,IniRead($fileini,"FDS","DCD",0))
EndFunc
Bonne lecture
Répondre