Menu

Lua vs API

2018-03-14
2020-01-05
  • Petitpainauchocolat

    Bon je flood un peu mais j'ai une nouvelle question qui concerne la programation voici un bout de code avec des c ommentaires, lorsque j'extrait une donnée d'une table, si je l'imprime j'ai le résultat que je veux, si je veux la passer dans une condition ca marche pas, je fais quelque chose de faux mais quoi ?

     local semis = nsbase.datasetCreate("SQLQuery")
    
            local query = "SELECT * FROM `Periodes_de_culture` WHERE `NoCulture` = '"..mavaleur.."' AND `S_P_R` = 'Semis'"
    
            semis.sql= query
    
    -- la variable que j'aimerais utiliser
            local val =  semis.getItems('Janvier_1')
    
            -- j'ai essayé de transformer les données en string ou en bool directement dans la table mais cela ne fonctionne pas
     -- pourtant si je fais un print de cette donnée 
            print(type(val).." "..val) -- la réponse est correcte: string False ou string True
            -- la dessous cela ne fonctionne pas.
            if val == '' then
                    print("NULL")
            elseif val == 'True' then
                    print("True")
            elseif val == 'False' then
                    print("False")
            end
    
            -- **pour essayer avec des variables plutôt qu'une donnée SQL et cela fonctionne:**
    
            local essaibooleen = true
            if essaibooleen == true then
                    print('hello')
            end
    
            local essaistring = "True"
            if essaistring == "True" then
                    print("Hell ho")
            end
    

    Don voilà, merci pour une prochaine réponse.

     

    Last edit: Petitpainauchocolat 2018-03-14
  • neuts-jl

    neuts-jl - 2018-03-14

    getItems renvoie une liste de valeurs separées par des \n et compatible avec la propriété items des combobox , listbox (c'est trés pratique).
    Je pense qu'il y a un \ n ou \r à la fin de votre valeur
    pour récupérer une valeur d'un champ de table ou vue de l'enregistrement courant, il faut utiliser getFieldname("Janvier_1')

    Pour info
    geItems est l'équivalent de cela en LUA :
    local dataset = nsbase.datasetCreate("SQLQuery")
    dataset.sql="select * from...."
    dataset.open()
    local items=""
    while not dataset.eof do
    items=items .. dataset.getFieldname("monchamp") .. "\n"
    dataset.next()
    end
    dataset.close()

     

    Last edit: neuts-jl 2018-03-15
  • Petitpainauchocolat

    Bon je vais essayer avec getFieldname, Je conviens que cela soit très pratique, je l'ai utilisée pour une autre partie de ma minibase et cela fonctionne comme sur des roulettes avec les champs que vous proposez. Je pensais bien qu'il y avait un truc en plus dans le retour, mais je pensais que c'était des espaces et j'avais éssayé de faire une fonction trim qui ne fonctionnais pas du tout pour le coup. Ce qui m'amène une question car j'avais envisagé si ce trim avait fonctionné de le transférer dans une page de scripts séparée pour pouvoir la reprendre mais je n'ai aucne idée de la manière de récupérer une fonction de cette manière. J'ai essayé nomdelapagedescript.nomduscript() mais je n'ai réussi qu à produire une erreur.

     
  • neuts-jl

    neuts-jl - 2018-03-15

    C'est simple pour avoir des fonctions globales, il suffit de créer un script global (menu/crééer/script)
    et d'appeler ses fonctions tout simplement exemple :
    dans le script global
    function myfunc()
    ........
    end

    Ailleur :

    myfunc()

     
  • Petitpainauchocolat

    C'est tout bon.

     
  • neuts-jl

    neuts-jl - 2020-01-05

    Pour cloturer ce sujet

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.